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

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.13 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.13 = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.alglib_impl::rcommv2_request" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.alglib_impl::rcommv2_buffers" = type { %"class.alglib::real_1d_array", %"class.alglib::real_1d_array", %"class.alglib::real_1d_array", %"class.alglib::real_1d_array", %"class.alglib::real_2d_array", %"class.alglib::sparsematrix" }
%"class.alglib::real_1d_array" = type { %"class.alglib::ae_vector_wrapper.base", [7 x i8] }
%"class.alglib::ae_vector_wrapper.base" = type <{ ptr, ptr, %"struct.alglib_impl::ae_vector", i8 }>
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%union.anon.0 = type { ptr }
%"class.alglib::real_2d_array" = type { %"class.alglib::ae_matrix_wrapper.base", [7 x i8] }
%"class.alglib::ae_matrix_wrapper.base" = type <{ ptr, ptr, %"struct.alglib_impl::ae_matrix", i8 }>
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"class.alglib::sparsematrix" = type { %"class.alglib::_sparsematrix_owner.base", [7 x i8] }
%"class.alglib::_sparsematrix_owner.base" = type <{ ptr, ptr, i8 }>
%"class.alglib_impl::rcommv2_callbacks" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZTIN6alglib8ap_errorE = external dso_local constant { ptr, ptr }, align 8
@.str.127 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [55 x i8], align 1

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #1

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_free_exception(ptr)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6alglib8ap_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81), i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl25process_v2request_3phase0ERNS_15rcommv2_requestElRNS_17rcommv2_callbacksERNS_15rcommv2_buffersE(ptr noundef nonnull align 8 dereferenceable(96) %0, i64 noundef %1, ptr noundef nonnull align 8 dereferenceable(80) %2, ptr noundef nonnull align 8 dereferenceable(480) %3) #5 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca i64, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca double, align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i1, align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca i1, align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca i1, align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca i1, align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca i1, align 1
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca i1, align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca i1, align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca i1, align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator", align 1
  %73 = alloca i1, align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca i1, align 1
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i64 %1, ptr %6, align 8, !tbaa !9
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %79 = load i64, ptr %6, align 8, !tbaa !9
  %80 = load ptr, ptr %5, align 8, !tbaa !5
  %81 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %80, i32 0, i32 4
  %82 = load ptr, ptr %81, align 8, !tbaa !11
  %83 = load i64, ptr %82, align 8, !tbaa !9
  %84 = load ptr, ptr %5, align 8, !tbaa !5
  %85 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %84, i32 0, i32 6
  %86 = load ptr, ptr %85, align 8, !tbaa !13
  %87 = load i64, ptr %86, align 8, !tbaa !9
  %88 = mul nsw i64 %83, %87
  %89 = icmp slt i64 %79, %88
  br i1 %89, label %90, label %540

90:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %91 = load i64, ptr %6, align 8, !tbaa !9
  %92 = load ptr, ptr %5, align 8, !tbaa !5
  %93 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %92, i32 0, i32 6
  %94 = load ptr, ptr %93, align 8, !tbaa !13
  %95 = load i64, ptr %94, align 8, !tbaa !9
  %96 = sdiv i64 %91, %95
  store i64 %96, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %97 = load i64, ptr %6, align 8, !tbaa !9
  %98 = load ptr, ptr %5, align 8, !tbaa !5
  %99 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %98, i32 0, i32 6
  %100 = load ptr, ptr %99, align 8, !tbaa !13
  %101 = load i64, ptr %100, align 8, !tbaa !9
  %102 = srem i64 %97, %101
  store i64 %102, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %103 = load ptr, ptr %5, align 8, !tbaa !5
  %104 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %103, i32 0, i32 6
  %105 = load ptr, ptr %104, align 8, !tbaa !13
  %106 = load i64, ptr %105, align 8, !tbaa !9
  store i64 %106, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %107 = load ptr, ptr %5, align 8, !tbaa !5
  %108 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %107, i32 0, i32 5
  %109 = load ptr, ptr %108, align 8, !tbaa !14
  %110 = load i64, ptr %109, align 8, !tbaa !9
  store i64 %110, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %111 = load ptr, ptr %5, align 8, !tbaa !5
  %112 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %111, i32 0, i32 8
  %113 = load ptr, ptr %112, align 8, !tbaa !15
  %114 = load i64, ptr %113, align 8, !tbaa !9
  store i64 %114, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %115 = load ptr, ptr %5, align 8, !tbaa !5
  %116 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %115, i32 0, i32 2
  %117 = load ptr, ptr %116, align 8, !tbaa !16
  %118 = load ptr, ptr %117, align 8, !tbaa !5
  %119 = load i64, ptr %9, align 8, !tbaa !9
  %120 = load i64, ptr %11, align 8, !tbaa !9
  %121 = load ptr, ptr %5, align 8, !tbaa !5
  %122 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %121, i32 0, i32 7
  %123 = load ptr, ptr %122, align 8, !tbaa !17
  %124 = load i64, ptr %123, align 8, !tbaa !9
  %125 = add nsw i64 %120, %124
  %126 = load i64, ptr %11, align 8, !tbaa !9
  %127 = load ptr, ptr %5, align 8, !tbaa !5
  %128 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %127, i32 0, i32 8
  %129 = load ptr, ptr %128, align 8, !tbaa !15
  %130 = load i64, ptr %129, align 8, !tbaa !9
  %131 = mul nsw i64 %126, %130
  %132 = mul nsw i64 %131, 2
  %133 = add nsw i64 %125, %132
  %134 = mul nsw i64 %119, %133
  %135 = getelementptr inbounds double, ptr %118, i64 %134
  store ptr %135, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %136 = load ptr, ptr %14, align 8, !tbaa !5
  %137 = load i64, ptr %11, align 8, !tbaa !9
  %138 = getelementptr inbounds double, ptr %136, i64 %137
  %139 = load ptr, ptr %5, align 8, !tbaa !5
  %140 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %139, i32 0, i32 7
  %141 = load ptr, ptr %140, align 8, !tbaa !17
  %142 = load i64, ptr %141, align 8, !tbaa !9
  %143 = getelementptr inbounds double, ptr %138, i64 %142
  %144 = load i64, ptr %10, align 8, !tbaa !9
  %145 = load i64, ptr %13, align 8, !tbaa !9
  %146 = mul nsw i64 %144, %145
  %147 = mul nsw i64 %146, 2
  %148 = getelementptr inbounds double, ptr %143, i64 %147
  store ptr %148, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %149 = load ptr, ptr %5, align 8, !tbaa !5
  %150 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %149, i32 0, i32 10
  %151 = load ptr, ptr %150, align 8, !tbaa !18
  %152 = load ptr, ptr %151, align 8, !tbaa !5
  %153 = load i64, ptr %9, align 8, !tbaa !9
  %154 = load i64, ptr %11, align 8, !tbaa !9
  %155 = mul nsw i64 %153, %154
  %156 = load i64, ptr %12, align 8, !tbaa !9
  %157 = mul nsw i64 %155, %156
  %158 = getelementptr inbounds double, ptr %152, i64 %157
  store ptr %158, ptr %16, align 8, !tbaa !5
  %159 = load ptr, ptr %8, align 8, !tbaa !5
  %160 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %159, i32 0, i32 0
  %161 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %160)
  %162 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %161, i32 0, i32 4
  %163 = load ptr, ptr %162, align 8, !tbaa !19
  %164 = load ptr, ptr %14, align 8, !tbaa !5
  %165 = load i64, ptr %11, align 8, !tbaa !9
  %166 = mul i64 %165, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %163, ptr align 8 %164, i64 %166, i1 false)
  %167 = load ptr, ptr %5, align 8, !tbaa !5
  %168 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %167, i32 0, i32 7
  %169 = load ptr, ptr %168, align 8, !tbaa !17
  %170 = load i64, ptr %169, align 8, !tbaa !9
  %171 = icmp sgt i64 %170, 0
  br i1 %171, label %172, label %186

172:                                              ; preds = %90
  %173 = load ptr, ptr %8, align 8, !tbaa !5
  %174 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %173, i32 0, i32 1
  %175 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %174)
  %176 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %175, i32 0, i32 4
  %177 = load ptr, ptr %176, align 8, !tbaa !19
  %178 = load ptr, ptr %14, align 8, !tbaa !5
  %179 = load i64, ptr %11, align 8, !tbaa !9
  %180 = getelementptr inbounds double, ptr %178, i64 %179
  %181 = load ptr, ptr %5, align 8, !tbaa !5
  %182 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %181, i32 0, i32 7
  %183 = load ptr, ptr %182, align 8, !tbaa !17
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = mul i64 %184, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %177, ptr align 8 %180, i64 %185, i1 false)
  br label %186

186:                                              ; preds = %172, %90
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %187 = load ptr, ptr %8, align 8, !tbaa !5
  %188 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %187, i32 0, i32 0
  %189 = load i64, ptr %10, align 8, !tbaa !9
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %188, i64 noundef %189)
  %191 = load double, ptr %190, align 8, !tbaa !20
  store double %191, ptr %17, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  store i64 0, ptr %18, align 8, !tbaa !9
  br label %192

192:                                              ; preds = %205, %186
  %193 = load i64, ptr %18, align 8, !tbaa !9
  %194 = load i64, ptr %12, align 8, !tbaa !9
  %195 = icmp slt i64 %193, %194
  br i1 %195, label %197, label %196

196:                                              ; preds = %192
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %208

197:                                              ; preds = %192
  %198 = load ptr, ptr %16, align 8, !tbaa !5
  %199 = load i64, ptr %18, align 8, !tbaa !9
  %200 = load i64, ptr %11, align 8, !tbaa !9
  %201 = mul nsw i64 %199, %200
  %202 = load i64, ptr %10, align 8, !tbaa !9
  %203 = add nsw i64 %201, %202
  %204 = getelementptr inbounds double, ptr %198, i64 %203
  store double 0.000000e+00, ptr %204, align 8, !tbaa !20
  br label %205

205:                                              ; preds = %197
  %206 = load i64, ptr %18, align 8, !tbaa !9
  %207 = add nsw i64 %206, 1
  store i64 %207, ptr %18, align 8, !tbaa !9
  br label %192, !llvm.loop !22

208:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %209

209:                                              ; preds = %535, %208
  %210 = load i64, ptr %19, align 8, !tbaa !9
  %211 = load i64, ptr %13, align 8, !tbaa !9
  %212 = icmp slt i64 %210, %211
  br i1 %212, label %214, label %213

213:                                              ; preds = %209
  store i32 5, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %539

214:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %215 = load ptr, ptr %15, align 8, !tbaa !5
  %216 = load i64, ptr %19, align 8, !tbaa !9
  %217 = mul nsw i64 %216, 2
  %218 = add nsw i64 %217, 0
  %219 = getelementptr inbounds double, ptr %215, i64 %218
  %220 = load double, ptr %219, align 8, !tbaa !20
  store double %220, ptr %21, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %221 = load ptr, ptr %15, align 8, !tbaa !5
  %222 = load i64, ptr %19, align 8, !tbaa !9
  %223 = mul nsw i64 %222, 2
  %224 = add nsw i64 %223, 1
  %225 = getelementptr inbounds double, ptr %221, i64 %224
  %226 = load double, ptr %225, align 8, !tbaa !20
  store double %226, ptr %22, align 8, !tbaa !20
  %227 = load double, ptr %22, align 8, !tbaa !20
  %228 = fcmp oeq double %227, 0.000000e+00
  br i1 %228, label %229, label %230

229:                                              ; preds = %214
  store i32 7, ptr %20, align 4
  br label %532

230:                                              ; preds = %214
  %231 = load double, ptr %21, align 8, !tbaa !20
  %232 = load ptr, ptr %14, align 8, !tbaa !5
  %233 = load i64, ptr %10, align 8, !tbaa !9
  %234 = getelementptr inbounds double, ptr %232, i64 %233
  %235 = load double, ptr %234, align 8, !tbaa !20
  %236 = fcmp oeq double %231, %235
  br i1 %236, label %237, label %238

237:                                              ; preds = %230
  store i32 7, ptr %20, align 4
  br label %532

238:                                              ; preds = %230
  %239 = load double, ptr %21, align 8, !tbaa !20
  %240 = load ptr, ptr %8, align 8, !tbaa !5
  %241 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %240, i32 0, i32 0
  %242 = load i64, ptr %10, align 8, !tbaa !9
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %241, i64 noundef %242)
  store double %239, ptr %243, align 8, !tbaa !20
  %244 = load ptr, ptr %7, align 8, !tbaa !5
  %245 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %244, i32 0, i32 0
  %246 = load ptr, ptr %245, align 8, !tbaa !24
  %247 = icmp ne ptr %246, null
  br i1 %247, label %248, label %300

248:                                              ; preds = %238
  %249 = load ptr, ptr %5, align 8, !tbaa !5
  %250 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %249, i32 0, i32 7
  %251 = load ptr, ptr %250, align 8, !tbaa !17
  %252 = load i64, ptr %251, align 8, !tbaa !9
  %253 = icmp eq i64 %252, 0
  br i1 %253, label %254, label %257

254:                                              ; preds = %248
  %255 = load i64, ptr %12, align 8, !tbaa !9
  %256 = icmp eq i64 %255, 1
  br i1 %256, label %288, label %257

257:                                              ; preds = %254, %248
  store i1 true, ptr %29, align 1
  %258 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %259 unwind label %266

259:                                              ; preds = %257
  %260 = load ptr, ptr %5, align 8, !tbaa !5
  %261 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %260, i32 0, i32 0
  %262 = load ptr, ptr %261, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %262)
          to label %263 unwind label %270

263:                                              ; preds = %259
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.128)
          to label %264 unwind label %274

264:                                              ; preds = %263
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %258, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %265 unwind label %278

265:                                              ; preds = %264
  store i1 false, ptr %29, align 1
  invoke void @__cxa_throw(ptr %258, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %278

266:                                              ; preds = %257
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %27, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %28, align 4
  br label %284

270:                                              ; preds = %259
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %27, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %28, align 4
  br label %283

274:                                              ; preds = %263
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %27, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %28, align 4
  br label %282

278:                                              ; preds = %265, %264
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %27, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %282

282:                                              ; preds = %278, %274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %283

283:                                              ; preds = %282, %270
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %284

284:                                              ; preds = %283, %266
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  %285 = load i1, ptr %29, align 1
  br i1 %285, label %286, label %287

286:                                              ; preds = %284
  call void @__cxa_free_exception(ptr %258) #7
  br label %287

287:                                              ; preds = %286, %284
  br label %538

288:                                              ; preds = %254
  %289 = load ptr, ptr %7, align 8, !tbaa !5
  %290 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %289, i32 0, i32 0
  %291 = load ptr, ptr %290, align 8, !tbaa !24
  %292 = load ptr, ptr %8, align 8, !tbaa !5
  %293 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %292, i32 0, i32 0
  %294 = load ptr, ptr %8, align 8, !tbaa !5
  %295 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %294, i32 0, i32 2
  %296 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %295, i64 noundef 0)
  %297 = load ptr, ptr %5, align 8, !tbaa !5
  %298 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %297, i32 0, i32 1
  %299 = load ptr, ptr %298, align 8, !tbaa !27
  call void %291(ptr noundef nonnull align 8 dereferenceable(81) %293, ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef %299)
  br label %501

300:                                              ; preds = %238
  %301 = load ptr, ptr %7, align 8, !tbaa !5
  %302 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %301, i32 0, i32 5
  %303 = load ptr, ptr %302, align 8, !tbaa !28
  %304 = icmp ne ptr %303, null
  br i1 %304, label %305, label %359

305:                                              ; preds = %300
  %306 = load ptr, ptr %5, align 8, !tbaa !5
  %307 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %306, i32 0, i32 7
  %308 = load ptr, ptr %307, align 8, !tbaa !17
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = icmp sgt i64 %309, 0
  br i1 %310, label %311, label %314

311:                                              ; preds = %305
  %312 = load i64, ptr %12, align 8, !tbaa !9
  %313 = icmp eq i64 %312, 1
  br i1 %313, label %345, label %314

314:                                              ; preds = %311, %305
  store i1 true, ptr %34, align 1
  %315 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %316 unwind label %323

316:                                              ; preds = %314
  %317 = load ptr, ptr %5, align 8, !tbaa !5
  %318 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %317, i32 0, i32 0
  %319 = load ptr, ptr %318, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef %319)
          to label %320 unwind label %327

320:                                              ; preds = %316
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.128)
          to label %321 unwind label %331

321:                                              ; preds = %320
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %315, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %322 unwind label %335

322:                                              ; preds = %321
  store i1 false, ptr %34, align 1
  invoke void @__cxa_throw(ptr %315, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %335

323:                                              ; preds = %314
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %27, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %28, align 4
  br label %341

327:                                              ; preds = %316
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %27, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %28, align 4
  br label %340

331:                                              ; preds = %320
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %27, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %28, align 4
  br label %339

335:                                              ; preds = %322, %321
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %27, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %339

339:                                              ; preds = %335, %331
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %340

340:                                              ; preds = %339, %327
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %341

341:                                              ; preds = %340, %323
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  %342 = load i1, ptr %34, align 1
  br i1 %342, label %343, label %344

343:                                              ; preds = %341
  call void @__cxa_free_exception(ptr %315) #7
  br label %344

344:                                              ; preds = %343, %341
  br label %538

345:                                              ; preds = %311
  %346 = load ptr, ptr %7, align 8, !tbaa !5
  %347 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %346, i32 0, i32 5
  %348 = load ptr, ptr %347, align 8, !tbaa !28
  %349 = load ptr, ptr %8, align 8, !tbaa !5
  %350 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %349, i32 0, i32 0
  %351 = load ptr, ptr %8, align 8, !tbaa !5
  %352 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %351, i32 0, i32 1
  %353 = load ptr, ptr %8, align 8, !tbaa !5
  %354 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %353, i32 0, i32 2
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %354, i64 noundef 0)
  %356 = load ptr, ptr %5, align 8, !tbaa !5
  %357 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %356, i32 0, i32 1
  %358 = load ptr, ptr %357, align 8, !tbaa !27
  call void %348(ptr noundef nonnull align 8 dereferenceable(81) %350, ptr noundef nonnull align 8 dereferenceable(81) %352, ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef %358)
  br label %500

359:                                              ; preds = %300
  %360 = load ptr, ptr %7, align 8, !tbaa !5
  %361 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %360, i32 0, i32 2
  %362 = load ptr, ptr %361, align 8, !tbaa !29
  %363 = icmp ne ptr %362, null
  br i1 %363, label %364, label %412

364:                                              ; preds = %359
  %365 = load ptr, ptr %5, align 8, !tbaa !5
  %366 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %365, i32 0, i32 7
  %367 = load ptr, ptr %366, align 8, !tbaa !17
  %368 = load i64, ptr %367, align 8, !tbaa !9
  %369 = icmp eq i64 %368, 0
  br i1 %369, label %401, label %370

370:                                              ; preds = %364
  store i1 true, ptr %39, align 1
  %371 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %372 unwind label %379

372:                                              ; preds = %370
  %373 = load ptr, ptr %5, align 8, !tbaa !5
  %374 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %373, i32 0, i32 0
  %375 = load ptr, ptr %374, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef %375)
          to label %376 unwind label %383

376:                                              ; preds = %372
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.128)
          to label %377 unwind label %387

377:                                              ; preds = %376
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %371, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %378 unwind label %391

378:                                              ; preds = %377
  store i1 false, ptr %39, align 1
  invoke void @__cxa_throw(ptr %371, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %391

379:                                              ; preds = %370
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %27, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %28, align 4
  br label %397

383:                                              ; preds = %372
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %27, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %28, align 4
  br label %396

387:                                              ; preds = %376
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %27, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %28, align 4
  br label %395

391:                                              ; preds = %378, %377
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %27, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %395

395:                                              ; preds = %391, %387
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %396

396:                                              ; preds = %395, %383
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %397

397:                                              ; preds = %396, %379
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  %398 = load i1, ptr %39, align 1
  br i1 %398, label %399, label %400

399:                                              ; preds = %397
  call void @__cxa_free_exception(ptr %371) #7
  br label %400

400:                                              ; preds = %399, %397
  br label %538

401:                                              ; preds = %364
  %402 = load ptr, ptr %7, align 8, !tbaa !5
  %403 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %402, i32 0, i32 2
  %404 = load ptr, ptr %403, align 8, !tbaa !29
  %405 = load ptr, ptr %8, align 8, !tbaa !5
  %406 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %405, i32 0, i32 0
  %407 = load ptr, ptr %8, align 8, !tbaa !5
  %408 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %407, i32 0, i32 2
  %409 = load ptr, ptr %5, align 8, !tbaa !5
  %410 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %409, i32 0, i32 1
  %411 = load ptr, ptr %410, align 8, !tbaa !27
  call void %404(ptr noundef nonnull align 8 dereferenceable(81) %406, ptr noundef nonnull align 8 dereferenceable(81) %408, ptr noundef %411)
  br label %499

412:                                              ; preds = %359
  %413 = load ptr, ptr %7, align 8, !tbaa !5
  %414 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %413, i32 0, i32 7
  %415 = load ptr, ptr %414, align 8, !tbaa !30
  %416 = icmp ne ptr %415, null
  br i1 %416, label %417, label %467

417:                                              ; preds = %412
  %418 = load ptr, ptr %5, align 8, !tbaa !5
  %419 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %418, i32 0, i32 7
  %420 = load ptr, ptr %419, align 8, !tbaa !17
  %421 = load i64, ptr %420, align 8, !tbaa !9
  %422 = icmp sgt i64 %421, 0
  br i1 %422, label %454, label %423

423:                                              ; preds = %417
  store i1 true, ptr %44, align 1
  %424 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %425 unwind label %432

425:                                              ; preds = %423
  %426 = load ptr, ptr %5, align 8, !tbaa !5
  %427 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %426, i32 0, i32 0
  %428 = load ptr, ptr %427, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef %428)
          to label %429 unwind label %436

429:                                              ; preds = %425
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.128)
          to label %430 unwind label %440

430:                                              ; preds = %429
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %431 unwind label %444

431:                                              ; preds = %430
  store i1 false, ptr %44, align 1
  invoke void @__cxa_throw(ptr %424, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %444

432:                                              ; preds = %423
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %27, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %28, align 4
  br label %450

436:                                              ; preds = %425
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %27, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %28, align 4
  br label %449

440:                                              ; preds = %429
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %27, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %28, align 4
  br label %448

444:                                              ; preds = %431, %430
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %27, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %448

448:                                              ; preds = %444, %440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %449

449:                                              ; preds = %448, %436
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %450

450:                                              ; preds = %449, %432
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  %451 = load i1, ptr %44, align 1
  br i1 %451, label %452, label %453

452:                                              ; preds = %450
  call void @__cxa_free_exception(ptr %424) #7
  br label %453

453:                                              ; preds = %452, %450
  br label %538

454:                                              ; preds = %417
  %455 = load ptr, ptr %7, align 8, !tbaa !5
  %456 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %455, i32 0, i32 7
  %457 = load ptr, ptr %456, align 8, !tbaa !30
  %458 = load ptr, ptr %8, align 8, !tbaa !5
  %459 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %458, i32 0, i32 0
  %460 = load ptr, ptr %8, align 8, !tbaa !5
  %461 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %460, i32 0, i32 1
  %462 = load ptr, ptr %8, align 8, !tbaa !5
  %463 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %462, i32 0, i32 2
  %464 = load ptr, ptr %5, align 8, !tbaa !5
  %465 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %464, i32 0, i32 1
  %466 = load ptr, ptr %465, align 8, !tbaa !27
  call void %457(ptr noundef nonnull align 8 dereferenceable(81) %459, ptr noundef nonnull align 8 dereferenceable(81) %461, ptr noundef nonnull align 8 dereferenceable(81) %463, ptr noundef %466)
  br label %498

467:                                              ; preds = %412
  store i1 true, ptr %49, align 1
  %468 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %469 unwind label %476

469:                                              ; preds = %467
  %470 = load ptr, ptr %5, align 8, !tbaa !5
  %471 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %470, i32 0, i32 0
  %472 = load ptr, ptr %471, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef %472)
          to label %473 unwind label %480

473:                                              ; preds = %469
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.132)
          to label %474 unwind label %484

474:                                              ; preds = %473
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %468, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %475 unwind label %488

475:                                              ; preds = %474
  store i1 false, ptr %49, align 1
  invoke void @__cxa_throw(ptr %468, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %488

476:                                              ; preds = %467
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %27, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %28, align 4
  br label %494

480:                                              ; preds = %469
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %27, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %28, align 4
  br label %493

484:                                              ; preds = %473
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %27, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %28, align 4
  br label %492

488:                                              ; preds = %475, %474
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %27, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %492

492:                                              ; preds = %488, %484
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %493

493:                                              ; preds = %492, %480
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %494

494:                                              ; preds = %493, %476
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  %495 = load i1, ptr %49, align 1
  br i1 %495, label %496, label %497

496:                                              ; preds = %494
  call void @__cxa_free_exception(ptr %468) #7
  br label %497

497:                                              ; preds = %496, %494
  br label %538

498:                                              ; preds = %454
  br label %499

499:                                              ; preds = %498, %401
  br label %500

500:                                              ; preds = %499, %345
  br label %501

501:                                              ; preds = %500, %288
  %502 = load double, ptr %17, align 8, !tbaa !20
  %503 = load ptr, ptr %8, align 8, !tbaa !5
  %504 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %503, i32 0, i32 0
  %505 = load i64, ptr %10, align 8, !tbaa !9
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %504, i64 noundef %505)
  store double %502, ptr %506, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  store i64 0, ptr %50, align 8, !tbaa !9
  br label %507

507:                                              ; preds = %528, %501
  %508 = load i64, ptr %50, align 8, !tbaa !9
  %509 = load i64, ptr %12, align 8, !tbaa !9
  %510 = icmp slt i64 %508, %509
  br i1 %510, label %512, label %511

511:                                              ; preds = %507
  store i32 8, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  br label %531

512:                                              ; preds = %507
  %513 = load double, ptr %22, align 8, !tbaa !20
  %514 = load ptr, ptr %8, align 8, !tbaa !5
  %515 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %514, i32 0, i32 2
  %516 = load i64, ptr %50, align 8, !tbaa !9
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %515, i64 noundef %516)
  %518 = load double, ptr %517, align 8, !tbaa !20
  %519 = load ptr, ptr %16, align 8, !tbaa !5
  %520 = load i64, ptr %50, align 8, !tbaa !9
  %521 = load i64, ptr %11, align 8, !tbaa !9
  %522 = mul nsw i64 %520, %521
  %523 = load i64, ptr %10, align 8, !tbaa !9
  %524 = add nsw i64 %522, %523
  %525 = getelementptr inbounds double, ptr %519, i64 %524
  %526 = load double, ptr %525, align 8, !tbaa !20
  %527 = call double @llvm.fmuladd.f64(double %513, double %518, double %526)
  store double %527, ptr %525, align 8, !tbaa !20
  br label %528

528:                                              ; preds = %512
  %529 = load i64, ptr %50, align 8, !tbaa !9
  %530 = add nsw i64 %529, 1
  store i64 %530, ptr %50, align 8, !tbaa !9
  br label %507, !llvm.loop !31

531:                                              ; preds = %511
  store i32 0, ptr %20, align 4
  br label %532

532:                                              ; preds = %531, %237, %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  %533 = load i32, ptr %20, align 4
  switch i32 %533, label %910 [
    i32 0, label %534
    i32 7, label %535
  ]

534:                                              ; preds = %532
  br label %535

535:                                              ; preds = %534, %532
  %536 = load i64, ptr %19, align 8, !tbaa !9
  %537 = add nsw i64 %536, 1
  store i64 %537, ptr %19, align 8, !tbaa !9
  br label %209, !llvm.loop !32

538:                                              ; preds = %497, %453, %400, %344, %287
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %905

539:                                              ; preds = %213
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %904

540:                                              ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %541 = load i64, ptr %6, align 8, !tbaa !9
  %542 = load ptr, ptr %5, align 8, !tbaa !5
  %543 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %542, i32 0, i32 4
  %544 = load ptr, ptr %543, align 8, !tbaa !11
  %545 = load i64, ptr %544, align 8, !tbaa !9
  %546 = load ptr, ptr %5, align 8, !tbaa !5
  %547 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %546, i32 0, i32 6
  %548 = load ptr, ptr %547, align 8, !tbaa !13
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = mul nsw i64 %545, %549
  %551 = sub nsw i64 %541, %550
  store i64 %551, ptr %51, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  %552 = load ptr, ptr %5, align 8, !tbaa !5
  %553 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %552, i32 0, i32 2
  %554 = load ptr, ptr %553, align 8, !tbaa !16
  %555 = load ptr, ptr %554, align 8, !tbaa !5
  %556 = load i64, ptr %51, align 8, !tbaa !9
  %557 = load ptr, ptr %5, align 8, !tbaa !5
  %558 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %557, i32 0, i32 6
  %559 = load ptr, ptr %558, align 8, !tbaa !13
  %560 = load i64, ptr %559, align 8, !tbaa !9
  %561 = load ptr, ptr %5, align 8, !tbaa !5
  %562 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %561, i32 0, i32 7
  %563 = load ptr, ptr %562, align 8, !tbaa !17
  %564 = load i64, ptr %563, align 8, !tbaa !9
  %565 = add nsw i64 %560, %564
  %566 = load ptr, ptr %5, align 8, !tbaa !5
  %567 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %566, i32 0, i32 6
  %568 = load ptr, ptr %567, align 8, !tbaa !13
  %569 = load i64, ptr %568, align 8, !tbaa !9
  %570 = load ptr, ptr %5, align 8, !tbaa !5
  %571 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %570, i32 0, i32 8
  %572 = load ptr, ptr %571, align 8, !tbaa !15
  %573 = load i64, ptr %572, align 8, !tbaa !9
  %574 = mul nsw i64 %569, %573
  %575 = mul nsw i64 %574, 2
  %576 = add nsw i64 %565, %575
  %577 = mul nsw i64 %556, %576
  %578 = getelementptr inbounds double, ptr %555, i64 %577
  store ptr %578, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  %579 = load ptr, ptr %5, align 8, !tbaa !5
  %580 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %579, i32 0, i32 9
  %581 = load ptr, ptr %580, align 8, !tbaa !33
  %582 = load ptr, ptr %581, align 8, !tbaa !5
  %583 = load i64, ptr %51, align 8, !tbaa !9
  %584 = load ptr, ptr %5, align 8, !tbaa !5
  %585 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %584, i32 0, i32 5
  %586 = load ptr, ptr %585, align 8, !tbaa !14
  %587 = load i64, ptr %586, align 8, !tbaa !9
  %588 = mul nsw i64 %583, %587
  %589 = getelementptr inbounds double, ptr %582, i64 %588
  store ptr %589, ptr %53, align 8, !tbaa !5
  %590 = load ptr, ptr %8, align 8, !tbaa !5
  %591 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %590, i32 0, i32 0
  %592 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %591)
  %593 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %592, i32 0, i32 4
  %594 = load ptr, ptr %593, align 8, !tbaa !19
  %595 = load ptr, ptr %52, align 8, !tbaa !5
  %596 = load ptr, ptr %5, align 8, !tbaa !5
  %597 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %596, i32 0, i32 6
  %598 = load ptr, ptr %597, align 8, !tbaa !13
  %599 = load i64, ptr %598, align 8, !tbaa !9
  %600 = mul i64 %599, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %594, ptr align 8 %595, i64 %600, i1 false)
  %601 = load ptr, ptr %5, align 8, !tbaa !5
  %602 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %601, i32 0, i32 7
  %603 = load ptr, ptr %602, align 8, !tbaa !17
  %604 = load i64, ptr %603, align 8, !tbaa !9
  %605 = icmp sgt i64 %604, 0
  br i1 %605, label %606, label %623

606:                                              ; preds = %540
  %607 = load ptr, ptr %8, align 8, !tbaa !5
  %608 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %607, i32 0, i32 1
  %609 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %608)
  %610 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %609, i32 0, i32 4
  %611 = load ptr, ptr %610, align 8, !tbaa !19
  %612 = load ptr, ptr %52, align 8, !tbaa !5
  %613 = load ptr, ptr %5, align 8, !tbaa !5
  %614 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %613, i32 0, i32 6
  %615 = load ptr, ptr %614, align 8, !tbaa !13
  %616 = load i64, ptr %615, align 8, !tbaa !9
  %617 = getelementptr inbounds double, ptr %612, i64 %616
  %618 = load ptr, ptr %5, align 8, !tbaa !5
  %619 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %618, i32 0, i32 7
  %620 = load ptr, ptr %619, align 8, !tbaa !17
  %621 = load i64, ptr %620, align 8, !tbaa !9
  %622 = mul i64 %621, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %611, ptr align 8 %617, i64 %622, i1 false)
  br label %623

623:                                              ; preds = %606, %540
  %624 = load ptr, ptr %7, align 8, !tbaa !5
  %625 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %624, i32 0, i32 0
  %626 = load ptr, ptr %625, align 8, !tbaa !24
  %627 = icmp ne ptr %626, null
  br i1 %627, label %628, label %681

628:                                              ; preds = %623
  %629 = load ptr, ptr %5, align 8, !tbaa !5
  %630 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %629, i32 0, i32 7
  %631 = load ptr, ptr %630, align 8, !tbaa !17
  %632 = load i64, ptr %631, align 8, !tbaa !9
  %633 = icmp eq i64 %632, 0
  br i1 %633, label %634, label %640

634:                                              ; preds = %628
  %635 = load ptr, ptr %5, align 8, !tbaa !5
  %636 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %635, i32 0, i32 5
  %637 = load ptr, ptr %636, align 8, !tbaa !14
  %638 = load i64, ptr %637, align 8, !tbaa !9
  %639 = icmp eq i64 %638, 1
  br i1 %639, label %671, label %640

640:                                              ; preds = %634, %628
  store i1 true, ptr %58, align 1
  %641 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %642 unwind label %649

642:                                              ; preds = %640
  %643 = load ptr, ptr %5, align 8, !tbaa !5
  %644 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %643, i32 0, i32 0
  %645 = load ptr, ptr %644, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef %645)
          to label %646 unwind label %653

646:                                              ; preds = %642
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.128)
          to label %647 unwind label %657

647:                                              ; preds = %646
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %641, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %648 unwind label %661

648:                                              ; preds = %647
  store i1 false, ptr %58, align 1
  invoke void @__cxa_throw(ptr %641, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %661

649:                                              ; preds = %640
  %650 = landingpad { ptr, i32 }
          cleanup
  %651 = extractvalue { ptr, i32 } %650, 0
  store ptr %651, ptr %27, align 8
  %652 = extractvalue { ptr, i32 } %650, 1
  store i32 %652, ptr %28, align 4
  br label %667

653:                                              ; preds = %642
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %27, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %28, align 4
  br label %666

657:                                              ; preds = %646
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %27, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %28, align 4
  br label %665

661:                                              ; preds = %648, %647
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %27, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %665

665:                                              ; preds = %661, %657
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %666

666:                                              ; preds = %665, %653
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %667

667:                                              ; preds = %666, %649
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  %668 = load i1, ptr %58, align 1
  br i1 %668, label %669, label %670

669:                                              ; preds = %667
  call void @__cxa_free_exception(ptr %641) #7
  br label %670

670:                                              ; preds = %669, %667
  br label %903

671:                                              ; preds = %634
  %672 = load ptr, ptr %7, align 8, !tbaa !5
  %673 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %672, i32 0, i32 0
  %674 = load ptr, ptr %673, align 8, !tbaa !24
  %675 = load ptr, ptr %8, align 8, !tbaa !5
  %676 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %675, i32 0, i32 0
  %677 = load ptr, ptr %53, align 8, !tbaa !5
  %678 = load ptr, ptr %5, align 8, !tbaa !5
  %679 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %678, i32 0, i32 1
  %680 = load ptr, ptr %679, align 8, !tbaa !27
  call void %674(ptr noundef nonnull align 8 dereferenceable(81) %676, ptr noundef nonnull align 8 dereferenceable(8) %677, ptr noundef %680)
  store i32 1, ptr %20, align 4
  br label %902

681:                                              ; preds = %623
  %682 = load ptr, ptr %7, align 8, !tbaa !5
  %683 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %682, i32 0, i32 5
  %684 = load ptr, ptr %683, align 8, !tbaa !28
  %685 = icmp ne ptr %684, null
  br i1 %685, label %686, label %741

686:                                              ; preds = %681
  %687 = load ptr, ptr %5, align 8, !tbaa !5
  %688 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %687, i32 0, i32 7
  %689 = load ptr, ptr %688, align 8, !tbaa !17
  %690 = load i64, ptr %689, align 8, !tbaa !9
  %691 = icmp sgt i64 %690, 0
  br i1 %691, label %692, label %698

692:                                              ; preds = %686
  %693 = load ptr, ptr %5, align 8, !tbaa !5
  %694 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %693, i32 0, i32 5
  %695 = load ptr, ptr %694, align 8, !tbaa !14
  %696 = load i64, ptr %695, align 8, !tbaa !9
  %697 = icmp eq i64 %696, 1
  br i1 %697, label %729, label %698

698:                                              ; preds = %692, %686
  store i1 true, ptr %63, align 1
  %699 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %700 unwind label %707

700:                                              ; preds = %698
  %701 = load ptr, ptr %5, align 8, !tbaa !5
  %702 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %701, i32 0, i32 0
  %703 = load ptr, ptr %702, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef %703)
          to label %704 unwind label %711

704:                                              ; preds = %700
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.128)
          to label %705 unwind label %715

705:                                              ; preds = %704
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %699, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %706 unwind label %719

706:                                              ; preds = %705
  store i1 false, ptr %63, align 1
  invoke void @__cxa_throw(ptr %699, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %719

707:                                              ; preds = %698
  %708 = landingpad { ptr, i32 }
          cleanup
  %709 = extractvalue { ptr, i32 } %708, 0
  store ptr %709, ptr %27, align 8
  %710 = extractvalue { ptr, i32 } %708, 1
  store i32 %710, ptr %28, align 4
  br label %725

711:                                              ; preds = %700
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %27, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %28, align 4
  br label %724

715:                                              ; preds = %704
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %27, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %28, align 4
  br label %723

719:                                              ; preds = %706, %705
  %720 = landingpad { ptr, i32 }
          cleanup
  %721 = extractvalue { ptr, i32 } %720, 0
  store ptr %721, ptr %27, align 8
  %722 = extractvalue { ptr, i32 } %720, 1
  store i32 %722, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %723

723:                                              ; preds = %719, %715
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %724

724:                                              ; preds = %723, %711
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %725

725:                                              ; preds = %724, %707
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #7
  %726 = load i1, ptr %63, align 1
  br i1 %726, label %727, label %728

727:                                              ; preds = %725
  call void @__cxa_free_exception(ptr %699) #7
  br label %728

728:                                              ; preds = %727, %725
  br label %903

729:                                              ; preds = %692
  %730 = load ptr, ptr %7, align 8, !tbaa !5
  %731 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %730, i32 0, i32 5
  %732 = load ptr, ptr %731, align 8, !tbaa !28
  %733 = load ptr, ptr %8, align 8, !tbaa !5
  %734 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %733, i32 0, i32 0
  %735 = load ptr, ptr %8, align 8, !tbaa !5
  %736 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %735, i32 0, i32 1
  %737 = load ptr, ptr %53, align 8, !tbaa !5
  %738 = load ptr, ptr %5, align 8, !tbaa !5
  %739 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %738, i32 0, i32 1
  %740 = load ptr, ptr %739, align 8, !tbaa !27
  call void %732(ptr noundef nonnull align 8 dereferenceable(81) %734, ptr noundef nonnull align 8 dereferenceable(81) %736, ptr noundef nonnull align 8 dereferenceable(8) %737, ptr noundef %740)
  store i32 1, ptr %20, align 4
  br label %902

741:                                              ; preds = %681
  %742 = load ptr, ptr %7, align 8, !tbaa !5
  %743 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %742, i32 0, i32 2
  %744 = load ptr, ptr %743, align 8, !tbaa !29
  %745 = icmp ne ptr %744, null
  br i1 %745, label %746, label %805

746:                                              ; preds = %741
  %747 = load ptr, ptr %5, align 8, !tbaa !5
  %748 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %747, i32 0, i32 7
  %749 = load ptr, ptr %748, align 8, !tbaa !17
  %750 = load i64, ptr %749, align 8, !tbaa !9
  %751 = icmp eq i64 %750, 0
  br i1 %751, label %783, label %752

752:                                              ; preds = %746
  store i1 true, ptr %68, align 1
  %753 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %754 unwind label %761

754:                                              ; preds = %752
  %755 = load ptr, ptr %5, align 8, !tbaa !5
  %756 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %755, i32 0, i32 0
  %757 = load ptr, ptr %756, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef %757)
          to label %758 unwind label %765

758:                                              ; preds = %754
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.128)
          to label %759 unwind label %769

759:                                              ; preds = %758
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %753, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %760 unwind label %773

760:                                              ; preds = %759
  store i1 false, ptr %68, align 1
  invoke void @__cxa_throw(ptr %753, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %773

761:                                              ; preds = %752
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %27, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %28, align 4
  br label %779

765:                                              ; preds = %754
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %27, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %28, align 4
  br label %778

769:                                              ; preds = %758
  %770 = landingpad { ptr, i32 }
          cleanup
  %771 = extractvalue { ptr, i32 } %770, 0
  store ptr %771, ptr %27, align 8
  %772 = extractvalue { ptr, i32 } %770, 1
  store i32 %772, ptr %28, align 4
  br label %777

773:                                              ; preds = %760, %759
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %27, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %777

777:                                              ; preds = %773, %769
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %778

778:                                              ; preds = %777, %765
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %779

779:                                              ; preds = %778, %761
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  %780 = load i1, ptr %68, align 1
  br i1 %780, label %781, label %782

781:                                              ; preds = %779
  call void @__cxa_free_exception(ptr %753) #7
  br label %782

782:                                              ; preds = %781, %779
  br label %903

783:                                              ; preds = %746
  %784 = load ptr, ptr %7, align 8, !tbaa !5
  %785 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %784, i32 0, i32 2
  %786 = load ptr, ptr %785, align 8, !tbaa !29
  %787 = load ptr, ptr %8, align 8, !tbaa !5
  %788 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %787, i32 0, i32 0
  %789 = load ptr, ptr %8, align 8, !tbaa !5
  %790 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %789, i32 0, i32 2
  %791 = load ptr, ptr %5, align 8, !tbaa !5
  %792 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %791, i32 0, i32 1
  %793 = load ptr, ptr %792, align 8, !tbaa !27
  call void %786(ptr noundef nonnull align 8 dereferenceable(81) %788, ptr noundef nonnull align 8 dereferenceable(81) %790, ptr noundef %793)
  %794 = load ptr, ptr %53, align 8, !tbaa !5
  %795 = load ptr, ptr %8, align 8, !tbaa !5
  %796 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %795, i32 0, i32 2
  %797 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %796)
  %798 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %797, i32 0, i32 4
  %799 = load ptr, ptr %798, align 8, !tbaa !19
  %800 = load ptr, ptr %5, align 8, !tbaa !5
  %801 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %800, i32 0, i32 5
  %802 = load ptr, ptr %801, align 8, !tbaa !14
  %803 = load i64, ptr %802, align 8, !tbaa !9
  %804 = mul i64 %803, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %794, ptr align 8 %799, i64 %804, i1 false)
  store i32 1, ptr %20, align 4
  br label %902

805:                                              ; preds = %741
  %806 = load ptr, ptr %7, align 8, !tbaa !5
  %807 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %806, i32 0, i32 7
  %808 = load ptr, ptr %807, align 8, !tbaa !30
  %809 = icmp ne ptr %808, null
  br i1 %809, label %810, label %871

810:                                              ; preds = %805
  %811 = load ptr, ptr %5, align 8, !tbaa !5
  %812 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %811, i32 0, i32 7
  %813 = load ptr, ptr %812, align 8, !tbaa !17
  %814 = load i64, ptr %813, align 8, !tbaa !9
  %815 = icmp sgt i64 %814, 0
  br i1 %815, label %847, label %816

816:                                              ; preds = %810
  store i1 true, ptr %73, align 1
  %817 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %818 unwind label %825

818:                                              ; preds = %816
  %819 = load ptr, ptr %5, align 8, !tbaa !5
  %820 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %819, i32 0, i32 0
  %821 = load ptr, ptr %820, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef %821)
          to label %822 unwind label %829

822:                                              ; preds = %818
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.128)
          to label %823 unwind label %833

823:                                              ; preds = %822
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %817, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %824 unwind label %837

824:                                              ; preds = %823
  store i1 false, ptr %73, align 1
  invoke void @__cxa_throw(ptr %817, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %837

825:                                              ; preds = %816
  %826 = landingpad { ptr, i32 }
          cleanup
  %827 = extractvalue { ptr, i32 } %826, 0
  store ptr %827, ptr %27, align 8
  %828 = extractvalue { ptr, i32 } %826, 1
  store i32 %828, ptr %28, align 4
  br label %843

829:                                              ; preds = %818
  %830 = landingpad { ptr, i32 }
          cleanup
  %831 = extractvalue { ptr, i32 } %830, 0
  store ptr %831, ptr %27, align 8
  %832 = extractvalue { ptr, i32 } %830, 1
  store i32 %832, ptr %28, align 4
  br label %842

833:                                              ; preds = %822
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %27, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %28, align 4
  br label %841

837:                                              ; preds = %824, %823
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %27, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %841

841:                                              ; preds = %837, %833
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %842

842:                                              ; preds = %841, %829
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %843

843:                                              ; preds = %842, %825
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #7
  %844 = load i1, ptr %73, align 1
  br i1 %844, label %845, label %846

845:                                              ; preds = %843
  call void @__cxa_free_exception(ptr %817) #7
  br label %846

846:                                              ; preds = %845, %843
  br label %903

847:                                              ; preds = %810
  %848 = load ptr, ptr %7, align 8, !tbaa !5
  %849 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %848, i32 0, i32 7
  %850 = load ptr, ptr %849, align 8, !tbaa !30
  %851 = load ptr, ptr %8, align 8, !tbaa !5
  %852 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %851, i32 0, i32 0
  %853 = load ptr, ptr %8, align 8, !tbaa !5
  %854 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %853, i32 0, i32 1
  %855 = load ptr, ptr %8, align 8, !tbaa !5
  %856 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %855, i32 0, i32 2
  %857 = load ptr, ptr %5, align 8, !tbaa !5
  %858 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %857, i32 0, i32 1
  %859 = load ptr, ptr %858, align 8, !tbaa !27
  call void %850(ptr noundef nonnull align 8 dereferenceable(81) %852, ptr noundef nonnull align 8 dereferenceable(81) %854, ptr noundef nonnull align 8 dereferenceable(81) %856, ptr noundef %859)
  %860 = load ptr, ptr %53, align 8, !tbaa !5
  %861 = load ptr, ptr %8, align 8, !tbaa !5
  %862 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %861, i32 0, i32 2
  %863 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %862)
  %864 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %863, i32 0, i32 4
  %865 = load ptr, ptr %864, align 8, !tbaa !19
  %866 = load ptr, ptr %5, align 8, !tbaa !5
  %867 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %866, i32 0, i32 5
  %868 = load ptr, ptr %867, align 8, !tbaa !14
  %869 = load i64, ptr %868, align 8, !tbaa !9
  %870 = mul i64 %869, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %860, ptr align 8 %865, i64 %870, i1 false)
  store i32 1, ptr %20, align 4
  br label %902

871:                                              ; preds = %805
  store i1 true, ptr %78, align 1
  %872 = call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %873 unwind label %880

873:                                              ; preds = %871
  %874 = load ptr, ptr %5, align 8, !tbaa !5
  %875 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %874, i32 0, i32 0
  %876 = load ptr, ptr %875, align 8, !tbaa !26
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef %876)
          to label %877 unwind label %884

877:                                              ; preds = %873
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.132)
          to label %878 unwind label %888

878:                                              ; preds = %877
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %872, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %879 unwind label %892

879:                                              ; preds = %878
  store i1 false, ptr %78, align 1
  invoke void @__cxa_throw(ptr %872, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #8
          to label %910 unwind label %892

880:                                              ; preds = %871
  %881 = landingpad { ptr, i32 }
          cleanup
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %27, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %28, align 4
  br label %898

884:                                              ; preds = %873
  %885 = landingpad { ptr, i32 }
          cleanup
  %886 = extractvalue { ptr, i32 } %885, 0
  store ptr %886, ptr %27, align 8
  %887 = extractvalue { ptr, i32 } %885, 1
  store i32 %887, ptr %28, align 4
  br label %897

888:                                              ; preds = %877
  %889 = landingpad { ptr, i32 }
          cleanup
  %890 = extractvalue { ptr, i32 } %889, 0
  store ptr %890, ptr %27, align 8
  %891 = extractvalue { ptr, i32 } %889, 1
  store i32 %891, ptr %28, align 4
  br label %896

892:                                              ; preds = %879, %878
  %893 = landingpad { ptr, i32 }
          cleanup
  %894 = extractvalue { ptr, i32 } %893, 0
  store ptr %894, ptr %27, align 8
  %895 = extractvalue { ptr, i32 } %893, 1
  store i32 %895, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %896

896:                                              ; preds = %892, %888
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %897

897:                                              ; preds = %896, %884
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %898

898:                                              ; preds = %897, %880
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  %899 = load i1, ptr %78, align 1
  br i1 %899, label %900, label %901

900:                                              ; preds = %898
  call void @__cxa_free_exception(ptr %872) #7
  br label %901

901:                                              ; preds = %900, %898
  br label %903

902:                                              ; preds = %847, %783, %729, %671
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %904

903:                                              ; preds = %901, %846, %782, %728, %670
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %905

904:                                              ; preds = %902, %539
  ret void

905:                                              ; preds = %903, %538
  %906 = load ptr, ptr %27, align 8
  %907 = load i32, ptr %28, align 4
  %908 = insertvalue { ptr, i32 } poison, ptr %906, 0
  %909 = insertvalue { ptr, i32 } %908, i32 %907, 1
  resume { ptr, i32 } %909

910:                                              ; preds = %879, %824, %760, %706, %648, %532, %475, %431, %378, %322, %265
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

declare void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr, ptr)

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

!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 = !{!"long", !7, i64 0}
!11 = !{!12, !6, i64 32}
!12 = !{!"_ZTSN11alglib_impl15rcommv2_requestE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88}
!13 = !{!12, !6, i64 48}
!14 = !{!12, !6, i64 40}
!15 = !{!12, !6, i64 64}
!16 = !{!12, !6, i64 16}
!17 = !{!12, !6, i64 56}
!18 = !{!12, !6, i64 80}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"double", !7, i64 0}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}
!24 = !{!25, !6, i64 0}
!25 = !{!"_ZTSN11alglib_impl17rcommv2_callbacksE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72}
!26 = !{!12, !6, i64 0}
!27 = !{!12, !6, i64 8}
!28 = !{!25, !6, i64 40}
!29 = !{!25, !6, i64 16}
!30 = !{!25, !6, i64 56}
!31 = distinct !{!31, !23}
!32 = distinct !{!32, !23}
!33 = !{!12, !6, i64 72}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.13 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.13 = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@_ZTIN6alglib8ap_errorE = external dso_local constant { ptr, ptr }, align 8
@.str.127 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [55 x i8], align 1

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #1

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6alglib8ap_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl25process_v2request_3phase0ERNS_15rcommv2_requestElRNS_17rcommv2_callbacksERNS_15rcommv2_buffersE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(96) %0, i64 noundef %1, ptr nocapture noundef nonnull readonly align 8 dereferenceable(80) %2, ptr noundef nonnull align 8 dereferenceable(480) %3) local_unnamed_addr #5 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = getelementptr inbounds i8, ptr %0, i64 32
  %46 = load ptr, ptr %45, align 8, !tbaa !5
  %47 = load i64, ptr %46, align 8, !tbaa !10
  %48 = getelementptr inbounds i8, ptr %0, i64 48
  %49 = load ptr, ptr %48, align 8, !tbaa !12
  %50 = load i64, ptr %49, align 8, !tbaa !10
  %51 = mul nsw i64 %50, %47
  %52 = icmp sgt i64 %51, %1
  br i1 %52, label %53, label %263

53:                                               ; preds = %4
  %54 = sdiv i64 %1, %50
  %55 = srem i64 %1, %50
  %56 = getelementptr inbounds i8, ptr %0, i64 40
  %57 = load ptr, ptr %56, align 8, !tbaa !13
  %58 = load i64, ptr %57, align 8, !tbaa !10
  %59 = getelementptr inbounds i8, ptr %0, i64 64
  %60 = load ptr, ptr %59, align 8, !tbaa !14
  %61 = load i64, ptr %60, align 8, !tbaa !10
  %62 = getelementptr inbounds i8, ptr %0, i64 16
  %63 = load ptr, ptr %62, align 8, !tbaa !15
  %64 = load ptr, ptr %63, align 8, !tbaa !16
  %65 = getelementptr inbounds i8, ptr %0, i64 56
  %66 = load ptr, ptr %65, align 8, !tbaa !17
  %67 = load i64, ptr %66, align 8, !tbaa !10
  %68 = shl i64 %50, 1
  %69 = mul i64 %68, %61
  %70 = add i64 %69, %50
  %71 = add i64 %70, %67
  %72 = mul nsw i64 %71, %54
  %73 = getelementptr inbounds double, ptr %64, i64 %72
  %74 = getelementptr inbounds double, ptr %73, i64 %50
  %75 = getelementptr inbounds double, ptr %74, i64 %67
  %76 = shl i64 %55, 4
  %.idx = mul i64 %76, %61
  %77 = getelementptr inbounds i8, ptr %75, i64 %.idx
  %78 = getelementptr inbounds i8, ptr %0, i64 80
  %79 = load ptr, ptr %78, align 8, !tbaa !18
  %80 = load ptr, ptr %79, align 8, !tbaa !16
  %81 = mul nsw i64 %54, %50
  %82 = mul nsw i64 %81, %58
  %83 = getelementptr inbounds double, ptr %80, i64 %82
  %84 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %3)
  %85 = getelementptr inbounds i8, ptr %84, i64 56
  %86 = load ptr, ptr %85, align 8, !tbaa !19
  %87 = shl i64 %50, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %86, ptr align 8 %73, i64 %87, i1 false)
  %88 = load ptr, ptr %65, align 8, !tbaa !17
  %89 = load i64, ptr %88, align 8, !tbaa !10
  %90 = icmp sgt i64 %89, 0
  br i1 %90, label %91, label %99

91:                                               ; preds = %53
  %92 = getelementptr inbounds i8, ptr %3, i64 88
  %93 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %92)
  %94 = getelementptr inbounds i8, ptr %93, i64 56
  %95 = load ptr, ptr %94, align 8, !tbaa !19
  %96 = load ptr, ptr %65, align 8, !tbaa !17
  %97 = load i64, ptr %96, align 8, !tbaa !10
  %98 = shl i64 %97, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %95, ptr nonnull align 8 %74, i64 %98, i1 false)
  br label %99

99:                                               ; preds = %91, %53
  %100 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %55)
  %101 = load double, ptr %100, align 8, !tbaa !20
  %invariant.gep = getelementptr double, ptr %83, i64 %55
  %102 = icmp sgt i64 %58, 0
  br i1 %102, label %.lr.ph.preheader, label %.preheader

.lr.ph.preheader:                                 ; preds = %99
  %min.iters.check = icmp ugt i64 %58, 3
  %ident.check.not = icmp eq i64 %50, 1
  %or.cond364 = and i1 %min.iters.check, %ident.check.not
  br i1 %or.cond364, label %vector.ph, label %.lr.ph.preheader365

.lr.ph.preheader365:                              ; preds = %middle.block, %.lr.ph.preheader
  %.0191354.ph = phi i64 [ 0, %.lr.ph.preheader ], [ %n.vec, %middle.block ]
  %xtraiter = and i64 %58, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader365, %.lr.ph.prol
  %.0191354.prol = phi i64 [ %104, %.lr.ph.prol ], [ %.0191354.ph, %.lr.ph.preheader365 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader365 ]
  %103 = mul nsw i64 %.0191354.prol, %50
  %gep.prol = getelementptr double, ptr %invariant.gep, i64 %103
  store double 0.000000e+00, ptr %gep.prol, align 8, !tbaa !20
  %104 = add nuw nsw i64 %.0191354.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol, !llvm.loop !22

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader365
  %.0191354.unr = phi i64 [ %.0191354.ph, %.lr.ph.preheader365 ], [ %104, %.lr.ph.prol ]
  %105 = sub nsw i64 %.0191354.ph, %58
  %106 = icmp ugt i64 %105, -4
  br i1 %106, label %.preheader, label %.lr.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %58, 9223372036854775804
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %107 = getelementptr double, ptr %invariant.gep, i64 %index
  %108 = getelementptr i8, ptr %107, i64 16
  store <2 x double> zeroinitializer, ptr %107, align 8, !tbaa !20
  store <2 x double> zeroinitializer, ptr %108, align 8, !tbaa !20
  %index.next = add nuw i64 %index, 4
  %109 = icmp eq i64 %index.next, %n.vec
  br i1 %109, label %middle.block, label %vector.body, !llvm.loop !24

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %58, %n.vec
  br i1 %cmp.n, label %.preheader, label %.lr.ph.preheader365

.preheader:                                       ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block, %99
  %110 = icmp sgt i64 %61, 0
  br i1 %110, label %.lr.ph360, label %.loopexit353

.lr.ph360:                                        ; preds = %.preheader
  %111 = getelementptr inbounds double, ptr %73, i64 %55
  %112 = icmp eq i64 %58, 1
  %113 = getelementptr inbounds i8, ptr %3, i64 176
  %114 = getelementptr inbounds i8, ptr %0, i64 8
  %115 = getelementptr inbounds i8, ptr %2, i64 40
  %116 = getelementptr inbounds i8, ptr %3, i64 88
  %117 = getelementptr inbounds i8, ptr %2, i64 16
  %118 = getelementptr inbounds i8, ptr %2, i64 56
  br label %127

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %.0191354 = phi i64 [ %126, %.lr.ph ], [ %.0191354.unr, %.lr.ph.prol.loopexit ]
  %119 = mul nsw i64 %.0191354, %50
  %gep = getelementptr double, ptr %invariant.gep, i64 %119
  store double 0.000000e+00, ptr %gep, align 8, !tbaa !20
  %120 = add nuw nsw i64 %.0191354, 1
  %121 = mul nsw i64 %120, %50
  %gep.1 = getelementptr double, ptr %invariant.gep, i64 %121
  store double 0.000000e+00, ptr %gep.1, align 8, !tbaa !20
  %122 = add nuw nsw i64 %.0191354, 2
  %123 = mul nsw i64 %122, %50
  %gep.2 = getelementptr double, ptr %invariant.gep, i64 %123
  store double 0.000000e+00, ptr %gep.2, align 8, !tbaa !20
  %124 = add nuw nsw i64 %.0191354, 3
  %125 = mul nsw i64 %124, %50
  %gep.3 = getelementptr double, ptr %invariant.gep, i64 %125
  store double 0.000000e+00, ptr %gep.3, align 8, !tbaa !20
  %126 = add nuw nsw i64 %.0191354, 4
  %exitcond.not.3 = icmp eq i64 %126, %58
  br i1 %exitcond.not.3, label %.preheader, label %.lr.ph, !llvm.loop !28

127:                                              ; preds = %.lr.ph360, %.loopexit
  %.0192359 = phi i64 [ 0, %.lr.ph360 ], [ %262, %.loopexit ]
  %128 = shl nuw nsw i64 %.0192359, 1
  %129 = getelementptr inbounds double, ptr %77, i64 %128
  %130 = load double, ptr %129, align 8, !tbaa !20
  %131 = or disjoint i64 %128, 1
  %132 = getelementptr inbounds double, ptr %77, i64 %131
  %133 = load double, ptr %132, align 8, !tbaa !20
  %134 = fcmp oeq double %133, 0.000000e+00
  br i1 %134, label %.loopexit, label %135

135:                                              ; preds = %127
  %136 = load double, ptr %111, align 8, !tbaa !20
  %137 = fcmp oeq double %130, %136
  br i1 %137, label %.loopexit, label %138

138:                                              ; preds = %135
  %139 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %55)
  store double %130, ptr %139, align 8, !tbaa !20
  %140 = load ptr, ptr %2, align 8, !tbaa !29
  %.not288 = icmp eq ptr %140, null
  br i1 %.not288, label %164, label %141

141:                                              ; preds = %138
  %142 = load ptr, ptr %65, align 8, !tbaa !17
  %143 = load i64, ptr %142, align 8, !tbaa !10
  %144 = icmp eq i64 %143, 0
  %or.cond = select i1 %144, i1 %112, i1 false
  br i1 %or.cond, label %161, label %145

145:                                              ; preds = %141
  %146 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %147 unwind label %.thread

147:                                              ; preds = %145
  %148 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef %148)
          to label %149 unwind label %153

149:                                              ; preds = %147
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.128)
          to label %150 unwind label %155

150:                                              ; preds = %149
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %151 unwind label %157

151:                                              ; preds = %150
  invoke void @__cxa_throw(ptr %146, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %157

.thread:                                          ; preds = %145
  %152 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  br label %.sink.split

153:                                              ; preds = %147
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %160

155:                                              ; preds = %149
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %159

157:                                              ; preds = %151, %150
  %.0210 = phi i1 [ false, %151 ], [ true, %150 ]
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %159

159:                                              ; preds = %157, %155
  %.pn308 = phi { ptr, i32 } [ %158, %157 ], [ %156, %155 ]
  %.1211 = phi i1 [ %.0210, %157 ], [ true, %155 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %160

160:                                              ; preds = %153, %159
  %.pn308.pn = phi { ptr, i32 } [ %.pn308, %159 ], [ %154, %153 ]
  %.2212 = phi i1 [ %.1211, %159 ], [ true, %153 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  br i1 %.2212, label %.sink.split, label %451

161:                                              ; preds = %141
  %162 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %113, i64 noundef 0)
  %163 = load ptr, ptr %114, align 8, !tbaa !32
  tail call void %140(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef %163)
  br label %.thread363

164:                                              ; preds = %138
  %165 = load ptr, ptr %115, align 8, !tbaa !33
  %.not289 = icmp eq ptr %165, null
  br i1 %.not289, label %189, label %166

166:                                              ; preds = %164
  %167 = load ptr, ptr %65, align 8, !tbaa !17
  %168 = load i64, ptr %167, align 8, !tbaa !10
  %169 = icmp sgt i64 %168, 0
  %or.cond3 = select i1 %169, i1 %112, i1 false
  br i1 %or.cond3, label %186, label %170

170:                                              ; preds = %166
  %171 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %172 unwind label %.thread317

172:                                              ; preds = %170
  %173 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %173)
          to label %174 unwind label %178

174:                                              ; preds = %172
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.128)
          to label %175 unwind label %180

175:                                              ; preds = %174
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %176 unwind label %182

176:                                              ; preds = %175
  invoke void @__cxa_throw(ptr %171, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %182

.thread317:                                       ; preds = %170
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  br label %.sink.split

178:                                              ; preds = %172
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %185

180:                                              ; preds = %174
  %181 = landingpad { ptr, i32 }
          cleanup
  br label %184

182:                                              ; preds = %176, %175
  %.0206 = phi i1 [ false, %176 ], [ true, %175 ]
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %184

184:                                              ; preds = %182, %180
  %.pn304 = phi { ptr, i32 } [ %183, %182 ], [ %181, %180 ]
  %.1207 = phi i1 [ %.0206, %182 ], [ true, %180 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %185

185:                                              ; preds = %178, %184
  %.pn304.pn = phi { ptr, i32 } [ %.pn304, %184 ], [ %179, %178 ]
  %.2208 = phi i1 [ %.1207, %184 ], [ true, %178 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  br i1 %.2208, label %.sink.split, label %451

186:                                              ; preds = %166
  %187 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %113, i64 noundef 0)
  %188 = load ptr, ptr %114, align 8, !tbaa !32
  tail call void %165(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %116, ptr noundef nonnull align 8 dereferenceable(8) %187, ptr noundef %188)
  br label %.thread363

189:                                              ; preds = %164
  %190 = load ptr, ptr %117, align 8, !tbaa !34
  %.not290 = icmp eq ptr %190, null
  br i1 %.not290, label %213, label %191

191:                                              ; preds = %189
  %192 = load ptr, ptr %65, align 8, !tbaa !17
  %193 = load i64, ptr %192, align 8, !tbaa !10
  %194 = icmp eq i64 %193, 0
  br i1 %194, label %211, label %195

195:                                              ; preds = %191
  %196 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %197 unwind label %.thread321

197:                                              ; preds = %195
  %198 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %198)
          to label %199 unwind label %203

199:                                              ; preds = %197
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.128)
          to label %200 unwind label %205

200:                                              ; preds = %199
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %201 unwind label %207

201:                                              ; preds = %200
  invoke void @__cxa_throw(ptr %196, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %207

.thread321:                                       ; preds = %195
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %.sink.split

203:                                              ; preds = %197
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %210

205:                                              ; preds = %199
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %209

207:                                              ; preds = %201, %200
  %.0202 = phi i1 [ false, %201 ], [ true, %200 ]
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %209

209:                                              ; preds = %207, %205
  %.pn300 = phi { ptr, i32 } [ %208, %207 ], [ %206, %205 ]
  %.1203 = phi i1 [ %.0202, %207 ], [ true, %205 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %210

210:                                              ; preds = %203, %209
  %.pn300.pn = phi { ptr, i32 } [ %.pn300, %209 ], [ %204, %203 ]
  %.2204 = phi i1 [ %.1203, %209 ], [ true, %203 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br i1 %.2204, label %.sink.split, label %451

211:                                              ; preds = %191
  %212 = load ptr, ptr %114, align 8, !tbaa !32
  tail call void %190(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %113, ptr noundef %212)
  br label %254

213:                                              ; preds = %189
  %214 = load ptr, ptr %118, align 8, !tbaa !35
  %.not291 = icmp eq ptr %214, null
  br i1 %.not291, label %237, label %215

215:                                              ; preds = %213
  %216 = load ptr, ptr %65, align 8, !tbaa !17
  %217 = load i64, ptr %216, align 8, !tbaa !10
  %218 = icmp sgt i64 %217, 0
  br i1 %218, label %235, label %219

219:                                              ; preds = %215
  %220 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %221 unwind label %.thread325

221:                                              ; preds = %219
  %222 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %222)
          to label %223 unwind label %227

223:                                              ; preds = %221
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.128)
          to label %224 unwind label %229

224:                                              ; preds = %223
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %225 unwind label %231

225:                                              ; preds = %224
  invoke void @__cxa_throw(ptr %220, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %231

.thread325:                                       ; preds = %219
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %.sink.split

227:                                              ; preds = %221
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %234

229:                                              ; preds = %223
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %233

231:                                              ; preds = %225, %224
  %.0198 = phi i1 [ false, %225 ], [ true, %224 ]
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %233

233:                                              ; preds = %231, %229
  %.pn296 = phi { ptr, i32 } [ %232, %231 ], [ %230, %229 ]
  %.1199 = phi i1 [ %.0198, %231 ], [ true, %229 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %234

234:                                              ; preds = %227, %233
  %.pn296.pn = phi { ptr, i32 } [ %.pn296, %233 ], [ %228, %227 ]
  %.2200 = phi i1 [ %.1199, %233 ], [ true, %227 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br i1 %.2200, label %.sink.split, label %451

235:                                              ; preds = %215
  %236 = load ptr, ptr %114, align 8, !tbaa !32
  tail call void %214(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %116, ptr noundef nonnull align 8 dereferenceable(81) %113, ptr noundef %236)
  br label %254

237:                                              ; preds = %213
  %238 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %239 unwind label %.thread329

239:                                              ; preds = %237
  %240 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef %240)
          to label %241 unwind label %245

241:                                              ; preds = %239
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.132)
          to label %242 unwind label %247

242:                                              ; preds = %241
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %243 unwind label %249

243:                                              ; preds = %242
  invoke void @__cxa_throw(ptr %238, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %249

.thread329:                                       ; preds = %237
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %.sink.split

245:                                              ; preds = %239
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %252

247:                                              ; preds = %241
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %251

249:                                              ; preds = %243, %242
  %.0194 = phi i1 [ false, %243 ], [ true, %242 ]
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %251

251:                                              ; preds = %249, %247
  %.pn292 = phi { ptr, i32 } [ %250, %249 ], [ %248, %247 ]
  %.1195 = phi i1 [ %.0194, %249 ], [ true, %247 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %252

252:                                              ; preds = %245, %251
  %.pn292.pn = phi { ptr, i32 } [ %.pn292, %251 ], [ %246, %245 ]
  %.2196 = phi i1 [ %.1195, %251 ], [ true, %245 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br i1 %.2196, label %.sink.split, label %451

.thread363:                                       ; preds = %186, %161
  %253 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %55)
  store double %101, ptr %253, align 8, !tbaa !20
  br label %.lr.ph358.preheader

254:                                              ; preds = %235, %211
  %255 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %55)
  store double %101, ptr %255, align 8, !tbaa !20
  br i1 %102, label %.lr.ph358.preheader, label %.loopexit

.lr.ph358.preheader:                              ; preds = %.thread363, %254
  br label %.lr.ph358

.lr.ph358:                                        ; preds = %.lr.ph358.preheader, %.lr.ph358
  %.0193357 = phi i64 [ %261, %.lr.ph358 ], [ 0, %.lr.ph358.preheader ]
  %256 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %113, i64 noundef %.0193357)
  %257 = load double, ptr %256, align 8, !tbaa !20
  %258 = mul nsw i64 %.0193357, %50
  %gep356 = getelementptr double, ptr %invariant.gep, i64 %258
  %259 = load double, ptr %gep356, align 8, !tbaa !20
  %260 = tail call double @llvm.fmuladd.f64(double %133, double %257, double %259)
  store double %260, ptr %gep356, align 8, !tbaa !20
  %261 = add nuw nsw i64 %.0193357, 1
  %exitcond361.not = icmp eq i64 %261, %58
  br i1 %exitcond361.not, label %.loopexit, label %.lr.ph358, !llvm.loop !36

.loopexit:                                        ; preds = %.lr.ph358, %254, %135, %127
  %262 = add nuw nsw i64 %.0192359, 1
  %exitcond362.not = icmp eq i64 %262, %61
  br i1 %exitcond362.not, label %.loopexit353, label %127, !llvm.loop !37

263:                                              ; preds = %4
  %264 = sub nsw i64 %1, %51
  %265 = getelementptr inbounds i8, ptr %0, i64 16
  %266 = load ptr, ptr %265, align 8, !tbaa !15
  %267 = load ptr, ptr %266, align 8, !tbaa !16
  %268 = getelementptr inbounds i8, ptr %0, i64 56
  %269 = load ptr, ptr %268, align 8, !tbaa !17
  %270 = load i64, ptr %269, align 8, !tbaa !10
  %271 = add nsw i64 %270, %50
  %272 = getelementptr inbounds i8, ptr %0, i64 64
  %273 = load ptr, ptr %272, align 8, !tbaa !14
  %274 = load i64, ptr %273, align 8, !tbaa !10
  %275 = shl i64 %50, 1
  %276 = mul i64 %275, %274
  %277 = add nsw i64 %271, %276
  %278 = mul nsw i64 %277, %264
  %279 = getelementptr inbounds double, ptr %267, i64 %278
  %280 = getelementptr inbounds i8, ptr %0, i64 72
  %281 = load ptr, ptr %280, align 8, !tbaa !38
  %282 = load ptr, ptr %281, align 8, !tbaa !16
  %283 = getelementptr inbounds i8, ptr %0, i64 40
  %284 = load ptr, ptr %283, align 8, !tbaa !13
  %285 = load i64, ptr %284, align 8, !tbaa !10
  %286 = mul nsw i64 %285, %264
  %287 = getelementptr inbounds double, ptr %282, i64 %286
  %288 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %3)
  %289 = getelementptr inbounds i8, ptr %288, i64 56
  %290 = load ptr, ptr %289, align 8, !tbaa !19
  %291 = load ptr, ptr %48, align 8, !tbaa !12
  %292 = load i64, ptr %291, align 8, !tbaa !10
  %293 = shl i64 %292, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %290, ptr align 8 %279, i64 %293, i1 false)
  %294 = load ptr, ptr %268, align 8, !tbaa !17
  %295 = load i64, ptr %294, align 8, !tbaa !10
  %296 = icmp sgt i64 %295, 0
  br i1 %296, label %297, label %308

297:                                              ; preds = %263
  %298 = getelementptr inbounds i8, ptr %3, i64 88
  %299 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %298)
  %300 = getelementptr inbounds i8, ptr %299, i64 56
  %301 = load ptr, ptr %300, align 8, !tbaa !19
  %302 = load ptr, ptr %48, align 8, !tbaa !12
  %303 = load i64, ptr %302, align 8, !tbaa !10
  %304 = getelementptr inbounds double, ptr %279, i64 %303
  %305 = load ptr, ptr %268, align 8, !tbaa !17
  %306 = load i64, ptr %305, align 8, !tbaa !10
  %307 = shl i64 %306, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %301, ptr align 8 %304, i64 %307, i1 false)
  br label %308

308:                                              ; preds = %297, %263
  %309 = load ptr, ptr %2, align 8, !tbaa !29
  %.not = icmp eq ptr %309, null
  br i1 %.not, label %337, label %310

310:                                              ; preds = %308
  %311 = load ptr, ptr %268, align 8, !tbaa !17
  %312 = load i64, ptr %311, align 8, !tbaa !10
  %313 = icmp eq i64 %312, 0
  br i1 %313, label %314, label %318

314:                                              ; preds = %310
  %315 = load ptr, ptr %283, align 8, !tbaa !13
  %316 = load i64, ptr %315, align 8, !tbaa !10
  %317 = icmp eq i64 %316, 1
  br i1 %317, label %334, label %318

318:                                              ; preds = %314, %310
  %319 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %320 unwind label %.thread333

320:                                              ; preds = %318
  %321 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef %321)
          to label %322 unwind label %326

322:                                              ; preds = %320
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.128)
          to label %323 unwind label %328

323:                                              ; preds = %322
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %324 unwind label %330

324:                                              ; preds = %323
  invoke void @__cxa_throw(ptr %319, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %330

.thread333:                                       ; preds = %318
  %325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %.sink.split

326:                                              ; preds = %320
  %327 = landingpad { ptr, i32 }
          cleanup
  br label %333

328:                                              ; preds = %322
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %332

330:                                              ; preds = %324, %323
  %.0187 = phi i1 [ false, %324 ], [ true, %323 ]
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %332

332:                                              ; preds = %330, %328
  %.pn283 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ]
  %.1188 = phi i1 [ %.0187, %330 ], [ true, %328 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %333

333:                                              ; preds = %326, %332
  %.pn283.pn = phi { ptr, i32 } [ %.pn283, %332 ], [ %327, %326 ]
  %.2189 = phi i1 [ %.1188, %332 ], [ true, %326 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br i1 %.2189, label %.sink.split, label %451

334:                                              ; preds = %314
  %335 = getelementptr inbounds i8, ptr %0, i64 8
  %336 = load ptr, ptr %335, align 8, !tbaa !32
  tail call void %309(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef %336)
  br label %.loopexit353

337:                                              ; preds = %308
  %338 = getelementptr inbounds i8, ptr %2, i64 40
  %339 = load ptr, ptr %338, align 8, !tbaa !33
  %.not265 = icmp eq ptr %339, null
  br i1 %.not265, label %368, label %340

340:                                              ; preds = %337
  %341 = load ptr, ptr %268, align 8, !tbaa !17
  %342 = load i64, ptr %341, align 8, !tbaa !10
  %343 = icmp sgt i64 %342, 0
  br i1 %343, label %344, label %348

344:                                              ; preds = %340
  %345 = load ptr, ptr %283, align 8, !tbaa !13
  %346 = load i64, ptr %345, align 8, !tbaa !10
  %347 = icmp eq i64 %346, 1
  br i1 %347, label %364, label %348

348:                                              ; preds = %344, %340
  %349 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %350 unwind label %.thread337

350:                                              ; preds = %348
  %351 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef %351)
          to label %352 unwind label %356

352:                                              ; preds = %350
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.128)
          to label %353 unwind label %358

353:                                              ; preds = %352
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %354 unwind label %360

354:                                              ; preds = %353
  invoke void @__cxa_throw(ptr %349, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %360

.thread337:                                       ; preds = %348
  %355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  br label %.sink.split

356:                                              ; preds = %350
  %357 = landingpad { ptr, i32 }
          cleanup
  br label %363

358:                                              ; preds = %352
  %359 = landingpad { ptr, i32 }
          cleanup
  br label %362

360:                                              ; preds = %354, %353
  %.0183 = phi i1 [ false, %354 ], [ true, %353 ]
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %362

362:                                              ; preds = %360, %358
  %.pn279 = phi { ptr, i32 } [ %361, %360 ], [ %359, %358 ]
  %.1184 = phi i1 [ %.0183, %360 ], [ true, %358 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %363

363:                                              ; preds = %356, %362
  %.pn279.pn = phi { ptr, i32 } [ %.pn279, %362 ], [ %357, %356 ]
  %.2185 = phi i1 [ %.1184, %362 ], [ true, %356 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  br i1 %.2185, label %.sink.split, label %451

364:                                              ; preds = %344
  %365 = getelementptr inbounds i8, ptr %3, i64 88
  %366 = getelementptr inbounds i8, ptr %0, i64 8
  %367 = load ptr, ptr %366, align 8, !tbaa !32
  tail call void %339(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %365, ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef %367)
  br label %.loopexit353

368:                                              ; preds = %337
  %369 = getelementptr inbounds i8, ptr %2, i64 16
  %370 = load ptr, ptr %369, align 8, !tbaa !34
  %.not266 = icmp eq ptr %370, null
  br i1 %.not266, label %401, label %371

371:                                              ; preds = %368
  %372 = load ptr, ptr %268, align 8, !tbaa !17
  %373 = load i64, ptr %372, align 8, !tbaa !10
  %374 = icmp eq i64 %373, 0
  br i1 %374, label %391, label %375

375:                                              ; preds = %371
  %376 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %377 unwind label %.thread341

377:                                              ; preds = %375
  %378 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %378)
          to label %379 unwind label %383

379:                                              ; preds = %377
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.128)
          to label %380 unwind label %385

380:                                              ; preds = %379
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %376, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %381 unwind label %387

381:                                              ; preds = %380
  invoke void @__cxa_throw(ptr %376, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %387

.thread341:                                       ; preds = %375
  %382 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br label %.sink.split

383:                                              ; preds = %377
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %390

385:                                              ; preds = %379
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %389

387:                                              ; preds = %381, %380
  %.0179 = phi i1 [ false, %381 ], [ true, %380 ]
  %388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %389

389:                                              ; preds = %387, %385
  %.pn275 = phi { ptr, i32 } [ %388, %387 ], [ %386, %385 ]
  %.1180 = phi i1 [ %.0179, %387 ], [ true, %385 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %390

390:                                              ; preds = %383, %389
  %.pn275.pn = phi { ptr, i32 } [ %.pn275, %389 ], [ %384, %383 ]
  %.2181 = phi i1 [ %.1180, %389 ], [ true, %383 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br i1 %.2181, label %.sink.split, label %451

391:                                              ; preds = %371
  %392 = getelementptr inbounds i8, ptr %3, i64 176
  %393 = getelementptr inbounds i8, ptr %0, i64 8
  %394 = load ptr, ptr %393, align 8, !tbaa !32
  tail call void %370(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %392, ptr noundef %394)
  %395 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %392)
  %396 = getelementptr inbounds i8, ptr %395, i64 56
  %397 = load ptr, ptr %396, align 8, !tbaa !19
  %398 = load ptr, ptr %283, align 8, !tbaa !13
  %399 = load i64, ptr %398, align 8, !tbaa !10
  %400 = shl i64 %399, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %287, ptr align 8 %397, i64 %400, i1 false)
  br label %.loopexit353

401:                                              ; preds = %368
  %402 = getelementptr inbounds i8, ptr %2, i64 56
  %403 = load ptr, ptr %402, align 8, !tbaa !35
  %.not267 = icmp eq ptr %403, null
  br i1 %.not267, label %435, label %404

404:                                              ; preds = %401
  %405 = load ptr, ptr %268, align 8, !tbaa !17
  %406 = load i64, ptr %405, align 8, !tbaa !10
  %407 = icmp sgt i64 %406, 0
  br i1 %407, label %424, label %408

408:                                              ; preds = %404
  %409 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %410 unwind label %.thread345

410:                                              ; preds = %408
  %411 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef %411)
          to label %412 unwind label %416

412:                                              ; preds = %410
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.128)
          to label %413 unwind label %418

413:                                              ; preds = %412
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %414 unwind label %420

414:                                              ; preds = %413
  invoke void @__cxa_throw(ptr %409, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %420

.thread345:                                       ; preds = %408
  %415 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  br label %.sink.split

416:                                              ; preds = %410
  %417 = landingpad { ptr, i32 }
          cleanup
  br label %423

418:                                              ; preds = %412
  %419 = landingpad { ptr, i32 }
          cleanup
  br label %422

420:                                              ; preds = %414, %413
  %.0175 = phi i1 [ false, %414 ], [ true, %413 ]
  %421 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %422

422:                                              ; preds = %420, %418
  %.pn271 = phi { ptr, i32 } [ %421, %420 ], [ %419, %418 ]
  %.1176 = phi i1 [ %.0175, %420 ], [ true, %418 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %423

423:                                              ; preds = %416, %422
  %.pn271.pn = phi { ptr, i32 } [ %.pn271, %422 ], [ %417, %416 ]
  %.2177 = phi i1 [ %.1176, %422 ], [ true, %416 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  br i1 %.2177, label %.sink.split, label %451

424:                                              ; preds = %404
  %425 = getelementptr inbounds i8, ptr %3, i64 88
  %426 = getelementptr inbounds i8, ptr %3, i64 176
  %427 = getelementptr inbounds i8, ptr %0, i64 8
  %428 = load ptr, ptr %427, align 8, !tbaa !32
  tail call void %403(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %425, ptr noundef nonnull align 8 dereferenceable(81) %426, ptr noundef %428)
  %429 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %426)
  %430 = getelementptr inbounds i8, ptr %429, i64 56
  %431 = load ptr, ptr %430, align 8, !tbaa !19
  %432 = load ptr, ptr %283, align 8, !tbaa !13
  %433 = load i64, ptr %432, align 8, !tbaa !10
  %434 = shl i64 %433, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %287, ptr align 8 %431, i64 %434, i1 false)
  br label %.loopexit353

435:                                              ; preds = %401
  %436 = tail call ptr @__cxa_allocate_exception(i64 32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %437 unwind label %.thread349

437:                                              ; preds = %435
  %438 = load ptr, ptr %0, align 8, !tbaa !31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef %438)
          to label %439 unwind label %443

439:                                              ; preds = %437
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.132)
          to label %440 unwind label %445

440:                                              ; preds = %439
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %441 unwind label %447

441:                                              ; preds = %440
  invoke void @__cxa_throw(ptr %436, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #8
          to label %452 unwind label %447

.thread349:                                       ; preds = %435
  %442 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  br label %.sink.split

443:                                              ; preds = %437
  %444 = landingpad { ptr, i32 }
          cleanup
  br label %450

445:                                              ; preds = %439
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %449

447:                                              ; preds = %441, %440
  %.0 = phi i1 [ false, %441 ], [ true, %440 ]
  %448 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %449

449:                                              ; preds = %447, %445
  %.pn = phi { ptr, i32 } [ %448, %447 ], [ %446, %445 ]
  %.1 = phi i1 [ %.0, %447 ], [ true, %445 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %450

450:                                              ; preds = %443, %449
  %.pn.pn = phi { ptr, i32 } [ %.pn, %449 ], [ %444, %443 ]
  %.2 = phi i1 [ %.1, %449 ], [ true, %443 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  br i1 %.2, label %.sink.split, label %451

.loopexit353:                                     ; preds = %.loopexit, %.preheader, %334, %364, %391, %424
  ret void

.sink.split:                                      ; preds = %450, %.thread349, %423, %.thread345, %390, %.thread341, %363, %.thread337, %333, %.thread333, %252, %.thread329, %234, %.thread325, %210, %.thread321, %185, %.thread317, %160, %.thread
  %.sink = phi ptr [ %146, %.thread ], [ %146, %160 ], [ %171, %.thread317 ], [ %171, %185 ], [ %196, %.thread321 ], [ %196, %210 ], [ %220, %.thread325 ], [ %220, %234 ], [ %238, %.thread329 ], [ %238, %252 ], [ %319, %.thread333 ], [ %319, %333 ], [ %349, %.thread337 ], [ %349, %363 ], [ %376, %.thread341 ], [ %376, %390 ], [ %409, %.thread345 ], [ %409, %423 ], [ %436, %.thread349 ], [ %436, %450 ]
  %.pn308.pn.pn.pn.pn.ph = phi { ptr, i32 } [ %152, %.thread ], [ %.pn308.pn, %160 ], [ %177, %.thread317 ], [ %.pn304.pn, %185 ], [ %202, %.thread321 ], [ %.pn300.pn, %210 ], [ %226, %.thread325 ], [ %.pn296.pn, %234 ], [ %244, %.thread329 ], [ %.pn292.pn, %252 ], [ %325, %.thread333 ], [ %.pn283.pn, %333 ], [ %355, %.thread337 ], [ %.pn279.pn, %363 ], [ %382, %.thread341 ], [ %.pn275.pn, %390 ], [ %415, %.thread345 ], [ %.pn271.pn, %423 ], [ %442, %.thread349 ], [ %.pn.pn, %450 ]
  call void @__cxa_free_exception(ptr %.sink) #7
  br label %451

451:                                              ; preds = %.sink.split, %333, %363, %390, %423, %450, %160, %185, %210, %234, %252
  %.pn308.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn308.pn, %160 ], [ %.pn304.pn, %185 ], [ %.pn300.pn, %210 ], [ %.pn296.pn, %234 ], [ %.pn292.pn, %252 ], [ %.pn283.pn, %333 ], [ %.pn279.pn, %363 ], [ %.pn275.pn, %390 ], [ %.pn271.pn, %423 ], [ %.pn.pn, %450 ], [ %.pn308.pn.pn.pn.pn.ph, %.sink.split ]
  resume { ptr, i32 } %.pn308.pn.pn.pn.pn

452:                                              ; preds = %441, %414, %381, %354, %324, %243, %225, %201, %176, %151
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

declare void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr, ptr) local_unnamed_addr

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

!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, !7, i64 32}
!6 = !{!"_ZTSN11alglib_impl15rcommv2_requestE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !11, i64 0}
!11 = !{!"long", !8, i64 0}
!12 = !{!6, !7, i64 48}
!13 = !{!6, !7, i64 40}
!14 = !{!6, !7, i64 64}
!15 = !{!6, !7, i64 16}
!16 = !{!7, !7, i64 0}
!17 = !{!6, !7, i64 56}
!18 = !{!6, !7, i64 80}
!19 = !{!8, !8, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"double", !8, i64 0}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.unroll.disable"}
!24 = distinct !{!24, !25, !26, !27}
!25 = !{!"llvm.loop.mustprogress"}
!26 = !{!"llvm.loop.isvectorized", i32 1}
!27 = !{!"llvm.loop.unroll.runtime.disable"}
!28 = distinct !{!28, !25, !26}
!29 = !{!30, !7, i64 0}
!30 = !{!"_ZTSN11alglib_impl17rcommv2_callbacksE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72}
!31 = !{!6, !7, i64 0}
!32 = !{!6, !7, i64 8}
!33 = !{!30, !7, i64 40}
!34 = !{!30, !7, i64 16}
!35 = !{!30, !7, i64 56}
!36 = distinct !{!36, !25}
!37 = distinct !{!37, !25}
!38 = !{!6, !7, i64 72}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass