; 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
@.str.133 = external hidden unnamed_addr constant [82 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

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 #2 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 #3 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 #2 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 #4 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) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81)) #2 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) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl25process_v2request_5phase0ERNS_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) #4 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 i8, align 1
  %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 %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca i1, align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca i1, align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca i1, align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca i1, align 1
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca i1, align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca i1, align 1
  %81 = alloca i64, align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca i1, align 1
  %87 = alloca i64, align 8
  %88 = alloca i64, align 8
  %89 = alloca ptr, align 8
  %90 = alloca ptr, align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator", align 1
  %95 = alloca i1, align 1
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator", align 1
  %100 = alloca i1, align 1
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::allocator", align 1
  %105 = alloca i1, align 1
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator", align 1
  %110 = alloca i1, align 1
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::allocator", align 1
  %115 = 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
  %116 = load i64, ptr %6, align 8, !tbaa !9
  %117 = load ptr, ptr %5, align 8, !tbaa !5
  %118 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %117, i32 0, i32 4
  %119 = load ptr, ptr %118, align 8, !tbaa !11
  %120 = load i64, ptr %119, 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 6
  %123 = load ptr, ptr %122, align 8, !tbaa !13
  %124 = load i64, ptr %123, align 8, !tbaa !9
  %125 = mul nsw i64 %120, %124
  %126 = icmp slt i64 %116, %125
  br i1 %126, label %127, label %989

127:                                              ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  %128 = load i64, ptr %6, align 8, !tbaa !9
  %129 = load ptr, ptr %5, align 8, !tbaa !5
  %130 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %129, i32 0, i32 6
  %131 = load ptr, ptr %130, align 8, !tbaa !13
  %132 = load i64, ptr %131, align 8, !tbaa !9
  %133 = sdiv i64 %128, %132
  store i64 %133, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  %134 = load i64, ptr %6, align 8, !tbaa !9
  %135 = load ptr, ptr %5, align 8, !tbaa !5
  %136 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %135, i32 0, i32 6
  %137 = load ptr, ptr %136, align 8, !tbaa !13
  %138 = load i64, ptr %137, align 8, !tbaa !9
  %139 = srem i64 %134, %138
  store i64 %139, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  %140 = load ptr, ptr %5, align 8, !tbaa !5
  %141 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %140, i32 0, i32 6
  %142 = load ptr, ptr %141, align 8, !tbaa !13
  %143 = load i64, ptr %142, align 8, !tbaa !9
  store i64 %143, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %144, i32 0, i32 5
  %146 = load ptr, ptr %145, align 8, !tbaa !14
  %147 = load i64, ptr %146, align 8, !tbaa !9
  store i64 %147, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  %148 = load ptr, ptr %5, align 8, !tbaa !5
  %149 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %148, i32 0, i32 8
  %150 = load ptr, ptr %149, align 8, !tbaa !15
  %151 = load i64, ptr %150, align 8, !tbaa !9
  store i64 %151, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  %152 = load ptr, ptr %5, align 8, !tbaa !5
  %153 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %152, i32 0, i32 2
  %154 = load ptr, ptr %153, align 8, !tbaa !16
  %155 = load ptr, ptr %154, align 8, !tbaa !5
  %156 = load i64, ptr %9, align 8, !tbaa !9
  %157 = load i64, ptr %11, align 8, !tbaa !9
  %158 = load ptr, ptr %5, align 8, !tbaa !5
  %159 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %158, i32 0, i32 7
  %160 = load ptr, ptr %159, align 8, !tbaa !17
  %161 = load i64, ptr %160, align 8, !tbaa !9
  %162 = add nsw i64 %157, %161
  %163 = load i64, ptr %11, align 8, !tbaa !9
  %164 = load ptr, ptr %5, align 8, !tbaa !5
  %165 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %164, i32 0, i32 8
  %166 = load ptr, ptr %165, align 8, !tbaa !15
  %167 = load i64, ptr %166, align 8, !tbaa !9
  %168 = mul nsw i64 %163, %167
  %169 = mul nsw i64 %168, 3
  %170 = add nsw i64 %162, %169
  %171 = mul nsw i64 %156, %170
  %172 = getelementptr inbounds double, ptr %155, i64 %171
  store ptr %172, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  %173 = load ptr, ptr %14, align 8, !tbaa !5
  %174 = load i64, ptr %11, align 8, !tbaa !9
  %175 = getelementptr inbounds double, ptr %173, i64 %174
  %176 = load ptr, ptr %5, align 8, !tbaa !5
  %177 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %176, i32 0, i32 7
  %178 = load ptr, ptr %177, align 8, !tbaa !17
  %179 = load i64, ptr %178, align 8, !tbaa !9
  %180 = getelementptr inbounds double, ptr %175, i64 %179
  %181 = load i64, ptr %10, align 8, !tbaa !9
  %182 = load i64, ptr %13, align 8, !tbaa !9
  %183 = mul nsw i64 %181, %182
  %184 = mul nsw i64 %183, 3
  %185 = getelementptr inbounds double, ptr %180, i64 %184
  store ptr %185, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  %186 = load ptr, ptr %5, align 8, !tbaa !5
  %187 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %186, i32 0, i32 10
  %188 = load ptr, ptr %187, align 8, !tbaa !18
  %189 = load ptr, ptr %188, align 8, !tbaa !5
  %190 = load i64, ptr %9, align 8, !tbaa !9
  %191 = load i64, ptr %11, align 8, !tbaa !9
  %192 = mul nsw i64 %190, %191
  %193 = load i64, ptr %12, align 8, !tbaa !9
  %194 = mul nsw i64 %192, %193
  %195 = getelementptr inbounds double, ptr %189, i64 %194
  store ptr %195, ptr %16, align 8, !tbaa !5
  %196 = load ptr, ptr %8, align 8, !tbaa !5
  %197 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %196, i32 0, i32 0
  %198 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %197)
  %199 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %198, i32 0, i32 4
  %200 = load ptr, ptr %199, align 8, !tbaa !19
  %201 = load ptr, ptr %14, align 8, !tbaa !5
  %202 = load i64, ptr %11, align 8, !tbaa !9
  %203 = mul i64 %202, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %200, ptr align 8 %201, i64 %203, i1 false)
  %204 = load ptr, ptr %5, align 8, !tbaa !5
  %205 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %204, i32 0, i32 7
  %206 = load ptr, ptr %205, align 8, !tbaa !17
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = icmp sgt i64 %207, 0
  br i1 %208, label %209, label %223

209:                                              ; preds = %127
  %210 = load ptr, ptr %8, align 8, !tbaa !5
  %211 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %210, i32 0, i32 1
  %212 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %211)
  %213 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %212, i32 0, i32 4
  %214 = load ptr, ptr %213, align 8, !tbaa !19
  %215 = load ptr, ptr %14, align 8, !tbaa !5
  %216 = load i64, ptr %11, align 8, !tbaa !9
  %217 = getelementptr inbounds double, ptr %215, i64 %216
  %218 = load ptr, ptr %5, align 8, !tbaa !5
  %219 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %218, i32 0, i32 7
  %220 = load ptr, ptr %219, align 8, !tbaa !17
  %221 = load i64, ptr %220, align 8, !tbaa !9
  %222 = mul i64 %221, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %214, ptr align 8 %217, i64 %222, i1 false)
  br label %223

223:                                              ; preds = %209, %127
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %224 = load ptr, ptr %8, align 8, !tbaa !5
  %225 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %224, i32 0, i32 0
  %226 = load i64, ptr %10, align 8, !tbaa !9
  %227 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %225, i64 noundef %226)
  %228 = load double, ptr %227, align 8, !tbaa !20
  store double %228, ptr %17, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  store i64 0, ptr %18, align 8, !tbaa !9
  br label %229

229:                                              ; preds = %242, %223
  %230 = load i64, ptr %18, align 8, !tbaa !9
  %231 = load i64, ptr %12, align 8, !tbaa !9
  %232 = icmp slt i64 %230, %231
  br i1 %232, label %234, label %233

233:                                              ; preds = %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  br label %245

234:                                              ; preds = %229
  %235 = load ptr, ptr %16, align 8, !tbaa !5
  %236 = load i64, ptr %18, align 8, !tbaa !9
  %237 = load i64, ptr %11, align 8, !tbaa !9
  %238 = mul nsw i64 %236, %237
  %239 = load i64, ptr %10, align 8, !tbaa !9
  %240 = add nsw i64 %238, %239
  %241 = getelementptr inbounds double, ptr %235, i64 %240
  store double 0.000000e+00, ptr %241, align 8, !tbaa !20
  br label %242

242:                                              ; preds = %234
  %243 = load i64, ptr %18, align 8, !tbaa !9
  %244 = add nsw i64 %243, 1
  store i64 %244, ptr %18, align 8, !tbaa !9
  br label %229, !llvm.loop !22

245:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  store i64 0, ptr %19, align 8, !tbaa !9
  br label %246

246:                                              ; preds = %983, %245
  %247 = load i64, ptr %19, align 8, !tbaa !9
  %248 = load i64, ptr %13, align 8, !tbaa !9
  %249 = icmp slt i64 %247, %248
  br i1 %249, label %251, label %250

250:                                              ; preds = %246
  store i32 5, ptr %20, align 4
  br label %987

251:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #6
  store i8 0, ptr %21, align 1, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %252 = load ptr, ptr %15, align 8, !tbaa !5
  %253 = load i64, ptr %19, align 8, !tbaa !9
  %254 = mul nsw i64 %253, 3
  %255 = add nsw i64 %254, 2
  %256 = getelementptr inbounds double, ptr %252, i64 %255
  %257 = load double, ptr %256, align 8, !tbaa !20
  store double %257, ptr %22, align 8, !tbaa !20
  %258 = load double, ptr %22, align 8, !tbaa !20
  %259 = fcmp oeq double %258, 0.000000e+00
  br i1 %259, label %260, label %261

260:                                              ; preds = %251
  store i32 7, ptr %20, align 4
  br label %980

261:                                              ; preds = %251
  %262 = load ptr, ptr %15, align 8, !tbaa !5
  %263 = load i64, ptr %19, align 8, !tbaa !9
  %264 = mul nsw i64 %263, 3
  %265 = add nsw i64 %264, 0
  %266 = getelementptr inbounds double, ptr %262, i64 %265
  %267 = load double, ptr %266, align 8, !tbaa !20
  %268 = load ptr, ptr %14, align 8, !tbaa !5
  %269 = load i64, ptr %10, align 8, !tbaa !9
  %270 = getelementptr inbounds double, ptr %268, i64 %269
  %271 = load double, ptr %270, align 8, !tbaa !20
  %272 = fcmp une double %267, %271
  br i1 %272, label %273, label %571

273:                                              ; preds = %261
  %274 = load ptr, ptr %15, align 8, !tbaa !5
  %275 = load i64, ptr %19, align 8, !tbaa !9
  %276 = mul nsw i64 %275, 3
  %277 = add nsw i64 %276, 0
  %278 = getelementptr inbounds double, ptr %274, i64 %277
  %279 = load double, ptr %278, align 8, !tbaa !20
  %280 = load ptr, ptr %8, align 8, !tbaa !5
  %281 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %280, i32 0, i32 0
  %282 = load i64, ptr %10, align 8, !tbaa !9
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %281, i64 noundef %282)
  store double %279, ptr %283, align 8, !tbaa !20
  %284 = load ptr, ptr %7, align 8, !tbaa !5
  %285 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %284, i32 0, i32 0
  %286 = load ptr, ptr %285, align 8, !tbaa !26
  %287 = icmp ne ptr %286, null
  br i1 %287, label %288, label %340

288:                                              ; preds = %273
  %289 = load ptr, ptr %5, align 8, !tbaa !5
  %290 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %289, i32 0, i32 7
  %291 = load ptr, ptr %290, align 8, !tbaa !17
  %292 = load i64, ptr %291, align 8, !tbaa !9
  %293 = icmp eq i64 %292, 0
  br i1 %293, label %294, label %297

294:                                              ; preds = %288
  %295 = load i64, ptr %12, align 8, !tbaa !9
  %296 = icmp eq i64 %295, 1
  br i1 %296, label %328, label %297

297:                                              ; preds = %294, %288
  store i1 true, ptr %29, align 1
  %298 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  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 %299 unwind label %306

299:                                              ; preds = %297
  %300 = load ptr, ptr %5, align 8, !tbaa !5
  %301 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %300, i32 0, i32 0
  %302 = load ptr, ptr %301, align 8, !tbaa !28
  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 %302)
          to label %303 unwind label %310

303:                                              ; preds = %299
  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 %304 unwind label %314

304:                                              ; preds = %303
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %305 unwind label %318

305:                                              ; preds = %304
  store i1 false, ptr %29, align 1
  invoke void @__cxa_throw(ptr %298, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %318

306:                                              ; preds = %297
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %27, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %28, align 4
  br label %324

310:                                              ; preds = %299
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %27, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %28, align 4
  br label %323

314:                                              ; preds = %303
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %27, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %28, align 4
  br label %322

318:                                              ; preds = %305, %304
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %27, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %322

322:                                              ; preds = %318, %314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %323

323:                                              ; preds = %322, %310
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %324

324:                                              ; preds = %323, %306
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  %325 = load i1, ptr %29, align 1
  br i1 %325, label %326, label %327

326:                                              ; preds = %324
  call void @__cxa_free_exception(ptr %298) #6
  br label %327

327:                                              ; preds = %326, %324
  br label %986

328:                                              ; preds = %294
  %329 = load ptr, ptr %7, align 8, !tbaa !5
  %330 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %329, i32 0, i32 0
  %331 = load ptr, ptr %330, align 8, !tbaa !26
  %332 = load ptr, ptr %8, align 8, !tbaa !5
  %333 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %332, i32 0, i32 0
  %334 = load ptr, ptr %8, align 8, !tbaa !5
  %335 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %334, i32 0, i32 2
  %336 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %335, i64 noundef 0)
  %337 = load ptr, ptr %5, align 8, !tbaa !5
  %338 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %337, i32 0, i32 1
  %339 = load ptr, ptr %338, align 8, !tbaa !29
  call void %331(ptr noundef nonnull align 8 dereferenceable(81) %333, ptr noundef nonnull align 8 dereferenceable(8) %336, ptr noundef %339)
  br label %541

340:                                              ; preds = %273
  %341 = load ptr, ptr %7, align 8, !tbaa !5
  %342 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %341, i32 0, i32 5
  %343 = load ptr, ptr %342, align 8, !tbaa !30
  %344 = icmp ne ptr %343, null
  br i1 %344, label %345, label %399

345:                                              ; preds = %340
  %346 = load ptr, ptr %5, align 8, !tbaa !5
  %347 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %346, i32 0, i32 7
  %348 = load ptr, ptr %347, align 8, !tbaa !17
  %349 = load i64, ptr %348, align 8, !tbaa !9
  %350 = icmp sgt i64 %349, 0
  br i1 %350, label %351, label %354

351:                                              ; preds = %345
  %352 = load i64, ptr %12, align 8, !tbaa !9
  %353 = icmp eq i64 %352, 1
  br i1 %353, label %385, label %354

354:                                              ; preds = %351, %345
  store i1 true, ptr %34, align 1
  %355 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #6
  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 %356 unwind label %363

356:                                              ; preds = %354
  %357 = load ptr, ptr %5, align 8, !tbaa !5
  %358 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %357, i32 0, i32 0
  %359 = load ptr, ptr %358, align 8, !tbaa !28
  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 %359)
          to label %360 unwind label %367

360:                                              ; preds = %356
  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 %361 unwind label %371

361:                                              ; preds = %360
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %355, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %362 unwind label %375

362:                                              ; preds = %361
  store i1 false, ptr %34, align 1
  invoke void @__cxa_throw(ptr %355, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %375

363:                                              ; preds = %354
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %27, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %28, align 4
  br label %381

367:                                              ; preds = %356
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %27, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %28, align 4
  br label %380

371:                                              ; preds = %360
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %27, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %28, align 4
  br label %379

375:                                              ; preds = %362, %361
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %27, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %379

379:                                              ; preds = %375, %371
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %380

380:                                              ; preds = %379, %367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %381

381:                                              ; preds = %380, %363
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  %382 = load i1, ptr %34, align 1
  br i1 %382, label %383, label %384

383:                                              ; preds = %381
  call void @__cxa_free_exception(ptr %355) #6
  br label %384

384:                                              ; preds = %383, %381
  br label %986

385:                                              ; preds = %351
  %386 = load ptr, ptr %7, align 8, !tbaa !5
  %387 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %386, i32 0, i32 5
  %388 = load ptr, ptr %387, align 8, !tbaa !30
  %389 = load ptr, ptr %8, align 8, !tbaa !5
  %390 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %389, i32 0, i32 0
  %391 = load ptr, ptr %8, align 8, !tbaa !5
  %392 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %391, i32 0, i32 1
  %393 = load ptr, ptr %8, align 8, !tbaa !5
  %394 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %393, i32 0, i32 2
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %394, i64 noundef 0)
  %396 = load ptr, ptr %5, align 8, !tbaa !5
  %397 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %396, i32 0, i32 1
  %398 = load ptr, ptr %397, align 8, !tbaa !29
  call void %388(ptr noundef nonnull align 8 dereferenceable(81) %390, ptr noundef nonnull align 8 dereferenceable(81) %392, ptr noundef nonnull align 8 dereferenceable(8) %395, ptr noundef %398)
  br label %540

399:                                              ; preds = %340
  %400 = load ptr, ptr %7, align 8, !tbaa !5
  %401 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %400, i32 0, i32 2
  %402 = load ptr, ptr %401, align 8, !tbaa !31
  %403 = icmp ne ptr %402, null
  br i1 %403, label %404, label %452

404:                                              ; preds = %399
  %405 = load ptr, ptr %5, align 8, !tbaa !5
  %406 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %405, i32 0, i32 7
  %407 = load ptr, ptr %406, align 8, !tbaa !17
  %408 = load i64, ptr %407, align 8, !tbaa !9
  %409 = icmp eq i64 %408, 0
  br i1 %409, label %441, label %410

410:                                              ; preds = %404
  store i1 true, ptr %39, align 1
  %411 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  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 %412 unwind label %419

412:                                              ; preds = %410
  %413 = load ptr, ptr %5, align 8, !tbaa !5
  %414 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %413, i32 0, i32 0
  %415 = load ptr, ptr %414, align 8, !tbaa !28
  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 %415)
          to label %416 unwind label %423

416:                                              ; preds = %412
  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 %417 unwind label %427

417:                                              ; preds = %416
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %411, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %418 unwind label %431

418:                                              ; preds = %417
  store i1 false, ptr %39, align 1
  invoke void @__cxa_throw(ptr %411, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %431

419:                                              ; preds = %410
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %27, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %28, align 4
  br label %437

423:                                              ; preds = %412
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %27, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %28, align 4
  br label %436

427:                                              ; preds = %416
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %27, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %28, align 4
  br label %435

431:                                              ; preds = %418, %417
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %27, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %435

435:                                              ; preds = %431, %427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %436

436:                                              ; preds = %435, %423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %437

437:                                              ; preds = %436, %419
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  %438 = load i1, ptr %39, align 1
  br i1 %438, label %439, label %440

439:                                              ; preds = %437
  call void @__cxa_free_exception(ptr %411) #6
  br label %440

440:                                              ; preds = %439, %437
  br label %986

441:                                              ; preds = %404
  %442 = load ptr, ptr %7, align 8, !tbaa !5
  %443 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %442, i32 0, i32 2
  %444 = load ptr, ptr %443, align 8, !tbaa !31
  %445 = load ptr, ptr %8, align 8, !tbaa !5
  %446 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %445, i32 0, i32 0
  %447 = load ptr, ptr %8, align 8, !tbaa !5
  %448 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %447, i32 0, i32 2
  %449 = load ptr, ptr %5, align 8, !tbaa !5
  %450 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %449, i32 0, i32 1
  %451 = load ptr, ptr %450, align 8, !tbaa !29
  call void %444(ptr noundef nonnull align 8 dereferenceable(81) %446, ptr noundef nonnull align 8 dereferenceable(81) %448, ptr noundef %451)
  br label %539

452:                                              ; preds = %399
  %453 = load ptr, ptr %7, align 8, !tbaa !5
  %454 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %453, i32 0, i32 7
  %455 = load ptr, ptr %454, align 8, !tbaa !32
  %456 = icmp ne ptr %455, null
  br i1 %456, label %457, label %507

457:                                              ; preds = %452
  %458 = load ptr, ptr %5, align 8, !tbaa !5
  %459 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %458, i32 0, i32 7
  %460 = load ptr, ptr %459, align 8, !tbaa !17
  %461 = load i64, ptr %460, align 8, !tbaa !9
  %462 = icmp sgt i64 %461, 0
  br i1 %462, label %494, label %463

463:                                              ; preds = %457
  store i1 true, ptr %44, align 1
  %464 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #6
  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 %465 unwind label %472

465:                                              ; preds = %463
  %466 = load ptr, ptr %5, align 8, !tbaa !5
  %467 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %466, i32 0, i32 0
  %468 = load ptr, ptr %467, align 8, !tbaa !28
  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 %468)
          to label %469 unwind label %476

469:                                              ; preds = %465
  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 %470 unwind label %480

470:                                              ; preds = %469
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %464, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %471 unwind label %484

471:                                              ; preds = %470
  store i1 false, ptr %44, align 1
  invoke void @__cxa_throw(ptr %464, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %484

472:                                              ; preds = %463
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %27, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %28, align 4
  br label %490

476:                                              ; preds = %465
  %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 %489

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 %488

484:                                              ; preds = %471, %470
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %488

488:                                              ; preds = %484, %480
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %489

489:                                              ; preds = %488, %476
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %490

490:                                              ; preds = %489, %472
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #6
  %491 = load i1, ptr %44, align 1
  br i1 %491, label %492, label %493

492:                                              ; preds = %490
  call void @__cxa_free_exception(ptr %464) #6
  br label %493

493:                                              ; preds = %492, %490
  br label %986

494:                                              ; preds = %457
  %495 = load ptr, ptr %7, align 8, !tbaa !5
  %496 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %495, i32 0, i32 7
  %497 = load ptr, ptr %496, align 8, !tbaa !32
  %498 = load ptr, ptr %8, align 8, !tbaa !5
  %499 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %498, i32 0, i32 0
  %500 = load ptr, ptr %8, align 8, !tbaa !5
  %501 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %500, i32 0, i32 1
  %502 = load ptr, ptr %8, align 8, !tbaa !5
  %503 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %502, i32 0, i32 2
  %504 = load ptr, ptr %5, align 8, !tbaa !5
  %505 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %504, i32 0, i32 1
  %506 = load ptr, ptr %505, align 8, !tbaa !29
  call void %497(ptr noundef nonnull align 8 dereferenceable(81) %499, ptr noundef nonnull align 8 dereferenceable(81) %501, ptr noundef nonnull align 8 dereferenceable(81) %503, ptr noundef %506)
  br label %538

507:                                              ; preds = %452
  store i1 true, ptr %49, align 1
  %508 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  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 %509 unwind label %516

509:                                              ; preds = %507
  %510 = load ptr, ptr %5, align 8, !tbaa !5
  %511 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %510, i32 0, i32 0
  %512 = load ptr, ptr %511, align 8, !tbaa !28
  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 %512)
          to label %513 unwind label %520

513:                                              ; preds = %509
  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 %514 unwind label %524

514:                                              ; preds = %513
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %508, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %515 unwind label %528

515:                                              ; preds = %514
  store i1 false, ptr %49, align 1
  invoke void @__cxa_throw(ptr %508, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %528

516:                                              ; preds = %507
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %27, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %28, align 4
  br label %534

520:                                              ; preds = %509
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %27, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %28, align 4
  br label %533

524:                                              ; preds = %513
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %27, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %28, align 4
  br label %532

528:                                              ; preds = %515, %514
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %27, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %532

532:                                              ; preds = %528, %524
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %533

533:                                              ; preds = %532, %520
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %534

534:                                              ; preds = %533, %516
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #6
  %535 = load i1, ptr %49, align 1
  br i1 %535, label %536, label %537

536:                                              ; preds = %534
  call void @__cxa_free_exception(ptr %508) #6
  br label %537

537:                                              ; preds = %536, %534
  br label %986

538:                                              ; preds = %494
  br label %539

539:                                              ; preds = %538, %441
  br label %540

540:                                              ; preds = %539, %385
  br label %541

541:                                              ; preds = %540, %328
  %542 = load double, ptr %17, align 8, !tbaa !20
  %543 = load ptr, ptr %8, align 8, !tbaa !5
  %544 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %543, i32 0, i32 0
  %545 = load i64, ptr %10, align 8, !tbaa !9
  %546 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %544, i64 noundef %545)
  store double %542, ptr %546, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #6
  store i64 0, ptr %50, align 8, !tbaa !9
  br label %547

547:                                              ; preds = %567, %541
  %548 = load i64, ptr %50, align 8, !tbaa !9
  %549 = load i64, ptr %12, align 8, !tbaa !9
  %550 = icmp slt i64 %548, %549
  br i1 %550, label %552, label %551

551:                                              ; preds = %547
  store i32 8, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  br label %570

552:                                              ; preds = %547
  %553 = load ptr, ptr %8, align 8, !tbaa !5
  %554 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %553, i32 0, i32 2
  %555 = load i64, ptr %50, align 8, !tbaa !9
  %556 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %554, i64 noundef %555)
  %557 = load double, ptr %556, align 8, !tbaa !20
  %558 = load ptr, ptr %16, align 8, !tbaa !5
  %559 = load i64, ptr %50, align 8, !tbaa !9
  %560 = load i64, ptr %11, align 8, !tbaa !9
  %561 = mul nsw i64 %559, %560
  %562 = load i64, ptr %10, align 8, !tbaa !9
  %563 = add nsw i64 %561, %562
  %564 = getelementptr inbounds double, ptr %558, i64 %563
  %565 = load double, ptr %564, align 8, !tbaa !20
  %566 = fadd double %565, %557
  store double %566, ptr %564, align 8, !tbaa !20
  br label %567

567:                                              ; preds = %552
  %568 = load i64, ptr %50, align 8, !tbaa !9
  %569 = add nsw i64 %568, 1
  store i64 %569, ptr %50, align 8, !tbaa !9
  br label %547, !llvm.loop !33

570:                                              ; preds = %551
  br label %608

571:                                              ; preds = %261
  %572 = load i64, ptr %19, align 8, !tbaa !9
  %573 = load i64, ptr %13, align 8, !tbaa !9
  %574 = sub nsw i64 %573, 1
  %575 = icmp eq i64 %572, %574
  br i1 %575, label %607, label %576

576:                                              ; preds = %571
  store i1 true, ptr %55, align 1
  %577 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %578 unwind label %585

578:                                              ; preds = %576
  %579 = load ptr, ptr %5, align 8, !tbaa !5
  %580 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %579, i32 0, i32 0
  %581 = load ptr, ptr %580, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef %581)
          to label %582 unwind label %589

582:                                              ; preds = %578
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.133)
          to label %583 unwind label %593

583:                                              ; preds = %582
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %577, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %584 unwind label %597

584:                                              ; preds = %583
  store i1 false, ptr %55, align 1
  invoke void @__cxa_throw(ptr %577, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %597

585:                                              ; preds = %576
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %27, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %28, align 4
  br label %603

589:                                              ; preds = %578
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %27, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %28, align 4
  br label %602

593:                                              ; preds = %582
  %594 = landingpad { ptr, i32 }
          cleanup
  %595 = extractvalue { ptr, i32 } %594, 0
  store ptr %595, ptr %27, align 8
  %596 = extractvalue { ptr, i32 } %594, 1
  store i32 %596, ptr %28, align 4
  br label %601

597:                                              ; preds = %584, %583
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %27, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %601

601:                                              ; preds = %597, %593
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %602

602:                                              ; preds = %601, %589
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %603

603:                                              ; preds = %602, %585
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  %604 = load i1, ptr %55, align 1
  br i1 %604, label %605, label %606

605:                                              ; preds = %603
  call void @__cxa_free_exception(ptr %577) #6
  br label %606

606:                                              ; preds = %605, %603
  br label %986

607:                                              ; preds = %571
  store i8 1, ptr %21, align 1, !tbaa !24
  br label %608

608:                                              ; preds = %607, %570
  %609 = load ptr, ptr %15, align 8, !tbaa !5
  %610 = load i64, ptr %19, align 8, !tbaa !9
  %611 = mul nsw i64 %610, 3
  %612 = add nsw i64 %611, 1
  %613 = getelementptr inbounds double, ptr %609, i64 %612
  %614 = load double, ptr %613, align 8, !tbaa !20
  %615 = load ptr, ptr %14, align 8, !tbaa !5
  %616 = load i64, ptr %10, align 8, !tbaa !9
  %617 = getelementptr inbounds double, ptr %615, i64 %616
  %618 = load double, ptr %617, align 8, !tbaa !20
  %619 = fcmp une double %614, %618
  br i1 %619, label %620, label %918

620:                                              ; preds = %608
  %621 = load ptr, ptr %15, align 8, !tbaa !5
  %622 = load i64, ptr %19, align 8, !tbaa !9
  %623 = mul nsw i64 %622, 3
  %624 = add nsw i64 %623, 1
  %625 = getelementptr inbounds double, ptr %621, i64 %624
  %626 = load double, ptr %625, align 8, !tbaa !20
  %627 = load ptr, ptr %8, align 8, !tbaa !5
  %628 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %627, i32 0, i32 0
  %629 = load i64, ptr %10, align 8, !tbaa !9
  %630 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %628, i64 noundef %629)
  store double %626, ptr %630, align 8, !tbaa !20
  %631 = load ptr, ptr %7, align 8, !tbaa !5
  %632 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %631, i32 0, i32 0
  %633 = load ptr, ptr %632, align 8, !tbaa !26
  %634 = icmp ne ptr %633, null
  br i1 %634, label %635, label %687

635:                                              ; preds = %620
  %636 = load ptr, ptr %5, align 8, !tbaa !5
  %637 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %636, i32 0, i32 7
  %638 = load ptr, ptr %637, align 8, !tbaa !17
  %639 = load i64, ptr %638, align 8, !tbaa !9
  %640 = icmp eq i64 %639, 0
  br i1 %640, label %641, label %644

641:                                              ; preds = %635
  %642 = load i64, ptr %12, align 8, !tbaa !9
  %643 = icmp eq i64 %642, 1
  br i1 %643, label %675, label %644

644:                                              ; preds = %641, %635
  store i1 true, ptr %60, align 1
  %645 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %646 unwind label %653

646:                                              ; preds = %644
  %647 = load ptr, ptr %5, align 8, !tbaa !5
  %648 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %647, i32 0, i32 0
  %649 = load ptr, ptr %648, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef %649)
          to label %650 unwind label %657

650:                                              ; preds = %646
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.128)
          to label %651 unwind label %661

651:                                              ; preds = %650
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %645, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %652 unwind label %665

652:                                              ; preds = %651
  store i1 false, ptr %60, align 1
  invoke void @__cxa_throw(ptr %645, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %665

653:                                              ; preds = %644
  %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 %671

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 %670

661:                                              ; preds = %650
  %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
  br label %669

665:                                              ; preds = %652, %651
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %27, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  br label %669

669:                                              ; preds = %665, %661
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %670

670:                                              ; preds = %669, %657
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  br label %671

671:                                              ; preds = %670, %653
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #6
  %672 = load i1, ptr %60, align 1
  br i1 %672, label %673, label %674

673:                                              ; preds = %671
  call void @__cxa_free_exception(ptr %645) #6
  br label %674

674:                                              ; preds = %673, %671
  br label %986

675:                                              ; preds = %641
  %676 = load ptr, ptr %7, align 8, !tbaa !5
  %677 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %676, i32 0, i32 0
  %678 = load ptr, ptr %677, align 8, !tbaa !26
  %679 = load ptr, ptr %8, align 8, !tbaa !5
  %680 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %679, i32 0, i32 0
  %681 = load ptr, ptr %8, align 8, !tbaa !5
  %682 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %681, i32 0, i32 2
  %683 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %682, i64 noundef 0)
  %684 = load ptr, ptr %5, align 8, !tbaa !5
  %685 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %684, i32 0, i32 1
  %686 = load ptr, ptr %685, align 8, !tbaa !29
  call void %678(ptr noundef nonnull align 8 dereferenceable(81) %680, ptr noundef nonnull align 8 dereferenceable(8) %683, ptr noundef %686)
  br label %888

687:                                              ; preds = %620
  %688 = load ptr, ptr %7, align 8, !tbaa !5
  %689 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %688, i32 0, i32 5
  %690 = load ptr, ptr %689, align 8, !tbaa !30
  %691 = icmp ne ptr %690, null
  br i1 %691, label %692, label %746

692:                                              ; preds = %687
  %693 = load ptr, ptr %5, align 8, !tbaa !5
  %694 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %693, i32 0, i32 7
  %695 = load ptr, ptr %694, align 8, !tbaa !17
  %696 = load i64, ptr %695, align 8, !tbaa !9
  %697 = icmp sgt i64 %696, 0
  br i1 %697, label %698, label %701

698:                                              ; preds = %692
  %699 = load i64, ptr %12, align 8, !tbaa !9
  %700 = icmp eq i64 %699, 1
  br i1 %700, label %732, label %701

701:                                              ; preds = %698, %692
  store i1 true, ptr %65, align 1
  %702 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %703 unwind label %710

703:                                              ; preds = %701
  %704 = load ptr, ptr %5, align 8, !tbaa !5
  %705 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %704, i32 0, i32 0
  %706 = load ptr, ptr %705, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef %706)
          to label %707 unwind label %714

707:                                              ; preds = %703
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.128)
          to label %708 unwind label %718

708:                                              ; preds = %707
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %702, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %709 unwind label %722

709:                                              ; preds = %708
  store i1 false, ptr %65, align 1
  invoke void @__cxa_throw(ptr %702, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %722

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

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

718:                                              ; preds = %707
  %719 = landingpad { ptr, i32 }
          cleanup
  %720 = extractvalue { ptr, i32 } %719, 0
  store ptr %720, ptr %27, align 8
  %721 = extractvalue { ptr, i32 } %719, 1
  store i32 %721, ptr %28, align 4
  br label %726

722:                                              ; preds = %709, %708
  %723 = landingpad { ptr, i32 }
          cleanup
  %724 = extractvalue { ptr, i32 } %723, 0
  store ptr %724, ptr %27, align 8
  %725 = extractvalue { ptr, i32 } %723, 1
  store i32 %725, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %726

726:                                              ; preds = %722, %718
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %727

727:                                              ; preds = %726, %714
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %728

728:                                              ; preds = %727, %710
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #6
  %729 = load i1, ptr %65, align 1
  br i1 %729, label %730, label %731

730:                                              ; preds = %728
  call void @__cxa_free_exception(ptr %702) #6
  br label %731

731:                                              ; preds = %730, %728
  br label %986

732:                                              ; preds = %698
  %733 = load ptr, ptr %7, align 8, !tbaa !5
  %734 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %733, i32 0, i32 5
  %735 = load ptr, ptr %734, align 8, !tbaa !30
  %736 = load ptr, ptr %8, align 8, !tbaa !5
  %737 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %736, i32 0, i32 0
  %738 = load ptr, ptr %8, align 8, !tbaa !5
  %739 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %738, i32 0, i32 1
  %740 = load ptr, ptr %8, align 8, !tbaa !5
  %741 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %740, i32 0, i32 2
  %742 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %741, i64 noundef 0)
  %743 = load ptr, ptr %5, align 8, !tbaa !5
  %744 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %743, i32 0, i32 1
  %745 = load ptr, ptr %744, align 8, !tbaa !29
  call void %735(ptr noundef nonnull align 8 dereferenceable(81) %737, ptr noundef nonnull align 8 dereferenceable(81) %739, ptr noundef nonnull align 8 dereferenceable(8) %742, ptr noundef %745)
  br label %887

746:                                              ; preds = %687
  %747 = load ptr, ptr %7, align 8, !tbaa !5
  %748 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %747, i32 0, i32 2
  %749 = load ptr, ptr %748, align 8, !tbaa !31
  %750 = icmp ne ptr %749, null
  br i1 %750, label %751, label %799

751:                                              ; preds = %746
  %752 = load ptr, ptr %5, align 8, !tbaa !5
  %753 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %752, i32 0, i32 7
  %754 = load ptr, ptr %753, align 8, !tbaa !17
  %755 = load i64, ptr %754, align 8, !tbaa !9
  %756 = icmp eq i64 %755, 0
  br i1 %756, label %788, label %757

757:                                              ; preds = %751
  store i1 true, ptr %70, align 1
  %758 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %759 unwind label %766

759:                                              ; preds = %757
  %760 = load ptr, ptr %5, align 8, !tbaa !5
  %761 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %760, i32 0, i32 0
  %762 = load ptr, ptr %761, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef %762)
          to label %763 unwind label %770

763:                                              ; preds = %759
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.128)
          to label %764 unwind label %774

764:                                              ; preds = %763
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %758, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %765 unwind label %778

765:                                              ; preds = %764
  store i1 false, ptr %70, align 1
  invoke void @__cxa_throw(ptr %758, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %778

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

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

774:                                              ; preds = %763
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %27, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %28, align 4
  br label %782

778:                                              ; preds = %765, %764
  %779 = landingpad { ptr, i32 }
          cleanup
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %27, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %782

782:                                              ; preds = %778, %774
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %783

783:                                              ; preds = %782, %770
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %784

784:                                              ; preds = %783, %766
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #6
  %785 = load i1, ptr %70, align 1
  br i1 %785, label %786, label %787

786:                                              ; preds = %784
  call void @__cxa_free_exception(ptr %758) #6
  br label %787

787:                                              ; preds = %786, %784
  br label %986

788:                                              ; preds = %751
  %789 = load ptr, ptr %7, align 8, !tbaa !5
  %790 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %789, i32 0, i32 2
  %791 = load ptr, ptr %790, align 8, !tbaa !31
  %792 = load ptr, ptr %8, align 8, !tbaa !5
  %793 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %792, i32 0, i32 0
  %794 = load ptr, ptr %8, align 8, !tbaa !5
  %795 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %794, i32 0, i32 2
  %796 = load ptr, ptr %5, align 8, !tbaa !5
  %797 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %796, i32 0, i32 1
  %798 = load ptr, ptr %797, align 8, !tbaa !29
  call void %791(ptr noundef nonnull align 8 dereferenceable(81) %793, ptr noundef nonnull align 8 dereferenceable(81) %795, ptr noundef %798)
  br label %886

799:                                              ; preds = %746
  %800 = load ptr, ptr %7, align 8, !tbaa !5
  %801 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %800, i32 0, i32 7
  %802 = load ptr, ptr %801, align 8, !tbaa !32
  %803 = icmp ne ptr %802, null
  br i1 %803, label %804, label %854

804:                                              ; preds = %799
  %805 = load ptr, ptr %5, align 8, !tbaa !5
  %806 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %805, i32 0, i32 7
  %807 = load ptr, ptr %806, align 8, !tbaa !17
  %808 = load i64, ptr %807, align 8, !tbaa !9
  %809 = icmp sgt i64 %808, 0
  br i1 %809, label %841, label %810

810:                                              ; preds = %804
  store i1 true, ptr %75, align 1
  %811 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %812 unwind label %819

812:                                              ; preds = %810
  %813 = load ptr, ptr %5, align 8, !tbaa !5
  %814 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %813, i32 0, i32 0
  %815 = load ptr, ptr %814, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef %815)
          to label %816 unwind label %823

816:                                              ; preds = %812
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.128)
          to label %817 unwind label %827

817:                                              ; preds = %816
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %811, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %818 unwind label %831

818:                                              ; preds = %817
  store i1 false, ptr %75, align 1
  invoke void @__cxa_throw(ptr %811, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %831

819:                                              ; preds = %810
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %27, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %28, align 4
  br label %837

823:                                              ; preds = %812
  %824 = landingpad { ptr, i32 }
          cleanup
  %825 = extractvalue { ptr, i32 } %824, 0
  store ptr %825, ptr %27, align 8
  %826 = extractvalue { ptr, i32 } %824, 1
  store i32 %826, ptr %28, align 4
  br label %836

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

831:                                              ; preds = %818, %817
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %27, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  br label %835

835:                                              ; preds = %831, %827
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %836

836:                                              ; preds = %835, %823
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %837

837:                                              ; preds = %836, %819
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #6
  %838 = load i1, ptr %75, align 1
  br i1 %838, label %839, label %840

839:                                              ; preds = %837
  call void @__cxa_free_exception(ptr %811) #6
  br label %840

840:                                              ; preds = %839, %837
  br label %986

841:                                              ; preds = %804
  %842 = load ptr, ptr %7, align 8, !tbaa !5
  %843 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %842, i32 0, i32 7
  %844 = load ptr, ptr %843, align 8, !tbaa !32
  %845 = load ptr, ptr %8, align 8, !tbaa !5
  %846 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %845, i32 0, i32 0
  %847 = load ptr, ptr %8, align 8, !tbaa !5
  %848 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %847, i32 0, i32 1
  %849 = load ptr, ptr %8, align 8, !tbaa !5
  %850 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %849, i32 0, i32 2
  %851 = load ptr, ptr %5, align 8, !tbaa !5
  %852 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %851, i32 0, i32 1
  %853 = load ptr, ptr %852, align 8, !tbaa !29
  call void %844(ptr noundef nonnull align 8 dereferenceable(81) %846, ptr noundef nonnull align 8 dereferenceable(81) %848, ptr noundef nonnull align 8 dereferenceable(81) %850, ptr noundef %853)
  br label %885

854:                                              ; preds = %799
  store i1 true, ptr %80, align 1
  %855 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %856 unwind label %863

856:                                              ; preds = %854
  %857 = load ptr, ptr %5, align 8, !tbaa !5
  %858 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %857, i32 0, i32 0
  %859 = load ptr, ptr %858, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef %859)
          to label %860 unwind label %867

860:                                              ; preds = %856
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef @.str.132)
          to label %861 unwind label %871

861:                                              ; preds = %860
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %855, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %862 unwind label %875

862:                                              ; preds = %861
  store i1 false, ptr %80, align 1
  invoke void @__cxa_throw(ptr %855, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %875

863:                                              ; preds = %854
  %864 = landingpad { ptr, i32 }
          cleanup
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %27, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %28, align 4
  br label %881

867:                                              ; preds = %856
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %27, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %28, align 4
  br label %880

871:                                              ; preds = %860
  %872 = landingpad { ptr, i32 }
          cleanup
  %873 = extractvalue { ptr, i32 } %872, 0
  store ptr %873, ptr %27, align 8
  %874 = extractvalue { ptr, i32 } %872, 1
  store i32 %874, ptr %28, align 4
  br label %879

875:                                              ; preds = %862, %861
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %27, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %879

879:                                              ; preds = %875, %871
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %880

880:                                              ; preds = %879, %867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %881

881:                                              ; preds = %880, %863
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  %882 = load i1, ptr %80, align 1
  br i1 %882, label %883, label %884

883:                                              ; preds = %881
  call void @__cxa_free_exception(ptr %855) #6
  br label %884

884:                                              ; preds = %883, %881
  br label %986

885:                                              ; preds = %841
  br label %886

886:                                              ; preds = %885, %788
  br label %887

887:                                              ; preds = %886, %732
  br label %888

888:                                              ; preds = %887, %675
  %889 = load double, ptr %17, align 8, !tbaa !20
  %890 = load ptr, ptr %8, align 8, !tbaa !5
  %891 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %890, i32 0, i32 0
  %892 = load i64, ptr %10, align 8, !tbaa !9
  %893 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %891, i64 noundef %892)
  store double %889, ptr %893, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #6
  store i64 0, ptr %81, align 8, !tbaa !9
  br label %894

894:                                              ; preds = %914, %888
  %895 = load i64, ptr %81, align 8, !tbaa !9
  %896 = load i64, ptr %12, align 8, !tbaa !9
  %897 = icmp slt i64 %895, %896
  br i1 %897, label %899, label %898

898:                                              ; preds = %894
  store i32 11, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  br label %917

899:                                              ; preds = %894
  %900 = load ptr, ptr %8, align 8, !tbaa !5
  %901 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %900, i32 0, i32 2
  %902 = load i64, ptr %81, align 8, !tbaa !9
  %903 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %901, i64 noundef %902)
  %904 = load double, ptr %903, align 8, !tbaa !20
  %905 = load ptr, ptr %16, align 8, !tbaa !5
  %906 = load i64, ptr %81, align 8, !tbaa !9
  %907 = load i64, ptr %11, align 8, !tbaa !9
  %908 = mul nsw i64 %906, %907
  %909 = load i64, ptr %10, align 8, !tbaa !9
  %910 = add nsw i64 %908, %909
  %911 = getelementptr inbounds double, ptr %905, i64 %910
  %912 = load double, ptr %911, align 8, !tbaa !20
  %913 = fsub double %912, %904
  store double %913, ptr %911, align 8, !tbaa !20
  br label %914

914:                                              ; preds = %899
  %915 = load i64, ptr %81, align 8, !tbaa !9
  %916 = add nsw i64 %915, 1
  store i64 %916, ptr %81, align 8, !tbaa !9
  br label %894, !llvm.loop !34

917:                                              ; preds = %898
  br label %955

918:                                              ; preds = %608
  %919 = load i64, ptr %19, align 8, !tbaa !9
  %920 = load i64, ptr %13, align 8, !tbaa !9
  %921 = sub nsw i64 %920, 1
  %922 = icmp eq i64 %919, %921
  br i1 %922, label %954, label %923

923:                                              ; preds = %918
  store i1 true, ptr %86, align 1
  %924 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %925 unwind label %932

925:                                              ; preds = %923
  %926 = load ptr, ptr %5, align 8, !tbaa !5
  %927 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %926, i32 0, i32 0
  %928 = load ptr, ptr %927, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef %928)
          to label %929 unwind label %936

929:                                              ; preds = %925
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.133)
          to label %930 unwind label %940

930:                                              ; preds = %929
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %924, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %931 unwind label %944

931:                                              ; preds = %930
  store i1 false, ptr %86, align 1
  invoke void @__cxa_throw(ptr %924, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %944

932:                                              ; preds = %923
  %933 = landingpad { ptr, i32 }
          cleanup
  %934 = extractvalue { ptr, i32 } %933, 0
  store ptr %934, ptr %27, align 8
  %935 = extractvalue { ptr, i32 } %933, 1
  store i32 %935, ptr %28, align 4
  br label %950

936:                                              ; preds = %925
  %937 = landingpad { ptr, i32 }
          cleanup
  %938 = extractvalue { ptr, i32 } %937, 0
  store ptr %938, ptr %27, align 8
  %939 = extractvalue { ptr, i32 } %937, 1
  store i32 %939, ptr %28, align 4
  br label %949

940:                                              ; preds = %929
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %27, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %28, align 4
  br label %948

944:                                              ; preds = %931, %930
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %27, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %948

948:                                              ; preds = %944, %940
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  br label %949

949:                                              ; preds = %948, %936
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  br label %950

950:                                              ; preds = %949, %932
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  %951 = load i1, ptr %86, align 1
  br i1 %951, label %952, label %953

952:                                              ; preds = %950
  call void @__cxa_free_exception(ptr %924) #6
  br label %953

953:                                              ; preds = %952, %950
  br label %986

954:                                              ; preds = %918
  store i8 1, ptr %21, align 1, !tbaa !24
  br label %955

955:                                              ; preds = %954, %917
  %956 = load i8, ptr %21, align 1, !tbaa !24, !range !35, !noundef !36
  %957 = trunc i8 %956 to i1
  br i1 %957, label %958, label %959

958:                                              ; preds = %955
  store i32 5, ptr %20, align 4
  br label %980

959:                                              ; preds = %955
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #6
  store i64 0, ptr %87, align 8, !tbaa !9
  br label %960

960:                                              ; preds = %976, %959
  %961 = load i64, ptr %87, align 8, !tbaa !9
  %962 = load i64, ptr %12, align 8, !tbaa !9
  %963 = icmp slt i64 %961, %962
  br i1 %963, label %965, label %964

964:                                              ; preds = %960
  store i32 14, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #6
  br label %979

965:                                              ; preds = %960
  %966 = load double, ptr %22, align 8, !tbaa !20
  %967 = load ptr, ptr %16, align 8, !tbaa !5
  %968 = load i64, ptr %87, align 8, !tbaa !9
  %969 = load i64, ptr %11, align 8, !tbaa !9
  %970 = mul nsw i64 %968, %969
  %971 = load i64, ptr %10, align 8, !tbaa !9
  %972 = add nsw i64 %970, %971
  %973 = getelementptr inbounds double, ptr %967, i64 %972
  %974 = load double, ptr %973, align 8, !tbaa !20
  %975 = fmul double %974, %966
  store double %975, ptr %973, align 8, !tbaa !20
  br label %976

976:                                              ; preds = %965
  %977 = load i64, ptr %87, align 8, !tbaa !9
  %978 = add nsw i64 %977, 1
  store i64 %978, ptr %87, align 8, !tbaa !9
  br label %960, !llvm.loop !37

979:                                              ; preds = %964
  store i32 0, ptr %20, align 4
  br label %980

980:                                              ; preds = %979, %958, %260
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  %981 = load i32, ptr %20, align 4
  switch i32 %981, label %987 [
    i32 0, label %982
    i32 7, label %983
  ]

982:                                              ; preds = %980
  br label %983

983:                                              ; preds = %982, %980
  %984 = load i64, ptr %19, align 8, !tbaa !9
  %985 = add nsw i64 %984, 1
  store i64 %985, ptr %19, align 8, !tbaa !9
  br label %246, !llvm.loop !38

986:                                              ; preds = %953, %884, %840, %787, %731, %674, %606, %537, %493, %440, %384, %327
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  br label %1354

987:                                              ; preds = %980, %250
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %988

988:                                              ; preds = %987
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  br label %1353

989:                                              ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #6
  %990 = load i64, ptr %6, align 8, !tbaa !9
  %991 = load ptr, ptr %5, align 8, !tbaa !5
  %992 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %991, i32 0, i32 4
  %993 = load ptr, ptr %992, align 8, !tbaa !11
  %994 = load i64, ptr %993, align 8, !tbaa !9
  %995 = load ptr, ptr %5, align 8, !tbaa !5
  %996 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %995, i32 0, i32 6
  %997 = load ptr, ptr %996, align 8, !tbaa !13
  %998 = load i64, ptr %997, align 8, !tbaa !9
  %999 = mul nsw i64 %994, %998
  %1000 = sub nsw i64 %990, %999
  store i64 %1000, ptr %88, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #6
  %1001 = load ptr, ptr %5, align 8, !tbaa !5
  %1002 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1001, i32 0, i32 2
  %1003 = load ptr, ptr %1002, align 8, !tbaa !16
  %1004 = load ptr, ptr %1003, align 8, !tbaa !5
  %1005 = load i64, ptr %88, align 8, !tbaa !9
  %1006 = load ptr, ptr %5, align 8, !tbaa !5
  %1007 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1006, i32 0, i32 6
  %1008 = load ptr, ptr %1007, align 8, !tbaa !13
  %1009 = load i64, ptr %1008, align 8, !tbaa !9
  %1010 = load ptr, ptr %5, align 8, !tbaa !5
  %1011 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1010, i32 0, i32 7
  %1012 = load ptr, ptr %1011, align 8, !tbaa !17
  %1013 = load i64, ptr %1012, align 8, !tbaa !9
  %1014 = add nsw i64 %1009, %1013
  %1015 = load ptr, ptr %5, align 8, !tbaa !5
  %1016 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1015, i32 0, i32 6
  %1017 = load ptr, ptr %1016, align 8, !tbaa !13
  %1018 = load i64, ptr %1017, align 8, !tbaa !9
  %1019 = load ptr, ptr %5, align 8, !tbaa !5
  %1020 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1019, i32 0, i32 8
  %1021 = load ptr, ptr %1020, align 8, !tbaa !15
  %1022 = load i64, ptr %1021, align 8, !tbaa !9
  %1023 = mul nsw i64 %1018, %1022
  %1024 = mul nsw i64 %1023, 3
  %1025 = add nsw i64 %1014, %1024
  %1026 = mul nsw i64 %1005, %1025
  %1027 = getelementptr inbounds double, ptr %1004, i64 %1026
  store ptr %1027, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #6
  %1028 = load ptr, ptr %5, align 8, !tbaa !5
  %1029 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1028, i32 0, i32 9
  %1030 = load ptr, ptr %1029, align 8, !tbaa !39
  %1031 = load ptr, ptr %1030, align 8, !tbaa !5
  %1032 = load i64, ptr %88, align 8, !tbaa !9
  %1033 = load ptr, ptr %5, align 8, !tbaa !5
  %1034 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1033, i32 0, i32 5
  %1035 = load ptr, ptr %1034, align 8, !tbaa !14
  %1036 = load i64, ptr %1035, align 8, !tbaa !9
  %1037 = mul nsw i64 %1032, %1036
  %1038 = getelementptr inbounds double, ptr %1031, i64 %1037
  store ptr %1038, ptr %90, align 8, !tbaa !5
  %1039 = load ptr, ptr %8, align 8, !tbaa !5
  %1040 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1039, i32 0, i32 0
  %1041 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %1040)
  %1042 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1041, i32 0, i32 4
  %1043 = load ptr, ptr %1042, align 8, !tbaa !19
  %1044 = load ptr, ptr %89, align 8, !tbaa !5
  %1045 = load ptr, ptr %5, align 8, !tbaa !5
  %1046 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1045, i32 0, i32 6
  %1047 = load ptr, ptr %1046, align 8, !tbaa !13
  %1048 = load i64, ptr %1047, align 8, !tbaa !9
  %1049 = mul i64 %1048, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %1043, ptr align 8 %1044, i64 %1049, i1 false)
  %1050 = load ptr, ptr %5, align 8, !tbaa !5
  %1051 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1050, i32 0, i32 7
  %1052 = load ptr, ptr %1051, align 8, !tbaa !17
  %1053 = load i64, ptr %1052, align 8, !tbaa !9
  %1054 = icmp sgt i64 %1053, 0
  br i1 %1054, label %1055, label %1072

1055:                                             ; preds = %989
  %1056 = load ptr, ptr %8, align 8, !tbaa !5
  %1057 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1056, i32 0, i32 1
  %1058 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %1057)
  %1059 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1058, i32 0, i32 4
  %1060 = load ptr, ptr %1059, align 8, !tbaa !19
  %1061 = load ptr, ptr %89, align 8, !tbaa !5
  %1062 = load ptr, ptr %5, align 8, !tbaa !5
  %1063 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1062, i32 0, i32 6
  %1064 = load ptr, ptr %1063, align 8, !tbaa !13
  %1065 = load i64, ptr %1064, align 8, !tbaa !9
  %1066 = getelementptr inbounds double, ptr %1061, i64 %1065
  %1067 = load ptr, ptr %5, align 8, !tbaa !5
  %1068 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1067, i32 0, i32 7
  %1069 = load ptr, ptr %1068, align 8, !tbaa !17
  %1070 = load i64, ptr %1069, align 8, !tbaa !9
  %1071 = mul i64 %1070, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %1060, ptr align 8 %1066, i64 %1071, i1 false)
  br label %1072

1072:                                             ; preds = %1055, %989
  %1073 = load ptr, ptr %7, align 8, !tbaa !5
  %1074 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %1073, i32 0, i32 0
  %1075 = load ptr, ptr %1074, align 8, !tbaa !26
  %1076 = icmp ne ptr %1075, null
  br i1 %1076, label %1077, label %1130

1077:                                             ; preds = %1072
  %1078 = load ptr, ptr %5, align 8, !tbaa !5
  %1079 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1078, i32 0, i32 7
  %1080 = load ptr, ptr %1079, align 8, !tbaa !17
  %1081 = load i64, ptr %1080, align 8, !tbaa !9
  %1082 = icmp eq i64 %1081, 0
  br i1 %1082, label %1083, label %1089

1083:                                             ; preds = %1077
  %1084 = load ptr, ptr %5, align 8, !tbaa !5
  %1085 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1084, i32 0, i32 5
  %1086 = load ptr, ptr %1085, align 8, !tbaa !14
  %1087 = load i64, ptr %1086, align 8, !tbaa !9
  %1088 = icmp eq i64 %1087, 1
  br i1 %1088, label %1120, label %1089

1089:                                             ; preds = %1083, %1077
  store i1 true, ptr %95, align 1
  %1090 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %1091 unwind label %1098

1091:                                             ; preds = %1089
  %1092 = load ptr, ptr %5, align 8, !tbaa !5
  %1093 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1092, i32 0, i32 0
  %1094 = load ptr, ptr %1093, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef %1094)
          to label %1095 unwind label %1102

1095:                                             ; preds = %1091
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.128)
          to label %1096 unwind label %1106

1096:                                             ; preds = %1095
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1090, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %1097 unwind label %1110

1097:                                             ; preds = %1096
  store i1 false, ptr %95, align 1
  invoke void @__cxa_throw(ptr %1090, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %1110

1098:                                             ; preds = %1089
  %1099 = landingpad { ptr, i32 }
          cleanup
  %1100 = extractvalue { ptr, i32 } %1099, 0
  store ptr %1100, ptr %27, align 8
  %1101 = extractvalue { ptr, i32 } %1099, 1
  store i32 %1101, ptr %28, align 4
  br label %1116

1102:                                             ; preds = %1091
  %1103 = landingpad { ptr, i32 }
          cleanup
  %1104 = extractvalue { ptr, i32 } %1103, 0
  store ptr %1104, ptr %27, align 8
  %1105 = extractvalue { ptr, i32 } %1103, 1
  store i32 %1105, ptr %28, align 4
  br label %1115

1106:                                             ; preds = %1095
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %27, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %28, align 4
  br label %1114

1110:                                             ; preds = %1097, %1096
  %1111 = landingpad { ptr, i32 }
          cleanup
  %1112 = extractvalue { ptr, i32 } %1111, 0
  store ptr %1112, ptr %27, align 8
  %1113 = extractvalue { ptr, i32 } %1111, 1
  store i32 %1113, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #6
  br label %1114

1114:                                             ; preds = %1110, %1106
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #6
  br label %1115

1115:                                             ; preds = %1114, %1102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %1116

1116:                                             ; preds = %1115, %1098
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #6
  %1117 = load i1, ptr %95, align 1
  br i1 %1117, label %1118, label %1119

1118:                                             ; preds = %1116
  call void @__cxa_free_exception(ptr %1090) #6
  br label %1119

1119:                                             ; preds = %1118, %1116
  br label %1352

1120:                                             ; preds = %1083
  %1121 = load ptr, ptr %7, align 8, !tbaa !5
  %1122 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %1121, i32 0, i32 0
  %1123 = load ptr, ptr %1122, align 8, !tbaa !26
  %1124 = load ptr, ptr %8, align 8, !tbaa !5
  %1125 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1124, i32 0, i32 0
  %1126 = load ptr, ptr %90, align 8, !tbaa !5
  %1127 = load ptr, ptr %5, align 8, !tbaa !5
  %1128 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1127, i32 0, i32 1
  %1129 = load ptr, ptr %1128, align 8, !tbaa !29
  call void %1123(ptr noundef nonnull align 8 dereferenceable(81) %1125, ptr noundef nonnull align 8 dereferenceable(8) %1126, ptr noundef %1129)
  store i32 1, ptr %20, align 4
  br label %1351

1130:                                             ; preds = %1072
  %1131 = load ptr, ptr %7, align 8, !tbaa !5
  %1132 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %1131, i32 0, i32 5
  %1133 = load ptr, ptr %1132, align 8, !tbaa !30
  %1134 = icmp ne ptr %1133, null
  br i1 %1134, label %1135, label %1190

1135:                                             ; preds = %1130
  %1136 = load ptr, ptr %5, align 8, !tbaa !5
  %1137 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1136, i32 0, i32 7
  %1138 = load ptr, ptr %1137, align 8, !tbaa !17
  %1139 = load i64, ptr %1138, align 8, !tbaa !9
  %1140 = icmp sgt i64 %1139, 0
  br i1 %1140, label %1141, label %1147

1141:                                             ; preds = %1135
  %1142 = load ptr, ptr %5, align 8, !tbaa !5
  %1143 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1142, i32 0, i32 5
  %1144 = load ptr, ptr %1143, align 8, !tbaa !14
  %1145 = load i64, ptr %1144, align 8, !tbaa !9
  %1146 = icmp eq i64 %1145, 1
  br i1 %1146, label %1178, label %1147

1147:                                             ; preds = %1141, %1135
  store i1 true, ptr %100, align 1
  %1148 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %1149 unwind label %1156

1149:                                             ; preds = %1147
  %1150 = load ptr, ptr %5, align 8, !tbaa !5
  %1151 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1150, i32 0, i32 0
  %1152 = load ptr, ptr %1151, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef %1152)
          to label %1153 unwind label %1160

1153:                                             ; preds = %1149
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.128)
          to label %1154 unwind label %1164

1154:                                             ; preds = %1153
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1148, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %1155 unwind label %1168

1155:                                             ; preds = %1154
  store i1 false, ptr %100, align 1
  invoke void @__cxa_throw(ptr %1148, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %1168

1156:                                             ; preds = %1147
  %1157 = landingpad { ptr, i32 }
          cleanup
  %1158 = extractvalue { ptr, i32 } %1157, 0
  store ptr %1158, ptr %27, align 8
  %1159 = extractvalue { ptr, i32 } %1157, 1
  store i32 %1159, ptr %28, align 4
  br label %1174

1160:                                             ; preds = %1149
  %1161 = landingpad { ptr, i32 }
          cleanup
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %27, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %28, align 4
  br label %1173

1164:                                             ; preds = %1153
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %27, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %28, align 4
  br label %1172

1168:                                             ; preds = %1155, %1154
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %27, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #6
  br label %1172

1172:                                             ; preds = %1168, %1164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  br label %1173

1173:                                             ; preds = %1172, %1160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  br label %1174

1174:                                             ; preds = %1173, %1156
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #6
  %1175 = load i1, ptr %100, align 1
  br i1 %1175, label %1176, label %1177

1176:                                             ; preds = %1174
  call void @__cxa_free_exception(ptr %1148) #6
  br label %1177

1177:                                             ; preds = %1176, %1174
  br label %1352

1178:                                             ; preds = %1141
  %1179 = load ptr, ptr %7, align 8, !tbaa !5
  %1180 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %1179, i32 0, i32 5
  %1181 = load ptr, ptr %1180, align 8, !tbaa !30
  %1182 = load ptr, ptr %8, align 8, !tbaa !5
  %1183 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1182, i32 0, i32 0
  %1184 = load ptr, ptr %8, align 8, !tbaa !5
  %1185 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1184, i32 0, i32 1
  %1186 = load ptr, ptr %90, align 8, !tbaa !5
  %1187 = load ptr, ptr %5, align 8, !tbaa !5
  %1188 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1187, i32 0, i32 1
  %1189 = load ptr, ptr %1188, align 8, !tbaa !29
  call void %1181(ptr noundef nonnull align 8 dereferenceable(81) %1183, ptr noundef nonnull align 8 dereferenceable(81) %1185, ptr noundef nonnull align 8 dereferenceable(8) %1186, ptr noundef %1189)
  store i32 1, ptr %20, align 4
  br label %1351

1190:                                             ; preds = %1130
  %1191 = load ptr, ptr %7, align 8, !tbaa !5
  %1192 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %1191, i32 0, i32 2
  %1193 = load ptr, ptr %1192, align 8, !tbaa !31
  %1194 = icmp ne ptr %1193, null
  br i1 %1194, label %1195, label %1254

1195:                                             ; preds = %1190
  %1196 = load ptr, ptr %5, align 8, !tbaa !5
  %1197 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1196, i32 0, i32 7
  %1198 = load ptr, ptr %1197, align 8, !tbaa !17
  %1199 = load i64, ptr %1198, align 8, !tbaa !9
  %1200 = icmp eq i64 %1199, 0
  br i1 %1200, label %1232, label %1201

1201:                                             ; preds = %1195
  store i1 true, ptr %105, align 1
  %1202 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %104) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %1203 unwind label %1210

1203:                                             ; preds = %1201
  %1204 = load ptr, ptr %5, align 8, !tbaa !5
  %1205 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1204, i32 0, i32 0
  %1206 = load ptr, ptr %1205, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef %1206)
          to label %1207 unwind label %1214

1207:                                             ; preds = %1203
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef @.str.128)
          to label %1208 unwind label %1218

1208:                                             ; preds = %1207
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1202, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %1209 unwind label %1222

1209:                                             ; preds = %1208
  store i1 false, ptr %105, align 1
  invoke void @__cxa_throw(ptr %1202, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %1222

1210:                                             ; preds = %1201
  %1211 = landingpad { ptr, i32 }
          cleanup
  %1212 = extractvalue { ptr, i32 } %1211, 0
  store ptr %1212, ptr %27, align 8
  %1213 = extractvalue { ptr, i32 } %1211, 1
  store i32 %1213, ptr %28, align 4
  br label %1228

1214:                                             ; preds = %1203
  %1215 = landingpad { ptr, i32 }
          cleanup
  %1216 = extractvalue { ptr, i32 } %1215, 0
  store ptr %1216, ptr %27, align 8
  %1217 = extractvalue { ptr, i32 } %1215, 1
  store i32 %1217, ptr %28, align 4
  br label %1227

1218:                                             ; preds = %1207
  %1219 = landingpad { ptr, i32 }
          cleanup
  %1220 = extractvalue { ptr, i32 } %1219, 0
  store ptr %1220, ptr %27, align 8
  %1221 = extractvalue { ptr, i32 } %1219, 1
  store i32 %1221, ptr %28, align 4
  br label %1226

1222:                                             ; preds = %1209, %1208
  %1223 = landingpad { ptr, i32 }
          cleanup
  %1224 = extractvalue { ptr, i32 } %1223, 0
  store ptr %1224, ptr %27, align 8
  %1225 = extractvalue { ptr, i32 } %1223, 1
  store i32 %1225, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  br label %1226

1226:                                             ; preds = %1222, %1218
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #6
  br label %1227

1227:                                             ; preds = %1226, %1214
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  br label %1228

1228:                                             ; preds = %1227, %1210
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #6
  %1229 = load i1, ptr %105, align 1
  br i1 %1229, label %1230, label %1231

1230:                                             ; preds = %1228
  call void @__cxa_free_exception(ptr %1202) #6
  br label %1231

1231:                                             ; preds = %1230, %1228
  br label %1352

1232:                                             ; preds = %1195
  %1233 = load ptr, ptr %7, align 8, !tbaa !5
  %1234 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %1233, i32 0, i32 2
  %1235 = load ptr, ptr %1234, align 8, !tbaa !31
  %1236 = load ptr, ptr %8, align 8, !tbaa !5
  %1237 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1236, i32 0, i32 0
  %1238 = load ptr, ptr %8, align 8, !tbaa !5
  %1239 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1238, i32 0, i32 2
  %1240 = load ptr, ptr %5, align 8, !tbaa !5
  %1241 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1240, i32 0, i32 1
  %1242 = load ptr, ptr %1241, align 8, !tbaa !29
  call void %1235(ptr noundef nonnull align 8 dereferenceable(81) %1237, ptr noundef nonnull align 8 dereferenceable(81) %1239, ptr noundef %1242)
  %1243 = load ptr, ptr %90, align 8, !tbaa !5
  %1244 = load ptr, ptr %8, align 8, !tbaa !5
  %1245 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1244, i32 0, i32 2
  %1246 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %1245)
  %1247 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1246, i32 0, i32 4
  %1248 = load ptr, ptr %1247, align 8, !tbaa !19
  %1249 = load ptr, ptr %5, align 8, !tbaa !5
  %1250 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1249, i32 0, i32 5
  %1251 = load ptr, ptr %1250, align 8, !tbaa !14
  %1252 = load i64, ptr %1251, align 8, !tbaa !9
  %1253 = mul i64 %1252, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %1243, ptr align 8 %1248, i64 %1253, i1 false)
  store i32 1, ptr %20, align 4
  br label %1351

1254:                                             ; preds = %1190
  %1255 = load ptr, ptr %7, align 8, !tbaa !5
  %1256 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %1255, i32 0, i32 7
  %1257 = load ptr, ptr %1256, align 8, !tbaa !32
  %1258 = icmp ne ptr %1257, null
  br i1 %1258, label %1259, label %1320

1259:                                             ; preds = %1254
  %1260 = load ptr, ptr %5, align 8, !tbaa !5
  %1261 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1260, i32 0, i32 7
  %1262 = load ptr, ptr %1261, align 8, !tbaa !17
  %1263 = load i64, ptr %1262, align 8, !tbaa !9
  %1264 = icmp sgt i64 %1263, 0
  br i1 %1264, label %1296, label %1265

1265:                                             ; preds = %1259
  store i1 true, ptr %110, align 1
  %1266 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %1267 unwind label %1274

1267:                                             ; preds = %1265
  %1268 = load ptr, ptr %5, align 8, !tbaa !5
  %1269 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1268, i32 0, i32 0
  %1270 = load ptr, ptr %1269, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef %1270)
          to label %1271 unwind label %1278

1271:                                             ; preds = %1267
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef @.str.128)
          to label %1272 unwind label %1282

1272:                                             ; preds = %1271
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1266, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %1273 unwind label %1286

1273:                                             ; preds = %1272
  store i1 false, ptr %110, align 1
  invoke void @__cxa_throw(ptr %1266, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %1286

1274:                                             ; preds = %1265
  %1275 = landingpad { ptr, i32 }
          cleanup
  %1276 = extractvalue { ptr, i32 } %1275, 0
  store ptr %1276, ptr %27, align 8
  %1277 = extractvalue { ptr, i32 } %1275, 1
  store i32 %1277, ptr %28, align 4
  br label %1292

1278:                                             ; preds = %1267
  %1279 = landingpad { ptr, i32 }
          cleanup
  %1280 = extractvalue { ptr, i32 } %1279, 0
  store ptr %1280, ptr %27, align 8
  %1281 = extractvalue { ptr, i32 } %1279, 1
  store i32 %1281, ptr %28, align 4
  br label %1291

1282:                                             ; preds = %1271
  %1283 = landingpad { ptr, i32 }
          cleanup
  %1284 = extractvalue { ptr, i32 } %1283, 0
  store ptr %1284, ptr %27, align 8
  %1285 = extractvalue { ptr, i32 } %1283, 1
  store i32 %1285, ptr %28, align 4
  br label %1290

1286:                                             ; preds = %1273, %1272
  %1287 = landingpad { ptr, i32 }
          cleanup
  %1288 = extractvalue { ptr, i32 } %1287, 0
  store ptr %1288, ptr %27, align 8
  %1289 = extractvalue { ptr, i32 } %1287, 1
  store i32 %1289, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #6
  br label %1290

1290:                                             ; preds = %1286, %1282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  br label %1291

1291:                                             ; preds = %1290, %1278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #6
  br label %1292

1292:                                             ; preds = %1291, %1274
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #6
  %1293 = load i1, ptr %110, align 1
  br i1 %1293, label %1294, label %1295

1294:                                             ; preds = %1292
  call void @__cxa_free_exception(ptr %1266) #6
  br label %1295

1295:                                             ; preds = %1294, %1292
  br label %1352

1296:                                             ; preds = %1259
  %1297 = load ptr, ptr %7, align 8, !tbaa !5
  %1298 = getelementptr inbounds %"class.alglib_impl::rcommv2_callbacks", ptr %1297, i32 0, i32 7
  %1299 = load ptr, ptr %1298, align 8, !tbaa !32
  %1300 = load ptr, ptr %8, align 8, !tbaa !5
  %1301 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1300, i32 0, i32 0
  %1302 = load ptr, ptr %8, align 8, !tbaa !5
  %1303 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1302, i32 0, i32 1
  %1304 = load ptr, ptr %8, align 8, !tbaa !5
  %1305 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1304, i32 0, i32 2
  %1306 = load ptr, ptr %5, align 8, !tbaa !5
  %1307 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1306, i32 0, i32 1
  %1308 = load ptr, ptr %1307, align 8, !tbaa !29
  call void %1299(ptr noundef nonnull align 8 dereferenceable(81) %1301, ptr noundef nonnull align 8 dereferenceable(81) %1303, ptr noundef nonnull align 8 dereferenceable(81) %1305, ptr noundef %1308)
  %1309 = load ptr, ptr %90, align 8, !tbaa !5
  %1310 = load ptr, ptr %8, align 8, !tbaa !5
  %1311 = getelementptr inbounds %"class.alglib_impl::rcommv2_buffers", ptr %1310, i32 0, i32 2
  %1312 = call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %1311)
  %1313 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1312, i32 0, i32 4
  %1314 = load ptr, ptr %1313, align 8, !tbaa !19
  %1315 = load ptr, ptr %5, align 8, !tbaa !5
  %1316 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1315, i32 0, i32 5
  %1317 = load ptr, ptr %1316, align 8, !tbaa !14
  %1318 = load i64, ptr %1317, align 8, !tbaa !9
  %1319 = mul i64 %1318, 8
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %1309, ptr align 8 %1314, i64 %1319, i1 false)
  store i32 1, ptr %20, align 4
  br label %1351

1320:                                             ; preds = %1254
  store i1 true, ptr %115, align 1
  %1321 = call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %1322 unwind label %1329

1322:                                             ; preds = %1320
  %1323 = load ptr, ptr %5, align 8, !tbaa !5
  %1324 = getelementptr inbounds %"class.alglib_impl::rcommv2_request", ptr %1323, i32 0, i32 0
  %1325 = load ptr, ptr %1324, align 8, !tbaa !28
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef %1325)
          to label %1326 unwind label %1333

1326:                                             ; preds = %1322
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %111, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.132)
          to label %1327 unwind label %1337

1327:                                             ; preds = %1326
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1321, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1328 unwind label %1341

1328:                                             ; preds = %1327
  store i1 false, ptr %115, align 1
  invoke void @__cxa_throw(ptr %1321, ptr @_ZTIN6alglib8ap_errorE, ptr @_ZN6alglib8ap_errorD2Ev) #7
          to label %1359 unwind label %1341

1329:                                             ; preds = %1320
  %1330 = landingpad { ptr, i32 }
          cleanup
  %1331 = extractvalue { ptr, i32 } %1330, 0
  store ptr %1331, ptr %27, align 8
  %1332 = extractvalue { ptr, i32 } %1330, 1
  store i32 %1332, ptr %28, align 4
  br label %1347

1333:                                             ; preds = %1322
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %27, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %28, align 4
  br label %1346

1337:                                             ; preds = %1326
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %27, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %28, align 4
  br label %1345

1341:                                             ; preds = %1328, %1327
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %27, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  br label %1345

1345:                                             ; preds = %1341, %1337
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #6
  br label %1346

1346:                                             ; preds = %1345, %1333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #6
  br label %1347

1347:                                             ; preds = %1346, %1329
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #6
  %1348 = load i1, ptr %115, align 1
  br i1 %1348, label %1349, label %1350

1349:                                             ; preds = %1347
  call void @__cxa_free_exception(ptr %1321) #6
  br label %1350

1350:                                             ; preds = %1349, %1347
  br label %1352

1351:                                             ; preds = %1296, %1232, %1178, %1120
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #6
  br label %1353

1352:                                             ; preds = %1350, %1295, %1231, %1177, %1119
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #6
  br label %1354

1353:                                             ; preds = %1351, %988
  ret void

1354:                                             ; preds = %1352, %986
  %1355 = load ptr, ptr %27, align 8
  %1356 = load i32, ptr %28, align 4
  %1357 = insertvalue { ptr, i32 } poison, ptr %1355, 0
  %1358 = insertvalue { ptr, i32 } %1357, i32 %1356, 1
  resume { ptr, i32 } %1358

1359:                                             ; preds = %1328, %1273, %1209, %1155, %1097, %931, %862, %818, %765, %709, %652, %584, %515, %471, %418, %362, %305
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 = { 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 #3 = { 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 #4 = { 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 #5 = { 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 #6 = { nounwind }
attributes #7 = { 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, !25, i64 0}
!25 = !{!"bool", !7, i64 0}
!26 = !{!27, !6, i64 0}
!27 = !{!"_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}
!28 = !{!12, !6, i64 0}
!29 = !{!12, !6, i64 8}
!30 = !{!27, !6, i64 40}
!31 = !{!27, !6, i64 16}
!32 = !{!27, !6, i64 56}
!33 = distinct !{!33, !23}
!34 = distinct !{!34, !23}
!35 = !{i8 0, i8 2}
!36 = !{}
!37 = distinct !{!37, !23}
!38 = distinct !{!38, !23}
!39 = !{!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
@.str.133 = external hidden unnamed_addr constant [82 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

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 #2 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 #3 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 #2 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 #4 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 #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81)) local_unnamed_addr #2 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 #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl25process_v2request_5phase0ERNS_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 #4 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 = 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 %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", 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 = getelementptr inbounds i8, ptr %0, i64 32
  %74 = load ptr, ptr %73, align 8, !tbaa !5
  %75 = load i64, ptr %74, align 8, !tbaa !10
  %76 = getelementptr inbounds i8, ptr %0, i64 48
  %77 = load ptr, ptr %76, align 8, !tbaa !12
  %78 = load i64, ptr %77, align 8, !tbaa !10
  %79 = mul nsw i64 %78, %75
  %80 = icmp sgt i64 %79, %1
  br i1 %80, label %81, label %480

81:                                               ; preds = %4
  %82 = sdiv i64 %1, %78
  %83 = srem i64 %1, %78
  %84 = getelementptr inbounds i8, ptr %0, i64 40
  %85 = load ptr, ptr %84, align 8, !tbaa !13
  %86 = load i64, ptr %85, align 8, !tbaa !10
  %87 = getelementptr inbounds i8, ptr %0, i64 64
  %88 = load ptr, ptr %87, align 8, !tbaa !14
  %89 = load i64, ptr %88, align 8, !tbaa !10
  %90 = getelementptr inbounds i8, ptr %0, i64 16
  %91 = load ptr, ptr %90, align 8, !tbaa !15
  %92 = load ptr, ptr %91, align 8, !tbaa !16
  %93 = getelementptr inbounds i8, ptr %0, i64 56
  %94 = load ptr, ptr %93, align 8, !tbaa !17
  %95 = load i64, ptr %94, align 8, !tbaa !10
  %96 = mul i64 %78, 3
  %97 = mul i64 %96, %89
  %98 = add i64 %97, %78
  %99 = add i64 %98, %95
  %100 = mul nsw i64 %99, %82
  %101 = getelementptr inbounds double, ptr %92, i64 %100
  %102 = getelementptr inbounds double, ptr %101, i64 %78
  %103 = getelementptr inbounds double, ptr %102, i64 %95
  %104 = mul i64 %83, 24
  %.idx = mul i64 %104, %89
  %105 = getelementptr inbounds i8, ptr %103, i64 %.idx
  %106 = getelementptr inbounds i8, ptr %0, i64 80
  %107 = load ptr, ptr %106, align 8, !tbaa !18
  %108 = load ptr, ptr %107, align 8, !tbaa !16
  %109 = mul nsw i64 %82, %78
  %110 = mul nsw i64 %109, %86
  %111 = getelementptr inbounds double, ptr %108, i64 %110
  %112 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %3)
  %113 = getelementptr inbounds i8, ptr %112, i64 56
  %114 = load ptr, ptr %113, align 8, !tbaa !19
  %115 = shl i64 %78, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %114, ptr align 8 %101, i64 %115, i1 false)
  %116 = load ptr, ptr %93, align 8, !tbaa !17
  %117 = load i64, ptr %116, align 8, !tbaa !10
  %118 = icmp sgt i64 %117, 0
  br i1 %118, label %119, label %127

119:                                              ; preds = %81
  %120 = getelementptr inbounds i8, ptr %3, i64 88
  %121 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %120)
  %122 = getelementptr inbounds i8, ptr %121, i64 56
  %123 = load ptr, ptr %122, align 8, !tbaa !19
  %124 = load ptr, ptr %93, align 8, !tbaa !17
  %125 = load i64, ptr %124, align 8, !tbaa !10
  %126 = shl i64 %125, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %123, ptr nonnull align 8 %102, i64 %126, i1 false)
  br label %127

127:                                              ; preds = %119, %81
  %128 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %83)
  %129 = load double, ptr %128, align 8, !tbaa !20
  %invariant.gep = getelementptr double, ptr %111, i64 %83
  %130 = icmp sgt i64 %86, 0
  br i1 %130, label %.lr.ph.preheader, label %.preheader554

.lr.ph.preheader:                                 ; preds = %127
  %min.iters.check = icmp ugt i64 %86, 3
  %ident.check.not = icmp eq i64 %78, 1
  %or.cond641 = and i1 %min.iters.check, %ident.check.not
  br i1 %or.cond641, label %vector.ph, label %.lr.ph.preheader656

.lr.ph.preheader656:                              ; preds = %middle.block, %.lr.ph.preheader
  %.0270567.ph = phi i64 [ 0, %.lr.ph.preheader ], [ %n.vec, %middle.block ]
  %xtraiter = and i64 %86, 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.preheader656, %.lr.ph.prol
  %.0270567.prol = phi i64 [ %132, %.lr.ph.prol ], [ %.0270567.ph, %.lr.ph.preheader656 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader656 ]
  %131 = mul nsw i64 %.0270567.prol, %78
  %gep.prol = getelementptr double, ptr %invariant.gep, i64 %131
  store double 0.000000e+00, ptr %gep.prol, align 8, !tbaa !20
  %132 = add nuw nsw i64 %.0270567.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.preheader656
  %.0270567.unr = phi i64 [ %.0270567.ph, %.lr.ph.preheader656 ], [ %132, %.lr.ph.prol ]
  %133 = sub nsw i64 %.0270567.ph, %86
  %134 = icmp ugt i64 %133, -4
  br i1 %134, label %.preheader554, label %.lr.ph

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

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

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %86, %n.vec
  br i1 %cmp.n, label %.preheader554, label %.lr.ph.preheader656

.preheader554:                                    ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block, %127
  %138 = icmp sgt i64 %89, 0
  br i1 %138, label %.lr.ph581, label %.critedge.thread

.lr.ph581:                                        ; preds = %.preheader554
  %139 = getelementptr inbounds double, ptr %101, i64 %83
  %140 = icmp eq i64 %86, 1
  %141 = getelementptr inbounds i8, ptr %3, i64 176
  %142 = getelementptr inbounds i8, ptr %0, i64 8
  %143 = getelementptr inbounds i8, ptr %2, i64 40
  %144 = getelementptr inbounds i8, ptr %3, i64 88
  %145 = getelementptr inbounds i8, ptr %2, i64 16
  %146 = getelementptr inbounds i8, ptr %2, i64 56
  %147 = add nsw i64 %89, -1
  %min.iters.check631 = icmp ugt i64 %86, 3
  %ident.check628.not = icmp eq i64 %78, 1
  %or.cond642 = and i1 %min.iters.check631, %ident.check628.not
  %n.vec634 = and i64 %86, 9223372036854775804
  %cmp.n640 = icmp eq i64 %86, %n.vec634
  %xtraiter657 = and i64 %86, 3
  %lcmp.mod658.not = icmp eq i64 %xtraiter657, 0
  br label %.backedge

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %.0270567 = phi i64 [ %155, %.lr.ph ], [ %.0270567.unr, %.lr.ph.prol.loopexit ]
  %148 = mul nsw i64 %.0270567, %78
  %gep = getelementptr double, ptr %invariant.gep, i64 %148
  store double 0.000000e+00, ptr %gep, align 8, !tbaa !20
  %149 = add nuw nsw i64 %.0270567, 1
  %150 = mul nsw i64 %149, %78
  %gep.1 = getelementptr double, ptr %invariant.gep, i64 %150
  store double 0.000000e+00, ptr %gep.1, align 8, !tbaa !20
  %151 = add nuw nsw i64 %.0270567, 2
  %152 = mul nsw i64 %151, %78
  %gep.2 = getelementptr double, ptr %invariant.gep, i64 %152
  store double 0.000000e+00, ptr %gep.2, align 8, !tbaa !20
  %153 = add nuw nsw i64 %.0270567, 3
  %154 = mul nsw i64 %153, %78
  %gep.3 = getelementptr double, ptr %invariant.gep, i64 %154
  store double 0.000000e+00, ptr %gep.3, align 8, !tbaa !20
  %155 = add nuw nsw i64 %.0270567, 4
  %exitcond.not.3 = icmp eq i64 %155, %86
  br i1 %exitcond.not.3, label %.preheader554, label %.lr.ph, !llvm.loop !28

.backedge:                                        ; preds = %.backedge.backedge, %.lr.ph581
  %.0271580 = phi i64 [ 0, %.lr.ph581 ], [ %.0271580.be, %.backedge.backedge ]
  %.idx553 = mul i64 %.0271580, 24
  %156 = getelementptr inbounds i8, ptr %105, i64 %.idx553
  %157 = getelementptr inbounds i8, ptr %156, i64 16
  %158 = load double, ptr %157, align 8, !tbaa !20
  %159 = fcmp oeq double %158, 0.000000e+00
  br i1 %159, label %.critedge, label %160

160:                                              ; preds = %.backedge
  %161 = load double, ptr %156, align 8, !tbaa !20
  %162 = load double, ptr %139, align 8, !tbaa !20
  %163 = fcmp oeq double %161, %162
  br i1 %163, label %288, label %164

164:                                              ; preds = %160
  %165 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %83)
  store double %161, ptr %165, align 8, !tbaa !20
  %166 = load ptr, ptr %2, align 8, !tbaa !29
  %.not431 = icmp eq ptr %166, null
  br i1 %.not431, label %190, label %167

167:                                              ; preds = %164
  %168 = load ptr, ptr %93, align 8, !tbaa !17
  %169 = load i64, ptr %168, align 8, !tbaa !10
  %170 = icmp eq i64 %169, 0
  %or.cond = select i1 %170, i1 %140, i1 false
  br i1 %or.cond, label %187, label %171

171:                                              ; preds = %167
  %172 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  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 %173 unwind label %.thread

173:                                              ; preds = %171
  %174 = 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 %174)
          to label %175 unwind label %179

175:                                              ; preds = %173
  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 %176 unwind label %181

176:                                              ; preds = %175
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %177 unwind label %183

177:                                              ; preds = %176
  invoke void @__cxa_throw(ptr %172, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %183

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

179:                                              ; preds = %173
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %186

181:                                              ; preds = %175
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %185

183:                                              ; preds = %177, %176
  %.0320 = phi i1 [ false, %177 ], [ true, %176 ]
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %185

185:                                              ; preds = %183, %181
  %.pn451 = phi { ptr, i32 } [ %184, %183 ], [ %182, %181 ]
  %.1321 = phi i1 [ %.0320, %183 ], [ true, %181 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %186

186:                                              ; preds = %179, %185
  %.pn451.pn = phi { ptr, i32 } [ %.pn451, %185 ], [ %180, %179 ]
  %.2322 = phi i1 [ %.1321, %185 ], [ true, %179 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  br i1 %.2322, label %.sink.split, label %668

187:                                              ; preds = %167
  %188 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %141, i64 noundef 0)
  %189 = load ptr, ptr %142, align 8, !tbaa !32
  tail call void %166(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef %189)
  br label %.thread599

190:                                              ; preds = %164
  %191 = load ptr, ptr %143, align 8, !tbaa !33
  %.not432 = icmp eq ptr %191, null
  br i1 %.not432, label %215, label %192

192:                                              ; preds = %190
  %193 = load ptr, ptr %93, align 8, !tbaa !17
  %194 = load i64, ptr %193, align 8, !tbaa !10
  %195 = icmp sgt i64 %194, 0
  %or.cond3 = select i1 %195, i1 %140, i1 false
  br i1 %or.cond3, label %212, label %196

196:                                              ; preds = %192
  %197 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  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 %198 unwind label %.thread488

198:                                              ; preds = %196
  %199 = 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 %199)
          to label %200 unwind label %204

200:                                              ; preds = %198
  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 %201 unwind label %206

201:                                              ; preds = %200
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %202 unwind label %208

202:                                              ; preds = %201
  invoke void @__cxa_throw(ptr %197, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %208

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

204:                                              ; preds = %198
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %211

206:                                              ; preds = %200
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %210

208:                                              ; preds = %202, %201
  %.0316 = phi i1 [ false, %202 ], [ true, %201 ]
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %210

210:                                              ; preds = %208, %206
  %.pn447 = phi { ptr, i32 } [ %209, %208 ], [ %207, %206 ]
  %.1317 = phi i1 [ %.0316, %208 ], [ true, %206 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %211

211:                                              ; preds = %204, %210
  %.pn447.pn = phi { ptr, i32 } [ %.pn447, %210 ], [ %205, %204 ]
  %.2318 = phi i1 [ %.1317, %210 ], [ true, %204 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br i1 %.2318, label %.sink.split, label %668

212:                                              ; preds = %192
  %213 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %141, i64 noundef 0)
  %214 = load ptr, ptr %142, align 8, !tbaa !32
  tail call void %191(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %144, ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef %214)
  br label %.thread599

215:                                              ; preds = %190
  %216 = load ptr, ptr %145, align 8, !tbaa !34
  %.not433 = icmp eq ptr %216, null
  br i1 %.not433, label %239, label %217

217:                                              ; preds = %215
  %218 = load ptr, ptr %93, align 8, !tbaa !17
  %219 = load i64, ptr %218, align 8, !tbaa !10
  %220 = icmp eq i64 %219, 0
  br i1 %220, label %237, label %221

221:                                              ; preds = %217
  %222 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  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 %223 unwind label %.thread492

223:                                              ; preds = %221
  %224 = 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 %224)
          to label %225 unwind label %229

225:                                              ; preds = %223
  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 %226 unwind label %231

226:                                              ; preds = %225
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %227 unwind label %233

227:                                              ; preds = %226
  invoke void @__cxa_throw(ptr %222, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %233

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

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

231:                                              ; preds = %225
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %235

233:                                              ; preds = %227, %226
  %.0312 = phi i1 [ false, %227 ], [ true, %226 ]
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %235

235:                                              ; preds = %233, %231
  %.pn443 = phi { ptr, i32 } [ %234, %233 ], [ %232, %231 ]
  %.1313 = phi i1 [ %.0312, %233 ], [ true, %231 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %236

236:                                              ; preds = %229, %235
  %.pn443.pn = phi { ptr, i32 } [ %.pn443, %235 ], [ %230, %229 ]
  %.2314 = phi i1 [ %.1313, %235 ], [ true, %229 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  br i1 %.2314, label %.sink.split, label %668

237:                                              ; preds = %217
  %238 = load ptr, ptr %142, align 8, !tbaa !32
  tail call void %216(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %141, ptr noundef %238)
  br label %280

239:                                              ; preds = %215
  %240 = load ptr, ptr %146, align 8, !tbaa !35
  %.not434 = icmp eq ptr %240, null
  br i1 %.not434, label %263, label %241

241:                                              ; preds = %239
  %242 = load ptr, ptr %93, align 8, !tbaa !17
  %243 = load i64, ptr %242, align 8, !tbaa !10
  %244 = icmp sgt i64 %243, 0
  br i1 %244, label %261, label %245

245:                                              ; preds = %241
  %246 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  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 %247 unwind label %.thread496

247:                                              ; preds = %245
  %248 = 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 %248)
          to label %249 unwind label %253

249:                                              ; preds = %247
  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 %250 unwind label %255

250:                                              ; preds = %249
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %251 unwind label %257

251:                                              ; preds = %250
  invoke void @__cxa_throw(ptr %246, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %257

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

253:                                              ; preds = %247
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %260

255:                                              ; preds = %249
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %259

257:                                              ; preds = %251, %250
  %.0308 = phi i1 [ false, %251 ], [ true, %250 ]
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %259

259:                                              ; preds = %257, %255
  %.pn439 = phi { ptr, i32 } [ %258, %257 ], [ %256, %255 ]
  %.1309 = phi i1 [ %.0308, %257 ], [ true, %255 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %260

260:                                              ; preds = %253, %259
  %.pn439.pn = phi { ptr, i32 } [ %.pn439, %259 ], [ %254, %253 ]
  %.2310 = phi i1 [ %.1309, %259 ], [ true, %253 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  br i1 %.2310, label %.sink.split, label %668

261:                                              ; preds = %241
  %262 = load ptr, ptr %142, align 8, !tbaa !32
  tail call void %240(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %144, ptr noundef nonnull align 8 dereferenceable(81) %141, ptr noundef %262)
  br label %280

263:                                              ; preds = %239
  %264 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  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 %265 unwind label %.thread500

265:                                              ; preds = %263
  %266 = 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 %266)
          to label %267 unwind label %271

267:                                              ; preds = %265
  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 %268 unwind label %273

268:                                              ; preds = %267
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %269 unwind label %275

269:                                              ; preds = %268
  invoke void @__cxa_throw(ptr %264, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %275

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

271:                                              ; preds = %265
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %278

273:                                              ; preds = %267
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %277

275:                                              ; preds = %269, %268
  %.0304 = phi i1 [ false, %269 ], [ true, %268 ]
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %277

277:                                              ; preds = %275, %273
  %.pn435 = phi { ptr, i32 } [ %276, %275 ], [ %274, %273 ]
  %.1305 = phi i1 [ %.0304, %275 ], [ true, %273 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %278

278:                                              ; preds = %271, %277
  %.pn435.pn = phi { ptr, i32 } [ %.pn435, %277 ], [ %272, %271 ]
  %.2306 = phi i1 [ %.1305, %277 ], [ true, %271 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  br i1 %.2306, label %.sink.split, label %668

.thread599:                                       ; preds = %212, %187
  %279 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %83)
  store double %129, ptr %279, align 8, !tbaa !20
  br label %.lr.ph571.preheader

280:                                              ; preds = %261, %237
  %281 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %83)
  store double %129, ptr %281, align 8, !tbaa !20
  br i1 %130, label %.lr.ph571.preheader, label %.loopexit

.lr.ph571.preheader:                              ; preds = %.thread599, %280
  br label %.lr.ph571

.lr.ph571:                                        ; preds = %.lr.ph571.preheader, %.lr.ph571
  %.0303570 = phi i64 [ %287, %.lr.ph571 ], [ 0, %.lr.ph571.preheader ]
  %282 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %141, i64 noundef %.0303570)
  %283 = load double, ptr %282, align 8, !tbaa !20
  %284 = mul nsw i64 %.0303570, %78
  %gep569 = getelementptr double, ptr %invariant.gep, i64 %284
  %285 = load double, ptr %gep569, align 8, !tbaa !20
  %286 = fadd double %283, %285
  store double %286, ptr %gep569, align 8, !tbaa !20
  %287 = add nuw nsw i64 %.0303570, 1
  %exitcond595.not = icmp eq i64 %287, %86
  br i1 %exitcond595.not, label %.loopexit, label %.lr.ph571, !llvm.loop !36

288:                                              ; preds = %160
  %289 = icmp eq i64 %.0271580, %147
  br i1 %289, label %.loopexit, label %290

290:                                              ; preds = %288
  %291 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  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 %292 unwind label %.thread504

292:                                              ; preds = %290
  %293 = 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 %293)
          to label %294 unwind label %298

294:                                              ; preds = %292
  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.133)
          to label %295 unwind label %300

295:                                              ; preds = %294
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %296 unwind label %302

296:                                              ; preds = %295
  invoke void @__cxa_throw(ptr %291, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %302

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

298:                                              ; preds = %292
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %305

300:                                              ; preds = %294
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %304

302:                                              ; preds = %296, %295
  %.0299 = phi i1 [ false, %296 ], [ true, %295 ]
  %303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %304

304:                                              ; preds = %302, %300
  %.pn427 = phi { ptr, i32 } [ %303, %302 ], [ %301, %300 ]
  %.1300 = phi i1 [ %.0299, %302 ], [ true, %300 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %305

305:                                              ; preds = %298, %304
  %.pn427.pn = phi { ptr, i32 } [ %.pn427, %304 ], [ %299, %298 ]
  %.2301 = phi i1 [ %.1300, %304 ], [ true, %298 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  br i1 %.2301, label %.sink.split, label %668

.loopexit:                                        ; preds = %.lr.ph571, %280, %288
  %306 = getelementptr inbounds i8, ptr %156, i64 8
  %307 = load double, ptr %306, align 8, !tbaa !20
  %308 = load double, ptr %139, align 8, !tbaa !20
  %309 = fcmp une double %307, %308
  br i1 %309, label %310, label %434

310:                                              ; preds = %.loopexit
  %311 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %83)
  store double %307, ptr %311, align 8, !tbaa !20
  %312 = load ptr, ptr %2, align 8, !tbaa !29
  %.not459 = icmp eq ptr %312, null
  br i1 %.not459, label %336, label %313

313:                                              ; preds = %310
  %314 = load ptr, ptr %93, align 8, !tbaa !17
  %315 = load i64, ptr %314, align 8, !tbaa !10
  %316 = icmp eq i64 %315, 0
  %or.cond5 = select i1 %316, i1 %140, i1 false
  br i1 %or.cond5, label %333, label %317

317:                                              ; preds = %313
  %318 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  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 %319 unwind label %.thread508

319:                                              ; preds = %317
  %320 = 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 %320)
          to label %321 unwind label %325

321:                                              ; preds = %319
  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 %322 unwind label %327

322:                                              ; preds = %321
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %318, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %323 unwind label %329

323:                                              ; preds = %322
  invoke void @__cxa_throw(ptr %318, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %329

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

325:                                              ; preds = %319
  %326 = landingpad { ptr, i32 }
          cleanup
  br label %332

327:                                              ; preds = %321
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %331

329:                                              ; preds = %323, %322
  %.0295 = phi i1 [ false, %323 ], [ true, %322 ]
  %330 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %331

331:                                              ; preds = %329, %327
  %.pn479 = phi { ptr, i32 } [ %330, %329 ], [ %328, %327 ]
  %.1296 = phi i1 [ %.0295, %329 ], [ true, %327 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %332

332:                                              ; preds = %325, %331
  %.pn479.pn = phi { ptr, i32 } [ %.pn479, %331 ], [ %326, %325 ]
  %.2297 = phi i1 [ %.1296, %331 ], [ true, %325 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #6
  br i1 %.2297, label %.sink.split, label %668

333:                                              ; preds = %313
  %334 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %141, i64 noundef 0)
  %335 = load ptr, ptr %142, align 8, !tbaa !32
  tail call void %312(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(8) %334, ptr noundef %335)
  br label %.thread601

336:                                              ; preds = %310
  %337 = load ptr, ptr %143, align 8, !tbaa !33
  %.not460 = icmp eq ptr %337, null
  br i1 %.not460, label %361, label %338

338:                                              ; preds = %336
  %339 = load ptr, ptr %93, align 8, !tbaa !17
  %340 = load i64, ptr %339, align 8, !tbaa !10
  %341 = icmp sgt i64 %340, 0
  %or.cond7 = select i1 %341, i1 %140, i1 false
  br i1 %or.cond7, label %358, label %342

342:                                              ; preds = %338
  %343 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  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 %344 unwind label %.thread512

344:                                              ; preds = %342
  %345 = 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 %345)
          to label %346 unwind label %350

346:                                              ; preds = %344
  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 %347 unwind label %352

347:                                              ; preds = %346
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %348 unwind label %354

348:                                              ; preds = %347
  invoke void @__cxa_throw(ptr %343, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %354

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

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

352:                                              ; preds = %346
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %356

354:                                              ; preds = %348, %347
  %.0291 = phi i1 [ false, %348 ], [ true, %347 ]
  %355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %356

356:                                              ; preds = %354, %352
  %.pn475 = phi { ptr, i32 } [ %355, %354 ], [ %353, %352 ]
  %.1292 = phi i1 [ %.0291, %354 ], [ true, %352 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %357

357:                                              ; preds = %350, %356
  %.pn475.pn = phi { ptr, i32 } [ %.pn475, %356 ], [ %351, %350 ]
  %.2293 = phi i1 [ %.1292, %356 ], [ true, %350 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  br i1 %.2293, label %.sink.split, label %668

358:                                              ; preds = %338
  %359 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %141, i64 noundef 0)
  %360 = load ptr, ptr %142, align 8, !tbaa !32
  tail call void %337(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %144, ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef %360)
  br label %.thread601

361:                                              ; preds = %336
  %362 = load ptr, ptr %145, align 8, !tbaa !34
  %.not461 = icmp eq ptr %362, null
  br i1 %.not461, label %385, label %363

363:                                              ; preds = %361
  %364 = load ptr, ptr %93, align 8, !tbaa !17
  %365 = load i64, ptr %364, align 8, !tbaa !10
  %366 = icmp eq i64 %365, 0
  br i1 %366, label %383, label %367

367:                                              ; preds = %363
  %368 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  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 %369 unwind label %.thread516

369:                                              ; preds = %367
  %370 = 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 %370)
          to label %371 unwind label %375

371:                                              ; preds = %369
  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 %372 unwind label %377

372:                                              ; preds = %371
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %368, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %373 unwind label %379

373:                                              ; preds = %372
  invoke void @__cxa_throw(ptr %368, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %379

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

375:                                              ; preds = %369
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %382

377:                                              ; preds = %371
  %378 = landingpad { ptr, i32 }
          cleanup
  br label %381

379:                                              ; preds = %373, %372
  %.0287 = phi i1 [ false, %373 ], [ true, %372 ]
  %380 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %381

381:                                              ; preds = %379, %377
  %.pn471 = phi { ptr, i32 } [ %380, %379 ], [ %378, %377 ]
  %.1288 = phi i1 [ %.0287, %379 ], [ true, %377 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %382

382:                                              ; preds = %375, %381
  %.pn471.pn = phi { ptr, i32 } [ %.pn471, %381 ], [ %376, %375 ]
  %.2289 = phi i1 [ %.1288, %381 ], [ true, %375 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  br i1 %.2289, label %.sink.split, label %668

383:                                              ; preds = %363
  %384 = load ptr, ptr %142, align 8, !tbaa !32
  tail call void %362(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %141, ptr noundef %384)
  br label %426

385:                                              ; preds = %361
  %386 = load ptr, ptr %146, align 8, !tbaa !35
  %.not462 = icmp eq ptr %386, null
  br i1 %.not462, label %409, label %387

387:                                              ; preds = %385
  %388 = load ptr, ptr %93, align 8, !tbaa !17
  %389 = load i64, ptr %388, align 8, !tbaa !10
  %390 = icmp sgt i64 %389, 0
  br i1 %390, label %407, label %391

391:                                              ; preds = %387
  %392 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  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 %393 unwind label %.thread520

393:                                              ; preds = %391
  %394 = 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 %394)
          to label %395 unwind label %399

395:                                              ; preds = %393
  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.128)
          to label %396 unwind label %401

396:                                              ; preds = %395
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %392, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %397 unwind label %403

397:                                              ; preds = %396
  invoke void @__cxa_throw(ptr %392, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %403

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

399:                                              ; preds = %393
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %406

401:                                              ; preds = %395
  %402 = landingpad { ptr, i32 }
          cleanup
  br label %405

403:                                              ; preds = %397, %396
  %.0283 = phi i1 [ false, %397 ], [ true, %396 ]
  %404 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %405

405:                                              ; preds = %403, %401
  %.pn467 = phi { ptr, i32 } [ %404, %403 ], [ %402, %401 ]
  %.1284 = phi i1 [ %.0283, %403 ], [ true, %401 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %406

406:                                              ; preds = %399, %405
  %.pn467.pn = phi { ptr, i32 } [ %.pn467, %405 ], [ %400, %399 ]
  %.2285 = phi i1 [ %.1284, %405 ], [ true, %399 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #6
  br i1 %.2285, label %.sink.split, label %668

407:                                              ; preds = %387
  %408 = load ptr, ptr %142, align 8, !tbaa !32
  tail call void %386(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %144, ptr noundef nonnull align 8 dereferenceable(81) %141, ptr noundef %408)
  br label %426

409:                                              ; preds = %385
  %410 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %411 unwind label %.thread524

411:                                              ; preds = %409
  %412 = 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 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef %412)
          to label %413 unwind label %417

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

414:                                              ; preds = %413
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %415 unwind label %421

415:                                              ; preds = %414
  invoke void @__cxa_throw(ptr %410, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %421

.thread524:                                       ; preds = %409
  %416 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #6
  br label %.sink.split

417:                                              ; preds = %411
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %424

419:                                              ; preds = %413
  %420 = landingpad { ptr, i32 }
          cleanup
  br label %423

421:                                              ; preds = %415, %414
  %.0279 = phi i1 [ false, %415 ], [ true, %414 ]
  %422 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %423

423:                                              ; preds = %421, %419
  %.pn463 = phi { ptr, i32 } [ %422, %421 ], [ %420, %419 ]
  %.1280 = phi i1 [ %.0279, %421 ], [ true, %419 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %424

424:                                              ; preds = %417, %423
  %.pn463.pn = phi { ptr, i32 } [ %.pn463, %423 ], [ %418, %417 ]
  %.2281 = phi i1 [ %.1280, %423 ], [ true, %417 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #6
  br i1 %.2281, label %.sink.split, label %668

.thread601:                                       ; preds = %358, %333
  %425 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %83)
  store double %129, ptr %425, align 8, !tbaa !20
  br label %.lr.ph575.preheader

426:                                              ; preds = %407, %383
  %427 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %3, i64 noundef %83)
  store double %129, ptr %427, align 8, !tbaa !20
  br i1 %130, label %.lr.ph575.preheader, label %._crit_edge.thread

.lr.ph575.preheader:                              ; preds = %.thread601, %426
  br label %.lr.ph575

.lr.ph575:                                        ; preds = %.lr.ph575.preheader, %.lr.ph575
  %.0278574 = phi i64 [ %433, %.lr.ph575 ], [ 0, %.lr.ph575.preheader ]
  %428 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6alglib13real_1d_arrayixEl(ptr noundef nonnull align 8 dereferenceable(81) %141, i64 noundef %.0278574)
  %429 = load double, ptr %428, align 8, !tbaa !20
  %430 = mul nsw i64 %.0278574, %78
  %gep573 = getelementptr double, ptr %invariant.gep, i64 %430
  %431 = load double, ptr %gep573, align 8, !tbaa !20
  %432 = fsub double %431, %429
  store double %432, ptr %gep573, align 8, !tbaa !20
  %433 = add nuw nsw i64 %.0278574, 1
  %exitcond596.not = icmp eq i64 %433, %86
  br i1 %exitcond596.not, label %._crit_edge, label %.lr.ph575, !llvm.loop !37

434:                                              ; preds = %.loopexit
  %435 = icmp eq i64 %.0271580, %147
  br i1 %435, label %.critedge.thread, label %436

436:                                              ; preds = %434
  %437 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %438 unwind label %.thread528

438:                                              ; preds = %436
  %439 = 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 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef %439)
          to label %440 unwind label %444

440:                                              ; preds = %438
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.133)
          to label %441 unwind label %446

441:                                              ; preds = %440
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %442 unwind label %448

442:                                              ; preds = %441
  invoke void @__cxa_throw(ptr %437, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %448

.thread528:                                       ; preds = %436
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #6
  br label %.sink.split

444:                                              ; preds = %438
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %451

446:                                              ; preds = %440
  %447 = landingpad { ptr, i32 }
          cleanup
  br label %450

448:                                              ; preds = %442, %441
  %.0274 = phi i1 [ false, %442 ], [ true, %441 ]
  %449 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  br label %450

450:                                              ; preds = %448, %446
  %.pn455 = phi { ptr, i32 } [ %449, %448 ], [ %447, %446 ]
  %.1275 = phi i1 [ %.0274, %448 ], [ true, %446 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %451

451:                                              ; preds = %444, %450
  %.pn455.pn = phi { ptr, i32 } [ %.pn455, %450 ], [ %445, %444 ]
  %.2276 = phi i1 [ %.1275, %450 ], [ true, %444 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #6
  br i1 %.2276, label %.sink.split, label %668

._crit_edge:                                      ; preds = %.lr.ph575
  br i1 %163, label %.critedge.thread, label %.preheader

._crit_edge.thread:                               ; preds = %426
  %452 = add nuw nsw i64 %.0271580, 1
  %exitcond598.not = icmp eq i64 %452, %89
  %or.cond614 = select i1 %163, i1 true, i1 %exitcond598.not
  br i1 %or.cond614, label %.critedge.thread, label %.backedge.backedge

.preheader:                                       ; preds = %._crit_edge
  br i1 %130, label %.lr.ph579.preheader, label %.critedge

.lr.ph579.preheader:                              ; preds = %.preheader
  br i1 %or.cond642, label %vector.ph632, label %.lr.ph579.preheader643

vector.ph632:                                     ; preds = %.lr.ph579.preheader
  %broadcast.splatinsert = insertelement <2 x double> poison, double %158, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body636

vector.body636:                                   ; preds = %vector.body636, %vector.ph632
  %index637 = phi i64 [ 0, %vector.ph632 ], [ %index.next639, %vector.body636 ]
  %453 = getelementptr double, ptr %invariant.gep, i64 %index637
  %454 = getelementptr i8, ptr %453, i64 16
  %wide.load = load <2 x double>, ptr %453, align 8, !tbaa !20
  %wide.load638 = load <2 x double>, ptr %454, align 8, !tbaa !20
  %455 = fmul <2 x double> %broadcast.splat, %wide.load
  %456 = fmul <2 x double> %broadcast.splat, %wide.load638
  store <2 x double> %455, ptr %453, align 8, !tbaa !20
  store <2 x double> %456, ptr %454, align 8, !tbaa !20
  %index.next639 = add nuw i64 %index637, 4
  %457 = icmp eq i64 %index.next639, %n.vec634
  br i1 %457, label %middle.block629, label %vector.body636, !llvm.loop !38

middle.block629:                                  ; preds = %vector.body636
  br i1 %cmp.n640, label %.critedge, label %.lr.ph579.preheader643

.lr.ph579.preheader643:                           ; preds = %middle.block629, %.lr.ph579.preheader
  %.0273578.ph = phi i64 [ 0, %.lr.ph579.preheader ], [ %n.vec634, %middle.block629 ]
  br i1 %lcmp.mod658.not, label %.lr.ph579.prol.loopexit, label %.lr.ph579.prol

.lr.ph579.prol:                                   ; preds = %.lr.ph579.preheader643, %.lr.ph579.prol
  %.0273578.prol = phi i64 [ %461, %.lr.ph579.prol ], [ %.0273578.ph, %.lr.ph579.preheader643 ]
  %prol.iter659 = phi i64 [ %prol.iter659.next, %.lr.ph579.prol ], [ 0, %.lr.ph579.preheader643 ]
  %458 = mul nsw i64 %.0273578.prol, %78
  %gep577.prol = getelementptr double, ptr %invariant.gep, i64 %458
  %459 = load double, ptr %gep577.prol, align 8, !tbaa !20
  %460 = fmul double %158, %459
  store double %460, ptr %gep577.prol, align 8, !tbaa !20
  %461 = add nuw nsw i64 %.0273578.prol, 1
  %prol.iter659.next = add i64 %prol.iter659, 1
  %prol.iter659.cmp.not = icmp eq i64 %prol.iter659.next, %xtraiter657
  br i1 %prol.iter659.cmp.not, label %.lr.ph579.prol.loopexit, label %.lr.ph579.prol, !llvm.loop !39

.lr.ph579.prol.loopexit:                          ; preds = %.lr.ph579.prol, %.lr.ph579.preheader643
  %.0273578.unr = phi i64 [ %.0273578.ph, %.lr.ph579.preheader643 ], [ %461, %.lr.ph579.prol ]
  %462 = sub nsw i64 %.0273578.ph, %86
  %463 = icmp ugt i64 %462, -4
  br i1 %463, label %.critedge, label %.lr.ph579

.lr.ph579:                                        ; preds = %.lr.ph579.prol.loopexit, %.lr.ph579
  %.0273578 = phi i64 [ %479, %.lr.ph579 ], [ %.0273578.unr, %.lr.ph579.prol.loopexit ]
  %464 = mul nsw i64 %.0273578, %78
  %gep577 = getelementptr double, ptr %invariant.gep, i64 %464
  %465 = load double, ptr %gep577, align 8, !tbaa !20
  %466 = fmul double %158, %465
  store double %466, ptr %gep577, align 8, !tbaa !20
  %467 = add nuw nsw i64 %.0273578, 1
  %468 = mul nsw i64 %467, %78
  %gep577.1 = getelementptr double, ptr %invariant.gep, i64 %468
  %469 = load double, ptr %gep577.1, align 8, !tbaa !20
  %470 = fmul double %158, %469
  store double %470, ptr %gep577.1, align 8, !tbaa !20
  %471 = add nuw nsw i64 %.0273578, 2
  %472 = mul nsw i64 %471, %78
  %gep577.2 = getelementptr double, ptr %invariant.gep, i64 %472
  %473 = load double, ptr %gep577.2, align 8, !tbaa !20
  %474 = fmul double %158, %473
  store double %474, ptr %gep577.2, align 8, !tbaa !20
  %475 = add nuw nsw i64 %.0273578, 3
  %476 = mul nsw i64 %475, %78
  %gep577.3 = getelementptr double, ptr %invariant.gep, i64 %476
  %477 = load double, ptr %gep577.3, align 8, !tbaa !20
  %478 = fmul double %158, %477
  store double %478, ptr %gep577.3, align 8, !tbaa !20
  %479 = add nuw nsw i64 %.0273578, 4
  %exitcond597.not.3 = icmp eq i64 %479, %86
  br i1 %exitcond597.not.3, label %.critedge, label %.lr.ph579, !llvm.loop !40

.critedge:                                        ; preds = %.lr.ph579.prol.loopexit, %.lr.ph579, %middle.block629, %.preheader, %.backedge
  %.old = add nuw nsw i64 %.0271580, 1
  %exitcond598.not.old = icmp eq i64 %.old, %89
  br i1 %exitcond598.not.old, label %.critedge.thread, label %.backedge.backedge

.backedge.backedge:                               ; preds = %.critedge, %._crit_edge.thread
  %.0271580.be = phi i64 [ %.old, %.critedge ], [ %452, %._crit_edge.thread ]
  br label %.backedge, !llvm.loop !41

480:                                              ; preds = %4
  %481 = sub nsw i64 %1, %79
  %482 = getelementptr inbounds i8, ptr %0, i64 16
  %483 = load ptr, ptr %482, align 8, !tbaa !15
  %484 = load ptr, ptr %483, align 8, !tbaa !16
  %485 = getelementptr inbounds i8, ptr %0, i64 56
  %486 = load ptr, ptr %485, align 8, !tbaa !17
  %487 = load i64, ptr %486, align 8, !tbaa !10
  %488 = add nsw i64 %487, %78
  %489 = getelementptr inbounds i8, ptr %0, i64 64
  %490 = load ptr, ptr %489, align 8, !tbaa !14
  %491 = load i64, ptr %490, align 8, !tbaa !10
  %492 = mul i64 %78, 3
  %493 = mul i64 %492, %491
  %494 = add nsw i64 %488, %493
  %495 = mul nsw i64 %494, %481
  %496 = getelementptr inbounds double, ptr %484, i64 %495
  %497 = getelementptr inbounds i8, ptr %0, i64 72
  %498 = load ptr, ptr %497, align 8, !tbaa !42
  %499 = load ptr, ptr %498, align 8, !tbaa !16
  %500 = getelementptr inbounds i8, ptr %0, i64 40
  %501 = load ptr, ptr %500, align 8, !tbaa !13
  %502 = load i64, ptr %501, align 8, !tbaa !10
  %503 = mul nsw i64 %502, %481
  %504 = getelementptr inbounds double, ptr %499, i64 %503
  %505 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %3)
  %506 = getelementptr inbounds i8, ptr %505, i64 56
  %507 = load ptr, ptr %506, align 8, !tbaa !19
  %508 = load ptr, ptr %76, align 8, !tbaa !12
  %509 = load i64, ptr %508, align 8, !tbaa !10
  %510 = shl i64 %509, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %507, ptr align 8 %496, i64 %510, i1 false)
  %511 = load ptr, ptr %485, align 8, !tbaa !17
  %512 = load i64, ptr %511, align 8, !tbaa !10
  %513 = icmp sgt i64 %512, 0
  br i1 %513, label %514, label %525

514:                                              ; preds = %480
  %515 = getelementptr inbounds i8, ptr %3, i64 88
  %516 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %515)
  %517 = getelementptr inbounds i8, ptr %516, i64 56
  %518 = load ptr, ptr %517, align 8, !tbaa !19
  %519 = load ptr, ptr %76, align 8, !tbaa !12
  %520 = load i64, ptr %519, align 8, !tbaa !10
  %521 = getelementptr inbounds double, ptr %496, i64 %520
  %522 = load ptr, ptr %485, align 8, !tbaa !17
  %523 = load i64, ptr %522, align 8, !tbaa !10
  %524 = shl i64 %523, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %518, ptr align 8 %521, i64 %524, i1 false)
  br label %525

525:                                              ; preds = %514, %480
  %526 = load ptr, ptr %2, align 8, !tbaa !29
  %.not = icmp eq ptr %526, null
  br i1 %.not, label %554, label %527

527:                                              ; preds = %525
  %528 = load ptr, ptr %485, align 8, !tbaa !17
  %529 = load i64, ptr %528, align 8, !tbaa !10
  %530 = icmp eq i64 %529, 0
  br i1 %530, label %531, label %535

531:                                              ; preds = %527
  %532 = load ptr, ptr %500, align 8, !tbaa !13
  %533 = load i64, ptr %532, align 8, !tbaa !10
  %534 = icmp eq i64 %533, 1
  br i1 %534, label %551, label %535

535:                                              ; preds = %531, %527
  %536 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %537 unwind label %.thread533

537:                                              ; preds = %535
  %538 = 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 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef %538)
          to label %539 unwind label %543

539:                                              ; preds = %537
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.128)
          to label %540 unwind label %545

540:                                              ; preds = %539
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %541 unwind label %547

541:                                              ; preds = %540
  invoke void @__cxa_throw(ptr %536, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %547

.thread533:                                       ; preds = %535
  %542 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  br label %.sink.split

543:                                              ; preds = %537
  %544 = landingpad { ptr, i32 }
          cleanup
  br label %550

545:                                              ; preds = %539
  %546 = landingpad { ptr, i32 }
          cleanup
  br label %549

547:                                              ; preds = %541, %540
  %.0266 = phi i1 [ false, %541 ], [ true, %540 ]
  %548 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %549

549:                                              ; preds = %547, %545
  %.pn422 = phi { ptr, i32 } [ %548, %547 ], [ %546, %545 ]
  %.1267 = phi i1 [ %.0266, %547 ], [ true, %545 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %550

550:                                              ; preds = %543, %549
  %.pn422.pn = phi { ptr, i32 } [ %.pn422, %549 ], [ %544, %543 ]
  %.2268 = phi i1 [ %.1267, %549 ], [ true, %543 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  br i1 %.2268, label %.sink.split, label %668

551:                                              ; preds = %531
  %552 = getelementptr inbounds i8, ptr %0, i64 8
  %553 = load ptr, ptr %552, align 8, !tbaa !32
  tail call void %526(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef %553)
  br label %.critedge.thread

554:                                              ; preds = %525
  %555 = getelementptr inbounds i8, ptr %2, i64 40
  %556 = load ptr, ptr %555, align 8, !tbaa !33
  %.not404 = icmp eq ptr %556, null
  br i1 %.not404, label %585, label %557

557:                                              ; preds = %554
  %558 = load ptr, ptr %485, align 8, !tbaa !17
  %559 = load i64, ptr %558, align 8, !tbaa !10
  %560 = icmp sgt i64 %559, 0
  br i1 %560, label %561, label %565

561:                                              ; preds = %557
  %562 = load ptr, ptr %500, align 8, !tbaa !13
  %563 = load i64, ptr %562, align 8, !tbaa !10
  %564 = icmp eq i64 %563, 1
  br i1 %564, label %581, label %565

565:                                              ; preds = %561, %557
  %566 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %567 unwind label %.thread537

567:                                              ; preds = %565
  %568 = 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 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef %568)
          to label %569 unwind label %573

569:                                              ; preds = %567
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.128)
          to label %570 unwind label %575

570:                                              ; preds = %569
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %566, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %571 unwind label %577

571:                                              ; preds = %570
  invoke void @__cxa_throw(ptr %566, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %577

.thread537:                                       ; preds = %565
  %572 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  br label %.sink.split

573:                                              ; preds = %567
  %574 = landingpad { ptr, i32 }
          cleanup
  br label %580

575:                                              ; preds = %569
  %576 = landingpad { ptr, i32 }
          cleanup
  br label %579

577:                                              ; preds = %571, %570
  %.0262 = phi i1 [ false, %571 ], [ true, %570 ]
  %578 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %579

579:                                              ; preds = %577, %575
  %.pn418 = phi { ptr, i32 } [ %578, %577 ], [ %576, %575 ]
  %.1263 = phi i1 [ %.0262, %577 ], [ true, %575 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  br label %580

580:                                              ; preds = %573, %579
  %.pn418.pn = phi { ptr, i32 } [ %.pn418, %579 ], [ %574, %573 ]
  %.2264 = phi i1 [ %.1263, %579 ], [ true, %573 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  br i1 %.2264, label %.sink.split, label %668

581:                                              ; preds = %561
  %582 = getelementptr inbounds i8, ptr %3, i64 88
  %583 = getelementptr inbounds i8, ptr %0, i64 8
  %584 = load ptr, ptr %583, align 8, !tbaa !32
  tail call void %556(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %582, ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef %584)
  br label %.critedge.thread

585:                                              ; preds = %554
  %586 = getelementptr inbounds i8, ptr %2, i64 16
  %587 = load ptr, ptr %586, align 8, !tbaa !34
  %.not405 = icmp eq ptr %587, null
  br i1 %.not405, label %618, label %588

588:                                              ; preds = %585
  %589 = load ptr, ptr %485, align 8, !tbaa !17
  %590 = load i64, ptr %589, align 8, !tbaa !10
  %591 = icmp eq i64 %590, 0
  br i1 %591, label %608, label %592

592:                                              ; preds = %588
  %593 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %594 unwind label %.thread541

594:                                              ; preds = %592
  %595 = 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 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef %595)
          to label %596 unwind label %600

596:                                              ; preds = %594
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.128)
          to label %597 unwind label %602

597:                                              ; preds = %596
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %593, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %598 unwind label %604

598:                                              ; preds = %597
  invoke void @__cxa_throw(ptr %593, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %604

.thread541:                                       ; preds = %592
  %599 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #6
  br label %.sink.split

600:                                              ; preds = %594
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %607

602:                                              ; preds = %596
  %603 = landingpad { ptr, i32 }
          cleanup
  br label %606

604:                                              ; preds = %598, %597
  %.0258 = phi i1 [ false, %598 ], [ true, %597 ]
  %605 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %606

606:                                              ; preds = %604, %602
  %.pn414 = phi { ptr, i32 } [ %605, %604 ], [ %603, %602 ]
  %.1259 = phi i1 [ %.0258, %604 ], [ true, %602 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %607

607:                                              ; preds = %600, %606
  %.pn414.pn = phi { ptr, i32 } [ %.pn414, %606 ], [ %601, %600 ]
  %.2260 = phi i1 [ %.1259, %606 ], [ true, %600 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #6
  br i1 %.2260, label %.sink.split, label %668

608:                                              ; preds = %588
  %609 = getelementptr inbounds i8, ptr %3, i64 176
  %610 = getelementptr inbounds i8, ptr %0, i64 8
  %611 = load ptr, ptr %610, align 8, !tbaa !32
  tail call void %587(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %609, ptr noundef %611)
  %612 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %609)
  %613 = getelementptr inbounds i8, ptr %612, i64 56
  %614 = load ptr, ptr %613, align 8, !tbaa !19
  %615 = load ptr, ptr %500, align 8, !tbaa !13
  %616 = load i64, ptr %615, align 8, !tbaa !10
  %617 = shl i64 %616, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %504, ptr align 8 %614, i64 %617, i1 false)
  br label %.critedge.thread

618:                                              ; preds = %585
  %619 = getelementptr inbounds i8, ptr %2, i64 56
  %620 = load ptr, ptr %619, align 8, !tbaa !35
  %.not406 = icmp eq ptr %620, null
  br i1 %.not406, label %652, label %621

621:                                              ; preds = %618
  %622 = load ptr, ptr %485, align 8, !tbaa !17
  %623 = load i64, ptr %622, align 8, !tbaa !10
  %624 = icmp sgt i64 %623, 0
  br i1 %624, label %641, label %625

625:                                              ; preds = %621
  %626 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %627 unwind label %.thread545

627:                                              ; preds = %625
  %628 = 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 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef %628)
          to label %629 unwind label %633

629:                                              ; preds = %627
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.128)
          to label %630 unwind label %635

630:                                              ; preds = %629
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %631 unwind label %637

631:                                              ; preds = %630
  invoke void @__cxa_throw(ptr %626, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %637

.thread545:                                       ; preds = %625
  %632 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #6
  br label %.sink.split

633:                                              ; preds = %627
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %640

635:                                              ; preds = %629
  %636 = landingpad { ptr, i32 }
          cleanup
  br label %639

637:                                              ; preds = %631, %630
  %.0254 = phi i1 [ false, %631 ], [ true, %630 ]
  %638 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %639

639:                                              ; preds = %637, %635
  %.pn410 = phi { ptr, i32 } [ %638, %637 ], [ %636, %635 ]
  %.1255 = phi i1 [ %.0254, %637 ], [ true, %635 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %640

640:                                              ; preds = %633, %639
  %.pn410.pn = phi { ptr, i32 } [ %.pn410, %639 ], [ %634, %633 ]
  %.2256 = phi i1 [ %.1255, %639 ], [ true, %633 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #6
  br i1 %.2256, label %.sink.split, label %668

641:                                              ; preds = %621
  %642 = getelementptr inbounds i8, ptr %3, i64 88
  %643 = getelementptr inbounds i8, ptr %3, i64 176
  %644 = getelementptr inbounds i8, ptr %0, i64 8
  %645 = load ptr, ptr %644, align 8, !tbaa !32
  tail call void %620(ptr noundef nonnull align 8 dereferenceable(81) %3, ptr noundef nonnull align 8 dereferenceable(81) %642, ptr noundef nonnull align 8 dereferenceable(81) %643, ptr noundef %645)
  %646 = tail call noundef ptr @_ZN6alglib17ae_vector_wrapper5c_ptrEv(ptr noundef nonnull align 8 dereferenceable(81) %643)
  %647 = getelementptr inbounds i8, ptr %646, i64 56
  %648 = load ptr, ptr %647, align 8, !tbaa !19
  %649 = load ptr, ptr %500, align 8, !tbaa !13
  %650 = load i64, ptr %649, align 8, !tbaa !10
  %651 = shl i64 %650, 3
  tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %504, ptr align 8 %648, i64 %651, i1 false)
  br label %.critedge.thread

652:                                              ; preds = %618
  %653 = tail call ptr @__cxa_allocate_exception(i64 32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %654 unwind label %.thread549

654:                                              ; preds = %652
  %655 = 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 %70, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef %655)
          to label %656 unwind label %660

656:                                              ; preds = %654
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.132)
          to label %657 unwind label %662

657:                                              ; preds = %656
  invoke void @_ZN6alglib8ap_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %653, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %658 unwind label %664

658:                                              ; preds = %657
  invoke void @__cxa_throw(ptr %653, ptr nonnull @_ZTIN6alglib8ap_errorE, ptr nonnull @_ZN6alglib8ap_errorD2Ev) #7
          to label %669 unwind label %664

.thread549:                                       ; preds = %652
  %659 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #6
  br label %.sink.split

660:                                              ; preds = %654
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %667

662:                                              ; preds = %656
  %663 = landingpad { ptr, i32 }
          cleanup
  br label %666

664:                                              ; preds = %658, %657
  %.0 = phi i1 [ false, %658 ], [ true, %657 ]
  %665 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  br label %666

666:                                              ; preds = %664, %662
  %.pn = phi { ptr, i32 } [ %665, %664 ], [ %663, %662 ]
  %.1 = phi i1 [ %.0, %664 ], [ true, %662 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %667

667:                                              ; preds = %660, %666
  %.pn.pn = phi { ptr, i32 } [ %.pn, %666 ], [ %661, %660 ]
  %.2 = phi i1 [ %.1, %666 ], [ true, %660 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #6
  br i1 %.2, label %.sink.split, label %668

.critedge.thread:                                 ; preds = %.critedge, %._crit_edge, %._crit_edge.thread, %.preheader554, %434, %551, %581, %608, %641
  ret void

.sink.split:                                      ; preds = %667, %.thread549, %640, %.thread545, %607, %.thread541, %580, %.thread537, %550, %.thread533, %451, %.thread528, %424, %.thread524, %406, %.thread520, %382, %.thread516, %357, %.thread512, %332, %.thread508, %305, %.thread504, %278, %.thread500, %260, %.thread496, %236, %.thread492, %211, %.thread488, %186, %.thread
  %.sink = phi ptr [ %172, %.thread ], [ %172, %186 ], [ %197, %.thread488 ], [ %197, %211 ], [ %222, %.thread492 ], [ %222, %236 ], [ %246, %.thread496 ], [ %246, %260 ], [ %264, %.thread500 ], [ %264, %278 ], [ %291, %.thread504 ], [ %291, %305 ], [ %318, %.thread508 ], [ %318, %332 ], [ %343, %.thread512 ], [ %343, %357 ], [ %368, %.thread516 ], [ %368, %382 ], [ %392, %.thread520 ], [ %392, %406 ], [ %410, %.thread524 ], [ %410, %424 ], [ %437, %.thread528 ], [ %437, %451 ], [ %536, %.thread533 ], [ %536, %550 ], [ %566, %.thread537 ], [ %566, %580 ], [ %593, %.thread541 ], [ %593, %607 ], [ %626, %.thread545 ], [ %626, %640 ], [ %653, %.thread549 ], [ %653, %667 ]
  %.pn479.pn.pn.pn.pn.ph = phi { ptr, i32 } [ %178, %.thread ], [ %.pn451.pn, %186 ], [ %203, %.thread488 ], [ %.pn447.pn, %211 ], [ %228, %.thread492 ], [ %.pn443.pn, %236 ], [ %252, %.thread496 ], [ %.pn439.pn, %260 ], [ %270, %.thread500 ], [ %.pn435.pn, %278 ], [ %297, %.thread504 ], [ %.pn427.pn, %305 ], [ %324, %.thread508 ], [ %.pn479.pn, %332 ], [ %349, %.thread512 ], [ %.pn475.pn, %357 ], [ %374, %.thread516 ], [ %.pn471.pn, %382 ], [ %398, %.thread520 ], [ %.pn467.pn, %406 ], [ %416, %.thread524 ], [ %.pn463.pn, %424 ], [ %443, %.thread528 ], [ %.pn455.pn, %451 ], [ %542, %.thread533 ], [ %.pn422.pn, %550 ], [ %572, %.thread537 ], [ %.pn418.pn, %580 ], [ %599, %.thread541 ], [ %.pn414.pn, %607 ], [ %632, %.thread545 ], [ %.pn410.pn, %640 ], [ %659, %.thread549 ], [ %.pn.pn, %667 ]
  call void @__cxa_free_exception(ptr %.sink) #6
  br label %668

668:                                              ; preds = %.sink.split, %550, %580, %607, %640, %667, %186, %211, %236, %260, %278, %305, %332, %357, %382, %406, %424, %451
  %.pn479.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn479.pn, %332 ], [ %.pn475.pn, %357 ], [ %.pn471.pn, %382 ], [ %.pn467.pn, %406 ], [ %.pn463.pn, %424 ], [ %.pn455.pn, %451 ], [ %.pn451.pn, %186 ], [ %.pn447.pn, %211 ], [ %.pn443.pn, %236 ], [ %.pn439.pn, %260 ], [ %.pn435.pn, %278 ], [ %.pn427.pn, %305 ], [ %.pn422.pn, %550 ], [ %.pn418.pn, %580 ], [ %.pn414.pn, %607 ], [ %.pn410.pn, %640 ], [ %.pn.pn, %667 ], [ %.pn479.pn.pn.pn.pn.ph, %.sink.split ]
  resume { ptr, i32 } %.pn479.pn.pn.pn.pn

669:                                              ; preds = %658, %631, %598, %571, %541, %442, %415, %397, %373, %348, %323, %296, %269, %251, %227, %202, %177
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 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 #3 = { 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 #4 = { 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 #5 = { 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 #6 = { nounwind }
attributes #7 = { 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 = distinct !{!38, !25, !26, !27}
!39 = distinct !{!39, !23}
!40 = distinct !{!40, !25, !26}
!41 = distinct !{!41, !25}
!42 = !{!6, !7, i64 72}


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