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

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

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_smart_ptr" = type { ptr, ptr, i8, i8, i64, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::rbfv2model" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", double, i64, double, i64, %"struct.alglib_impl::rbfv2calcbuffer" }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::rbfv2calcbuffer" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::rbfv2gridcalcbuffer" = type { %"struct.alglib_impl::rbfv2calcbuffer", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }

@.str.932 = external hidden unnamed_addr constant [48 x i8], align 1
@_ZN11alglib_implL26rbfv2_complexitymultiplierE = external hidden global double, align 8

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) #2

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #2

declare noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) #2

declare void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #2

declare noundef double @_ZN11alglib_impl18smpactivationlevelEPNS_8ae_stateE(ptr noundef) #2

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef, double noundef) #2

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

declare void @_ZN11alglib_impl23ae_shared_pool_retrieveEPNS_14ae_shared_poolEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #2

declare void @_ZN11alglib_impl22ae_shared_pool_recycleEPNS_14ae_shared_poolEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef, double noundef) #2

declare void @_ZN11alglib_impl23bvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN11alglib_impl15rbfv2nearradiusElPNS_8ae_stateE(i64 noundef, ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL20rbfv2_partialcalcrecEPKNS_10rbfv2modelEPNS_15rbfv2calcbufferElddPKNS_9ae_vectorEPS5_S8_S8_lPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #5

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef %9, i64 noundef %10, i64 noundef %11, ptr noundef %12, i64 noundef %13, i64 noundef %14, ptr noundef %15, i64 noundef %16, i64 noundef %17, ptr noundef %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27) #5 {
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca i64, align 8
  %32 = alloca ptr, align 8
  %33 = alloca i64, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i64, align 8
  %36 = alloca ptr, align 8
  %37 = alloca i64, align 8
  %38 = alloca ptr, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca ptr, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca ptr, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca ptr, align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i8, align 1
  %52 = alloca i64, align 8
  %53 = alloca double, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca %"struct.alglib_impl::ae_frame", align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca double, align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca i8, align 1
  %89 = alloca ptr, align 8
  %90 = alloca %"struct.alglib_impl::ae_smart_ptr", align 8
  %91 = alloca i32, align 4
  store ptr %0, ptr %29, align 8, !tbaa !5
  store ptr %1, ptr %30, align 8, !tbaa !5
  store i64 %2, ptr %31, align 8, !tbaa !9
  store ptr %3, ptr %32, align 8, !tbaa !5
  store i64 %4, ptr %33, align 8, !tbaa !9
  store ptr %5, ptr %34, align 8, !tbaa !5
  store i64 %6, ptr %35, align 8, !tbaa !9
  store ptr %7, ptr %36, align 8, !tbaa !5
  store i64 %8, ptr %37, align 8, !tbaa !9
  store ptr %9, ptr %38, align 8, !tbaa !5
  store i64 %10, ptr %39, align 8, !tbaa !9
  store i64 %11, ptr %40, align 8, !tbaa !9
  store ptr %12, ptr %41, align 8, !tbaa !5
  store i64 %13, ptr %42, align 8, !tbaa !9
  store i64 %14, ptr %43, align 8, !tbaa !9
  store ptr %15, ptr %44, align 8, !tbaa !5
  store i64 %16, ptr %45, align 8, !tbaa !9
  store i64 %17, ptr %46, align 8, !tbaa !9
  store ptr %18, ptr %47, align 8, !tbaa !5
  store i64 %19, ptr %48, align 8, !tbaa !9
  store i64 %20, ptr %49, align 8, !tbaa !9
  store ptr %21, ptr %50, align 8, !tbaa !5
  %92 = zext i1 %22 to i8
  store i8 %92, ptr %51, align 1, !tbaa !11
  store i64 %23, ptr %52, align 8, !tbaa !9
  store double %24, ptr %53, align 8, !tbaa !13
  store ptr %25, ptr %54, align 8, !tbaa !5
  store ptr %26, ptr %55, align 8, !tbaa !5
  store ptr %27, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #6
  call void @llvm.lifetime.start.p0(i64 80, ptr %90) #6
  %93 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %93, ptr noundef %57)
  call void @llvm.memset.p0.i64(ptr align 8 %90, i8 0, i64 80, i1 false)
  %94 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef %90, ptr noundef %89, ptr noundef %94, i1 noundef zeroext true)
  %95 = load ptr, ptr %29, align 8, !tbaa !5
  %96 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %95, i32 0, i32 1
  %97 = load i64, ptr %96, align 8, !tbaa !15
  store i64 %97, ptr %58, align 8, !tbaa !9
  %98 = load ptr, ptr %29, align 8, !tbaa !5
  %99 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %98, i32 0, i32 0
  %100 = load i64, ptr %99, align 8, !tbaa !21
  store i64 %100, ptr %59, align 8, !tbaa !9
  %101 = load ptr, ptr %29, align 8, !tbaa !5
  %102 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %101, i32 0, i32 1
  %103 = load i64, ptr %102, align 8, !tbaa !15
  %104 = icmp eq i64 %103, 2
  br i1 %104, label %110, label %105

105:                                              ; preds = %28
  %106 = load ptr, ptr %29, align 8, !tbaa !5
  %107 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %106, i32 0, i32 1
  %108 = load i64, ptr %107, align 8, !tbaa !15
  %109 = icmp eq i64 %108, 3
  br label %110

110:                                              ; preds = %105, %28
  %111 = phi i1 [ true, %28 ], [ %109, %105 ]
  %112 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %111, ptr noundef @.str.932, ptr noundef %112)
  %113 = load ptr, ptr %29, align 8, !tbaa !5
  %114 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %113, i32 0, i32 0
  %115 = load i64, ptr %114, align 8, !tbaa !21
  %116 = mul nsw i64 %115, 2
  %117 = sitofp i64 %116 to double
  %118 = load double, ptr %53, align 8, !tbaa !13
  %119 = fadd double %118, 1.000000e+00
  %120 = fmul double %117, %119
  store double %120, ptr %85, align 8, !tbaa !13
  %121 = load double, ptr %85, align 8, !tbaa !13
  %122 = load ptr, ptr %38, align 8, !tbaa !5
  %123 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %122, i32 0, i32 4
  %124 = load ptr, ptr %123, align 8, !tbaa !22
  %125 = load i64, ptr %40, align 8, !tbaa !9
  %126 = getelementptr inbounds i64, ptr %124, i64 %125
  %127 = load i64, ptr %126, align 8, !tbaa !9
  %128 = load ptr, ptr %38, align 8, !tbaa !5
  %129 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %128, i32 0, i32 4
  %130 = load ptr, ptr %129, align 8, !tbaa !22
  %131 = load i64, ptr %39, align 8, !tbaa !9
  %132 = getelementptr inbounds i64, ptr %130, i64 %131
  %133 = load i64, ptr %132, align 8, !tbaa !9
  %134 = sub nsw i64 %127, %133
  %135 = sitofp i64 %134 to double
  %136 = fmul double %121, %135
  store double %136, ptr %85, align 8, !tbaa !13
  %137 = load double, ptr %85, align 8, !tbaa !13
  %138 = load ptr, ptr %41, align 8, !tbaa !5
  %139 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %138, i32 0, i32 4
  %140 = load ptr, ptr %139, align 8, !tbaa !22
  %141 = load i64, ptr %43, align 8, !tbaa !9
  %142 = getelementptr inbounds i64, ptr %140, i64 %141
  %143 = load i64, ptr %142, align 8, !tbaa !9
  %144 = load ptr, ptr %41, align 8, !tbaa !5
  %145 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %144, i32 0, i32 4
  %146 = load ptr, ptr %145, align 8, !tbaa !22
  %147 = load i64, ptr %42, align 8, !tbaa !9
  %148 = getelementptr inbounds i64, ptr %146, i64 %147
  %149 = load i64, ptr %148, align 8, !tbaa !9
  %150 = sub nsw i64 %143, %149
  %151 = sitofp i64 %150 to double
  %152 = fmul double %137, %151
  store double %152, ptr %85, align 8, !tbaa !13
  %153 = load double, ptr %85, align 8, !tbaa !13
  %154 = load ptr, ptr %44, align 8, !tbaa !5
  %155 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %154, i32 0, i32 4
  %156 = load ptr, ptr %155, align 8, !tbaa !22
  %157 = load i64, ptr %46, align 8, !tbaa !9
  %158 = getelementptr inbounds i64, ptr %156, i64 %157
  %159 = load i64, ptr %158, align 8, !tbaa !9
  %160 = load ptr, ptr %44, align 8, !tbaa !5
  %161 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %160, i32 0, i32 4
  %162 = load ptr, ptr %161, align 8, !tbaa !22
  %163 = load i64, ptr %45, align 8, !tbaa !9
  %164 = getelementptr inbounds i64, ptr %162, i64 %163
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = sub nsw i64 %159, %165
  %167 = sitofp i64 %166 to double
  %168 = fmul double %153, %167
  store double %168, ptr %85, align 8, !tbaa !13
  %169 = load double, ptr %85, align 8, !tbaa !13
  %170 = load ptr, ptr %47, align 8, !tbaa !5
  %171 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %170, i32 0, i32 4
  %172 = load ptr, ptr %171, align 8, !tbaa !22
  %173 = load i64, ptr %49, align 8, !tbaa !9
  %174 = getelementptr inbounds i64, ptr %172, i64 %173
  %175 = load i64, ptr %174, align 8, !tbaa !9
  %176 = load ptr, ptr %47, align 8, !tbaa !5
  %177 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %176, i32 0, i32 4
  %178 = load ptr, ptr %177, align 8, !tbaa !22
  %179 = load i64, ptr %48, align 8, !tbaa !9
  %180 = getelementptr inbounds i64, ptr %178, i64 %179
  %181 = load i64, ptr %180, align 8, !tbaa !9
  %182 = sub nsw i64 %175, %181
  %183 = sitofp i64 %182 to double
  %184 = fmul double %169, %183
  store double %184, ptr %85, align 8, !tbaa !13
  store i64 0, ptr %86, align 8, !tbaa !9
  %185 = load i64, ptr %86, align 8, !tbaa !9
  %186 = load i64, ptr %40, align 8, !tbaa !9
  %187 = load i64, ptr %39, align 8, !tbaa !9
  %188 = sub nsw i64 %186, %187
  %189 = load ptr, ptr %56, align 8, !tbaa !5
  %190 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %185, i64 noundef %188, ptr noundef %189)
  store i64 %190, ptr %86, align 8, !tbaa !9
  %191 = load i64, ptr %86, align 8, !tbaa !9
  %192 = load i64, ptr %43, align 8, !tbaa !9
  %193 = load i64, ptr %42, align 8, !tbaa !9
  %194 = sub nsw i64 %192, %193
  %195 = load ptr, ptr %56, align 8, !tbaa !5
  %196 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %191, i64 noundef %194, ptr noundef %195)
  store i64 %196, ptr %86, align 8, !tbaa !9
  %197 = load i64, ptr %86, align 8, !tbaa !9
  %198 = load i64, ptr %46, align 8, !tbaa !9
  %199 = load i64, ptr %45, align 8, !tbaa !9
  %200 = sub nsw i64 %198, %199
  %201 = load ptr, ptr %56, align 8, !tbaa !5
  %202 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %197, i64 noundef %200, ptr noundef %201)
  store i64 %202, ptr %86, align 8, !tbaa !9
  %203 = load i64, ptr %86, align 8, !tbaa !9
  %204 = load i64, ptr %49, align 8, !tbaa !9
  %205 = load i64, ptr %48, align 8, !tbaa !9
  %206 = sub nsw i64 %204, %205
  %207 = load ptr, ptr %56, align 8, !tbaa !5
  %208 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %203, i64 noundef %206, ptr noundef %207)
  store i64 %208, ptr %86, align 8, !tbaa !9
  %209 = load double, ptr %85, align 8, !tbaa !13
  %210 = load double, ptr @_ZN11alglib_implL26rbfv2_complexitymultiplierE, align 8, !tbaa !13
  %211 = fmul double %209, %210
  %212 = load ptr, ptr %56, align 8, !tbaa !5
  %213 = call noundef double @_ZN11alglib_impl18smpactivationlevelEPNS_8ae_stateE(ptr noundef %212)
  %214 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %211, double noundef %213)
  br i1 %214, label %215, label %249

215:                                              ; preds = %110
  %216 = load ptr, ptr %29, align 8, !tbaa !5
  %217 = load ptr, ptr %30, align 8, !tbaa !5
  %218 = load i64, ptr %31, align 8, !tbaa !9
  %219 = load ptr, ptr %32, align 8, !tbaa !5
  %220 = load i64, ptr %33, align 8, !tbaa !9
  %221 = load ptr, ptr %34, align 8, !tbaa !5
  %222 = load i64, ptr %35, align 8, !tbaa !9
  %223 = load ptr, ptr %36, align 8, !tbaa !5
  %224 = load i64, ptr %37, align 8, !tbaa !9
  %225 = load ptr, ptr %38, align 8, !tbaa !5
  %226 = load i64, ptr %39, align 8, !tbaa !9
  %227 = load i64, ptr %40, align 8, !tbaa !9
  %228 = load ptr, ptr %41, align 8, !tbaa !5
  %229 = load i64, ptr %42, align 8, !tbaa !9
  %230 = load i64, ptr %43, align 8, !tbaa !9
  %231 = load ptr, ptr %44, align 8, !tbaa !5
  %232 = load i64, ptr %45, align 8, !tbaa !9
  %233 = load i64, ptr %46, align 8, !tbaa !9
  %234 = load ptr, ptr %47, align 8, !tbaa !5
  %235 = load i64, ptr %48, align 8, !tbaa !9
  %236 = load i64, ptr %49, align 8, !tbaa !9
  %237 = load ptr, ptr %50, align 8, !tbaa !5
  %238 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %239 = trunc i8 %238 to i1
  %240 = load i64, ptr %52, align 8, !tbaa !9
  %241 = load double, ptr %53, align 8, !tbaa !13
  %242 = load ptr, ptr %54, align 8, !tbaa !5
  %243 = load ptr, ptr %55, align 8, !tbaa !5
  %244 = load ptr, ptr %56, align 8, !tbaa !5
  %245 = call noundef zeroext i1 @_ZN11alglib_impl33_trypexec_rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %216, ptr noundef %217, i64 noundef %218, ptr noundef %219, i64 noundef %220, ptr noundef %221, i64 noundef %222, ptr noundef %223, i64 noundef %224, ptr noundef %225, i64 noundef %226, i64 noundef %227, ptr noundef %228, i64 noundef %229, i64 noundef %230, ptr noundef %231, i64 noundef %232, i64 noundef %233, ptr noundef %234, i64 noundef %235, i64 noundef %236, ptr noundef %237, i1 noundef zeroext %239, i64 noundef %240, double noundef %241, ptr noundef %242, ptr noundef %243, ptr noundef %244)
  br i1 %245, label %246, label %248

246:                                              ; preds = %215
  %247 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %247)
  store i32 1, ptr %91, align 4
  br label %1453

248:                                              ; preds = %215
  br label %249

249:                                              ; preds = %248, %110
  %250 = load double, ptr %85, align 8, !tbaa !13
  %251 = load double, ptr @_ZN11alglib_implL26rbfv2_complexitymultiplierE, align 8, !tbaa !13
  %252 = fmul double %250, %251
  %253 = load ptr, ptr %56, align 8, !tbaa !5
  %254 = call noundef double @_ZN11alglib_impl10spawnlevelEPNS_8ae_stateE(ptr noundef %253)
  %255 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %252, double noundef %254)
  br i1 %255, label %256, label %541

256:                                              ; preds = %249
  %257 = load i64, ptr %86, align 8, !tbaa !9
  %258 = icmp sge i64 %257, 2
  br i1 %258, label %259, label %541

259:                                              ; preds = %256
  %260 = load i64, ptr %40, align 8, !tbaa !9
  %261 = load i64, ptr %39, align 8, !tbaa !9
  %262 = sub nsw i64 %260, %261
  %263 = load i64, ptr %86, align 8, !tbaa !9
  %264 = icmp eq i64 %262, %263
  br i1 %264, label %265, label %329

265:                                              ; preds = %259
  %266 = load i64, ptr %39, align 8, !tbaa !9
  %267 = load i64, ptr %86, align 8, !tbaa !9
  %268 = sdiv i64 %267, 2
  %269 = add nsw i64 %266, %268
  store i64 %269, ptr %87, align 8, !tbaa !9
  %270 = load ptr, ptr %29, align 8, !tbaa !5
  %271 = load ptr, ptr %30, align 8, !tbaa !5
  %272 = load i64, ptr %31, align 8, !tbaa !9
  %273 = load ptr, ptr %32, align 8, !tbaa !5
  %274 = load i64, ptr %33, align 8, !tbaa !9
  %275 = load ptr, ptr %34, align 8, !tbaa !5
  %276 = load i64, ptr %35, align 8, !tbaa !9
  %277 = load ptr, ptr %36, align 8, !tbaa !5
  %278 = load i64, ptr %37, align 8, !tbaa !9
  %279 = load ptr, ptr %38, align 8, !tbaa !5
  %280 = load i64, ptr %39, align 8, !tbaa !9
  %281 = load i64, ptr %87, align 8, !tbaa !9
  %282 = load ptr, ptr %41, align 8, !tbaa !5
  %283 = load i64, ptr %42, align 8, !tbaa !9
  %284 = load i64, ptr %43, align 8, !tbaa !9
  %285 = load ptr, ptr %44, align 8, !tbaa !5
  %286 = load i64, ptr %45, align 8, !tbaa !9
  %287 = load i64, ptr %46, align 8, !tbaa !9
  %288 = load ptr, ptr %47, align 8, !tbaa !5
  %289 = load i64, ptr %48, align 8, !tbaa !9
  %290 = load i64, ptr %49, align 8, !tbaa !9
  %291 = load ptr, ptr %50, align 8, !tbaa !5
  %292 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %293 = trunc i8 %292 to i1
  %294 = load i64, ptr %52, align 8, !tbaa !9
  %295 = load double, ptr %53, align 8, !tbaa !13
  %296 = load ptr, ptr %54, align 8, !tbaa !5
  %297 = load ptr, ptr %55, align 8, !tbaa !5
  %298 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %270, ptr noundef %271, i64 noundef %272, ptr noundef %273, i64 noundef %274, ptr noundef %275, i64 noundef %276, ptr noundef %277, i64 noundef %278, ptr noundef %279, i64 noundef %280, i64 noundef %281, ptr noundef %282, i64 noundef %283, i64 noundef %284, ptr noundef %285, i64 noundef %286, i64 noundef %287, ptr noundef %288, i64 noundef %289, i64 noundef %290, ptr noundef %291, i1 noundef zeroext %293, i64 noundef %294, double noundef %295, ptr noundef %296, ptr noundef %297, ptr noundef %298)
  %299 = load ptr, ptr %29, align 8, !tbaa !5
  %300 = load ptr, ptr %30, align 8, !tbaa !5
  %301 = load i64, ptr %31, align 8, !tbaa !9
  %302 = load ptr, ptr %32, align 8, !tbaa !5
  %303 = load i64, ptr %33, align 8, !tbaa !9
  %304 = load ptr, ptr %34, align 8, !tbaa !5
  %305 = load i64, ptr %35, align 8, !tbaa !9
  %306 = load ptr, ptr %36, align 8, !tbaa !5
  %307 = load i64, ptr %37, align 8, !tbaa !9
  %308 = load ptr, ptr %38, align 8, !tbaa !5
  %309 = load i64, ptr %87, align 8, !tbaa !9
  %310 = load i64, ptr %40, align 8, !tbaa !9
  %311 = load ptr, ptr %41, align 8, !tbaa !5
  %312 = load i64, ptr %42, align 8, !tbaa !9
  %313 = load i64, ptr %43, align 8, !tbaa !9
  %314 = load ptr, ptr %44, align 8, !tbaa !5
  %315 = load i64, ptr %45, align 8, !tbaa !9
  %316 = load i64, ptr %46, align 8, !tbaa !9
  %317 = load ptr, ptr %47, align 8, !tbaa !5
  %318 = load i64, ptr %48, align 8, !tbaa !9
  %319 = load i64, ptr %49, align 8, !tbaa !9
  %320 = load ptr, ptr %50, align 8, !tbaa !5
  %321 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %322 = trunc i8 %321 to i1
  %323 = load i64, ptr %52, align 8, !tbaa !9
  %324 = load double, ptr %53, align 8, !tbaa !13
  %325 = load ptr, ptr %54, align 8, !tbaa !5
  %326 = load ptr, ptr %55, align 8, !tbaa !5
  %327 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %299, ptr noundef %300, i64 noundef %301, ptr noundef %302, i64 noundef %303, ptr noundef %304, i64 noundef %305, ptr noundef %306, i64 noundef %307, ptr noundef %308, i64 noundef %309, i64 noundef %310, ptr noundef %311, i64 noundef %312, i64 noundef %313, ptr noundef %314, i64 noundef %315, i64 noundef %316, ptr noundef %317, i64 noundef %318, i64 noundef %319, ptr noundef %320, i1 noundef zeroext %322, i64 noundef %323, double noundef %324, ptr noundef %325, ptr noundef %326, ptr noundef %327)
  %328 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %328)
  store i32 1, ptr %91, align 4
  br label %1453

329:                                              ; preds = %259
  %330 = load i64, ptr %43, align 8, !tbaa !9
  %331 = load i64, ptr %42, align 8, !tbaa !9
  %332 = sub nsw i64 %330, %331
  %333 = load i64, ptr %86, align 8, !tbaa !9
  %334 = icmp eq i64 %332, %333
  br i1 %334, label %335, label %399

335:                                              ; preds = %329
  %336 = load i64, ptr %42, align 8, !tbaa !9
  %337 = load i64, ptr %86, align 8, !tbaa !9
  %338 = sdiv i64 %337, 2
  %339 = add nsw i64 %336, %338
  store i64 %339, ptr %87, align 8, !tbaa !9
  %340 = load ptr, ptr %29, align 8, !tbaa !5
  %341 = load ptr, ptr %30, align 8, !tbaa !5
  %342 = load i64, ptr %31, align 8, !tbaa !9
  %343 = load ptr, ptr %32, align 8, !tbaa !5
  %344 = load i64, ptr %33, align 8, !tbaa !9
  %345 = load ptr, ptr %34, align 8, !tbaa !5
  %346 = load i64, ptr %35, align 8, !tbaa !9
  %347 = load ptr, ptr %36, align 8, !tbaa !5
  %348 = load i64, ptr %37, align 8, !tbaa !9
  %349 = load ptr, ptr %38, align 8, !tbaa !5
  %350 = load i64, ptr %39, align 8, !tbaa !9
  %351 = load i64, ptr %40, align 8, !tbaa !9
  %352 = load ptr, ptr %41, align 8, !tbaa !5
  %353 = load i64, ptr %42, align 8, !tbaa !9
  %354 = load i64, ptr %87, align 8, !tbaa !9
  %355 = load ptr, ptr %44, align 8, !tbaa !5
  %356 = load i64, ptr %45, align 8, !tbaa !9
  %357 = load i64, ptr %46, align 8, !tbaa !9
  %358 = load ptr, ptr %47, align 8, !tbaa !5
  %359 = load i64, ptr %48, align 8, !tbaa !9
  %360 = load i64, ptr %49, align 8, !tbaa !9
  %361 = load ptr, ptr %50, align 8, !tbaa !5
  %362 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %363 = trunc i8 %362 to i1
  %364 = load i64, ptr %52, align 8, !tbaa !9
  %365 = load double, ptr %53, align 8, !tbaa !13
  %366 = load ptr, ptr %54, align 8, !tbaa !5
  %367 = load ptr, ptr %55, align 8, !tbaa !5
  %368 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %340, ptr noundef %341, i64 noundef %342, ptr noundef %343, i64 noundef %344, ptr noundef %345, i64 noundef %346, ptr noundef %347, i64 noundef %348, ptr noundef %349, i64 noundef %350, i64 noundef %351, ptr noundef %352, i64 noundef %353, i64 noundef %354, ptr noundef %355, i64 noundef %356, i64 noundef %357, ptr noundef %358, i64 noundef %359, i64 noundef %360, ptr noundef %361, i1 noundef zeroext %363, i64 noundef %364, double noundef %365, ptr noundef %366, ptr noundef %367, ptr noundef %368)
  %369 = load ptr, ptr %29, align 8, !tbaa !5
  %370 = load ptr, ptr %30, align 8, !tbaa !5
  %371 = load i64, ptr %31, align 8, !tbaa !9
  %372 = load ptr, ptr %32, align 8, !tbaa !5
  %373 = load i64, ptr %33, align 8, !tbaa !9
  %374 = load ptr, ptr %34, align 8, !tbaa !5
  %375 = load i64, ptr %35, align 8, !tbaa !9
  %376 = load ptr, ptr %36, align 8, !tbaa !5
  %377 = load i64, ptr %37, align 8, !tbaa !9
  %378 = load ptr, ptr %38, align 8, !tbaa !5
  %379 = load i64, ptr %39, align 8, !tbaa !9
  %380 = load i64, ptr %40, align 8, !tbaa !9
  %381 = load ptr, ptr %41, align 8, !tbaa !5
  %382 = load i64, ptr %87, align 8, !tbaa !9
  %383 = load i64, ptr %43, align 8, !tbaa !9
  %384 = load ptr, ptr %44, align 8, !tbaa !5
  %385 = load i64, ptr %45, align 8, !tbaa !9
  %386 = load i64, ptr %46, align 8, !tbaa !9
  %387 = load ptr, ptr %47, align 8, !tbaa !5
  %388 = load i64, ptr %48, align 8, !tbaa !9
  %389 = load i64, ptr %49, align 8, !tbaa !9
  %390 = load ptr, ptr %50, align 8, !tbaa !5
  %391 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %392 = trunc i8 %391 to i1
  %393 = load i64, ptr %52, align 8, !tbaa !9
  %394 = load double, ptr %53, align 8, !tbaa !13
  %395 = load ptr, ptr %54, align 8, !tbaa !5
  %396 = load ptr, ptr %55, align 8, !tbaa !5
  %397 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %369, ptr noundef %370, i64 noundef %371, ptr noundef %372, i64 noundef %373, ptr noundef %374, i64 noundef %375, ptr noundef %376, i64 noundef %377, ptr noundef %378, i64 noundef %379, i64 noundef %380, ptr noundef %381, i64 noundef %382, i64 noundef %383, ptr noundef %384, i64 noundef %385, i64 noundef %386, ptr noundef %387, i64 noundef %388, i64 noundef %389, ptr noundef %390, i1 noundef zeroext %392, i64 noundef %393, double noundef %394, ptr noundef %395, ptr noundef %396, ptr noundef %397)
  %398 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %398)
  store i32 1, ptr %91, align 4
  br label %1453

399:                                              ; preds = %329
  %400 = load i64, ptr %46, align 8, !tbaa !9
  %401 = load i64, ptr %45, align 8, !tbaa !9
  %402 = sub nsw i64 %400, %401
  %403 = load i64, ptr %86, align 8, !tbaa !9
  %404 = icmp eq i64 %402, %403
  br i1 %404, label %405, label %469

405:                                              ; preds = %399
  %406 = load i64, ptr %45, align 8, !tbaa !9
  %407 = load i64, ptr %86, align 8, !tbaa !9
  %408 = sdiv i64 %407, 2
  %409 = add nsw i64 %406, %408
  store i64 %409, ptr %87, align 8, !tbaa !9
  %410 = load ptr, ptr %29, align 8, !tbaa !5
  %411 = load ptr, ptr %30, align 8, !tbaa !5
  %412 = load i64, ptr %31, align 8, !tbaa !9
  %413 = load ptr, ptr %32, align 8, !tbaa !5
  %414 = load i64, ptr %33, align 8, !tbaa !9
  %415 = load ptr, ptr %34, align 8, !tbaa !5
  %416 = load i64, ptr %35, align 8, !tbaa !9
  %417 = load ptr, ptr %36, align 8, !tbaa !5
  %418 = load i64, ptr %37, align 8, !tbaa !9
  %419 = load ptr, ptr %38, align 8, !tbaa !5
  %420 = load i64, ptr %39, align 8, !tbaa !9
  %421 = load i64, ptr %40, align 8, !tbaa !9
  %422 = load ptr, ptr %41, align 8, !tbaa !5
  %423 = load i64, ptr %42, align 8, !tbaa !9
  %424 = load i64, ptr %43, align 8, !tbaa !9
  %425 = load ptr, ptr %44, align 8, !tbaa !5
  %426 = load i64, ptr %45, align 8, !tbaa !9
  %427 = load i64, ptr %87, align 8, !tbaa !9
  %428 = load ptr, ptr %47, align 8, !tbaa !5
  %429 = load i64, ptr %48, align 8, !tbaa !9
  %430 = load i64, ptr %49, align 8, !tbaa !9
  %431 = load ptr, ptr %50, align 8, !tbaa !5
  %432 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %433 = trunc i8 %432 to i1
  %434 = load i64, ptr %52, align 8, !tbaa !9
  %435 = load double, ptr %53, align 8, !tbaa !13
  %436 = load ptr, ptr %54, align 8, !tbaa !5
  %437 = load ptr, ptr %55, align 8, !tbaa !5
  %438 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %410, ptr noundef %411, i64 noundef %412, ptr noundef %413, i64 noundef %414, ptr noundef %415, i64 noundef %416, ptr noundef %417, i64 noundef %418, ptr noundef %419, i64 noundef %420, i64 noundef %421, ptr noundef %422, i64 noundef %423, i64 noundef %424, ptr noundef %425, i64 noundef %426, i64 noundef %427, ptr noundef %428, i64 noundef %429, i64 noundef %430, ptr noundef %431, i1 noundef zeroext %433, i64 noundef %434, double noundef %435, ptr noundef %436, ptr noundef %437, ptr noundef %438)
  %439 = load ptr, ptr %29, align 8, !tbaa !5
  %440 = load ptr, ptr %30, align 8, !tbaa !5
  %441 = load i64, ptr %31, align 8, !tbaa !9
  %442 = load ptr, ptr %32, align 8, !tbaa !5
  %443 = load i64, ptr %33, align 8, !tbaa !9
  %444 = load ptr, ptr %34, align 8, !tbaa !5
  %445 = load i64, ptr %35, align 8, !tbaa !9
  %446 = load ptr, ptr %36, align 8, !tbaa !5
  %447 = load i64, ptr %37, align 8, !tbaa !9
  %448 = load ptr, ptr %38, align 8, !tbaa !5
  %449 = load i64, ptr %39, align 8, !tbaa !9
  %450 = load i64, ptr %40, align 8, !tbaa !9
  %451 = load ptr, ptr %41, align 8, !tbaa !5
  %452 = load i64, ptr %42, align 8, !tbaa !9
  %453 = load i64, ptr %43, align 8, !tbaa !9
  %454 = load ptr, ptr %44, align 8, !tbaa !5
  %455 = load i64, ptr %87, align 8, !tbaa !9
  %456 = load i64, ptr %46, align 8, !tbaa !9
  %457 = load ptr, ptr %47, align 8, !tbaa !5
  %458 = load i64, ptr %48, align 8, !tbaa !9
  %459 = load i64, ptr %49, align 8, !tbaa !9
  %460 = load ptr, ptr %50, align 8, !tbaa !5
  %461 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %462 = trunc i8 %461 to i1
  %463 = load i64, ptr %52, align 8, !tbaa !9
  %464 = load double, ptr %53, align 8, !tbaa !13
  %465 = load ptr, ptr %54, align 8, !tbaa !5
  %466 = load ptr, ptr %55, align 8, !tbaa !5
  %467 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %439, ptr noundef %440, i64 noundef %441, ptr noundef %442, i64 noundef %443, ptr noundef %444, i64 noundef %445, ptr noundef %446, i64 noundef %447, ptr noundef %448, i64 noundef %449, i64 noundef %450, ptr noundef %451, i64 noundef %452, i64 noundef %453, ptr noundef %454, i64 noundef %455, i64 noundef %456, ptr noundef %457, i64 noundef %458, i64 noundef %459, ptr noundef %460, i1 noundef zeroext %462, i64 noundef %463, double noundef %464, ptr noundef %465, ptr noundef %466, ptr noundef %467)
  %468 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %468)
  store i32 1, ptr %91, align 4
  br label %1453

469:                                              ; preds = %399
  %470 = load i64, ptr %49, align 8, !tbaa !9
  %471 = load i64, ptr %48, align 8, !tbaa !9
  %472 = sub nsw i64 %470, %471
  %473 = load i64, ptr %86, align 8, !tbaa !9
  %474 = icmp eq i64 %472, %473
  br i1 %474, label %475, label %539

475:                                              ; preds = %469
  %476 = load i64, ptr %48, align 8, !tbaa !9
  %477 = load i64, ptr %86, align 8, !tbaa !9
  %478 = sdiv i64 %477, 2
  %479 = add nsw i64 %476, %478
  store i64 %479, ptr %87, align 8, !tbaa !9
  %480 = load ptr, ptr %29, align 8, !tbaa !5
  %481 = load ptr, ptr %30, align 8, !tbaa !5
  %482 = load i64, ptr %31, align 8, !tbaa !9
  %483 = load ptr, ptr %32, align 8, !tbaa !5
  %484 = load i64, ptr %33, align 8, !tbaa !9
  %485 = load ptr, ptr %34, align 8, !tbaa !5
  %486 = load i64, ptr %35, align 8, !tbaa !9
  %487 = load ptr, ptr %36, align 8, !tbaa !5
  %488 = load i64, ptr %37, align 8, !tbaa !9
  %489 = load ptr, ptr %38, align 8, !tbaa !5
  %490 = load i64, ptr %39, align 8, !tbaa !9
  %491 = load i64, ptr %40, align 8, !tbaa !9
  %492 = load ptr, ptr %41, align 8, !tbaa !5
  %493 = load i64, ptr %42, align 8, !tbaa !9
  %494 = load i64, ptr %43, align 8, !tbaa !9
  %495 = load ptr, ptr %44, align 8, !tbaa !5
  %496 = load i64, ptr %45, align 8, !tbaa !9
  %497 = load i64, ptr %46, align 8, !tbaa !9
  %498 = load ptr, ptr %47, align 8, !tbaa !5
  %499 = load i64, ptr %48, align 8, !tbaa !9
  %500 = load i64, ptr %87, align 8, !tbaa !9
  %501 = load ptr, ptr %50, align 8, !tbaa !5
  %502 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %503 = trunc i8 %502 to i1
  %504 = load i64, ptr %52, align 8, !tbaa !9
  %505 = load double, ptr %53, align 8, !tbaa !13
  %506 = load ptr, ptr %54, align 8, !tbaa !5
  %507 = load ptr, ptr %55, align 8, !tbaa !5
  %508 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %480, ptr noundef %481, i64 noundef %482, ptr noundef %483, i64 noundef %484, ptr noundef %485, i64 noundef %486, ptr noundef %487, i64 noundef %488, ptr noundef %489, i64 noundef %490, i64 noundef %491, ptr noundef %492, i64 noundef %493, i64 noundef %494, ptr noundef %495, i64 noundef %496, i64 noundef %497, ptr noundef %498, i64 noundef %499, i64 noundef %500, ptr noundef %501, i1 noundef zeroext %503, i64 noundef %504, double noundef %505, ptr noundef %506, ptr noundef %507, ptr noundef %508)
  %509 = load ptr, ptr %29, align 8, !tbaa !5
  %510 = load ptr, ptr %30, align 8, !tbaa !5
  %511 = load i64, ptr %31, align 8, !tbaa !9
  %512 = load ptr, ptr %32, align 8, !tbaa !5
  %513 = load i64, ptr %33, align 8, !tbaa !9
  %514 = load ptr, ptr %34, align 8, !tbaa !5
  %515 = load i64, ptr %35, align 8, !tbaa !9
  %516 = load ptr, ptr %36, align 8, !tbaa !5
  %517 = load i64, ptr %37, align 8, !tbaa !9
  %518 = load ptr, ptr %38, align 8, !tbaa !5
  %519 = load i64, ptr %39, align 8, !tbaa !9
  %520 = load i64, ptr %40, align 8, !tbaa !9
  %521 = load ptr, ptr %41, align 8, !tbaa !5
  %522 = load i64, ptr %42, align 8, !tbaa !9
  %523 = load i64, ptr %43, align 8, !tbaa !9
  %524 = load ptr, ptr %44, align 8, !tbaa !5
  %525 = load i64, ptr %45, align 8, !tbaa !9
  %526 = load i64, ptr %46, align 8, !tbaa !9
  %527 = load ptr, ptr %47, align 8, !tbaa !5
  %528 = load i64, ptr %87, align 8, !tbaa !9
  %529 = load i64, ptr %49, align 8, !tbaa !9
  %530 = load ptr, ptr %50, align 8, !tbaa !5
  %531 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %532 = trunc i8 %531 to i1
  %533 = load i64, ptr %52, align 8, !tbaa !9
  %534 = load double, ptr %53, align 8, !tbaa !13
  %535 = load ptr, ptr %54, align 8, !tbaa !5
  %536 = load ptr, ptr %55, align 8, !tbaa !5
  %537 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %509, ptr noundef %510, i64 noundef %511, ptr noundef %512, i64 noundef %513, ptr noundef %514, i64 noundef %515, ptr noundef %516, i64 noundef %517, ptr noundef %518, i64 noundef %519, i64 noundef %520, ptr noundef %521, i64 noundef %522, i64 noundef %523, ptr noundef %524, i64 noundef %525, i64 noundef %526, ptr noundef %527, i64 noundef %528, i64 noundef %529, ptr noundef %530, i1 noundef zeroext %532, i64 noundef %533, double noundef %534, ptr noundef %535, ptr noundef %536, ptr noundef %537)
  %538 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %538)
  store i32 1, ptr %91, align 4
  br label %1453

539:                                              ; preds = %469
  %540 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.932, ptr noundef %540)
  br label %541

541:                                              ; preds = %539, %256, %249
  %542 = load ptr, ptr %54, align 8, !tbaa !5
  %543 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23ae_shared_pool_retrieveEPNS_14ae_shared_poolEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %542, ptr noundef %90, ptr noundef %543)
  %544 = load i64, ptr %58, align 8, !tbaa !9
  %545 = icmp sle i64 %544, 4
  %546 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %545, ptr noundef @.str.932, ptr noundef %546)
  %547 = load ptr, ptr %89, align 8, !tbaa !5
  %548 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %547, i32 0, i32 4
  %549 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %548, i64 noundef 4, ptr noundef %549)
  %550 = load ptr, ptr %89, align 8, !tbaa !5
  %551 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %550, i32 0, i32 1
  %552 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %551, i64 noundef 4, ptr noundef %552)
  %553 = load ptr, ptr %89, align 8, !tbaa !5
  %554 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %553, i32 0, i32 5
  %555 = load i64, ptr %59, align 8, !tbaa !9
  %556 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %554, i64 noundef %555, ptr noundef %556)
  %557 = load ptr, ptr %29, align 8, !tbaa !5
  %558 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %557, i32 0, i32 4
  %559 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %558, i32 0, i32 4
  %560 = load ptr, ptr %559, align 8, !tbaa !22
  %561 = load i64, ptr %52, align 8, !tbaa !9
  %562 = getelementptr inbounds double, ptr %560, i64 %561
  %563 = load double, ptr %562, align 8, !tbaa !13
  store double %563, ptr %76, align 8, !tbaa !13
  %564 = load double, ptr %76, align 8, !tbaa !13
  %565 = load double, ptr %76, align 8, !tbaa !13
  %566 = fmul double %564, %565
  %567 = fdiv double 1.000000e+00, %566
  store double %567, ptr %77, align 8, !tbaa !13
  %568 = load i64, ptr %49, align 8, !tbaa !9
  %569 = load i64, ptr %48, align 8, !tbaa !9
  %570 = sub nsw i64 %568, %569
  %571 = load i64, ptr %46, align 8, !tbaa !9
  %572 = load i64, ptr %45, align 8, !tbaa !9
  %573 = sub nsw i64 %571, %572
  %574 = mul nsw i64 %570, %573
  %575 = load i64, ptr %43, align 8, !tbaa !9
  %576 = load i64, ptr %42, align 8, !tbaa !9
  %577 = sub nsw i64 %575, %576
  %578 = mul nsw i64 %574, %577
  %579 = load i64, ptr %40, align 8, !tbaa !9
  %580 = load i64, ptr %39, align 8, !tbaa !9
  %581 = sub nsw i64 %579, %580
  %582 = mul nsw i64 %578, %581
  store i64 %582, ptr %63, align 8, !tbaa !9
  store i64 0, ptr %62, align 8, !tbaa !9
  br label %583

583:                                              ; preds = %1446, %541
  %584 = load i64, ptr %62, align 8, !tbaa !9
  %585 = load i64, ptr %63, align 8, !tbaa !9
  %586 = sub nsw i64 %585, 1
  %587 = icmp sle i64 %584, %586
  br i1 %587, label %588, label %1449

588:                                              ; preds = %583
  %589 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %589, ptr %60, align 8, !tbaa !9
  %590 = load i64, ptr %39, align 8, !tbaa !9
  %591 = load i64, ptr %60, align 8, !tbaa !9
  %592 = load i64, ptr %40, align 8, !tbaa !9
  %593 = load i64, ptr %39, align 8, !tbaa !9
  %594 = sub nsw i64 %592, %593
  %595 = srem i64 %591, %594
  %596 = add nsw i64 %590, %595
  store i64 %596, ptr %68, align 8, !tbaa !9
  %597 = load i64, ptr %60, align 8, !tbaa !9
  %598 = load i64, ptr %40, align 8, !tbaa !9
  %599 = load i64, ptr %39, align 8, !tbaa !9
  %600 = sub nsw i64 %598, %599
  %601 = sdiv i64 %597, %600
  store i64 %601, ptr %60, align 8, !tbaa !9
  %602 = load i64, ptr %42, align 8, !tbaa !9
  %603 = load i64, ptr %60, align 8, !tbaa !9
  %604 = load i64, ptr %43, align 8, !tbaa !9
  %605 = load i64, ptr %42, align 8, !tbaa !9
  %606 = sub nsw i64 %604, %605
  %607 = srem i64 %603, %606
  %608 = add nsw i64 %602, %607
  store i64 %608, ptr %69, align 8, !tbaa !9
  %609 = load i64, ptr %60, align 8, !tbaa !9
  %610 = load i64, ptr %43, align 8, !tbaa !9
  %611 = load i64, ptr %42, align 8, !tbaa !9
  %612 = sub nsw i64 %610, %611
  %613 = sdiv i64 %609, %612
  store i64 %613, ptr %60, align 8, !tbaa !9
  %614 = load i64, ptr %45, align 8, !tbaa !9
  %615 = load i64, ptr %60, align 8, !tbaa !9
  %616 = load i64, ptr %46, align 8, !tbaa !9
  %617 = load i64, ptr %45, align 8, !tbaa !9
  %618 = sub nsw i64 %616, %617
  %619 = srem i64 %615, %618
  %620 = add nsw i64 %614, %619
  store i64 %620, ptr %70, align 8, !tbaa !9
  %621 = load i64, ptr %60, align 8, !tbaa !9
  %622 = load i64, ptr %46, align 8, !tbaa !9
  %623 = load i64, ptr %45, align 8, !tbaa !9
  %624 = sub nsw i64 %622, %623
  %625 = sdiv i64 %621, %624
  store i64 %625, ptr %60, align 8, !tbaa !9
  %626 = load i64, ptr %48, align 8, !tbaa !9
  %627 = load i64, ptr %60, align 8, !tbaa !9
  %628 = load i64, ptr %49, align 8, !tbaa !9
  %629 = load i64, ptr %48, align 8, !tbaa !9
  %630 = sub nsw i64 %628, %629
  %631 = srem i64 %627, %630
  %632 = add nsw i64 %626, %631
  store i64 %632, ptr %71, align 8, !tbaa !9
  %633 = load i64, ptr %60, align 8, !tbaa !9
  %634 = load i64, ptr %49, align 8, !tbaa !9
  %635 = load i64, ptr %48, align 8, !tbaa !9
  %636 = sub nsw i64 %634, %635
  %637 = sdiv i64 %633, %636
  store i64 %637, ptr %60, align 8, !tbaa !9
  %638 = load i64, ptr %60, align 8, !tbaa !9
  %639 = icmp eq i64 %638, 0
  %640 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %639, ptr noundef @.str.932, ptr noundef %640)
  %641 = load ptr, ptr %47, align 8, !tbaa !5
  %642 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %641, i32 0, i32 4
  %643 = load ptr, ptr %642, align 8, !tbaa !22
  %644 = load i64, ptr %71, align 8, !tbaa !9
  %645 = add nsw i64 %644, 1
  %646 = getelementptr inbounds i64, ptr %643, i64 %645
  %647 = load i64, ptr %646, align 8, !tbaa !9
  %648 = load ptr, ptr %47, align 8, !tbaa !5
  %649 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %648, i32 0, i32 4
  %650 = load ptr, ptr %649, align 8, !tbaa !22
  %651 = load i64, ptr %71, align 8, !tbaa !9
  %652 = getelementptr inbounds i64, ptr %650, i64 %651
  %653 = load i64, ptr %652, align 8, !tbaa !9
  %654 = sub nsw i64 %647, %653
  %655 = load ptr, ptr %44, align 8, !tbaa !5
  %656 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %655, i32 0, i32 4
  %657 = load ptr, ptr %656, align 8, !tbaa !22
  %658 = load i64, ptr %70, align 8, !tbaa !9
  %659 = add nsw i64 %658, 1
  %660 = getelementptr inbounds i64, ptr %657, i64 %659
  %661 = load i64, ptr %660, align 8, !tbaa !9
  %662 = load ptr, ptr %44, align 8, !tbaa !5
  %663 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %662, i32 0, i32 4
  %664 = load ptr, ptr %663, align 8, !tbaa !22
  %665 = load i64, ptr %70, align 8, !tbaa !9
  %666 = getelementptr inbounds i64, ptr %664, i64 %665
  %667 = load i64, ptr %666, align 8, !tbaa !9
  %668 = sub nsw i64 %661, %667
  %669 = mul nsw i64 %654, %668
  %670 = load ptr, ptr %41, align 8, !tbaa !5
  %671 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %670, i32 0, i32 4
  %672 = load ptr, ptr %671, align 8, !tbaa !22
  %673 = load i64, ptr %69, align 8, !tbaa !9
  %674 = add nsw i64 %673, 1
  %675 = getelementptr inbounds i64, ptr %672, i64 %674
  %676 = load i64, ptr %675, align 8, !tbaa !9
  %677 = load ptr, ptr %41, align 8, !tbaa !5
  %678 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %677, i32 0, i32 4
  %679 = load ptr, ptr %678, align 8, !tbaa !22
  %680 = load i64, ptr %69, align 8, !tbaa !9
  %681 = getelementptr inbounds i64, ptr %679, i64 %680
  %682 = load i64, ptr %681, align 8, !tbaa !9
  %683 = sub nsw i64 %676, %682
  %684 = mul nsw i64 %669, %683
  store i64 %684, ptr %67, align 8, !tbaa !9
  store i64 0, ptr %66, align 8, !tbaa !9
  br label %685

685:                                              ; preds = %1442, %588
  %686 = load i64, ptr %66, align 8, !tbaa !9
  %687 = load i64, ptr %67, align 8, !tbaa !9
  %688 = sub nsw i64 %687, 1
  %689 = icmp sle i64 %686, %688
  br i1 %689, label %690, label %1445

690:                                              ; preds = %685
  %691 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %691, ptr %60, align 8, !tbaa !9
  %692 = load ptr, ptr %41, align 8, !tbaa !5
  %693 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %692, i32 0, i32 4
  %694 = load ptr, ptr %693, align 8, !tbaa !22
  %695 = load i64, ptr %69, align 8, !tbaa !9
  %696 = getelementptr inbounds i64, ptr %694, i64 %695
  %697 = load i64, ptr %696, align 8, !tbaa !9
  %698 = load i64, ptr %60, align 8, !tbaa !9
  %699 = load ptr, ptr %41, align 8, !tbaa !5
  %700 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %699, i32 0, i32 4
  %701 = load ptr, ptr %700, align 8, !tbaa !22
  %702 = load i64, ptr %69, align 8, !tbaa !9
  %703 = add nsw i64 %702, 1
  %704 = getelementptr inbounds i64, ptr %701, i64 %703
  %705 = load i64, ptr %704, align 8, !tbaa !9
  %706 = load ptr, ptr %41, align 8, !tbaa !5
  %707 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %706, i32 0, i32 4
  %708 = load ptr, ptr %707, align 8, !tbaa !22
  %709 = load i64, ptr %69, align 8, !tbaa !9
  %710 = getelementptr inbounds i64, ptr %708, i64 %709
  %711 = load i64, ptr %710, align 8, !tbaa !9
  %712 = sub nsw i64 %705, %711
  %713 = srem i64 %698, %712
  %714 = add nsw i64 %697, %713
  store i64 %714, ptr %73, align 8, !tbaa !9
  %715 = load i64, ptr %60, align 8, !tbaa !9
  %716 = load ptr, ptr %41, align 8, !tbaa !5
  %717 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %716, i32 0, i32 4
  %718 = load ptr, ptr %717, align 8, !tbaa !22
  %719 = load i64, ptr %69, align 8, !tbaa !9
  %720 = add nsw i64 %719, 1
  %721 = getelementptr inbounds i64, ptr %718, i64 %720
  %722 = load i64, ptr %721, align 8, !tbaa !9
  %723 = load ptr, ptr %41, align 8, !tbaa !5
  %724 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %723, i32 0, i32 4
  %725 = load ptr, ptr %724, align 8, !tbaa !22
  %726 = load i64, ptr %69, align 8, !tbaa !9
  %727 = getelementptr inbounds i64, ptr %725, i64 %726
  %728 = load i64, ptr %727, align 8, !tbaa !9
  %729 = sub nsw i64 %722, %728
  %730 = sdiv i64 %715, %729
  store i64 %730, ptr %60, align 8, !tbaa !9
  %731 = load ptr, ptr %44, align 8, !tbaa !5
  %732 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %731, i32 0, i32 4
  %733 = load ptr, ptr %732, align 8, !tbaa !22
  %734 = load i64, ptr %70, align 8, !tbaa !9
  %735 = getelementptr inbounds i64, ptr %733, i64 %734
  %736 = load i64, ptr %735, align 8, !tbaa !9
  %737 = load i64, ptr %60, align 8, !tbaa !9
  %738 = load ptr, ptr %44, align 8, !tbaa !5
  %739 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %738, i32 0, i32 4
  %740 = load ptr, ptr %739, align 8, !tbaa !22
  %741 = load i64, ptr %70, align 8, !tbaa !9
  %742 = add nsw i64 %741, 1
  %743 = getelementptr inbounds i64, ptr %740, i64 %742
  %744 = load i64, ptr %743, align 8, !tbaa !9
  %745 = load ptr, ptr %44, align 8, !tbaa !5
  %746 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %745, i32 0, i32 4
  %747 = load ptr, ptr %746, align 8, !tbaa !22
  %748 = load i64, ptr %70, align 8, !tbaa !9
  %749 = getelementptr inbounds i64, ptr %747, i64 %748
  %750 = load i64, ptr %749, align 8, !tbaa !9
  %751 = sub nsw i64 %744, %750
  %752 = srem i64 %737, %751
  %753 = add nsw i64 %736, %752
  store i64 %753, ptr %74, align 8, !tbaa !9
  %754 = load i64, ptr %60, align 8, !tbaa !9
  %755 = load ptr, ptr %44, align 8, !tbaa !5
  %756 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %755, i32 0, i32 4
  %757 = load ptr, ptr %756, align 8, !tbaa !22
  %758 = load i64, ptr %70, align 8, !tbaa !9
  %759 = add nsw i64 %758, 1
  %760 = getelementptr inbounds i64, ptr %757, i64 %759
  %761 = load i64, ptr %760, align 8, !tbaa !9
  %762 = load ptr, ptr %44, align 8, !tbaa !5
  %763 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %762, i32 0, i32 4
  %764 = load ptr, ptr %763, align 8, !tbaa !22
  %765 = load i64, ptr %70, align 8, !tbaa !9
  %766 = getelementptr inbounds i64, ptr %764, i64 %765
  %767 = load i64, ptr %766, align 8, !tbaa !9
  %768 = sub nsw i64 %761, %767
  %769 = sdiv i64 %754, %768
  store i64 %769, ptr %60, align 8, !tbaa !9
  %770 = load ptr, ptr %47, align 8, !tbaa !5
  %771 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %770, i32 0, i32 4
  %772 = load ptr, ptr %771, align 8, !tbaa !22
  %773 = load i64, ptr %71, align 8, !tbaa !9
  %774 = getelementptr inbounds i64, ptr %772, i64 %773
  %775 = load i64, ptr %774, align 8, !tbaa !9
  %776 = load i64, ptr %60, align 8, !tbaa !9
  %777 = load ptr, ptr %47, align 8, !tbaa !5
  %778 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %777, i32 0, i32 4
  %779 = load ptr, ptr %778, align 8, !tbaa !22
  %780 = load i64, ptr %71, align 8, !tbaa !9
  %781 = add nsw i64 %780, 1
  %782 = getelementptr inbounds i64, ptr %779, i64 %781
  %783 = load i64, ptr %782, align 8, !tbaa !9
  %784 = load ptr, ptr %47, align 8, !tbaa !5
  %785 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %784, i32 0, i32 4
  %786 = load ptr, ptr %785, align 8, !tbaa !22
  %787 = load i64, ptr %71, align 8, !tbaa !9
  %788 = getelementptr inbounds i64, ptr %786, i64 %787
  %789 = load i64, ptr %788, align 8, !tbaa !9
  %790 = sub nsw i64 %783, %789
  %791 = srem i64 %776, %790
  %792 = add nsw i64 %775, %791
  store i64 %792, ptr %75, align 8, !tbaa !9
  %793 = load i64, ptr %60, align 8, !tbaa !9
  %794 = load ptr, ptr %47, align 8, !tbaa !5
  %795 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %794, i32 0, i32 4
  %796 = load ptr, ptr %795, align 8, !tbaa !22
  %797 = load i64, ptr %71, align 8, !tbaa !9
  %798 = add nsw i64 %797, 1
  %799 = getelementptr inbounds i64, ptr %796, i64 %798
  %800 = load i64, ptr %799, align 8, !tbaa !9
  %801 = load ptr, ptr %47, align 8, !tbaa !5
  %802 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %801, i32 0, i32 4
  %803 = load ptr, ptr %802, align 8, !tbaa !22
  %804 = load i64, ptr %71, align 8, !tbaa !9
  %805 = getelementptr inbounds i64, ptr %803, i64 %804
  %806 = load i64, ptr %805, align 8, !tbaa !9
  %807 = sub nsw i64 %800, %806
  %808 = sdiv i64 %793, %807
  store i64 %808, ptr %60, align 8, !tbaa !9
  %809 = load i64, ptr %60, align 8, !tbaa !9
  %810 = icmp eq i64 %809, 0
  %811 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %810, ptr noundef @.str.932, ptr noundef %811)
  %812 = load ptr, ptr %38, align 8, !tbaa !5
  %813 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %812, i32 0, i32 4
  %814 = load ptr, ptr %813, align 8, !tbaa !22
  %815 = load i64, ptr %68, align 8, !tbaa !9
  %816 = add nsw i64 %815, 1
  %817 = getelementptr inbounds i64, ptr %814, i64 %816
  %818 = load i64, ptr %817, align 8, !tbaa !9
  %819 = load ptr, ptr %38, align 8, !tbaa !5
  %820 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %819, i32 0, i32 4
  %821 = load ptr, ptr %820, align 8, !tbaa !22
  %822 = load i64, ptr %68, align 8, !tbaa !9
  %823 = getelementptr inbounds i64, ptr %821, i64 %822
  %824 = load i64, ptr %823, align 8, !tbaa !9
  %825 = sub nsw i64 %818, %824
  store i64 %825, ptr %65, align 8, !tbaa !9
  %826 = load ptr, ptr %38, align 8, !tbaa !5
  %827 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %826, i32 0, i32 4
  %828 = load ptr, ptr %827, align 8, !tbaa !22
  %829 = load i64, ptr %68, align 8, !tbaa !9
  %830 = getelementptr inbounds i64, ptr %828, i64 %829
  %831 = load i64, ptr %830, align 8, !tbaa !9
  %832 = load i64, ptr %73, align 8, !tbaa !9
  %833 = load i64, ptr %74, align 8, !tbaa !9
  %834 = load i64, ptr %75, align 8, !tbaa !9
  %835 = load i64, ptr %35, align 8, !tbaa !9
  %836 = mul nsw i64 %834, %835
  %837 = add nsw i64 %833, %836
  %838 = load i64, ptr %33, align 8, !tbaa !9
  %839 = mul nsw i64 %837, %838
  %840 = add nsw i64 %832, %839
  %841 = load i64, ptr %31, align 8, !tbaa !9
  %842 = mul nsw i64 %840, %841
  %843 = add nsw i64 %831, %842
  store i64 %843, ptr %81, align 8, !tbaa !9
  store i8 1, ptr %88, align 1, !tbaa !11
  store i64 0, ptr %64, align 8, !tbaa !9
  br label %844

844:                                              ; preds = %871, %690
  %845 = load i64, ptr %64, align 8, !tbaa !9
  %846 = load i64, ptr %65, align 8, !tbaa !9
  %847 = sub nsw i64 %846, 1
  %848 = icmp sle i64 %845, %847
  br i1 %848, label %849, label %874

849:                                              ; preds = %844
  %850 = load i8, ptr %88, align 1, !tbaa !11, !range !23, !noundef !24
  %851 = trunc i8 %850 to i1
  br i1 %851, label %852, label %868

852:                                              ; preds = %849
  %853 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %854 = trunc i8 %853 to i1
  br i1 %854, label %855, label %866

855:                                              ; preds = %852
  %856 = load ptr, ptr %50, align 8, !tbaa !5
  %857 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %856, i32 0, i32 4
  %858 = load ptr, ptr %857, align 8, !tbaa !22
  %859 = load i64, ptr %81, align 8, !tbaa !9
  %860 = load i64, ptr %64, align 8, !tbaa !9
  %861 = add nsw i64 %859, %860
  %862 = getelementptr inbounds i8, ptr %858, i64 %861
  %863 = load i8, ptr %862, align 1, !tbaa !11, !range !23, !noundef !24
  %864 = trunc i8 %863 to i1
  %865 = xor i1 %864, true
  br label %866

866:                                              ; preds = %855, %852
  %867 = phi i1 [ false, %852 ], [ %865, %855 ]
  br label %868

868:                                              ; preds = %866, %849
  %869 = phi i1 [ false, %849 ], [ %867, %866 ]
  %870 = zext i1 %869 to i8
  store i8 %870, ptr %88, align 1, !tbaa !11
  br label %871

871:                                              ; preds = %868
  %872 = load i64, ptr %64, align 8, !tbaa !9
  %873 = add nsw i64 %872, 1
  store i64 %873, ptr %64, align 8, !tbaa !9
  br label %844, !llvm.loop !25

874:                                              ; preds = %844
  %875 = load i8, ptr %88, align 1, !tbaa !11, !range !23, !noundef !24
  %876 = trunc i8 %875 to i1
  br i1 %876, label %877, label %878

877:                                              ; preds = %874
  br label %1442

878:                                              ; preds = %874
  %879 = load ptr, ptr %29, align 8, !tbaa !5
  %880 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %879, i32 0, i32 2
  %881 = load i64, ptr %880, align 8, !tbaa !27
  %882 = load ptr, ptr %56, align 8, !tbaa !5
  %883 = call noundef double @_ZN11alglib_impl15rbfv2nearradiusElPNS_8ae_stateE(i64 noundef %881, ptr noundef %882)
  %884 = fmul double 5.000000e-01, %883
  %885 = load double, ptr %76, align 8, !tbaa !13
  %886 = fmul double %884, %885
  %887 = load ptr, ptr %29, align 8, !tbaa !5
  %888 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %887, i32 0, i32 5
  %889 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %888, i32 0, i32 4
  %890 = load ptr, ptr %889, align 8, !tbaa !22
  %891 = getelementptr inbounds double, ptr %890, i64 0
  %892 = load double, ptr %891, align 8, !tbaa !13
  %893 = fmul double %886, %892
  store double %893, ptr %84, align 8, !tbaa !13
  %894 = load ptr, ptr %30, align 8, !tbaa !5
  %895 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %894, i32 0, i32 4
  %896 = load ptr, ptr %895, align 8, !tbaa !22
  %897 = load ptr, ptr %38, align 8, !tbaa !5
  %898 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %897, i32 0, i32 4
  %899 = load ptr, ptr %898, align 8, !tbaa !22
  %900 = load i64, ptr %68, align 8, !tbaa !9
  %901 = add nsw i64 %900, 1
  %902 = getelementptr inbounds i64, ptr %899, i64 %901
  %903 = load i64, ptr %902, align 8, !tbaa !9
  %904 = sub nsw i64 %903, 1
  %905 = getelementptr inbounds double, ptr %896, i64 %904
  %906 = load double, ptr %905, align 8, !tbaa !13
  %907 = load ptr, ptr %30, align 8, !tbaa !5
  %908 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %907, i32 0, i32 4
  %909 = load ptr, ptr %908, align 8, !tbaa !22
  %910 = load ptr, ptr %38, align 8, !tbaa !5
  %911 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %910, i32 0, i32 4
  %912 = load ptr, ptr %911, align 8, !tbaa !22
  %913 = load i64, ptr %68, align 8, !tbaa !9
  %914 = getelementptr inbounds i64, ptr %912, i64 %913
  %915 = load i64, ptr %914, align 8, !tbaa !9
  %916 = getelementptr inbounds double, ptr %909, i64 %915
  %917 = load double, ptr %916, align 8, !tbaa !13
  %918 = fsub double %906, %917
  store double %918, ptr %83, align 8, !tbaa !13
  %919 = load i64, ptr %65, align 8, !tbaa !9
  %920 = icmp sgt i64 %919, 1
  br i1 %920, label %921, label %1217

921:                                              ; preds = %878
  %922 = load double, ptr %83, align 8, !tbaa !13
  %923 = load double, ptr %84, align 8, !tbaa !13
  %924 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %922, double noundef %923)
  br i1 %924, label %925, label %1217

925:                                              ; preds = %921
  %926 = load double, ptr %76, align 8, !tbaa !13
  %927 = load ptr, ptr %29, align 8, !tbaa !5
  %928 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %927, i32 0, i32 2
  %929 = load i64, ptr %928, align 8, !tbaa !27
  %930 = load ptr, ptr %56, align 8, !tbaa !5
  %931 = call noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef %929, ptr noundef %930)
  %932 = load double, ptr %83, align 8, !tbaa !13
  %933 = fmul double 5.000000e-01, %932
  %934 = load ptr, ptr %29, align 8, !tbaa !5
  %935 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %934, i32 0, i32 5
  %936 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %935, i32 0, i32 4
  %937 = load ptr, ptr %936, align 8, !tbaa !22
  %938 = getelementptr inbounds double, ptr %937, i64 0
  %939 = load double, ptr %938, align 8, !tbaa !13
  %940 = fdiv double %933, %939
  %941 = call double @llvm.fmuladd.f64(double %926, double %931, double %940)
  %942 = load ptr, ptr %56, align 8, !tbaa !5
  %943 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %941, ptr noundef %942)
  store double %943, ptr %78, align 8, !tbaa !13
  %944 = load double, ptr %76, align 8, !tbaa !13
  %945 = load ptr, ptr %29, align 8, !tbaa !5
  %946 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %945, i32 0, i32 2
  %947 = load i64, ptr %946, align 8, !tbaa !27
  %948 = load ptr, ptr %56, align 8, !tbaa !5
  %949 = call noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef %947, ptr noundef %948)
  %950 = fmul double %944, %949
  %951 = load ptr, ptr %56, align 8, !tbaa !5
  %952 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %950, ptr noundef %951)
  store double %952, ptr %79, align 8, !tbaa !13
  %953 = load ptr, ptr %38, align 8, !tbaa !5
  %954 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %953, i32 0, i32 4
  %955 = load ptr, ptr %954, align 8, !tbaa !22
  %956 = load i64, ptr %68, align 8, !tbaa !9
  %957 = getelementptr inbounds i64, ptr %955, i64 %956
  %958 = load i64, ptr %957, align 8, !tbaa !9
  store i64 %958, ptr %72, align 8, !tbaa !9
  %959 = load i64, ptr %58, align 8, !tbaa !9
  %960 = icmp sgt i64 %959, 0
  br i1 %960, label %961, label %982

961:                                              ; preds = %925
  %962 = load ptr, ptr %30, align 8, !tbaa !5
  %963 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %962, i32 0, i32 4
  %964 = load ptr, ptr %963, align 8, !tbaa !22
  %965 = load i64, ptr %72, align 8, !tbaa !9
  %966 = getelementptr inbounds double, ptr %964, i64 %965
  %967 = load double, ptr %966, align 8, !tbaa !13
  %968 = load double, ptr %83, align 8, !tbaa !13
  %969 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %968, double %967)
  %970 = load ptr, ptr %29, align 8, !tbaa !5
  %971 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %970, i32 0, i32 5
  %972 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %971, i32 0, i32 4
  %973 = load ptr, ptr %972, align 8, !tbaa !22
  %974 = getelementptr inbounds double, ptr %973, i64 0
  %975 = load double, ptr %974, align 8, !tbaa !13
  %976 = fdiv double %969, %975
  %977 = load ptr, ptr %89, align 8, !tbaa !5
  %978 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %977, i32 0, i32 1
  %979 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %978, i32 0, i32 4
  %980 = load ptr, ptr %979, align 8, !tbaa !22
  %981 = getelementptr inbounds double, ptr %980, i64 0
  store double %976, ptr %981, align 8, !tbaa !13
  br label %982

982:                                              ; preds = %961, %925
  %983 = load i64, ptr %58, align 8, !tbaa !9
  %984 = icmp sgt i64 %983, 1
  br i1 %984, label %985, label %1004

985:                                              ; preds = %982
  %986 = load ptr, ptr %32, align 8, !tbaa !5
  %987 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %986, i32 0, i32 4
  %988 = load ptr, ptr %987, align 8, !tbaa !22
  %989 = load i64, ptr %73, align 8, !tbaa !9
  %990 = getelementptr inbounds double, ptr %988, i64 %989
  %991 = load double, ptr %990, align 8, !tbaa !13
  %992 = load ptr, ptr %29, align 8, !tbaa !5
  %993 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %992, i32 0, i32 5
  %994 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %993, i32 0, i32 4
  %995 = load ptr, ptr %994, align 8, !tbaa !22
  %996 = getelementptr inbounds double, ptr %995, i64 1
  %997 = load double, ptr %996, align 8, !tbaa !13
  %998 = fdiv double %991, %997
  %999 = load ptr, ptr %89, align 8, !tbaa !5
  %1000 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %999, i32 0, i32 1
  %1001 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1000, i32 0, i32 4
  %1002 = load ptr, ptr %1001, align 8, !tbaa !22
  %1003 = getelementptr inbounds double, ptr %1002, i64 1
  store double %998, ptr %1003, align 8, !tbaa !13
  br label %1004

1004:                                             ; preds = %985, %982
  %1005 = load i64, ptr %58, align 8, !tbaa !9
  %1006 = icmp sgt i64 %1005, 2
  br i1 %1006, label %1007, label %1026

1007:                                             ; preds = %1004
  %1008 = load ptr, ptr %34, align 8, !tbaa !5
  %1009 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1008, i32 0, i32 4
  %1010 = load ptr, ptr %1009, align 8, !tbaa !22
  %1011 = load i64, ptr %74, align 8, !tbaa !9
  %1012 = getelementptr inbounds double, ptr %1010, i64 %1011
  %1013 = load double, ptr %1012, align 8, !tbaa !13
  %1014 = load ptr, ptr %29, align 8, !tbaa !5
  %1015 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1014, i32 0, i32 5
  %1016 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1015, i32 0, i32 4
  %1017 = load ptr, ptr %1016, align 8, !tbaa !22
  %1018 = getelementptr inbounds double, ptr %1017, i64 2
  %1019 = load double, ptr %1018, align 8, !tbaa !13
  %1020 = fdiv double %1013, %1019
  %1021 = load ptr, ptr %89, align 8, !tbaa !5
  %1022 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1021, i32 0, i32 1
  %1023 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1022, i32 0, i32 4
  %1024 = load ptr, ptr %1023, align 8, !tbaa !22
  %1025 = getelementptr inbounds double, ptr %1024, i64 2
  store double %1020, ptr %1025, align 8, !tbaa !13
  br label %1026

1026:                                             ; preds = %1007, %1004
  %1027 = load i64, ptr %58, align 8, !tbaa !9
  %1028 = icmp sgt i64 %1027, 3
  br i1 %1028, label %1029, label %1048

1029:                                             ; preds = %1026
  %1030 = load ptr, ptr %36, align 8, !tbaa !5
  %1031 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1030, i32 0, i32 4
  %1032 = load ptr, ptr %1031, align 8, !tbaa !22
  %1033 = load i64, ptr %75, align 8, !tbaa !9
  %1034 = getelementptr inbounds double, ptr %1032, i64 %1033
  %1035 = load double, ptr %1034, align 8, !tbaa !13
  %1036 = load ptr, ptr %29, align 8, !tbaa !5
  %1037 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1036, i32 0, i32 5
  %1038 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1037, i32 0, i32 4
  %1039 = load ptr, ptr %1038, align 8, !tbaa !22
  %1040 = getelementptr inbounds double, ptr %1039, i64 3
  %1041 = load double, ptr %1040, align 8, !tbaa !13
  %1042 = fdiv double %1035, %1041
  %1043 = load ptr, ptr %89, align 8, !tbaa !5
  %1044 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1043, i32 0, i32 1
  %1045 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1044, i32 0, i32 4
  %1046 = load ptr, ptr %1045, align 8, !tbaa !22
  %1047 = getelementptr inbounds double, ptr %1046, i64 3
  store double %1042, ptr %1047, align 8, !tbaa !13
  br label %1048

1048:                                             ; preds = %1029, %1026
  %1049 = load i64, ptr %72, align 8, !tbaa !9
  %1050 = load i64, ptr %73, align 8, !tbaa !9
  %1051 = load i64, ptr %74, align 8, !tbaa !9
  %1052 = load i64, ptr %75, align 8, !tbaa !9
  %1053 = load i64, ptr %35, align 8, !tbaa !9
  %1054 = mul nsw i64 %1052, %1053
  %1055 = add nsw i64 %1051, %1054
  %1056 = load i64, ptr %33, align 8, !tbaa !9
  %1057 = mul nsw i64 %1055, %1056
  %1058 = add nsw i64 %1050, %1057
  %1059 = load i64, ptr %31, align 8, !tbaa !9
  %1060 = mul nsw i64 %1058, %1059
  %1061 = add nsw i64 %1049, %1060
  store i64 %1061, ptr %81, align 8, !tbaa !9
  %1062 = load i64, ptr %59, align 8, !tbaa !9
  %1063 = load i64, ptr %81, align 8, !tbaa !9
  %1064 = mul nsw i64 %1062, %1063
  store i64 %1064, ptr %80, align 8, !tbaa !9
  %1065 = load ptr, ptr %89, align 8, !tbaa !5
  %1066 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1065, i32 0, i32 2
  %1067 = load i64, ptr %65, align 8, !tbaa !9
  %1068 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1066, i64 noundef %1067, ptr noundef %1068)
  %1069 = load ptr, ptr %89, align 8, !tbaa !5
  %1070 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1069, i32 0, i32 6
  %1071 = load i64, ptr %65, align 8, !tbaa !9
  %1072 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23bvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1070, i64 noundef %1071, ptr noundef %1072)
  %1073 = load ptr, ptr %89, align 8, !tbaa !5
  %1074 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1073, i32 0, i32 3
  %1075 = load i64, ptr %65, align 8, !tbaa !9
  %1076 = load i64, ptr %59, align 8, !tbaa !9
  %1077 = mul nsw i64 %1075, %1076
  %1078 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1074, i64 noundef %1077, ptr noundef %1078)
  store i64 0, ptr %64, align 8, !tbaa !9
  br label %1079

1079:                                             ; preds = %1127, %1048
  %1080 = load i64, ptr %64, align 8, !tbaa !9
  %1081 = load i64, ptr %65, align 8, !tbaa !9
  %1082 = sub nsw i64 %1081, 1
  %1083 = icmp sle i64 %1080, %1082
  br i1 %1083, label %1084, label %1130

1084:                                             ; preds = %1079
  %1085 = load ptr, ptr %30, align 8, !tbaa !5
  %1086 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1085, i32 0, i32 4
  %1087 = load ptr, ptr %1086, align 8, !tbaa !22
  %1088 = load i64, ptr %72, align 8, !tbaa !9
  %1089 = load i64, ptr %64, align 8, !tbaa !9
  %1090 = add nsw i64 %1088, %1089
  %1091 = getelementptr inbounds double, ptr %1087, i64 %1090
  %1092 = load double, ptr %1091, align 8, !tbaa !13
  %1093 = load ptr, ptr %29, align 8, !tbaa !5
  %1094 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1093, i32 0, i32 5
  %1095 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1094, i32 0, i32 4
  %1096 = load ptr, ptr %1095, align 8, !tbaa !22
  %1097 = getelementptr inbounds double, ptr %1096, i64 0
  %1098 = load double, ptr %1097, align 8, !tbaa !13
  %1099 = fdiv double %1092, %1098
  %1100 = load ptr, ptr %89, align 8, !tbaa !5
  %1101 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1100, i32 0, i32 2
  %1102 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1101, i32 0, i32 4
  %1103 = load ptr, ptr %1102, align 8, !tbaa !22
  %1104 = load i64, ptr %64, align 8, !tbaa !9
  %1105 = getelementptr inbounds double, ptr %1103, i64 %1104
  store double %1099, ptr %1105, align 8, !tbaa !13
  %1106 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1118

1108:                                             ; preds = %1084
  %1109 = load ptr, ptr %50, align 8, !tbaa !5
  %1110 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1109, i32 0, i32 4
  %1111 = load ptr, ptr %1110, align 8, !tbaa !22
  %1112 = load i64, ptr %81, align 8, !tbaa !9
  %1113 = load i64, ptr %64, align 8, !tbaa !9
  %1114 = add nsw i64 %1112, %1113
  %1115 = getelementptr inbounds i8, ptr %1111, i64 %1114
  %1116 = load i8, ptr %1115, align 1, !tbaa !11, !range !23, !noundef !24
  %1117 = trunc i8 %1116 to i1
  br label %1118

1118:                                             ; preds = %1108, %1084
  %1119 = phi i1 [ true, %1084 ], [ %1117, %1108 ]
  %1120 = load ptr, ptr %89, align 8, !tbaa !5
  %1121 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1120, i32 0, i32 6
  %1122 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1121, i32 0, i32 4
  %1123 = load ptr, ptr %1122, align 8, !tbaa !22
  %1124 = load i64, ptr %64, align 8, !tbaa !9
  %1125 = getelementptr inbounds i8, ptr %1123, i64 %1124
  %1126 = zext i1 %1119 to i8
  store i8 %1126, ptr %1125, align 1, !tbaa !11
  br label %1127

1127:                                             ; preds = %1118
  %1128 = load i64, ptr %64, align 8, !tbaa !9
  %1129 = add nsw i64 %1128, 1
  store i64 %1129, ptr %64, align 8, !tbaa !9
  br label %1079, !llvm.loop !28

1130:                                             ; preds = %1079
  store i64 0, ptr %60, align 8, !tbaa !9
  br label %1131

1131:                                             ; preds = %1145, %1130
  %1132 = load i64, ptr %60, align 8, !tbaa !9
  %1133 = load i64, ptr %65, align 8, !tbaa !9
  %1134 = load i64, ptr %59, align 8, !tbaa !9
  %1135 = mul nsw i64 %1133, %1134
  %1136 = sub nsw i64 %1135, 1
  %1137 = icmp sle i64 %1132, %1136
  br i1 %1137, label %1138, label %1148

1138:                                             ; preds = %1131
  %1139 = load ptr, ptr %89, align 8, !tbaa !5
  %1140 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1139, i32 0, i32 3
  %1141 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1140, i32 0, i32 4
  %1142 = load ptr, ptr %1141, align 8, !tbaa !22
  %1143 = load i64, ptr %60, align 8, !tbaa !9
  %1144 = getelementptr inbounds double, ptr %1142, i64 %1143
  store double 0.000000e+00, ptr %1144, align 8, !tbaa !13
  br label %1145

1145:                                             ; preds = %1138
  %1146 = load i64, ptr %60, align 8, !tbaa !9
  %1147 = add nsw i64 %1146, 1
  store i64 %1147, ptr %60, align 8, !tbaa !9
  br label %1131, !llvm.loop !29

1148:                                             ; preds = %1131
  %1149 = load ptr, ptr %89, align 8, !tbaa !5
  %1150 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1149, i32 0, i32 1
  %1151 = load ptr, ptr %29, align 8, !tbaa !5
  %1152 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1151, i32 0, i32 9
  %1153 = load ptr, ptr %29, align 8, !tbaa !5
  %1154 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1153, i32 0, i32 10
  %1155 = load i64, ptr %58, align 8, !tbaa !9
  %1156 = load ptr, ptr %89, align 8, !tbaa !5
  %1157 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1156, i32 0, i32 0
  %1158 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_implL25rbfv2_preparepartialqueryEPKNS_9ae_vectorES2_S2_lPNS_15rbfv2calcbufferEPlPNS_8ae_stateE(ptr noundef %1150, ptr noundef %1152, ptr noundef %1154, i64 noundef %1155, ptr noundef %1157, ptr noundef %82, ptr noundef %1158)
  %1159 = load ptr, ptr %29, align 8, !tbaa !5
  %1160 = load ptr, ptr %89, align 8, !tbaa !5
  %1161 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1160, i32 0, i32 0
  %1162 = load ptr, ptr %29, align 8, !tbaa !5
  %1163 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1162, i32 0, i32 6
  %1164 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1163, i32 0, i32 4
  %1165 = load ptr, ptr %1164, align 8, !tbaa !22
  %1166 = load i64, ptr %52, align 8, !tbaa !9
  %1167 = getelementptr inbounds i64, ptr %1165, i64 %1166
  %1168 = load i64, ptr %1167, align 8, !tbaa !9
  %1169 = load double, ptr %77, align 8, !tbaa !13
  %1170 = load double, ptr %78, align 8, !tbaa !13
  %1171 = load double, ptr %79, align 8, !tbaa !13
  %1172 = load ptr, ptr %89, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1172, i32 0, i32 1
  %1174 = load ptr, ptr %89, align 8, !tbaa !5
  %1175 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1174, i32 0, i32 2
  %1176 = load ptr, ptr %89, align 8, !tbaa !5
  %1177 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1176, i32 0, i32 6
  %1178 = load i64, ptr %65, align 8, !tbaa !9
  %1179 = load ptr, ptr %89, align 8, !tbaa !5
  %1180 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1179, i32 0, i32 3
  %1181 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_implL23rbfv2_partialrowcalcrecEPKNS_10rbfv2modelEPNS_15rbfv2calcbufferEldddPKNS_9ae_vectorES7_S7_lPS5_PNS_8ae_stateE(ptr noundef %1159, ptr noundef %1161, i64 noundef %1168, double noundef %1169, double noundef %1170, double noundef %1171, ptr noundef %1173, ptr noundef %1175, ptr noundef %1177, i64 noundef %1178, ptr noundef %1180, ptr noundef %1181)
  store i64 0, ptr %60, align 8, !tbaa !9
  br label %1182

1182:                                             ; preds = %1213, %1148
  %1183 = load i64, ptr %60, align 8, !tbaa !9
  %1184 = load i64, ptr %65, align 8, !tbaa !9
  %1185 = load i64, ptr %59, align 8, !tbaa !9
  %1186 = mul nsw i64 %1184, %1185
  %1187 = sub nsw i64 %1186, 1
  %1188 = icmp sle i64 %1183, %1187
  br i1 %1188, label %1189, label %1216

1189:                                             ; preds = %1182
  %1190 = load ptr, ptr %55, align 8, !tbaa !5
  %1191 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1190, i32 0, i32 4
  %1192 = load ptr, ptr %1191, align 8, !tbaa !22
  %1193 = load i64, ptr %80, align 8, !tbaa !9
  %1194 = load i64, ptr %60, align 8, !tbaa !9
  %1195 = add nsw i64 %1193, %1194
  %1196 = getelementptr inbounds double, ptr %1192, i64 %1195
  %1197 = load double, ptr %1196, align 8, !tbaa !13
  %1198 = load ptr, ptr %89, align 8, !tbaa !5
  %1199 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1198, i32 0, i32 3
  %1200 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1199, i32 0, i32 4
  %1201 = load ptr, ptr %1200, align 8, !tbaa !22
  %1202 = load i64, ptr %60, align 8, !tbaa !9
  %1203 = getelementptr inbounds double, ptr %1201, i64 %1202
  %1204 = load double, ptr %1203, align 8, !tbaa !13
  %1205 = fadd double %1197, %1204
  %1206 = load ptr, ptr %55, align 8, !tbaa !5
  %1207 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1206, i32 0, i32 4
  %1208 = load ptr, ptr %1207, align 8, !tbaa !22
  %1209 = load i64, ptr %80, align 8, !tbaa !9
  %1210 = load i64, ptr %60, align 8, !tbaa !9
  %1211 = add nsw i64 %1209, %1210
  %1212 = getelementptr inbounds double, ptr %1208, i64 %1211
  store double %1205, ptr %1212, align 8, !tbaa !13
  br label %1213

1213:                                             ; preds = %1189
  %1214 = load i64, ptr %60, align 8, !tbaa !9
  %1215 = add nsw i64 %1214, 1
  store i64 %1215, ptr %60, align 8, !tbaa !9
  br label %1182, !llvm.loop !30

1216:                                             ; preds = %1182
  br label %1441

1217:                                             ; preds = %921, %878
  %1218 = load double, ptr %76, align 8, !tbaa !13
  %1219 = load ptr, ptr %29, align 8, !tbaa !5
  %1220 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1219, i32 0, i32 2
  %1221 = load i64, ptr %1220, align 8, !tbaa !27
  %1222 = load ptr, ptr %56, align 8, !tbaa !5
  %1223 = call noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef %1221, ptr noundef %1222)
  %1224 = fmul double %1218, %1223
  %1225 = load ptr, ptr %56, align 8, !tbaa !5
  %1226 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1224, ptr noundef %1225)
  store double %1226, ptr %78, align 8, !tbaa !13
  store i64 0, ptr %64, align 8, !tbaa !9
  br label %1227

1227:                                             ; preds = %1437, %1217
  %1228 = load i64, ptr %64, align 8, !tbaa !9
  %1229 = load i64, ptr %65, align 8, !tbaa !9
  %1230 = sub nsw i64 %1229, 1
  %1231 = icmp sle i64 %1228, %1230
  br i1 %1231, label %1232, label %1440

1232:                                             ; preds = %1227
  %1233 = load ptr, ptr %38, align 8, !tbaa !5
  %1234 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1233, i32 0, i32 4
  %1235 = load ptr, ptr %1234, align 8, !tbaa !22
  %1236 = load i64, ptr %68, align 8, !tbaa !9
  %1237 = getelementptr inbounds i64, ptr %1235, i64 %1236
  %1238 = load i64, ptr %1237, align 8, !tbaa !9
  %1239 = load i64, ptr %64, align 8, !tbaa !9
  %1240 = add nsw i64 %1238, %1239
  store i64 %1240, ptr %72, align 8, !tbaa !9
  %1241 = load i64, ptr %58, align 8, !tbaa !9
  %1242 = icmp sgt i64 %1241, 0
  br i1 %1242, label %1243, label %1262

1243:                                             ; preds = %1232
  %1244 = load ptr, ptr %30, align 8, !tbaa !5
  %1245 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1244, i32 0, i32 4
  %1246 = load ptr, ptr %1245, align 8, !tbaa !22
  %1247 = load i64, ptr %72, align 8, !tbaa !9
  %1248 = getelementptr inbounds double, ptr %1246, i64 %1247
  %1249 = load double, ptr %1248, align 8, !tbaa !13
  %1250 = load ptr, ptr %29, align 8, !tbaa !5
  %1251 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1250, i32 0, i32 5
  %1252 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1251, i32 0, i32 4
  %1253 = load ptr, ptr %1252, align 8, !tbaa !22
  %1254 = getelementptr inbounds double, ptr %1253, i64 0
  %1255 = load double, ptr %1254, align 8, !tbaa !13
  %1256 = fdiv double %1249, %1255
  %1257 = load ptr, ptr %89, align 8, !tbaa !5
  %1258 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1257, i32 0, i32 4
  %1259 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1258, i32 0, i32 4
  %1260 = load ptr, ptr %1259, align 8, !tbaa !22
  %1261 = getelementptr inbounds double, ptr %1260, i64 0
  store double %1256, ptr %1261, align 8, !tbaa !13
  br label %1262

1262:                                             ; preds = %1243, %1232
  %1263 = load i64, ptr %58, align 8, !tbaa !9
  %1264 = icmp sgt i64 %1263, 1
  br i1 %1264, label %1265, label %1284

1265:                                             ; preds = %1262
  %1266 = load ptr, ptr %32, align 8, !tbaa !5
  %1267 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1266, i32 0, i32 4
  %1268 = load ptr, ptr %1267, align 8, !tbaa !22
  %1269 = load i64, ptr %73, align 8, !tbaa !9
  %1270 = getelementptr inbounds double, ptr %1268, i64 %1269
  %1271 = load double, ptr %1270, align 8, !tbaa !13
  %1272 = load ptr, ptr %29, align 8, !tbaa !5
  %1273 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1272, i32 0, i32 5
  %1274 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1273, i32 0, i32 4
  %1275 = load ptr, ptr %1274, align 8, !tbaa !22
  %1276 = getelementptr inbounds double, ptr %1275, i64 1
  %1277 = load double, ptr %1276, align 8, !tbaa !13
  %1278 = fdiv double %1271, %1277
  %1279 = load ptr, ptr %89, align 8, !tbaa !5
  %1280 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1279, i32 0, i32 4
  %1281 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1280, i32 0, i32 4
  %1282 = load ptr, ptr %1281, align 8, !tbaa !22
  %1283 = getelementptr inbounds double, ptr %1282, i64 1
  store double %1278, ptr %1283, align 8, !tbaa !13
  br label %1284

1284:                                             ; preds = %1265, %1262
  %1285 = load i64, ptr %58, align 8, !tbaa !9
  %1286 = icmp sgt i64 %1285, 2
  br i1 %1286, label %1287, label %1306

1287:                                             ; preds = %1284
  %1288 = load ptr, ptr %34, align 8, !tbaa !5
  %1289 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1288, i32 0, i32 4
  %1290 = load ptr, ptr %1289, align 8, !tbaa !22
  %1291 = load i64, ptr %74, align 8, !tbaa !9
  %1292 = getelementptr inbounds double, ptr %1290, i64 %1291
  %1293 = load double, ptr %1292, align 8, !tbaa !13
  %1294 = load ptr, ptr %29, align 8, !tbaa !5
  %1295 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1294, i32 0, i32 5
  %1296 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1295, i32 0, i32 4
  %1297 = load ptr, ptr %1296, align 8, !tbaa !22
  %1298 = getelementptr inbounds double, ptr %1297, i64 2
  %1299 = load double, ptr %1298, align 8, !tbaa !13
  %1300 = fdiv double %1293, %1299
  %1301 = load ptr, ptr %89, align 8, !tbaa !5
  %1302 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1301, i32 0, i32 4
  %1303 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1302, i32 0, i32 4
  %1304 = load ptr, ptr %1303, align 8, !tbaa !22
  %1305 = getelementptr inbounds double, ptr %1304, i64 2
  store double %1300, ptr %1305, align 8, !tbaa !13
  br label %1306

1306:                                             ; preds = %1287, %1284
  %1307 = load i64, ptr %58, align 8, !tbaa !9
  %1308 = icmp sgt i64 %1307, 3
  br i1 %1308, label %1309, label %1328

1309:                                             ; preds = %1306
  %1310 = load ptr, ptr %36, align 8, !tbaa !5
  %1311 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1310, i32 0, i32 4
  %1312 = load ptr, ptr %1311, align 8, !tbaa !22
  %1313 = load i64, ptr %75, align 8, !tbaa !9
  %1314 = getelementptr inbounds double, ptr %1312, i64 %1313
  %1315 = load double, ptr %1314, align 8, !tbaa !13
  %1316 = load ptr, ptr %29, align 8, !tbaa !5
  %1317 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1316, i32 0, i32 5
  %1318 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1317, i32 0, i32 4
  %1319 = load ptr, ptr %1318, align 8, !tbaa !22
  %1320 = getelementptr inbounds double, ptr %1319, i64 3
  %1321 = load double, ptr %1320, align 8, !tbaa !13
  %1322 = fdiv double %1315, %1321
  %1323 = load ptr, ptr %89, align 8, !tbaa !5
  %1324 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1323, i32 0, i32 4
  %1325 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1324, i32 0, i32 4
  %1326 = load ptr, ptr %1325, align 8, !tbaa !22
  %1327 = getelementptr inbounds double, ptr %1326, i64 3
  store double %1322, ptr %1327, align 8, !tbaa !13
  br label %1328

1328:                                             ; preds = %1309, %1306
  %1329 = load i64, ptr %72, align 8, !tbaa !9
  %1330 = load i64, ptr %73, align 8, !tbaa !9
  %1331 = load i64, ptr %74, align 8, !tbaa !9
  %1332 = load i64, ptr %75, align 8, !tbaa !9
  %1333 = load i64, ptr %35, align 8, !tbaa !9
  %1334 = mul nsw i64 %1332, %1333
  %1335 = add nsw i64 %1331, %1334
  %1336 = load i64, ptr %33, align 8, !tbaa !9
  %1337 = mul nsw i64 %1335, %1336
  %1338 = add nsw i64 %1330, %1337
  %1339 = load i64, ptr %31, align 8, !tbaa !9
  %1340 = mul nsw i64 %1338, %1339
  %1341 = add nsw i64 %1329, %1340
  store i64 %1341, ptr %81, align 8, !tbaa !9
  %1342 = load i64, ptr %59, align 8, !tbaa !9
  %1343 = load i64, ptr %81, align 8, !tbaa !9
  %1344 = mul nsw i64 %1342, %1343
  store i64 %1344, ptr %80, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %1345

1345:                                             ; preds = %1357, %1328
  %1346 = load i64, ptr %61, align 8, !tbaa !9
  %1347 = load i64, ptr %59, align 8, !tbaa !9
  %1348 = sub nsw i64 %1347, 1
  %1349 = icmp sle i64 %1346, %1348
  br i1 %1349, label %1350, label %1360

1350:                                             ; preds = %1345
  %1351 = load ptr, ptr %89, align 8, !tbaa !5
  %1352 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1351, i32 0, i32 5
  %1353 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1352, i32 0, i32 4
  %1354 = load ptr, ptr %1353, align 8, !tbaa !22
  %1355 = load i64, ptr %61, align 8, !tbaa !9
  %1356 = getelementptr inbounds double, ptr %1354, i64 %1355
  store double 0.000000e+00, ptr %1356, align 8, !tbaa !13
  br label %1357

1357:                                             ; preds = %1350
  %1358 = load i64, ptr %61, align 8, !tbaa !9
  %1359 = add nsw i64 %1358, 1
  store i64 %1359, ptr %61, align 8, !tbaa !9
  br label %1345, !llvm.loop !31

1360:                                             ; preds = %1345
  %1361 = load i8, ptr %51, align 1, !tbaa !11, !range !23, !noundef !24
  %1362 = trunc i8 %1361 to i1
  br i1 %1362, label %1363, label %1371

1363:                                             ; preds = %1360
  %1364 = load ptr, ptr %50, align 8, !tbaa !5
  %1365 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1364, i32 0, i32 4
  %1366 = load ptr, ptr %1365, align 8, !tbaa !22
  %1367 = load i64, ptr %81, align 8, !tbaa !9
  %1368 = getelementptr inbounds i8, ptr %1366, i64 %1367
  %1369 = load i8, ptr %1368, align 1, !tbaa !11, !range !23, !noundef !24
  %1370 = trunc i8 %1369 to i1
  br i1 %1370, label %1371, label %1403

1371:                                             ; preds = %1363, %1360
  %1372 = load ptr, ptr %89, align 8, !tbaa !5
  %1373 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1372, i32 0, i32 4
  %1374 = load ptr, ptr %29, align 8, !tbaa !5
  %1375 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1374, i32 0, i32 9
  %1376 = load ptr, ptr %29, align 8, !tbaa !5
  %1377 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1376, i32 0, i32 10
  %1378 = load i64, ptr %58, align 8, !tbaa !9
  %1379 = load ptr, ptr %89, align 8, !tbaa !5
  %1380 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1379, i32 0, i32 0
  %1381 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_implL25rbfv2_preparepartialqueryEPKNS_9ae_vectorES2_S2_lPNS_15rbfv2calcbufferEPlPNS_8ae_stateE(ptr noundef %1373, ptr noundef %1375, ptr noundef %1377, i64 noundef %1378, ptr noundef %1380, ptr noundef %82, ptr noundef %1381)
  %1382 = load ptr, ptr %29, align 8, !tbaa !5
  %1383 = load ptr, ptr %89, align 8, !tbaa !5
  %1384 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1383, i32 0, i32 0
  %1385 = load ptr, ptr %29, align 8, !tbaa !5
  %1386 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %1385, i32 0, i32 6
  %1387 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1386, i32 0, i32 4
  %1388 = load ptr, ptr %1387, align 8, !tbaa !22
  %1389 = load i64, ptr %52, align 8, !tbaa !9
  %1390 = getelementptr inbounds i64, ptr %1388, i64 %1389
  %1391 = load i64, ptr %1390, align 8, !tbaa !9
  %1392 = load double, ptr %77, align 8, !tbaa !13
  %1393 = load double, ptr %78, align 8, !tbaa !13
  %1394 = load ptr, ptr %89, align 8, !tbaa !5
  %1395 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1394, i32 0, i32 4
  %1396 = load ptr, ptr %89, align 8, !tbaa !5
  %1397 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1396, i32 0, i32 5
  %1398 = load ptr, ptr %89, align 8, !tbaa !5
  %1399 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1398, i32 0, i32 5
  %1400 = load ptr, ptr %89, align 8, !tbaa !5
  %1401 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1400, i32 0, i32 5
  %1402 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_implL20rbfv2_partialcalcrecEPKNS_10rbfv2modelEPNS_15rbfv2calcbufferElddPKNS_9ae_vectorEPS5_S8_S8_lPNS_8ae_stateE(ptr noundef %1382, ptr noundef %1384, i64 noundef %1391, double noundef %1392, double noundef %1393, ptr noundef %1395, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, i64 noundef 0, ptr noundef %1402)
  br label %1403

1403:                                             ; preds = %1371, %1363
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %1404

1404:                                             ; preds = %1433, %1403
  %1405 = load i64, ptr %61, align 8, !tbaa !9
  %1406 = load i64, ptr %59, align 8, !tbaa !9
  %1407 = sub nsw i64 %1406, 1
  %1408 = icmp sle i64 %1405, %1407
  br i1 %1408, label %1409, label %1436

1409:                                             ; preds = %1404
  %1410 = load ptr, ptr %55, align 8, !tbaa !5
  %1411 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1410, i32 0, i32 4
  %1412 = load ptr, ptr %1411, align 8, !tbaa !22
  %1413 = load i64, ptr %80, align 8, !tbaa !9
  %1414 = load i64, ptr %61, align 8, !tbaa !9
  %1415 = add nsw i64 %1413, %1414
  %1416 = getelementptr inbounds double, ptr %1412, i64 %1415
  %1417 = load double, ptr %1416, align 8, !tbaa !13
  %1418 = load ptr, ptr %89, align 8, !tbaa !5
  %1419 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %1418, i32 0, i32 5
  %1420 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1419, i32 0, i32 4
  %1421 = load ptr, ptr %1420, align 8, !tbaa !22
  %1422 = load i64, ptr %61, align 8, !tbaa !9
  %1423 = getelementptr inbounds double, ptr %1421, i64 %1422
  %1424 = load double, ptr %1423, align 8, !tbaa !13
  %1425 = fadd double %1417, %1424
  %1426 = load ptr, ptr %55, align 8, !tbaa !5
  %1427 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1426, i32 0, i32 4
  %1428 = load ptr, ptr %1427, align 8, !tbaa !22
  %1429 = load i64, ptr %80, align 8, !tbaa !9
  %1430 = load i64, ptr %61, align 8, !tbaa !9
  %1431 = add nsw i64 %1429, %1430
  %1432 = getelementptr inbounds double, ptr %1428, i64 %1431
  store double %1425, ptr %1432, align 8, !tbaa !13
  br label %1433

1433:                                             ; preds = %1409
  %1434 = load i64, ptr %61, align 8, !tbaa !9
  %1435 = add nsw i64 %1434, 1
  store i64 %1435, ptr %61, align 8, !tbaa !9
  br label %1404, !llvm.loop !32

1436:                                             ; preds = %1404
  br label %1437

1437:                                             ; preds = %1436
  %1438 = load i64, ptr %64, align 8, !tbaa !9
  %1439 = add nsw i64 %1438, 1
  store i64 %1439, ptr %64, align 8, !tbaa !9
  br label %1227, !llvm.loop !33

1440:                                             ; preds = %1227
  br label %1441

1441:                                             ; preds = %1440, %1216
  br label %1442

1442:                                             ; preds = %1441, %877
  %1443 = load i64, ptr %66, align 8, !tbaa !9
  %1444 = add nsw i64 %1443, 1
  store i64 %1444, ptr %66, align 8, !tbaa !9
  br label %685, !llvm.loop !34

1445:                                             ; preds = %685
  br label %1446

1446:                                             ; preds = %1445
  %1447 = load i64, ptr %62, align 8, !tbaa !9
  %1448 = add nsw i64 %1447, 1
  store i64 %1448, ptr %62, align 8, !tbaa !9
  br label %583, !llvm.loop !35

1449:                                             ; preds = %583
  %1450 = load ptr, ptr %54, align 8, !tbaa !5
  %1451 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl22ae_shared_pool_recycleEPNS_14ae_shared_poolEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %1450, ptr noundef %90, ptr noundef %1451)
  %1452 = load ptr, ptr %56, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1452)
  store i32 0, ptr %91, align 4
  br label %1453

1453:                                             ; preds = %1449, %475, %405, %335, %265, %246
  call void @llvm.lifetime.end.p0(i64 80, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  %1454 = load i32, ptr %91, align 4
  switch i32 %1454, label %1456 [
    i32 0, label %1455
    i32 1, label %1455
  ]

1455:                                             ; preds = %1453, %1453
  ret void

1456:                                             ; preds = %1453
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl33_trypexec_rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext, i64 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) #4

declare noundef double @_ZN11alglib_impl10spawnlevelEPNS_8ae_stateE(ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL23rbfv2_partialrowcalcrecEPKNS_10rbfv2modelEPNS_15rbfv2calcbufferEldddPKNS_9ae_vectorES7_S7_lPS5_PNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, double noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) #5

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{!16, !10, i64 8}
!16 = !{!"_ZTSN11alglib_impl10rbfv2modelE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !17, i64 32, !17, i64 96, !17, i64 160, !17, i64 224, !17, i64 288, !17, i64 352, !17, i64 416, !17, i64 480, !19, i64 544, !14, i64 624, !10, i64 632, !14, i64 640, !10, i64 648, !20, i64 656}
!17 = !{!"_ZTSN11alglib_impl9ae_vectorE", !10, i64 0, !10, i64 8, !12, i64 16, !18, i64 24, !7, i64 56}
!18 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!19 = !{!"_ZTSN11alglib_impl9ae_matrixE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !12, i64 32, !18, i64 40, !7, i64 72}
!20 = !{!"_ZTSN11alglib_impl15rbfv2calcbufferE", !17, i64 0, !17, i64 64, !17, i64 128, !14, i64 192, !17, i64 200, !17, i64 264}
!21 = !{!16, !10, i64 0}
!22 = !{!7, !7, i64 0}
!23 = !{i8 0, i8 2}
!24 = !{}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!16, !10, i64 16}
!28 = distinct !{!28, !26}
!29 = distinct !{!29, !26}
!30 = distinct !{!30, !26}
!31 = distinct !{!31, !26}
!32 = distinct !{!32, !26}
!33 = distinct !{!33, !26}
!34 = distinct !{!34, !26}
!35 = distinct !{!35, !26}


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

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_smart_ptr" = type { ptr, ptr, i8, i8, i64, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }

@.str.932 = external hidden unnamed_addr constant [48 x i8], align 1
@_ZN11alglib_implL26rbfv2_complexitymultiplierE = external hidden local_unnamed_addr global double, align 8

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

declare noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare noundef double @_ZN11alglib_impl18smpactivationlevelEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

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

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

declare void @_ZN11alglib_impl23ae_shared_pool_retrieveEPNS_14ae_shared_poolEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl22ae_shared_pool_recycleEPNS_14ae_shared_poolEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @_ZN11alglib_impl23bvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN11alglib_impl15rbfv2nearradiusElPNS_8ae_stateE(i64 noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL20rbfv2_partialcalcrecEPKNS_10rbfv2modelEPNS_15rbfv2calcbufferElddPKNS_9ae_vectorEPS5_S8_S8_lPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef %9, i64 noundef %10, i64 noundef %11, ptr noundef %12, i64 noundef %13, i64 noundef %14, ptr noundef %15, i64 noundef %16, i64 noundef %17, ptr noundef %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27) local_unnamed_addr #5 {
  %29 = alloca %"struct.alglib_impl::ae_frame", align 8
  %30 = alloca i64, align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"struct.alglib_impl::ae_smart_ptr", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %32) #7
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %27, ptr noundef nonnull %29)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %32, i8 0, i64 80, i1 false)
  call void @_ZN11alglib_impl17ae_smart_ptr_initEPNS_12ae_smart_ptrEPPvPNS_8ae_stateEb(ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef %27, i1 noundef zeroext true)
  %33 = getelementptr inbounds i8, ptr %0, i64 8
  %34 = load i64, ptr %33, align 8, !tbaa !5
  %35 = load i64, ptr %0, align 8, !tbaa !17
  %36 = and i64 %34, -2
  %spec.select = icmp eq i64 %36, 2
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %spec.select, ptr noundef nonnull @.str.932, ptr noundef %27)
  %37 = load i64, ptr %0, align 8, !tbaa !17
  %38 = shl nsw i64 %37, 1
  %39 = sitofp i64 %38 to double
  %40 = fadd double %24, 1.000000e+00
  %41 = fmul double %40, %39
  %42 = getelementptr inbounds i8, ptr %9, i64 56
  %43 = load ptr, ptr %42, align 8, !tbaa !18
  %44 = getelementptr inbounds i64, ptr %43, i64 %11
  %45 = load i64, ptr %44, align 8, !tbaa !19
  %46 = getelementptr inbounds i64, ptr %43, i64 %10
  %47 = load i64, ptr %46, align 8, !tbaa !19
  %48 = sub nsw i64 %45, %47
  %49 = sitofp i64 %48 to double
  %50 = fmul double %41, %49
  %51 = getelementptr inbounds i8, ptr %12, i64 56
  %52 = load ptr, ptr %51, align 8, !tbaa !18
  %53 = getelementptr inbounds i64, ptr %52, i64 %14
  %54 = load i64, ptr %53, align 8, !tbaa !19
  %55 = getelementptr inbounds i64, ptr %52, i64 %13
  %56 = load i64, ptr %55, align 8, !tbaa !19
  %57 = sub nsw i64 %54, %56
  %58 = sitofp i64 %57 to double
  %59 = fmul double %50, %58
  %60 = getelementptr inbounds i8, ptr %15, i64 56
  %61 = load ptr, ptr %60, align 8, !tbaa !18
  %62 = getelementptr inbounds i64, ptr %61, i64 %17
  %63 = load i64, ptr %62, align 8, !tbaa !19
  %64 = getelementptr inbounds i64, ptr %61, i64 %16
  %65 = load i64, ptr %64, align 8, !tbaa !19
  %66 = sub nsw i64 %63, %65
  %67 = sitofp i64 %66 to double
  %68 = fmul double %59, %67
  %69 = getelementptr inbounds i8, ptr %18, i64 56
  %70 = load ptr, ptr %69, align 8, !tbaa !18
  %71 = getelementptr inbounds i64, ptr %70, i64 %20
  %72 = load i64, ptr %71, align 8, !tbaa !19
  %73 = getelementptr inbounds i64, ptr %70, i64 %19
  %74 = load i64, ptr %73, align 8, !tbaa !19
  %75 = sub nsw i64 %72, %74
  %76 = sitofp i64 %75 to double
  %77 = fmul double %68, %76
  %78 = sub nsw i64 %11, %10
  %79 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef 0, i64 noundef %78, ptr noundef %27)
  %80 = sub nsw i64 %14, %13
  %81 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %79, i64 noundef %80, ptr noundef %27)
  %82 = sub nsw i64 %17, %16
  %83 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %81, i64 noundef %82, ptr noundef %27)
  %84 = sub nsw i64 %20, %19
  %85 = call noundef i64 @_ZN11alglib_impl9ae_maxintEllPNS_8ae_stateE(i64 noundef %83, i64 noundef %84, ptr noundef %27)
  %86 = load double, ptr @_ZN11alglib_implL26rbfv2_complexitymultiplierE, align 8, !tbaa !20
  %87 = fmul double %77, %86
  %88 = call noundef double @_ZN11alglib_impl18smpactivationlevelEPNS_8ae_stateE(ptr noundef %27)
  %89 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %87, double noundef %88)
  br i1 %89, label %90, label %92

90:                                               ; preds = %28
  %91 = call noundef zeroext i1 @_ZN11alglib_impl33_trypexec_rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %10, i64 noundef %11, ptr noundef nonnull %12, i64 noundef %13, i64 noundef %14, ptr noundef nonnull %15, i64 noundef %16, i64 noundef %17, ptr noundef nonnull %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  br i1 %91, label %517, label %92

92:                                               ; preds = %90, %28
  %93 = load double, ptr @_ZN11alglib_implL26rbfv2_complexitymultiplierE, align 8, !tbaa !20
  %94 = fmul double %77, %93
  %95 = call noundef double @_ZN11alglib_impl10spawnlevelEPNS_8ae_stateE(ptr noundef %27)
  %96 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %94, double noundef %95)
  %97 = icmp sgt i64 %85, 1
  %or.cond = and i1 %97, %96
  br i1 %or.cond, label %98, label %119

98:                                               ; preds = %92
  %99 = icmp eq i64 %78, %85
  br i1 %99, label %100, label %103

100:                                              ; preds = %98
  %101 = lshr i64 %78, 1
  %102 = add nsw i64 %101, %10
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %10, i64 noundef %102, ptr noundef nonnull %12, i64 noundef %13, i64 noundef %14, ptr noundef nonnull %15, i64 noundef %16, i64 noundef %17, ptr noundef nonnull %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %102, i64 noundef %11, ptr noundef nonnull %12, i64 noundef %13, i64 noundef %14, ptr noundef nonnull %15, i64 noundef %16, i64 noundef %17, ptr noundef nonnull %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  br label %517

103:                                              ; preds = %98
  %104 = icmp eq i64 %80, %85
  br i1 %104, label %105, label %108

105:                                              ; preds = %103
  %106 = lshr i64 %80, 1
  %107 = add nsw i64 %106, %13
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %10, i64 noundef %11, ptr noundef nonnull %12, i64 noundef %13, i64 noundef %107, ptr noundef nonnull %15, i64 noundef %16, i64 noundef %17, ptr noundef nonnull %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %10, i64 noundef %11, ptr noundef nonnull %12, i64 noundef %107, i64 noundef %14, ptr noundef nonnull %15, i64 noundef %16, i64 noundef %17, ptr noundef nonnull %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  br label %517

108:                                              ; preds = %103
  %109 = icmp eq i64 %82, %85
  br i1 %109, label %110, label %113

110:                                              ; preds = %108
  %111 = lshr i64 %82, 1
  %112 = add nsw i64 %111, %16
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %10, i64 noundef %11, ptr noundef nonnull %12, i64 noundef %13, i64 noundef %14, ptr noundef nonnull %15, i64 noundef %16, i64 noundef %112, ptr noundef nonnull %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %10, i64 noundef %11, ptr noundef nonnull %12, i64 noundef %13, i64 noundef %14, ptr noundef nonnull %15, i64 noundef %112, i64 noundef %17, ptr noundef nonnull %18, i64 noundef %19, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  br label %517

113:                                              ; preds = %108
  %114 = icmp eq i64 %84, %85
  br i1 %114, label %115, label %118

115:                                              ; preds = %113
  %116 = lshr i64 %84, 1
  %117 = add nsw i64 %116, %19
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %10, i64 noundef %11, ptr noundef nonnull %12, i64 noundef %13, i64 noundef %14, ptr noundef nonnull %15, i64 noundef %16, i64 noundef %17, ptr noundef nonnull %18, i64 noundef %19, i64 noundef %117, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, i64 noundef %4, ptr noundef %5, i64 noundef %6, ptr noundef %7, i64 noundef %8, ptr noundef nonnull %9, i64 noundef %10, i64 noundef %11, ptr noundef nonnull %12, i64 noundef %13, i64 noundef %14, ptr noundef nonnull %15, i64 noundef %16, i64 noundef %17, ptr noundef nonnull %18, i64 noundef %117, i64 noundef %20, ptr noundef %21, i1 noundef zeroext %22, i64 noundef %23, double noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27)
  br label %517

118:                                              ; preds = %113
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.932, ptr noundef %27)
  br label %119

119:                                              ; preds = %118, %92
  call void @_ZN11alglib_impl23ae_shared_pool_retrieveEPNS_14ae_shared_poolEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %25, ptr noundef nonnull %32, ptr noundef %27)
  %120 = icmp slt i64 %34, 5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %120, ptr noundef nonnull @.str.932, ptr noundef %27)
  %121 = load ptr, ptr %31, align 8, !tbaa !21
  %122 = getelementptr inbounds i8, ptr %121, i64 520
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %122, i64 noundef 4, ptr noundef %27)
  %123 = load ptr, ptr %31, align 8, !tbaa !21
  %124 = getelementptr inbounds i8, ptr %123, i64 328
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %124, i64 noundef 4, ptr noundef %27)
  %125 = load ptr, ptr %31, align 8, !tbaa !21
  %126 = getelementptr inbounds i8, ptr %125, i64 584
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %126, i64 noundef %35, ptr noundef %27)
  %127 = getelementptr inbounds i8, ptr %0, i64 88
  %128 = load ptr, ptr %127, align 8, !tbaa !18
  %129 = getelementptr inbounds double, ptr %128, i64 %23
  %130 = load double, ptr %129, align 8, !tbaa !20
  %131 = fmul double %130, %130
  %132 = fdiv double 1.000000e+00, %131
  %133 = mul i64 %80, %78
  %134 = mul i64 %133, %82
  %135 = mul i64 %134, %84
  %.not.not687 = icmp sgt i64 %135, 0
  br i1 %.not.not687, label %.lr.ph690, label %._crit_edge691

.lr.ph690:                                        ; preds = %119
  %136 = getelementptr inbounds i8, ptr %21, i64 56
  %137 = getelementptr inbounds i8, ptr %0, i64 16
  %138 = getelementptr inbounds i8, ptr %0, i64 152
  %139 = getelementptr inbounds i8, ptr %1, i64 56
  %140 = icmp sgt i64 %34, 0
  %.not650 = icmp eq i64 %34, 1
  %141 = getelementptr inbounds i8, ptr %3, i64 56
  %142 = icmp ugt i64 %34, 2
  %143 = getelementptr inbounds i8, ptr %5, i64 56
  %.not651 = icmp eq i64 %34, 3
  %144 = getelementptr inbounds i8, ptr %7, i64 56
  %.not.not637658 = icmp sgt i64 %35, 0
  %145 = getelementptr inbounds i8, ptr %0, i64 352
  %146 = getelementptr inbounds i8, ptr %0, i64 416
  %147 = getelementptr inbounds i8, ptr %0, i64 216
  %148 = getelementptr inbounds i8, ptr %26, i64 56
  %xtraiter716 = and i64 %35, 3
  %149 = icmp ult i64 %35, 4
  %unroll_iter719 = and i64 %35, 9223372036854775804
  %lcmp.mod718.not = icmp eq i64 %xtraiter716, 0
  %xtraiter722 = and i64 %35, 1
  %150 = icmp eq i64 %35, 1
  %unroll_iter725 = and i64 %35, 9223372036854775806
  %lcmp.mod724.not = icmp eq i64 %xtraiter722, 0
  br label %151

151:                                              ; preds = %.lr.ph690, %._crit_edge686
  %.0624688 = phi i64 [ 0, %.lr.ph690 ], [ %516, %._crit_edge686 ]
  %152 = srem i64 %.0624688, %78
  %153 = add nsw i64 %152, %10
  %154 = sdiv i64 %.0624688, %78
  %155 = srem i64 %154, %80
  %156 = add nsw i64 %155, %13
  %157 = sdiv i64 %154, %80
  %158 = srem i64 %157, %82
  %159 = add nsw i64 %158, %16
  %160 = sdiv i64 %157, %82
  %161 = srem i64 %160, %84
  %162 = add nsw i64 %161, %19
  %163 = sdiv i64 %160, %84
  %164 = icmp eq i64 %163, 0
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %164, ptr noundef nonnull @.str.932, ptr noundef %27)
  %165 = load ptr, ptr %69, align 8, !tbaa !18
  %166 = add nsw i64 %162, 1
  %167 = getelementptr inbounds i64, ptr %165, i64 %166
  %168 = load i64, ptr %167, align 8, !tbaa !19
  %169 = getelementptr inbounds i64, ptr %165, i64 %162
  %170 = load i64, ptr %169, align 8, !tbaa !19
  %171 = sub nsw i64 %168, %170
  %172 = load ptr, ptr %60, align 8, !tbaa !18
  %173 = add nsw i64 %159, 1
  %174 = getelementptr inbounds i64, ptr %172, i64 %173
  %175 = load i64, ptr %174, align 8, !tbaa !19
  %176 = getelementptr inbounds i64, ptr %172, i64 %159
  %177 = load i64, ptr %176, align 8, !tbaa !19
  %178 = sub nsw i64 %175, %177
  %179 = mul nsw i64 %178, %171
  %180 = load ptr, ptr %51, align 8, !tbaa !18
  %181 = add nsw i64 %156, 1
  %182 = getelementptr inbounds i64, ptr %180, i64 %181
  %183 = load i64, ptr %182, align 8, !tbaa !19
  %184 = getelementptr inbounds i64, ptr %180, i64 %156
  %185 = load i64, ptr %184, align 8, !tbaa !19
  %186 = sub nsw i64 %183, %185
  %187 = mul nsw i64 %179, %186
  %.not.not634682 = icmp sgt i64 %187, 0
  br i1 %.not.not634682, label %.lr.ph685, label %._crit_edge686

.lr.ph685:                                        ; preds = %151
  %188 = add nsw i64 %153, 1
  br label %189

189:                                              ; preds = %.lr.ph685, %.loopexit
  %.0627683 = phi i64 [ 0, %.lr.ph685 ], [ %515, %.loopexit ]
  %190 = load ptr, ptr %51, align 8, !tbaa !18
  %191 = getelementptr inbounds i64, ptr %190, i64 %156
  %192 = load i64, ptr %191, align 8, !tbaa !19
  %193 = getelementptr inbounds i64, ptr %190, i64 %181
  %194 = load i64, ptr %193, align 8, !tbaa !19
  %195 = sub nsw i64 %194, %192
  %196 = srem i64 %.0627683, %195
  %197 = add nsw i64 %196, %192
  %198 = sdiv i64 %.0627683, %195
  %199 = load ptr, ptr %60, align 8, !tbaa !18
  %200 = getelementptr inbounds i64, ptr %199, i64 %159
  %201 = load i64, ptr %200, align 8, !tbaa !19
  %202 = getelementptr inbounds i64, ptr %199, i64 %173
  %203 = load i64, ptr %202, align 8, !tbaa !19
  %204 = sub nsw i64 %203, %201
  %205 = srem i64 %198, %204
  %206 = add nsw i64 %205, %201
  %207 = sdiv i64 %198, %204
  %208 = load ptr, ptr %69, align 8, !tbaa !18
  %209 = getelementptr inbounds i64, ptr %208, i64 %162
  %210 = load i64, ptr %209, align 8, !tbaa !19
  %211 = getelementptr inbounds i64, ptr %208, i64 %166
  %212 = load i64, ptr %211, align 8, !tbaa !19
  %213 = sub nsw i64 %212, %210
  %214 = srem i64 %207, %213
  %215 = add nsw i64 %214, %210
  %216 = sdiv i64 %207, %213
  %217 = icmp eq i64 %216, 0
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %217, ptr noundef nonnull @.str.932, ptr noundef %27)
  %218 = load ptr, ptr %42, align 8, !tbaa !18
  %219 = getelementptr inbounds i64, ptr %218, i64 %188
  %220 = load i64, ptr %219, align 8, !tbaa !19
  %221 = getelementptr inbounds i64, ptr %218, i64 %153
  %222 = load i64, ptr %221, align 8, !tbaa !19
  %223 = sub nsw i64 %220, %222
  %224 = mul nsw i64 %215, %6
  %225 = add nsw i64 %224, %206
  %226 = mul nsw i64 %225, %4
  %227 = add nsw i64 %226, %197
  %228 = mul nsw i64 %227, %2
  %.not.not635655 = icmp sgt i64 %223, 0
  br i1 %.not.not635655, label %.lr.ph, label %.loopexit

.lr.ph:                                           ; preds = %189
  br i1 %22, label %.lr.ph.split, label %.critedge692

.lr.ph.split:                                     ; preds = %.lr.ph, %.lr.ph.split.backedge
  %.0657 = phi i1 [ %.0657.be, %.lr.ph.split.backedge ], [ true, %.lr.ph ]
  %.0625656 = phi i64 [ %.0625656.be, %.lr.ph.split.backedge ], [ 0, %.lr.ph ]
  br i1 %.0657, label %229, label %.thread

229:                                              ; preds = %.lr.ph.split
  %230 = load ptr, ptr %136, align 8, !tbaa !18
  %231 = getelementptr i8, ptr %230, i64 %222
  %232 = getelementptr i8, ptr %231, i64 %228
  %233 = getelementptr i8, ptr %232, i64 %.0625656
  %234 = load i8, ptr %233, align 1, !tbaa !22, !range !23, !noundef !24
  %235 = trunc nuw i8 %234 to i1
  %236 = xor i1 %235, true
  %237 = add nuw nsw i64 %.0625656, 1
  %exitcond.not = icmp eq i64 %237, %223
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split.backedge

.lr.ph.split.backedge:                            ; preds = %229, %.thread
  %.0657.be = phi i1 [ %236, %229 ], [ false, %.thread ]
  %.0625656.be = phi i64 [ %237, %229 ], [ %238, %.thread ]
  br label %.lr.ph.split, !llvm.loop !25

.thread:                                          ; preds = %.lr.ph.split
  %238 = add nuw nsw i64 %.0625656, 1
  %exitcond.not705 = icmp eq i64 %238, %223
  br i1 %exitcond.not705, label %.critedge692, label %.lr.ph.split.backedge

._crit_edge:                                      ; preds = %229
  br i1 %235, label %.critedge692, label %.loopexit

.critedge692:                                     ; preds = %.thread, %.lr.ph, %._crit_edge
  %239 = load i64, ptr %137, align 8, !tbaa !27
  %240 = call noundef double @_ZN11alglib_impl15rbfv2nearradiusElPNS_8ae_stateE(i64 noundef %239, ptr noundef %27)
  %241 = load ptr, ptr %139, align 8, !tbaa !18
  %242 = load ptr, ptr %42, align 8, !tbaa !18
  %243 = getelementptr inbounds i64, ptr %242, i64 %188
  %244 = load i64, ptr %243, align 8, !tbaa !19
  %245 = getelementptr double, ptr %241, i64 %244
  %246 = getelementptr i8, ptr %245, i64 -8
  %247 = load double, ptr %246, align 8, !tbaa !20
  %248 = getelementptr inbounds i64, ptr %242, i64 %153
  %249 = load i64, ptr %248, align 8, !tbaa !19
  %250 = getelementptr inbounds double, ptr %241, i64 %249
  %251 = load double, ptr %250, align 8, !tbaa !20
  %252 = fsub double %247, %251
  %.not = icmp eq i64 %223, 1
  br i1 %.not, label %.lr.ph670.preheader, label %253

253:                                              ; preds = %.critedge692
  %254 = fmul double %240, 5.000000e-01
  %255 = fmul double %130, %254
  %256 = load ptr, ptr %138, align 8, !tbaa !18
  %257 = load double, ptr %256, align 8, !tbaa !20
  %258 = fmul double %255, %257
  %259 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %252, double noundef %258)
  br i1 %259, label %260, label %.lr.ph670.preheader

260:                                              ; preds = %253
  %261 = load i64, ptr %137, align 8, !tbaa !27
  %262 = call noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef %261, ptr noundef %27)
  %263 = fmul double %252, 5.000000e-01
  %264 = load ptr, ptr %138, align 8, !tbaa !18
  %265 = load double, ptr %264, align 8, !tbaa !20
  %266 = fdiv double %263, %265
  %267 = call double @llvm.fmuladd.f64(double %130, double %262, double %266)
  %268 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %267, ptr noundef %27)
  %269 = load i64, ptr %137, align 8, !tbaa !27
  %270 = call noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef %269, ptr noundef %27)
  %271 = fmul double %130, %270
  %272 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %271, ptr noundef %27)
  %273 = load ptr, ptr %42, align 8, !tbaa !18
  %274 = getelementptr inbounds i64, ptr %273, i64 %153
  %275 = load i64, ptr %274, align 8, !tbaa !19
  %.pre = load ptr, ptr %31, align 8, !tbaa !21
  br i1 %140, label %276, label %.lr.ph673

276:                                              ; preds = %260
  %277 = load ptr, ptr %139, align 8, !tbaa !18
  %278 = getelementptr inbounds double, ptr %277, i64 %275
  %279 = load double, ptr %278, align 8, !tbaa !20
  %280 = call double @llvm.fmuladd.f64(double %252, double 5.000000e-01, double %279)
  %281 = load ptr, ptr %138, align 8, !tbaa !18
  %282 = load double, ptr %281, align 8, !tbaa !20
  %283 = fdiv double %280, %282
  %284 = getelementptr inbounds i8, ptr %.pre, i64 384
  %285 = load ptr, ptr %284, align 8, !tbaa !18
  store double %283, ptr %285, align 8, !tbaa !20
  br i1 %.not650, label %.lr.ph673, label %286

286:                                              ; preds = %276
  %287 = load ptr, ptr %141, align 8, !tbaa !18
  %288 = getelementptr inbounds double, ptr %287, i64 %197
  %289 = load double, ptr %288, align 8, !tbaa !20
  %290 = load ptr, ptr %138, align 8, !tbaa !18
  %291 = getelementptr inbounds i8, ptr %290, i64 8
  %292 = load double, ptr %291, align 8, !tbaa !20
  %293 = fdiv double %289, %292
  %294 = load ptr, ptr %284, align 8, !tbaa !18
  %295 = getelementptr inbounds i8, ptr %294, i64 8
  store double %293, ptr %295, align 8, !tbaa !20
  br i1 %142, label %296, label %.lr.ph673

296:                                              ; preds = %286
  %297 = load ptr, ptr %143, align 8, !tbaa !18
  %298 = getelementptr inbounds double, ptr %297, i64 %206
  %299 = load double, ptr %298, align 8, !tbaa !20
  %300 = load ptr, ptr %138, align 8, !tbaa !18
  %301 = getelementptr inbounds i8, ptr %300, i64 16
  %302 = load double, ptr %301, align 8, !tbaa !20
  %303 = fdiv double %299, %302
  %304 = load ptr, ptr %284, align 8, !tbaa !18
  %305 = getelementptr inbounds i8, ptr %304, i64 16
  store double %303, ptr %305, align 8, !tbaa !20
  br i1 %.not651, label %.lr.ph673, label %306

306:                                              ; preds = %296
  %307 = load ptr, ptr %144, align 8, !tbaa !18
  %308 = getelementptr inbounds double, ptr %307, i64 %215
  %309 = load double, ptr %308, align 8, !tbaa !20
  %310 = load ptr, ptr %138, align 8, !tbaa !18
  %311 = getelementptr inbounds i8, ptr %310, i64 24
  %312 = load double, ptr %311, align 8, !tbaa !20
  %313 = fdiv double %309, %312
  %314 = load ptr, ptr %284, align 8, !tbaa !18
  %315 = getelementptr inbounds i8, ptr %314, i64 24
  store double %313, ptr %315, align 8, !tbaa !20
  br label %.lr.ph673

.lr.ph673:                                        ; preds = %296, %306, %286, %276, %260
  %316 = add nsw i64 %275, %228
  %317 = mul nsw i64 %316, %35
  %318 = getelementptr inbounds i8, ptr %.pre, i64 392
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %318, i64 noundef %223, ptr noundef %27)
  %319 = load ptr, ptr %31, align 8, !tbaa !21
  %320 = getelementptr inbounds i8, ptr %319, i64 648
  call void @_ZN11alglib_impl23bvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %320, i64 noundef %223, ptr noundef %27)
  %321 = load ptr, ptr %31, align 8, !tbaa !21
  %322 = getelementptr inbounds i8, ptr %321, i64 456
  %323 = mul nsw i64 %223, %35
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %322, i64 noundef %323, ptr noundef %27)
  %324 = load ptr, ptr %31, align 8, !tbaa !21
  %325 = getelementptr inbounds i8, ptr %324, i64 448
  %326 = getelementptr inbounds i8, ptr %324, i64 704
  %smax = call i64 @llvm.smax.i64(i64 %223, i64 1)
  br label %329

.preheader:                                       ; preds = %344
  %.not.not640674 = icmp sgt i64 %323, 0
  br i1 %.not.not640674, label %.lr.ph676, label %._crit_edge677

.lr.ph676:                                        ; preds = %.preheader
  %327 = getelementptr inbounds i8, ptr %324, i64 512
  %xtraiter = and i64 %323, 3
  %328 = icmp ult i64 %323, 4
  br i1 %328, label %._crit_edge677.loopexit.unr-lcssa, label %.lr.ph676.new

.lr.ph676.new:                                    ; preds = %.lr.ph676
  %unroll_iter = and i64 %323, 9223372036854775804
  br label %349

329:                                              ; preds = %.lr.ph673, %344
  %.1626672 = phi i64 [ 0, %.lr.ph673 ], [ %348, %344 ]
  %330 = load ptr, ptr %139, align 8, !tbaa !18
  %331 = getelementptr double, ptr %330, i64 %275
  %332 = getelementptr double, ptr %331, i64 %.1626672
  %333 = load double, ptr %332, align 8, !tbaa !20
  %334 = load ptr, ptr %138, align 8, !tbaa !18
  %335 = load double, ptr %334, align 8, !tbaa !20
  %336 = fdiv double %333, %335
  %337 = load ptr, ptr %325, align 8, !tbaa !18
  %338 = getelementptr inbounds double, ptr %337, i64 %.1626672
  store double %336, ptr %338, align 8, !tbaa !20
  br i1 %22, label %339, label %344

339:                                              ; preds = %329
  %340 = load ptr, ptr %136, align 8, !tbaa !18
  %341 = getelementptr i8, ptr %340, i64 %316
  %342 = getelementptr i8, ptr %341, i64 %.1626672
  %343 = load i8, ptr %342, align 1, !tbaa !22, !range !23, !noundef !24
  br label %344

344:                                              ; preds = %339, %329
  %345 = phi i8 [ 1, %329 ], [ %343, %339 ]
  %346 = load ptr, ptr %326, align 8, !tbaa !18
  %347 = getelementptr inbounds i8, ptr %346, i64 %.1626672
  store i8 %345, ptr %347, align 1, !tbaa !22
  %348 = add nuw nsw i64 %.1626672, 1
  %exitcond694.not = icmp eq i64 %348, %smax
  br i1 %exitcond694.not, label %.preheader, label %329, !llvm.loop !28

349:                                              ; preds = %349, %.lr.ph676.new
  %.0621675 = phi i64 [ 0, %.lr.ph676.new ], [ %361, %349 ]
  %niter = phi i64 [ 0, %.lr.ph676.new ], [ %niter.next.3, %349 ]
  %350 = load ptr, ptr %327, align 8, !tbaa !18
  %351 = getelementptr inbounds double, ptr %350, i64 %.0621675
  store double 0.000000e+00, ptr %351, align 8, !tbaa !20
  %352 = or disjoint i64 %.0621675, 1
  %353 = load ptr, ptr %327, align 8, !tbaa !18
  %354 = getelementptr inbounds double, ptr %353, i64 %352
  store double 0.000000e+00, ptr %354, align 8, !tbaa !20
  %355 = or disjoint i64 %.0621675, 2
  %356 = load ptr, ptr %327, align 8, !tbaa !18
  %357 = getelementptr inbounds double, ptr %356, i64 %355
  store double 0.000000e+00, ptr %357, align 8, !tbaa !20
  %358 = or disjoint i64 %.0621675, 3
  %359 = load ptr, ptr %327, align 8, !tbaa !18
  %360 = getelementptr inbounds double, ptr %359, i64 %358
  store double 0.000000e+00, ptr %360, align 8, !tbaa !20
  %361 = add nuw nsw i64 %.0621675, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge677.loopexit.unr-lcssa, label %349, !llvm.loop !29

._crit_edge677.loopexit.unr-lcssa:                ; preds = %349, %.lr.ph676
  %.0621675.unr = phi i64 [ 0, %.lr.ph676 ], [ %361, %349 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge677, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge677.loopexit.unr-lcssa, %.epil.preheader
  %.0621675.epil = phi i64 [ %364, %.epil.preheader ], [ %.0621675.unr, %._crit_edge677.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge677.loopexit.unr-lcssa ]
  %362 = load ptr, ptr %327, align 8, !tbaa !18
  %363 = getelementptr inbounds double, ptr %362, i64 %.0621675.epil
  store double 0.000000e+00, ptr %363, align 8, !tbaa !20
  %364 = add nuw nsw i64 %.0621675.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge677, label %.epil.preheader, !llvm.loop !30

._crit_edge677:                                   ; preds = %._crit_edge677.loopexit.unr-lcssa, %.epil.preheader, %.preheader
  %365 = getelementptr inbounds i8, ptr %324, i64 328
  call void @_ZN11alglib_implL25rbfv2_preparepartialqueryEPKNS_9ae_vectorES2_S2_lPNS_15rbfv2calcbufferEPlPNS_8ae_stateE(ptr noundef nonnull %365, ptr noundef nonnull %145, ptr noundef nonnull %146, i64 noundef %34, ptr noundef nonnull %324, ptr noundef nonnull %30, ptr noundef %27)
  %366 = load ptr, ptr %31, align 8, !tbaa !21
  %367 = load ptr, ptr %147, align 8, !tbaa !18
  %368 = getelementptr inbounds i64, ptr %367, i64 %23
  %369 = load i64, ptr %368, align 8, !tbaa !19
  %370 = getelementptr inbounds i8, ptr %366, i64 328
  %371 = getelementptr inbounds i8, ptr %366, i64 392
  %372 = getelementptr inbounds i8, ptr %366, i64 648
  %373 = getelementptr inbounds i8, ptr %366, i64 456
  call void @_ZN11alglib_implL23rbfv2_partialrowcalcrecEPKNS_10rbfv2modelEPNS_15rbfv2calcbufferEldddPKNS_9ae_vectorES7_S7_lPS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %366, i64 noundef %369, double noundef %132, double noundef %268, double noundef %272, ptr noundef nonnull %370, ptr noundef nonnull %371, ptr noundef nonnull %372, i64 noundef %223, ptr noundef nonnull %373, ptr noundef %27)
  br i1 %.not.not640674, label %.lr.ph681, label %.loopexit

.lr.ph681:                                        ; preds = %._crit_edge677
  %374 = load ptr, ptr %31, align 8, !tbaa !21
  %375 = getelementptr inbounds i8, ptr %374, i64 512
  %xtraiter710 = and i64 %323, 1
  %376 = icmp eq i64 %323, 1
  br i1 %376, label %.loopexit.loopexit708.unr-lcssa, label %.lr.ph681.new

.lr.ph681.new:                                    ; preds = %.lr.ph681
  %unroll_iter713 = and i64 %323, 9223372036854775806
  br label %377

377:                                              ; preds = %377, %.lr.ph681.new
  %.1679 = phi i64 [ 0, %.lr.ph681.new ], [ %395, %377 ]
  %niter714 = phi i64 [ 0, %.lr.ph681.new ], [ %niter714.next.1, %377 ]
  %378 = load ptr, ptr %148, align 8, !tbaa !18
  %379 = getelementptr double, ptr %378, i64 %317
  %380 = getelementptr double, ptr %379, i64 %.1679
  %381 = load double, ptr %380, align 8, !tbaa !20
  %382 = load ptr, ptr %375, align 8, !tbaa !18
  %383 = getelementptr inbounds double, ptr %382, i64 %.1679
  %384 = load double, ptr %383, align 8, !tbaa !20
  %385 = fadd double %381, %384
  store double %385, ptr %380, align 8, !tbaa !20
  %386 = or disjoint i64 %.1679, 1
  %387 = load ptr, ptr %148, align 8, !tbaa !18
  %388 = getelementptr double, ptr %387, i64 %317
  %389 = getelementptr double, ptr %388, i64 %386
  %390 = load double, ptr %389, align 8, !tbaa !20
  %391 = load ptr, ptr %375, align 8, !tbaa !18
  %392 = getelementptr inbounds double, ptr %391, i64 %386
  %393 = load double, ptr %392, align 8, !tbaa !20
  %394 = fadd double %390, %393
  store double %394, ptr %389, align 8, !tbaa !20
  %395 = add nuw nsw i64 %.1679, 2
  %niter714.next.1 = add i64 %niter714, 2
  %niter714.ncmp.1 = icmp eq i64 %niter714.next.1, %unroll_iter713
  br i1 %niter714.ncmp.1, label %.loopexit.loopexit708.unr-lcssa, label %377, !llvm.loop !32

.lr.ph670.preheader:                              ; preds = %.critedge692, %253
  %396 = load i64, ptr %137, align 8, !tbaa !27
  %397 = call noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef %396, ptr noundef %27)
  %398 = fmul double %130, %397
  %399 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %398, ptr noundef %27)
  %smax699 = call i64 @llvm.smax.i64(i64 %223, i64 1)
  br label %.lr.ph670

.lr.ph670:                                        ; preds = %.lr.ph670.preheader, %._crit_edge666
  %.2668 = phi i64 [ %506, %._crit_edge666 ], [ 0, %.lr.ph670.preheader ]
  %400 = load ptr, ptr %42, align 8, !tbaa !18
  %401 = getelementptr inbounds i64, ptr %400, i64 %153
  %402 = load i64, ptr %401, align 8, !tbaa !19
  %403 = add nsw i64 %402, %.2668
  br i1 %140, label %404, label %.thread649

404:                                              ; preds = %.lr.ph670
  %405 = load ptr, ptr %139, align 8, !tbaa !18
  %406 = getelementptr inbounds double, ptr %405, i64 %403
  %407 = load double, ptr %406, align 8, !tbaa !20
  %408 = load ptr, ptr %138, align 8, !tbaa !18
  %409 = load double, ptr %408, align 8, !tbaa !20
  %410 = fdiv double %407, %409
  %411 = load ptr, ptr %31, align 8, !tbaa !21
  %412 = getelementptr inbounds i8, ptr %411, i64 576
  %413 = load ptr, ptr %412, align 8, !tbaa !18
  store double %410, ptr %413, align 8, !tbaa !20
  br i1 %.not650, label %.thread649, label %414

414:                                              ; preds = %404
  %415 = load ptr, ptr %141, align 8, !tbaa !18
  %416 = getelementptr inbounds double, ptr %415, i64 %197
  %417 = load double, ptr %416, align 8, !tbaa !20
  %418 = load ptr, ptr %138, align 8, !tbaa !18
  %419 = getelementptr inbounds i8, ptr %418, i64 8
  %420 = load double, ptr %419, align 8, !tbaa !20
  %421 = fdiv double %417, %420
  %422 = load ptr, ptr %412, align 8, !tbaa !18
  %423 = getelementptr inbounds i8, ptr %422, i64 8
  store double %421, ptr %423, align 8, !tbaa !20
  br i1 %142, label %424, label %.thread649

424:                                              ; preds = %414
  %425 = load ptr, ptr %143, align 8, !tbaa !18
  %426 = getelementptr inbounds double, ptr %425, i64 %206
  %427 = load double, ptr %426, align 8, !tbaa !20
  %428 = load ptr, ptr %138, align 8, !tbaa !18
  %429 = getelementptr inbounds i8, ptr %428, i64 16
  %430 = load double, ptr %429, align 8, !tbaa !20
  %431 = fdiv double %427, %430
  %432 = load ptr, ptr %412, align 8, !tbaa !18
  %433 = getelementptr inbounds i8, ptr %432, i64 16
  store double %431, ptr %433, align 8, !tbaa !20
  br i1 %.not651, label %.thread649, label %434

434:                                              ; preds = %424
  %435 = load ptr, ptr %144, align 8, !tbaa !18
  %436 = getelementptr inbounds double, ptr %435, i64 %215
  %437 = load double, ptr %436, align 8, !tbaa !20
  %438 = load ptr, ptr %138, align 8, !tbaa !18
  %439 = getelementptr inbounds i8, ptr %438, i64 24
  %440 = load double, ptr %439, align 8, !tbaa !20
  %441 = fdiv double %437, %440
  %442 = load ptr, ptr %412, align 8, !tbaa !18
  %443 = getelementptr inbounds i8, ptr %442, i64 24
  store double %441, ptr %443, align 8, !tbaa !20
  br label %.thread649

.thread649:                                       ; preds = %.lr.ph670, %404, %414, %434, %424
  %444 = add nsw i64 %403, %228
  %445 = mul nsw i64 %444, %35
  br i1 %.not.not637658, label %.lr.ph660, label %._crit_edge661

.lr.ph660:                                        ; preds = %.thread649
  %446 = load ptr, ptr %31, align 8, !tbaa !21
  %447 = getelementptr inbounds i8, ptr %446, i64 640
  br i1 %149, label %._crit_edge661.loopexit.unr-lcssa, label %.lr.ph660.new

.lr.ph660.new:                                    ; preds = %.lr.ph660, %.lr.ph660.new
  %.0622659 = phi i64 [ %459, %.lr.ph660.new ], [ 0, %.lr.ph660 ]
  %niter720 = phi i64 [ %niter720.next.3, %.lr.ph660.new ], [ 0, %.lr.ph660 ]
  %448 = load ptr, ptr %447, align 8, !tbaa !18
  %449 = getelementptr inbounds double, ptr %448, i64 %.0622659
  store double 0.000000e+00, ptr %449, align 8, !tbaa !20
  %450 = or disjoint i64 %.0622659, 1
  %451 = load ptr, ptr %447, align 8, !tbaa !18
  %452 = getelementptr inbounds double, ptr %451, i64 %450
  store double 0.000000e+00, ptr %452, align 8, !tbaa !20
  %453 = or disjoint i64 %.0622659, 2
  %454 = load ptr, ptr %447, align 8, !tbaa !18
  %455 = getelementptr inbounds double, ptr %454, i64 %453
  store double 0.000000e+00, ptr %455, align 8, !tbaa !20
  %456 = or disjoint i64 %.0622659, 3
  %457 = load ptr, ptr %447, align 8, !tbaa !18
  %458 = getelementptr inbounds double, ptr %457, i64 %456
  store double 0.000000e+00, ptr %458, align 8, !tbaa !20
  %459 = add nuw nsw i64 %.0622659, 4
  %niter720.next.3 = add i64 %niter720, 4
  %niter720.ncmp.3 = icmp eq i64 %niter720.next.3, %unroll_iter719
  br i1 %niter720.ncmp.3, label %._crit_edge661.loopexit.unr-lcssa, label %.lr.ph660.new, !llvm.loop !33

._crit_edge661.loopexit.unr-lcssa:                ; preds = %.lr.ph660.new, %.lr.ph660
  %.0622659.unr = phi i64 [ 0, %.lr.ph660 ], [ %459, %.lr.ph660.new ]
  br i1 %lcmp.mod718.not, label %._crit_edge661, label %.epil.preheader715

.epil.preheader715:                               ; preds = %._crit_edge661.loopexit.unr-lcssa, %.epil.preheader715
  %.0622659.epil = phi i64 [ %462, %.epil.preheader715 ], [ %.0622659.unr, %._crit_edge661.loopexit.unr-lcssa ]
  %epil.iter717 = phi i64 [ %epil.iter717.next, %.epil.preheader715 ], [ 0, %._crit_edge661.loopexit.unr-lcssa ]
  %460 = load ptr, ptr %447, align 8, !tbaa !18
  %461 = getelementptr inbounds double, ptr %460, i64 %.0622659.epil
  store double 0.000000e+00, ptr %461, align 8, !tbaa !20
  %462 = add nuw nsw i64 %.0622659.epil, 1
  %epil.iter717.next = add i64 %epil.iter717, 1
  %epil.iter717.cmp.not = icmp eq i64 %epil.iter717.next, %xtraiter716
  br i1 %epil.iter717.cmp.not, label %._crit_edge661, label %.epil.preheader715, !llvm.loop !34

._crit_edge661:                                   ; preds = %._crit_edge661.loopexit.unr-lcssa, %.epil.preheader715, %.thread649
  br i1 %22, label %463, label %468

463:                                              ; preds = %._crit_edge661
  %464 = load ptr, ptr %136, align 8, !tbaa !18
  %465 = getelementptr inbounds i8, ptr %464, i64 %444
  %466 = load i8, ptr %465, align 1, !tbaa !22, !range !23, !noundef !24
  %467 = trunc nuw i8 %466 to i1
  br i1 %467, label %468, label %477

468:                                              ; preds = %463, %._crit_edge661
  %469 = load ptr, ptr %31, align 8, !tbaa !21
  %470 = getelementptr inbounds i8, ptr %469, i64 520
  call void @_ZN11alglib_implL25rbfv2_preparepartialqueryEPKNS_9ae_vectorES2_S2_lPNS_15rbfv2calcbufferEPlPNS_8ae_stateE(ptr noundef nonnull %470, ptr noundef nonnull %145, ptr noundef nonnull %146, i64 noundef %34, ptr noundef %469, ptr noundef nonnull %30, ptr noundef %27)
  %471 = load ptr, ptr %31, align 8, !tbaa !21
  %472 = load ptr, ptr %147, align 8, !tbaa !18
  %473 = getelementptr inbounds i64, ptr %472, i64 %23
  %474 = load i64, ptr %473, align 8, !tbaa !19
  %475 = getelementptr inbounds i8, ptr %471, i64 520
  %476 = getelementptr inbounds i8, ptr %471, i64 584
  call void @_ZN11alglib_implL20rbfv2_partialcalcrecEPKNS_10rbfv2modelEPNS_15rbfv2calcbufferElddPKNS_9ae_vectorEPS5_S8_S8_lPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %471, i64 noundef %474, double noundef %132, double noundef %399, ptr noundef nonnull %475, ptr noundef nonnull %476, ptr noundef nonnull %476, ptr noundef nonnull %476, i64 noundef 0, ptr noundef %27)
  br label %477

477:                                              ; preds = %468, %463
  br i1 %.not.not637658, label %.lr.ph665, label %._crit_edge666

.lr.ph665:                                        ; preds = %477
  %478 = load ptr, ptr %31, align 8, !tbaa !21
  %479 = getelementptr inbounds i8, ptr %478, i64 640
  br i1 %150, label %._crit_edge666.loopexit.unr-lcssa, label %.lr.ph665.new

.lr.ph665.new:                                    ; preds = %.lr.ph665, %.lr.ph665.new
  %.1623663 = phi i64 [ %497, %.lr.ph665.new ], [ 0, %.lr.ph665 ]
  %niter726 = phi i64 [ %niter726.next.1, %.lr.ph665.new ], [ 0, %.lr.ph665 ]
  %480 = load ptr, ptr %148, align 8, !tbaa !18
  %481 = getelementptr double, ptr %480, i64 %445
  %482 = getelementptr double, ptr %481, i64 %.1623663
  %483 = load double, ptr %482, align 8, !tbaa !20
  %484 = load ptr, ptr %479, align 8, !tbaa !18
  %485 = getelementptr inbounds double, ptr %484, i64 %.1623663
  %486 = load double, ptr %485, align 8, !tbaa !20
  %487 = fadd double %483, %486
  store double %487, ptr %482, align 8, !tbaa !20
  %488 = or disjoint i64 %.1623663, 1
  %489 = load ptr, ptr %148, align 8, !tbaa !18
  %490 = getelementptr double, ptr %489, i64 %445
  %491 = getelementptr double, ptr %490, i64 %488
  %492 = load double, ptr %491, align 8, !tbaa !20
  %493 = load ptr, ptr %479, align 8, !tbaa !18
  %494 = getelementptr inbounds double, ptr %493, i64 %488
  %495 = load double, ptr %494, align 8, !tbaa !20
  %496 = fadd double %492, %495
  store double %496, ptr %491, align 8, !tbaa !20
  %497 = add nuw nsw i64 %.1623663, 2
  %niter726.next.1 = add i64 %niter726, 2
  %niter726.ncmp.1 = icmp eq i64 %niter726.next.1, %unroll_iter725
  br i1 %niter726.ncmp.1, label %._crit_edge666.loopexit.unr-lcssa, label %.lr.ph665.new, !llvm.loop !35

._crit_edge666.loopexit.unr-lcssa:                ; preds = %.lr.ph665.new, %.lr.ph665
  %.1623663.unr = phi i64 [ 0, %.lr.ph665 ], [ %497, %.lr.ph665.new ]
  br i1 %lcmp.mod724.not, label %._crit_edge666, label %._crit_edge666.loopexit.epilog-lcssa

._crit_edge666.loopexit.epilog-lcssa:             ; preds = %._crit_edge666.loopexit.unr-lcssa
  %498 = load ptr, ptr %148, align 8, !tbaa !18
  %499 = getelementptr double, ptr %498, i64 %445
  %500 = getelementptr double, ptr %499, i64 %.1623663.unr
  %501 = load double, ptr %500, align 8, !tbaa !20
  %502 = load ptr, ptr %479, align 8, !tbaa !18
  %503 = getelementptr inbounds double, ptr %502, i64 %.1623663.unr
  %504 = load double, ptr %503, align 8, !tbaa !20
  %505 = fadd double %501, %504
  store double %505, ptr %500, align 8, !tbaa !20
  br label %._crit_edge666

._crit_edge666:                                   ; preds = %._crit_edge666.loopexit.epilog-lcssa, %._crit_edge666.loopexit.unr-lcssa, %477
  %506 = add nuw nsw i64 %.2668, 1
  %exitcond700.not = icmp eq i64 %506, %smax699
  br i1 %exitcond700.not, label %.loopexit, label %.lr.ph670, !llvm.loop !36

.loopexit.loopexit708.unr-lcssa:                  ; preds = %377, %.lr.ph681
  %.1679.unr = phi i64 [ 0, %.lr.ph681 ], [ %395, %377 ]
  %lcmp.mod712.not = icmp eq i64 %xtraiter710, 0
  br i1 %lcmp.mod712.not, label %.loopexit, label %.loopexit.loopexit708.epilog-lcssa

.loopexit.loopexit708.epilog-lcssa:               ; preds = %.loopexit.loopexit708.unr-lcssa
  %507 = load ptr, ptr %148, align 8, !tbaa !18
  %508 = getelementptr double, ptr %507, i64 %317
  %509 = getelementptr double, ptr %508, i64 %.1679.unr
  %510 = load double, ptr %509, align 8, !tbaa !20
  %511 = load ptr, ptr %375, align 8, !tbaa !18
  %512 = getelementptr inbounds double, ptr %511, i64 %.1679.unr
  %513 = load double, ptr %512, align 8, !tbaa !20
  %514 = fadd double %510, %513
  store double %514, ptr %509, align 8, !tbaa !20
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit708.epilog-lcssa, %.loopexit.loopexit708.unr-lcssa, %._crit_edge666, %189, %._crit_edge677, %._crit_edge
  %515 = add nuw nsw i64 %.0627683, 1
  %exitcond701.not = icmp eq i64 %515, %187
  br i1 %exitcond701.not, label %._crit_edge686, label %189, !llvm.loop !37

._crit_edge686:                                   ; preds = %.loopexit, %151
  %516 = add nuw nsw i64 %.0624688, 1
  %exitcond702.not = icmp eq i64 %516, %135
  br i1 %exitcond702.not, label %._crit_edge691, label %151, !llvm.loop !38

._crit_edge691:                                   ; preds = %._crit_edge686, %119
  call void @_ZN11alglib_impl22ae_shared_pool_recycleEPNS_14ae_shared_poolEPNS_12ae_smart_ptrEPNS_8ae_stateE(ptr noundef %25, ptr noundef nonnull %32, ptr noundef %27)
  br label %517

517:                                              ; preds = %90, %._crit_edge691, %115, %110, %105, %100
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %27)
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  ret void
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl33_trypexec_rbfv2partialgridcalcrecEPKNS_10rbfv2modelEPKNS_9ae_vectorElS5_lS5_lS5_lS5_llS5_llS5_llS5_llS5_bldPNS_14ae_shared_poolEPS3_PNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext, i64 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

declare noundef double @_ZN11alglib_impl10spawnlevelEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL23rbfv2_partialrowcalcrecEPKNS_10rbfv2modelEPNS_15rbfv2calcbufferEldddPKNS_9ae_vectorES7_S7_lPS5_PNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, double noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 8}
!6 = !{!"_ZTSN11alglib_impl10rbfv2modelE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !10, i64 96, !10, i64 160, !10, i64 224, !10, i64 288, !10, i64 352, !10, i64 416, !10, i64 480, !14, i64 544, !15, i64 624, !7, i64 632, !15, i64 640, !7, i64 648, !16, i64 656}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !8, i64 56}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!13 = !{!"any pointer", !8, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !12, i64 40, !8, i64 72}
!15 = !{!"double", !8, i64 0}
!16 = !{!"_ZTSN11alglib_impl15rbfv2calcbufferE", !10, i64 0, !10, i64 64, !10, i64 128, !15, i64 192, !10, i64 200, !10, i64 264}
!17 = !{!6, !7, i64 0}
!18 = !{!8, !8, i64 0}
!19 = !{!7, !7, i64 0}
!20 = !{!15, !15, i64 0}
!21 = !{!13, !13, i64 0}
!22 = !{!11, !11, i64 0}
!23 = !{i8 0, i8 2}
!24 = !{}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!6, !7, i64 16}
!28 = distinct !{!28, !26}
!29 = distinct !{!29, !26}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.unroll.disable"}
!32 = distinct !{!32, !26}
!33 = distinct !{!33, !26}
!34 = distinct !{!34, !31}
!35 = distinct !{!35, !26}
!36 = distinct !{!36, !26}
!37 = distinct !{!37, !26}
!38 = distinct !{!38, !26}


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