; LLVM IR from venumb/ZSPACE :: cpp/depends/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_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"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" }
%"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::ae_shared_pool" = type { %"struct.alglib_impl::ae_lock", ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }
%"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_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }

@.str.688 = external hidden unnamed_addr constant [38 x i8], align 1

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

; Function Attrs: nocallback nofree 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

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

declare void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 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 zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef, double noundef) #2

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

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) #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 void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef, ptr noundef) #2

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL24rbfv2_allocatecalcbufferEPNS_10rbfv2modelEPNS_15rbfv2calcbufferEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #4

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl15rbfv2gridcalcvxEPNS_10rbfv2modelEPNS_9ae_vectorElS3_lS3_lS3_lS3_bS3_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, i1 noundef zeroext %10, ptr noundef %11, ptr noundef %12) #4 {
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i64, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i64, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i64, align 8
  %21 = alloca ptr, align 8
  %22 = alloca i64, align 8
  %23 = alloca ptr, align 8
  %24 = alloca i8, align 1
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca %"struct.alglib_impl::ae_frame", align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca %"struct.alglib_impl::ae_vector", align 8
  %34 = alloca %"struct.alglib_impl::ae_vector", align 8
  %35 = alloca %"struct.alglib_impl::ae_vector", align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca %"struct.alglib_impl::rbfv2gridcalcbuffer", align 8
  %39 = alloca %"struct.alglib_impl::ae_shared_pool", align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca i64, align 8
  %45 = alloca double, align 8
  %46 = alloca i64, align 8
  %47 = alloca double, align 8
  %48 = alloca %"struct.alglib_impl::hqrndstate", align 8
  %49 = alloca %"struct.alglib_impl::ae_vector", align 8
  %50 = alloca %"struct.alglib_impl::ae_vector", align 8
  %51 = alloca %"struct.alglib_impl::ae_vector", align 8
  %52 = alloca %"struct.alglib_impl::ae_vector", align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca i64, align 8
  %62 = alloca i32, align 4
  store ptr %0, ptr %14, align 8, !tbaa !5
  store ptr %1, ptr %15, align 8, !tbaa !5
  store i64 %2, ptr %16, align 8, !tbaa !9
  store ptr %3, ptr %17, align 8, !tbaa !5
  store i64 %4, ptr %18, align 8, !tbaa !9
  store ptr %5, ptr %19, align 8, !tbaa !5
  store i64 %6, ptr %20, align 8, !tbaa !9
  store ptr %7, ptr %21, align 8, !tbaa !5
  store i64 %8, ptr %22, align 8, !tbaa !9
  store ptr %9, ptr %23, align 8, !tbaa !5
  %63 = zext i1 %10 to i8
  store i8 %63, ptr %24, align 1, !tbaa !11
  store ptr %11, ptr %25, align 8, !tbaa !5
  store ptr %12, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 712, ptr %38) #6
  call void @llvm.lifetime.start.p0(i64 144, ptr %39) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %48) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %49) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %50) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %51) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %52) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #6
  call void @llvm.lifetime.start.p0(i64 8, 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
  %64 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %64, ptr noundef %27)
  call void @llvm.memset.p0.i64(ptr align 8 %33, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %34, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %35, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 712, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %39, i8 0, i64 144, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %48, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %49, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %50, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %51, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 64, i1 false)
  %65 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %33, i64 noundef 0, i64 noundef 3, ptr noundef %65, i1 noundef zeroext true)
  %66 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %34, i64 noundef 0, i64 noundef 3, ptr noundef %66, i1 noundef zeroext true)
  %67 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %35, i64 noundef 0, i64 noundef 3, ptr noundef %67, i1 noundef zeroext true)
  %68 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl25_rbfv2gridcalcbuffer_initEPvPNS_8ae_stateEb(ptr noundef %38, ptr noundef %68, i1 noundef zeroext true)
  %69 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl19ae_shared_pool_initEPvPNS_8ae_stateEb(ptr noundef %39, ptr noundef %69, i1 noundef zeroext true)
  %70 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl16_hqrndstate_initEPvPNS_8ae_stateEb(ptr noundef %48, ptr noundef %70, i1 noundef zeroext true)
  %71 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %49, i64 noundef 0, i64 noundef 2, ptr noundef %71, i1 noundef zeroext true)
  %72 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %50, i64 noundef 0, i64 noundef 2, ptr noundef %72, i1 noundef zeroext true)
  %73 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %51, i64 noundef 0, i64 noundef 2, ptr noundef %73, i1 noundef zeroext true)
  %74 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %52, i64 noundef 0, i64 noundef 2, ptr noundef %74, i1 noundef zeroext true)
  %75 = load ptr, ptr %14, align 8, !tbaa !5
  %76 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %75, i32 0, i32 1
  %77 = load i64, ptr %76, align 8, !tbaa !13
  store i64 %77, ptr %28, align 8, !tbaa !9
  %78 = load ptr, ptr %14, align 8, !tbaa !5
  %79 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %78, i32 0, i32 0
  %80 = load i64, ptr %79, align 8, !tbaa !20
  store i64 %80, ptr %29, align 8, !tbaa !9
  %81 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl9hqrndseedEllPNS_10hqrndstateEPNS_8ae_stateE(i64 noundef 532, i64 noundef 54734, ptr noundef %48, ptr noundef %81)
  %82 = load ptr, ptr %14, align 8, !tbaa !5
  %83 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %82, i32 0, i32 1
  %84 = load i64, ptr %83, align 8, !tbaa !13
  %85 = icmp eq i64 %84, 2
  br i1 %85, label %91, label %86

86:                                               ; preds = %13
  %87 = load ptr, ptr %14, align 8, !tbaa !5
  %88 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %87, i32 0, i32 1
  %89 = load i64, ptr %88, align 8, !tbaa !13
  %90 = icmp eq i64 %89, 3
  br label %91

91:                                               ; preds = %86, %13
  %92 = phi i1 [ true, %13 ], [ %90, %86 ]
  %93 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %92, ptr noundef @.str.688, ptr noundef %93)
  %94 = load ptr, ptr %14, align 8, !tbaa !5
  %95 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %94, i32 0, i32 1
  %96 = load i64, ptr %95, align 8, !tbaa !13
  %97 = icmp sge i64 %96, 4
  br i1 %97, label %115, label %98

98:                                               ; preds = %91
  %99 = load ptr, ptr %21, align 8, !tbaa !5
  %100 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %99, i32 0, i32 0
  %101 = load i64, ptr %100, align 8, !tbaa !21
  %102 = icmp sge i64 %101, 1
  br i1 %102, label %103, label %113

103:                                              ; preds = %98
  %104 = load ptr, ptr %21, align 8, !tbaa !5
  %105 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %104, i32 0, i32 4
  %106 = load ptr, ptr %105, align 8, !tbaa !22
  %107 = getelementptr inbounds double, ptr %106, i64 0
  %108 = load double, ptr %107, align 8, !tbaa !23
  %109 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %108, double noundef 0.000000e+00)
  br i1 %109, label %110, label %113

110:                                              ; preds = %103
  %111 = load i64, ptr %22, align 8, !tbaa !9
  %112 = icmp eq i64 %111, 1
  br label %113

113:                                              ; preds = %110, %103, %98
  %114 = phi i1 [ false, %103 ], [ false, %98 ], [ %112, %110 ]
  br label %115

115:                                              ; preds = %113, %91
  %116 = phi i1 [ true, %91 ], [ %114, %113 ]
  %117 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %116, ptr noundef @.str.688, ptr noundef %117)
  %118 = load ptr, ptr %14, align 8, !tbaa !5
  %119 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %118, i32 0, i32 1
  %120 = load i64, ptr %119, align 8, !tbaa !13
  %121 = icmp sge i64 %120, 3
  br i1 %121, label %139, label %122

122:                                              ; preds = %115
  %123 = load ptr, ptr %19, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %123, i32 0, i32 0
  %125 = load i64, ptr %124, align 8, !tbaa !21
  %126 = icmp sge i64 %125, 1
  br i1 %126, label %127, label %137

127:                                              ; preds = %122
  %128 = load ptr, ptr %19, 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 = getelementptr inbounds double, ptr %130, i64 0
  %132 = load double, ptr %131, align 8, !tbaa !23
  %133 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %132, double noundef 0.000000e+00)
  br i1 %133, label %134, label %137

134:                                              ; preds = %127
  %135 = load i64, ptr %20, align 8, !tbaa !9
  %136 = icmp eq i64 %135, 1
  br label %137

137:                                              ; preds = %134, %127, %122
  %138 = phi i1 [ false, %127 ], [ false, %122 ], [ %136, %134 ]
  br label %139

139:                                              ; preds = %137, %115
  %140 = phi i1 [ true, %115 ], [ %138, %137 ]
  %141 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %140, ptr noundef @.str.688, ptr noundef %141)
  %142 = load ptr, ptr %14, align 8, !tbaa !5
  %143 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %142, i32 0, i32 1
  %144 = load i64, ptr %143, align 8, !tbaa !13
  %145 = icmp sge i64 %144, 2
  br i1 %145, label %163, label %146

146:                                              ; preds = %139
  %147 = load ptr, ptr %17, align 8, !tbaa !5
  %148 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %147, i32 0, i32 0
  %149 = load i64, ptr %148, align 8, !tbaa !21
  %150 = icmp sge i64 %149, 1
  br i1 %150, label %151, label %161

151:                                              ; preds = %146
  %152 = load ptr, ptr %17, align 8, !tbaa !5
  %153 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %152, i32 0, i32 4
  %154 = load ptr, ptr %153, align 8, !tbaa !22
  %155 = getelementptr inbounds double, ptr %154, i64 0
  %156 = load double, ptr %155, align 8, !tbaa !23
  %157 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %156, double noundef 0.000000e+00)
  br i1 %157, label %158, label %161

158:                                              ; preds = %151
  %159 = load i64, ptr %18, align 8, !tbaa !9
  %160 = icmp eq i64 %159, 1
  br label %161

161:                                              ; preds = %158, %151, %146
  %162 = phi i1 [ false, %151 ], [ false, %146 ], [ %160, %158 ]
  br label %163

163:                                              ; preds = %161, %139
  %164 = phi i1 [ true, %139 ], [ %162, %161 ]
  %165 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %164, ptr noundef @.str.688, ptr noundef %165)
  %166 = load ptr, ptr %14, align 8, !tbaa !5
  %167 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %166, i32 0, i32 1
  %168 = load i64, ptr %167, align 8, !tbaa !13
  %169 = icmp sle i64 %168, 4
  %170 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %169, ptr noundef @.str.688, ptr noundef %170)
  %171 = load i64, ptr %29, align 8, !tbaa !9
  %172 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %35, i64 noundef %171, ptr noundef %172)
  %173 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %33, i64 noundef 4, ptr noundef %173)
  %174 = load i64, ptr %29, align 8, !tbaa !9
  %175 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %34, i64 noundef %174, ptr noundef %175)
  %176 = load i64, ptr %18, align 8, !tbaa !9
  %177 = load i64, ptr %20, align 8, !tbaa !9
  %178 = mul nsw i64 %176, %177
  %179 = load i64, ptr %22, align 8, !tbaa !9
  %180 = mul nsw i64 %178, %179
  store i64 %180, ptr %41, align 8, !tbaa !9
  store i64 0, ptr %40, align 8, !tbaa !9
  br label %181

181:                                              ; preds = %377, %163
  %182 = load i64, ptr %40, align 8, !tbaa !9
  %183 = load i64, ptr %41, align 8, !tbaa !9
  %184 = sub nsw i64 %183, 1
  %185 = icmp sle i64 %182, %184
  br i1 %185, label %186, label %380

186:                                              ; preds = %181
  %187 = load i64, ptr %40, align 8, !tbaa !9
  store i64 %187, ptr %32, align 8, !tbaa !9
  %188 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %189 = load ptr, ptr %188, align 8, !tbaa !22
  %190 = getelementptr inbounds double, ptr %189, i64 0
  store double 0.000000e+00, ptr %190, align 8, !tbaa !23
  %191 = load ptr, ptr %17, align 8, !tbaa !5
  %192 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %191, i32 0, i32 4
  %193 = load ptr, ptr %192, align 8, !tbaa !22
  %194 = load i64, ptr %32, align 8, !tbaa !9
  %195 = load i64, ptr %18, align 8, !tbaa !9
  %196 = srem i64 %194, %195
  %197 = getelementptr inbounds double, ptr %193, i64 %196
  %198 = load double, ptr %197, align 8, !tbaa !23
  %199 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %200 = load ptr, ptr %199, align 8, !tbaa !22
  %201 = getelementptr inbounds double, ptr %200, i64 1
  store double %198, ptr %201, align 8, !tbaa !23
  %202 = load i64, ptr %32, align 8, !tbaa !9
  %203 = load i64, ptr %18, align 8, !tbaa !9
  %204 = sdiv i64 %202, %203
  store i64 %204, ptr %32, align 8, !tbaa !9
  %205 = load ptr, ptr %19, align 8, !tbaa !5
  %206 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %205, i32 0, i32 4
  %207 = load ptr, ptr %206, align 8, !tbaa !22
  %208 = load i64, ptr %32, align 8, !tbaa !9
  %209 = load i64, ptr %20, align 8, !tbaa !9
  %210 = srem i64 %208, %209
  %211 = getelementptr inbounds double, ptr %207, i64 %210
  %212 = load double, ptr %211, align 8, !tbaa !23
  %213 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %214 = load ptr, ptr %213, align 8, !tbaa !22
  %215 = getelementptr inbounds double, ptr %214, i64 2
  store double %212, ptr %215, align 8, !tbaa !23
  %216 = load i64, ptr %32, align 8, !tbaa !9
  %217 = load i64, ptr %20, align 8, !tbaa !9
  %218 = sdiv i64 %216, %217
  store i64 %218, ptr %32, align 8, !tbaa !9
  %219 = load ptr, ptr %21, align 8, !tbaa !5
  %220 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %219, i32 0, i32 4
  %221 = load ptr, ptr %220, align 8, !tbaa !22
  %222 = load i64, ptr %32, align 8, !tbaa !9
  %223 = load i64, ptr %22, align 8, !tbaa !9
  %224 = srem i64 %222, %223
  %225 = getelementptr inbounds double, ptr %221, i64 %224
  %226 = load double, ptr %225, align 8, !tbaa !23
  %227 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %228 = load ptr, ptr %227, align 8, !tbaa !22
  %229 = getelementptr inbounds double, ptr %228, i64 3
  store double %226, ptr %229, align 8, !tbaa !23
  %230 = load i64, ptr %32, align 8, !tbaa !9
  %231 = load i64, ptr %22, align 8, !tbaa !9
  %232 = sdiv i64 %230, %231
  store i64 %232, ptr %32, align 8, !tbaa !9
  %233 = load i64, ptr %32, align 8, !tbaa !9
  %234 = icmp eq i64 %233, 0
  %235 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %234, ptr noundef @.str.688, ptr noundef %235)
  store i64 0, ptr %31, align 8, !tbaa !9
  br label %236

236:                                              ; preds = %284, %186
  %237 = load i64, ptr %31, align 8, !tbaa !9
  %238 = load i64, ptr %29, align 8, !tbaa !9
  %239 = sub nsw i64 %238, 1
  %240 = icmp sle i64 %237, %239
  br i1 %240, label %241, label %287

241:                                              ; preds = %236
  %242 = load ptr, ptr %14, align 8, !tbaa !5
  %243 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %242, i32 0, i32 12
  %244 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %243, i32 0, i32 6
  %245 = load ptr, ptr %244, align 8, !tbaa !22
  %246 = load i64, ptr %31, align 8, !tbaa !9
  %247 = getelementptr inbounds ptr, ptr %245, i64 %246
  %248 = load ptr, ptr %247, align 8, !tbaa !5
  %249 = load i64, ptr %28, align 8, !tbaa !9
  %250 = getelementptr inbounds double, ptr %248, i64 %249
  %251 = load double, ptr %250, align 8, !tbaa !23
  store double %251, ptr %42, align 8, !tbaa !23
  store i64 1, ptr %32, align 8, !tbaa !9
  br label %252

252:                                              ; preds = %275, %241
  %253 = load i64, ptr %32, align 8, !tbaa !9
  %254 = load i64, ptr %28, align 8, !tbaa !9
  %255 = sub nsw i64 %254, 1
  %256 = icmp sle i64 %253, %255
  br i1 %256, label %257, label %278

257:                                              ; preds = %252
  %258 = load double, ptr %42, align 8, !tbaa !23
  %259 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %260 = load ptr, ptr %259, align 8, !tbaa !22
  %261 = load i64, ptr %32, align 8, !tbaa !9
  %262 = getelementptr inbounds double, ptr %260, i64 %261
  %263 = load double, ptr %262, align 8, !tbaa !23
  %264 = load ptr, ptr %14, align 8, !tbaa !5
  %265 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %264, i32 0, i32 12
  %266 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %265, i32 0, i32 6
  %267 = load ptr, ptr %266, align 8, !tbaa !22
  %268 = load i64, ptr %31, align 8, !tbaa !9
  %269 = getelementptr inbounds ptr, ptr %267, i64 %268
  %270 = load ptr, ptr %269, align 8, !tbaa !5
  %271 = load i64, ptr %32, align 8, !tbaa !9
  %272 = getelementptr inbounds double, ptr %270, i64 %271
  %273 = load double, ptr %272, align 8, !tbaa !23
  %274 = call double @llvm.fmuladd.f64(double %263, double %273, double %258)
  store double %274, ptr %42, align 8, !tbaa !23
  br label %275

275:                                              ; preds = %257
  %276 = load i64, ptr %32, align 8, !tbaa !9
  %277 = add nsw i64 %276, 1
  store i64 %277, ptr %32, align 8, !tbaa !9
  br label %252, !llvm.loop !24

278:                                              ; preds = %252
  %279 = load double, ptr %42, align 8, !tbaa !23
  %280 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %281 = load ptr, ptr %280, align 8, !tbaa !22
  %282 = load i64, ptr %31, align 8, !tbaa !9
  %283 = getelementptr inbounds double, ptr %281, i64 %282
  store double %279, ptr %283, align 8, !tbaa !23
  br label %284

284:                                              ; preds = %278
  %285 = load i64, ptr %31, align 8, !tbaa !9
  %286 = add nsw i64 %285, 1
  store i64 %286, ptr %31, align 8, !tbaa !9
  br label %236, !llvm.loop !26

287:                                              ; preds = %236
  store i64 0, ptr %30, align 8, !tbaa !9
  br label %288

288:                                              ; preds = %373, %287
  %289 = load i64, ptr %30, align 8, !tbaa !9
  %290 = load i64, ptr %16, align 8, !tbaa !9
  %291 = sub nsw i64 %290, 1
  %292 = icmp sle i64 %289, %291
  br i1 %292, label %293, label %376

293:                                              ; preds = %288
  %294 = load i64, ptr %29, align 8, !tbaa !9
  %295 = load i64, ptr %40, align 8, !tbaa !9
  %296 = load i64, ptr %16, align 8, !tbaa !9
  %297 = mul nsw i64 %295, %296
  %298 = load i64, ptr %30, align 8, !tbaa !9
  %299 = add nsw i64 %297, %298
  %300 = mul nsw i64 %294, %299
  store i64 %300, ptr %36, align 8, !tbaa !9
  %301 = load i8, ptr %24, align 1, !tbaa !11, !range !27, !noundef !28
  %302 = trunc i8 %301 to i1
  br i1 %302, label %303, label %333

303:                                              ; preds = %293
  %304 = load ptr, ptr %23, align 8, !tbaa !5
  %305 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %304, i32 0, i32 4
  %306 = load ptr, ptr %305, align 8, !tbaa !22
  %307 = load i64, ptr %40, align 8, !tbaa !9
  %308 = load i64, ptr %16, align 8, !tbaa !9
  %309 = mul nsw i64 %307, %308
  %310 = load i64, ptr %30, align 8, !tbaa !9
  %311 = add nsw i64 %309, %310
  %312 = getelementptr inbounds i8, ptr %306, i64 %311
  %313 = load i8, ptr %312, align 1, !tbaa !11, !range !27, !noundef !28
  %314 = trunc i8 %313 to i1
  br i1 %314, label %333, label %315

315:                                              ; preds = %303
  store i64 0, ptr %31, align 8, !tbaa !9
  br label %316

316:                                              ; preds = %329, %315
  %317 = load i64, ptr %31, align 8, !tbaa !9
  %318 = load i64, ptr %29, align 8, !tbaa !9
  %319 = sub nsw i64 %318, 1
  %320 = icmp sle i64 %317, %319
  br i1 %320, label %321, label %332

321:                                              ; preds = %316
  %322 = load ptr, ptr %25, align 8, !tbaa !5
  %323 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %322, i32 0, i32 4
  %324 = load ptr, ptr %323, align 8, !tbaa !22
  %325 = load i64, ptr %31, align 8, !tbaa !9
  %326 = load i64, ptr %36, align 8, !tbaa !9
  %327 = add nsw i64 %325, %326
  %328 = getelementptr inbounds double, ptr %324, i64 %327
  store double 0.000000e+00, ptr %328, align 8, !tbaa !23
  br label %329

329:                                              ; preds = %321
  %330 = load i64, ptr %31, align 8, !tbaa !9
  %331 = add nsw i64 %330, 1
  store i64 %331, ptr %31, align 8, !tbaa !9
  br label %316, !llvm.loop !29

332:                                              ; preds = %316
  br label %373

333:                                              ; preds = %303, %293
  %334 = load ptr, ptr %15, align 8, !tbaa !5
  %335 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %334, i32 0, i32 4
  %336 = load ptr, ptr %335, align 8, !tbaa !22
  %337 = load i64, ptr %30, align 8, !tbaa !9
  %338 = getelementptr inbounds double, ptr %336, i64 %337
  %339 = load double, ptr %338, align 8, !tbaa !23
  store double %339, ptr %42, align 8, !tbaa !23
  store i64 0, ptr %31, align 8, !tbaa !9
  br label %340

340:                                              ; preds = %369, %333
  %341 = load i64, ptr %31, align 8, !tbaa !9
  %342 = load i64, ptr %29, align 8, !tbaa !9
  %343 = sub nsw i64 %342, 1
  %344 = icmp sle i64 %341, %343
  br i1 %344, label %345, label %372

345:                                              ; preds = %340
  %346 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %35, i32 0, i32 4
  %347 = load ptr, ptr %346, align 8, !tbaa !22
  %348 = load i64, ptr %31, align 8, !tbaa !9
  %349 = getelementptr inbounds double, ptr %347, i64 %348
  %350 = load double, ptr %349, align 8, !tbaa !23
  %351 = load double, ptr %42, align 8, !tbaa !23
  %352 = load ptr, ptr %14, align 8, !tbaa !5
  %353 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %352, i32 0, i32 12
  %354 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %353, i32 0, i32 6
  %355 = load ptr, ptr %354, align 8, !tbaa !22
  %356 = load i64, ptr %31, align 8, !tbaa !9
  %357 = getelementptr inbounds ptr, ptr %355, i64 %356
  %358 = load ptr, ptr %357, align 8, !tbaa !5
  %359 = getelementptr inbounds double, ptr %358, i64 0
  %360 = load double, ptr %359, align 8, !tbaa !23
  %361 = call double @llvm.fmuladd.f64(double %351, double %360, double %350)
  %362 = load ptr, ptr %25, align 8, !tbaa !5
  %363 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %362, i32 0, i32 4
  %364 = load ptr, ptr %363, align 8, !tbaa !22
  %365 = load i64, ptr %31, align 8, !tbaa !9
  %366 = load i64, ptr %36, align 8, !tbaa !9
  %367 = add nsw i64 %365, %366
  %368 = getelementptr inbounds double, ptr %364, i64 %367
  store double %361, ptr %368, align 8, !tbaa !23
  br label %369

369:                                              ; preds = %345
  %370 = load i64, ptr %31, align 8, !tbaa !9
  %371 = add nsw i64 %370, 1
  store i64 %371, ptr %31, align 8, !tbaa !9
  br label %340, !llvm.loop !30

372:                                              ; preds = %340
  br label %373

373:                                              ; preds = %372, %332
  %374 = load i64, ptr %30, align 8, !tbaa !9
  %375 = add nsw i64 %374, 1
  store i64 %375, ptr %30, align 8, !tbaa !9
  br label %288, !llvm.loop !31

376:                                              ; preds = %288
  br label %377

377:                                              ; preds = %376
  %378 = load i64, ptr %40, align 8, !tbaa !9
  %379 = add nsw i64 %378, 1
  store i64 %379, ptr %40, align 8, !tbaa !9
  br label %181, !llvm.loop !32

380:                                              ; preds = %181
  %381 = load ptr, ptr %14, align 8, !tbaa !5
  %382 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %381, i32 0, i32 3
  %383 = load i64, ptr %382, align 8, !tbaa !33
  %384 = icmp eq i64 %383, 0
  br i1 %384, label %385, label %387

385:                                              ; preds = %380
  %386 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %386)
  store i32 1, ptr %62, align 4
  br label %811

387:                                              ; preds = %380
  store i64 0, ptr %44, align 8, !tbaa !9
  br label %388

388:                                              ; preds = %806, %387
  %389 = load i64, ptr %44, align 8, !tbaa !9
  %390 = load ptr, ptr %14, align 8, !tbaa !5
  %391 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %390, i32 0, i32 3
  %392 = load i64, ptr %391, align 8, !tbaa !33
  %393 = sub nsw i64 %392, 1
  %394 = icmp sle i64 %389, %393
  br i1 %394, label %395, label %809

395:                                              ; preds = %388
  %396 = load ptr, ptr %14, align 8, !tbaa !5
  %397 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %396, i32 0, i32 4
  %398 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %397, i32 0, i32 4
  %399 = load ptr, ptr %398, align 8, !tbaa !22
  %400 = load i64, ptr %44, align 8, !tbaa !9
  %401 = getelementptr inbounds double, ptr %399, i64 %400
  %402 = load double, ptr %401, align 8, !tbaa !23
  store double %402, ptr %43, align 8, !tbaa !23
  store double 1.000000e+00, ptr %57, align 8, !tbaa !23
  store double 1.000000e+00, ptr %58, align 8, !tbaa !23
  store double 1.000000e+00, ptr %59, align 8, !tbaa !23
  store double 1.000000e+00, ptr %60, align 8, !tbaa !23
  %403 = load i64, ptr %28, align 8, !tbaa !9
  %404 = icmp sge i64 %403, 1
  br i1 %404, label %405, label %414

405:                                              ; preds = %395
  %406 = load double, ptr %43, align 8, !tbaa !23
  %407 = load ptr, ptr %14, align 8, !tbaa !5
  %408 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %407, i32 0, i32 5
  %409 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %408, i32 0, i32 4
  %410 = load ptr, ptr %409, align 8, !tbaa !22
  %411 = getelementptr inbounds double, ptr %410, i64 0
  %412 = load double, ptr %411, align 8, !tbaa !23
  %413 = fmul double %406, %412
  store double %413, ptr %57, align 8, !tbaa !23
  br label %414

414:                                              ; preds = %405, %395
  %415 = load i64, ptr %28, align 8, !tbaa !9
  %416 = icmp sge i64 %415, 2
  br i1 %416, label %417, label %426

417:                                              ; preds = %414
  %418 = load double, ptr %43, align 8, !tbaa !23
  %419 = load ptr, ptr %14, align 8, !tbaa !5
  %420 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %419, i32 0, i32 5
  %421 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %420, i32 0, i32 4
  %422 = load ptr, ptr %421, align 8, !tbaa !22
  %423 = getelementptr inbounds double, ptr %422, i64 1
  %424 = load double, ptr %423, align 8, !tbaa !23
  %425 = fmul double %418, %424
  store double %425, ptr %58, align 8, !tbaa !23
  br label %426

426:                                              ; preds = %417, %414
  %427 = load i64, ptr %28, align 8, !tbaa !9
  %428 = icmp sge i64 %427, 3
  br i1 %428, label %429, label %438

429:                                              ; preds = %426
  %430 = load double, ptr %43, align 8, !tbaa !23
  %431 = load ptr, ptr %14, align 8, !tbaa !5
  %432 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %431, i32 0, i32 5
  %433 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %432, i32 0, i32 4
  %434 = load ptr, ptr %433, align 8, !tbaa !22
  %435 = getelementptr inbounds double, ptr %434, i64 2
  %436 = load double, ptr %435, align 8, !tbaa !23
  %437 = fmul double %430, %436
  store double %437, ptr %59, align 8, !tbaa !23
  br label %438

438:                                              ; preds = %429, %426
  %439 = load i64, ptr %28, align 8, !tbaa !9
  %440 = icmp sge i64 %439, 4
  br i1 %440, label %441, label %450

441:                                              ; preds = %438
  %442 = load double, ptr %43, align 8, !tbaa !23
  %443 = load ptr, ptr %14, align 8, !tbaa !5
  %444 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %443, i32 0, i32 5
  %445 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %444, i32 0, i32 4
  %446 = load ptr, ptr %445, align 8, !tbaa !22
  %447 = getelementptr inbounds double, ptr %446, i64 3
  %448 = load double, ptr %447, align 8, !tbaa !23
  %449 = fmul double %442, %448
  store double %449, ptr %60, align 8, !tbaa !23
  br label %450

450:                                              ; preds = %441, %438
  store i64 8, ptr %61, align 8, !tbaa !9
  %451 = load i64, ptr %16, align 8, !tbaa !9
  %452 = add nsw i64 %451, 1
  %453 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %49, i64 noundef %452, ptr noundef %453)
  store i64 0, ptr %53, align 8, !tbaa !9
  %454 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %49, i32 0, i32 4
  %455 = load ptr, ptr %454, align 8, !tbaa !22
  %456 = getelementptr inbounds i64, ptr %455, i64 0
  store i64 0, ptr %456, align 8, !tbaa !9
  store i64 1, ptr %30, align 8, !tbaa !9
  br label %457

457:                                              ; preds = %500, %450
  %458 = load i64, ptr %30, align 8, !tbaa !9
  %459 = load i64, ptr %16, align 8, !tbaa !9
  %460 = sub nsw i64 %459, 1
  %461 = icmp sle i64 %458, %460
  br i1 %461, label %462, label %503

462:                                              ; preds = %457
  %463 = load ptr, ptr %15, align 8, !tbaa !5
  %464 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %463, i32 0, i32 4
  %465 = load ptr, ptr %464, align 8, !tbaa !22
  %466 = load i64, ptr %30, align 8, !tbaa !9
  %467 = getelementptr inbounds double, ptr %465, i64 %466
  %468 = load double, ptr %467, align 8, !tbaa !23
  %469 = load ptr, ptr %15, align 8, !tbaa !5
  %470 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %469, i32 0, i32 4
  %471 = load ptr, ptr %470, align 8, !tbaa !22
  %472 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %49, i32 0, i32 4
  %473 = load ptr, ptr %472, align 8, !tbaa !22
  %474 = load i64, ptr %53, align 8, !tbaa !9
  %475 = getelementptr inbounds i64, ptr %473, i64 %474
  %476 = load i64, ptr %475, align 8, !tbaa !9
  %477 = getelementptr inbounds double, ptr %471, i64 %476
  %478 = load double, ptr %477, align 8, !tbaa !23
  %479 = fsub double %468, %478
  %480 = load double, ptr %57, align 8, !tbaa !23
  %481 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %479, double noundef %480)
  br i1 %481, label %492, label %482

482:                                              ; preds = %462
  %483 = load i64, ptr %30, align 8, !tbaa !9
  %484 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %49, i32 0, i32 4
  %485 = load ptr, ptr %484, align 8, !tbaa !22
  %486 = load i64, ptr %53, align 8, !tbaa !9
  %487 = getelementptr inbounds i64, ptr %485, i64 %486
  %488 = load i64, ptr %487, align 8, !tbaa !9
  %489 = sub nsw i64 %483, %488
  %490 = load i64, ptr %61, align 8, !tbaa !9
  %491 = icmp sge i64 %489, %490
  br i1 %491, label %492, label %499

492:                                              ; preds = %482, %462
  %493 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %53, ptr noundef %493)
  %494 = load i64, ptr %30, align 8, !tbaa !9
  %495 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %49, i32 0, i32 4
  %496 = load ptr, ptr %495, align 8, !tbaa !22
  %497 = load i64, ptr %53, align 8, !tbaa !9
  %498 = getelementptr inbounds i64, ptr %496, i64 %497
  store i64 %494, ptr %498, align 8, !tbaa !9
  br label %499

499:                                              ; preds = %492, %482
  br label %500

500:                                              ; preds = %499
  %501 = load i64, ptr %30, align 8, !tbaa !9
  %502 = add nsw i64 %501, 1
  store i64 %502, ptr %30, align 8, !tbaa !9
  br label %457, !llvm.loop !34

503:                                              ; preds = %457
  %504 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %53, ptr noundef %504)
  %505 = load i64, ptr %16, align 8, !tbaa !9
  %506 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %49, i32 0, i32 4
  %507 = load ptr, ptr %506, align 8, !tbaa !22
  %508 = load i64, ptr %53, align 8, !tbaa !9
  %509 = getelementptr inbounds i64, ptr %507, i64 %508
  store i64 %505, ptr %509, align 8, !tbaa !9
  %510 = load i64, ptr %18, align 8, !tbaa !9
  %511 = add nsw i64 %510, 1
  %512 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %50, i64 noundef %511, ptr noundef %512)
  store i64 0, ptr %54, align 8, !tbaa !9
  %513 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %50, i32 0, i32 4
  %514 = load ptr, ptr %513, align 8, !tbaa !22
  %515 = getelementptr inbounds i64, ptr %514, i64 0
  store i64 0, ptr %515, align 8, !tbaa !9
  store i64 1, ptr %30, align 8, !tbaa !9
  br label %516

516:                                              ; preds = %559, %503
  %517 = load i64, ptr %30, align 8, !tbaa !9
  %518 = load i64, ptr %18, align 8, !tbaa !9
  %519 = sub nsw i64 %518, 1
  %520 = icmp sle i64 %517, %519
  br i1 %520, label %521, label %562

521:                                              ; preds = %516
  %522 = load ptr, ptr %17, align 8, !tbaa !5
  %523 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %522, i32 0, i32 4
  %524 = load ptr, ptr %523, align 8, !tbaa !22
  %525 = load i64, ptr %30, align 8, !tbaa !9
  %526 = getelementptr inbounds double, ptr %524, i64 %525
  %527 = load double, ptr %526, align 8, !tbaa !23
  %528 = load ptr, ptr %17, align 8, !tbaa !5
  %529 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %528, i32 0, i32 4
  %530 = load ptr, ptr %529, align 8, !tbaa !22
  %531 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %50, i32 0, i32 4
  %532 = load ptr, ptr %531, align 8, !tbaa !22
  %533 = load i64, ptr %54, align 8, !tbaa !9
  %534 = getelementptr inbounds i64, ptr %532, i64 %533
  %535 = load i64, ptr %534, align 8, !tbaa !9
  %536 = getelementptr inbounds double, ptr %530, i64 %535
  %537 = load double, ptr %536, align 8, !tbaa !23
  %538 = fsub double %527, %537
  %539 = load double, ptr %58, align 8, !tbaa !23
  %540 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %538, double noundef %539)
  br i1 %540, label %551, label %541

541:                                              ; preds = %521
  %542 = load i64, ptr %30, align 8, !tbaa !9
  %543 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %50, i32 0, i32 4
  %544 = load ptr, ptr %543, align 8, !tbaa !22
  %545 = load i64, ptr %54, align 8, !tbaa !9
  %546 = getelementptr inbounds i64, ptr %544, i64 %545
  %547 = load i64, ptr %546, align 8, !tbaa !9
  %548 = sub nsw i64 %542, %547
  %549 = load i64, ptr %61, align 8, !tbaa !9
  %550 = icmp sge i64 %548, %549
  br i1 %550, label %551, label %558

551:                                              ; preds = %541, %521
  %552 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %54, ptr noundef %552)
  %553 = load i64, ptr %30, align 8, !tbaa !9
  %554 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %50, i32 0, i32 4
  %555 = load ptr, ptr %554, align 8, !tbaa !22
  %556 = load i64, ptr %54, align 8, !tbaa !9
  %557 = getelementptr inbounds i64, ptr %555, i64 %556
  store i64 %553, ptr %557, align 8, !tbaa !9
  br label %558

558:                                              ; preds = %551, %541
  br label %559

559:                                              ; preds = %558
  %560 = load i64, ptr %30, align 8, !tbaa !9
  %561 = add nsw i64 %560, 1
  store i64 %561, ptr %30, align 8, !tbaa !9
  br label %516, !llvm.loop !35

562:                                              ; preds = %516
  %563 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %54, ptr noundef %563)
  %564 = load i64, ptr %18, align 8, !tbaa !9
  %565 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %50, i32 0, i32 4
  %566 = load ptr, ptr %565, align 8, !tbaa !22
  %567 = load i64, ptr %54, align 8, !tbaa !9
  %568 = getelementptr inbounds i64, ptr %566, i64 %567
  store i64 %564, ptr %568, align 8, !tbaa !9
  %569 = load i64, ptr %20, align 8, !tbaa !9
  %570 = add nsw i64 %569, 1
  %571 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %51, i64 noundef %570, ptr noundef %571)
  store i64 0, ptr %55, align 8, !tbaa !9
  %572 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %51, i32 0, i32 4
  %573 = load ptr, ptr %572, align 8, !tbaa !22
  %574 = getelementptr inbounds i64, ptr %573, i64 0
  store i64 0, ptr %574, align 8, !tbaa !9
  store i64 1, ptr %30, align 8, !tbaa !9
  br label %575

575:                                              ; preds = %618, %562
  %576 = load i64, ptr %30, align 8, !tbaa !9
  %577 = load i64, ptr %20, align 8, !tbaa !9
  %578 = sub nsw i64 %577, 1
  %579 = icmp sle i64 %576, %578
  br i1 %579, label %580, label %621

580:                                              ; preds = %575
  %581 = load ptr, ptr %19, align 8, !tbaa !5
  %582 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %581, i32 0, i32 4
  %583 = load ptr, ptr %582, align 8, !tbaa !22
  %584 = load i64, ptr %30, align 8, !tbaa !9
  %585 = getelementptr inbounds double, ptr %583, i64 %584
  %586 = load double, ptr %585, align 8, !tbaa !23
  %587 = load ptr, ptr %19, align 8, !tbaa !5
  %588 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %587, i32 0, i32 4
  %589 = load ptr, ptr %588, align 8, !tbaa !22
  %590 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %51, i32 0, i32 4
  %591 = load ptr, ptr %590, align 8, !tbaa !22
  %592 = load i64, ptr %55, align 8, !tbaa !9
  %593 = getelementptr inbounds i64, ptr %591, i64 %592
  %594 = load i64, ptr %593, align 8, !tbaa !9
  %595 = getelementptr inbounds double, ptr %589, i64 %594
  %596 = load double, ptr %595, align 8, !tbaa !23
  %597 = fsub double %586, %596
  %598 = load double, ptr %59, align 8, !tbaa !23
  %599 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %597, double noundef %598)
  br i1 %599, label %610, label %600

600:                                              ; preds = %580
  %601 = load i64, ptr %30, align 8, !tbaa !9
  %602 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %51, i32 0, i32 4
  %603 = load ptr, ptr %602, align 8, !tbaa !22
  %604 = load i64, ptr %55, align 8, !tbaa !9
  %605 = getelementptr inbounds i64, ptr %603, i64 %604
  %606 = load i64, ptr %605, align 8, !tbaa !9
  %607 = sub nsw i64 %601, %606
  %608 = load i64, ptr %61, align 8, !tbaa !9
  %609 = icmp sge i64 %607, %608
  br i1 %609, label %610, label %617

610:                                              ; preds = %600, %580
  %611 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %55, ptr noundef %611)
  %612 = load i64, ptr %30, align 8, !tbaa !9
  %613 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %51, i32 0, i32 4
  %614 = load ptr, ptr %613, align 8, !tbaa !22
  %615 = load i64, ptr %55, align 8, !tbaa !9
  %616 = getelementptr inbounds i64, ptr %614, i64 %615
  store i64 %612, ptr %616, align 8, !tbaa !9
  br label %617

617:                                              ; preds = %610, %600
  br label %618

618:                                              ; preds = %617
  %619 = load i64, ptr %30, align 8, !tbaa !9
  %620 = add nsw i64 %619, 1
  store i64 %620, ptr %30, align 8, !tbaa !9
  br label %575, !llvm.loop !36

621:                                              ; preds = %575
  %622 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %55, ptr noundef %622)
  %623 = load i64, ptr %20, align 8, !tbaa !9
  %624 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %51, i32 0, i32 4
  %625 = load ptr, ptr %624, align 8, !tbaa !22
  %626 = load i64, ptr %55, align 8, !tbaa !9
  %627 = getelementptr inbounds i64, ptr %625, i64 %626
  store i64 %623, ptr %627, align 8, !tbaa !9
  %628 = load i64, ptr %22, align 8, !tbaa !9
  %629 = add nsw i64 %628, 1
  %630 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %52, i64 noundef %629, ptr noundef %630)
  store i64 0, ptr %56, align 8, !tbaa !9
  %631 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %52, i32 0, i32 4
  %632 = load ptr, ptr %631, align 8, !tbaa !22
  %633 = getelementptr inbounds i64, ptr %632, i64 0
  store i64 0, ptr %633, align 8, !tbaa !9
  store i64 1, ptr %30, align 8, !tbaa !9
  br label %634

634:                                              ; preds = %677, %621
  %635 = load i64, ptr %30, align 8, !tbaa !9
  %636 = load i64, ptr %22, align 8, !tbaa !9
  %637 = sub nsw i64 %636, 1
  %638 = icmp sle i64 %635, %637
  br i1 %638, label %639, label %680

639:                                              ; preds = %634
  %640 = load ptr, ptr %21, align 8, !tbaa !5
  %641 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %640, i32 0, i32 4
  %642 = load ptr, ptr %641, align 8, !tbaa !22
  %643 = load i64, ptr %30, align 8, !tbaa !9
  %644 = getelementptr inbounds double, ptr %642, i64 %643
  %645 = load double, ptr %644, align 8, !tbaa !23
  %646 = load ptr, ptr %21, align 8, !tbaa !5
  %647 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %646, i32 0, i32 4
  %648 = load ptr, ptr %647, align 8, !tbaa !22
  %649 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %52, i32 0, i32 4
  %650 = load ptr, ptr %649, align 8, !tbaa !22
  %651 = load i64, ptr %56, align 8, !tbaa !9
  %652 = getelementptr inbounds i64, ptr %650, i64 %651
  %653 = load i64, ptr %652, align 8, !tbaa !9
  %654 = getelementptr inbounds double, ptr %648, i64 %653
  %655 = load double, ptr %654, align 8, !tbaa !23
  %656 = fsub double %645, %655
  %657 = load double, ptr %60, align 8, !tbaa !23
  %658 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %656, double noundef %657)
  br i1 %658, label %669, label %659

659:                                              ; preds = %639
  %660 = load i64, ptr %30, align 8, !tbaa !9
  %661 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %52, i32 0, i32 4
  %662 = load ptr, ptr %661, align 8, !tbaa !22
  %663 = load i64, ptr %56, align 8, !tbaa !9
  %664 = getelementptr inbounds i64, ptr %662, i64 %663
  %665 = load i64, ptr %664, align 8, !tbaa !9
  %666 = sub nsw i64 %660, %665
  %667 = load i64, ptr %61, align 8, !tbaa !9
  %668 = icmp sge i64 %666, %667
  br i1 %668, label %669, label %676

669:                                              ; preds = %659, %639
  %670 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %56, ptr noundef %670)
  %671 = load i64, ptr %30, align 8, !tbaa !9
  %672 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %52, i32 0, i32 4
  %673 = load ptr, ptr %672, align 8, !tbaa !22
  %674 = load i64, ptr %56, align 8, !tbaa !9
  %675 = getelementptr inbounds i64, ptr %673, i64 %674
  store i64 %671, ptr %675, align 8, !tbaa !9
  br label %676

676:                                              ; preds = %669, %659
  br label %677

677:                                              ; preds = %676
  %678 = load i64, ptr %30, align 8, !tbaa !9
  %679 = add nsw i64 %678, 1
  store i64 %679, ptr %30, align 8, !tbaa !9
  br label %634, !llvm.loop !37

680:                                              ; preds = %634
  %681 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef %56, ptr noundef %681)
  %682 = load i64, ptr %22, align 8, !tbaa !9
  %683 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %52, i32 0, i32 4
  %684 = load ptr, ptr %683, align 8, !tbaa !22
  %685 = load i64, ptr %56, align 8, !tbaa !9
  %686 = getelementptr inbounds i64, ptr %684, i64 %685
  store i64 %682, ptr %686, align 8, !tbaa !9
  %687 = load ptr, ptr %14, align 8, !tbaa !5
  %688 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %38, i32 0, i32 0
  %689 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_implL24rbfv2_allocatecalcbufferEPNS_10rbfv2modelEPNS_15rbfv2calcbufferEPNS_8ae_stateE(ptr noundef %687, ptr noundef %688, ptr noundef %689)
  %690 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl23ae_shared_pool_set_seedEPNS_14ae_shared_poolEPvlPFvS2_PNS_8ae_stateEbEPFvS2_S2_S4_bEPFvS2_ES4_(ptr noundef %39, ptr noundef %38, i64 noundef 712, ptr noundef @_ZN11alglib_impl25_rbfv2gridcalcbuffer_initEPvPNS_8ae_stateEb, ptr noundef @_ZN11alglib_impl30_rbfv2gridcalcbuffer_init_copyEPvS0_PNS_8ae_stateEb, ptr noundef @_ZN11alglib_impl28_rbfv2gridcalcbuffer_destroyEPv, ptr noundef %690)
  %691 = load double, ptr %43, align 8, !tbaa !23
  %692 = load ptr, ptr %14, align 8, !tbaa !5
  %693 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %692, i32 0, i32 2
  %694 = load i64, ptr %693, align 8, !tbaa !38
  %695 = load ptr, ptr %26, align 8, !tbaa !5
  %696 = call noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef %694, ptr noundef %695)
  %697 = fmul double %691, %696
  %698 = load ptr, ptr %26, align 8, !tbaa !5
  %699 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %697, ptr noundef %698)
  store double %699, ptr %45, align 8, !tbaa !23
  store i64 100, ptr %46, align 8, !tbaa !9
  store double 0.000000e+00, ptr %47, align 8, !tbaa !23
  store i64 0, ptr %30, align 8, !tbaa !9
  br label %700

700:                                              ; preds = %782, %680
  %701 = load i64, ptr %30, align 8, !tbaa !9
  %702 = load i64, ptr %46, align 8, !tbaa !9
  %703 = sub nsw i64 %702, 1
  %704 = icmp sle i64 %701, %703
  br i1 %704, label %705, label %785

705:                                              ; preds = %700
  %706 = load ptr, ptr %15, 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 %16, align 8, !tbaa !9
  %710 = load ptr, ptr %26, align 8, !tbaa !5
  %711 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %48, i64 noundef %709, ptr noundef %710)
  %712 = getelementptr inbounds double, ptr %708, i64 %711
  %713 = load double, ptr %712, align 8, !tbaa !23
  %714 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %715 = load ptr, ptr %714, align 8, !tbaa !22
  %716 = getelementptr inbounds double, ptr %715, i64 0
  store double %713, ptr %716, align 8, !tbaa !23
  %717 = load ptr, ptr %17, align 8, !tbaa !5
  %718 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %717, i32 0, i32 4
  %719 = load ptr, ptr %718, align 8, !tbaa !22
  %720 = load i64, ptr %18, align 8, !tbaa !9
  %721 = load ptr, ptr %26, align 8, !tbaa !5
  %722 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %48, i64 noundef %720, ptr noundef %721)
  %723 = getelementptr inbounds double, ptr %719, i64 %722
  %724 = load double, ptr %723, align 8, !tbaa !23
  %725 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %726 = load ptr, ptr %725, align 8, !tbaa !22
  %727 = getelementptr inbounds double, ptr %726, i64 1
  store double %724, ptr %727, align 8, !tbaa !23
  %728 = load ptr, ptr %19, align 8, !tbaa !5
  %729 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %728, i32 0, i32 4
  %730 = load ptr, ptr %729, align 8, !tbaa !22
  %731 = load i64, ptr %20, align 8, !tbaa !9
  %732 = load ptr, ptr %26, align 8, !tbaa !5
  %733 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %48, i64 noundef %731, ptr noundef %732)
  %734 = getelementptr inbounds double, ptr %730, i64 %733
  %735 = load double, ptr %734, align 8, !tbaa !23
  %736 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %737 = load ptr, ptr %736, align 8, !tbaa !22
  %738 = getelementptr inbounds double, ptr %737, i64 2
  store double %735, ptr %738, align 8, !tbaa !23
  %739 = load ptr, ptr %21, align 8, !tbaa !5
  %740 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %739, i32 0, i32 4
  %741 = load ptr, ptr %740, align 8, !tbaa !22
  %742 = load i64, ptr %22, align 8, !tbaa !9
  %743 = load ptr, ptr %26, align 8, !tbaa !5
  %744 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef %48, i64 noundef %742, ptr noundef %743)
  %745 = getelementptr inbounds double, ptr %741, i64 %744
  %746 = load double, ptr %745, align 8, !tbaa !23
  %747 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %33, i32 0, i32 4
  %748 = load ptr, ptr %747, align 8, !tbaa !22
  %749 = getelementptr inbounds double, ptr %748, i64 3
  store double %746, ptr %749, align 8, !tbaa !23
  %750 = load ptr, ptr %14, align 8, !tbaa !5
  %751 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %750, i32 0, i32 9
  %752 = load ptr, ptr %14, align 8, !tbaa !5
  %753 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %752, i32 0, i32 10
  %754 = load i64, ptr %28, align 8, !tbaa !9
  %755 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %38, i32 0, i32 0
  %756 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_implL25rbfv2_preparepartialqueryEPNS_9ae_vectorES1_S1_lPNS_15rbfv2calcbufferEPlPNS_8ae_stateE(ptr noundef %33, ptr noundef %751, ptr noundef %753, i64 noundef %754, ptr noundef %755, ptr noundef %37, ptr noundef %756)
  %757 = load double, ptr %47, align 8, !tbaa !23
  %758 = load ptr, ptr %14, align 8, !tbaa !5
  %759 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %758, i32 0, i32 7
  %760 = load ptr, ptr %14, align 8, !tbaa !5
  %761 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %760, i32 0, i32 8
  %762 = load ptr, ptr %14, align 8, !tbaa !5
  %763 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %762, i32 0, i32 11
  %764 = load i64, ptr %28, align 8, !tbaa !9
  %765 = load i64, ptr %29, align 8, !tbaa !9
  %766 = getelementptr inbounds %"struct.alglib_impl::rbfv2gridcalcbuffer", ptr %38, i32 0, i32 0
  %767 = load ptr, ptr %14, align 8, !tbaa !5
  %768 = getelementptr inbounds %"struct.alglib_impl::rbfv2model", ptr %767, i32 0, i32 6
  %769 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %768, i32 0, i32 4
  %770 = load ptr, ptr %769, align 8, !tbaa !22
  %771 = load i64, ptr %44, align 8, !tbaa !9
  %772 = getelementptr inbounds i64, ptr %770, i64 %771
  %773 = load i64, ptr %772, align 8, !tbaa !9
  %774 = load double, ptr %45, align 8, !tbaa !23
  %775 = load ptr, ptr %26, align 8, !tbaa !5
  %776 = call noundef i64 @_ZN11alglib_implL21rbfv2_partialcountrecEPNS_9ae_vectorES1_S1_llPNS_15rbfv2calcbufferEldS1_PNS_8ae_stateE(ptr noundef %759, ptr noundef %761, ptr noundef %763, i64 noundef %764, i64 noundef %765, ptr noundef %766, i64 noundef %773, double noundef %774, ptr noundef %33, ptr noundef %775)
  %777 = sitofp i64 %776 to double
  %778 = load i64, ptr %46, align 8, !tbaa !9
  %779 = sitofp i64 %778 to double
  %780 = fdiv double %777, %779
  %781 = fadd double %757, %780
  store double %781, ptr %47, align 8, !tbaa !23
  br label %782

782:                                              ; preds = %705
  %783 = load i64, ptr %30, align 8, !tbaa !9
  %784 = add nsw i64 %783, 1
  store i64 %784, ptr %30, align 8, !tbaa !9
  br label %700, !llvm.loop !39

785:                                              ; preds = %700
  %786 = load ptr, ptr %14, align 8, !tbaa !5
  %787 = load ptr, ptr %15, align 8, !tbaa !5
  %788 = load i64, ptr %16, align 8, !tbaa !9
  %789 = load ptr, ptr %17, align 8, !tbaa !5
  %790 = load i64, ptr %18, align 8, !tbaa !9
  %791 = load ptr, ptr %19, align 8, !tbaa !5
  %792 = load i64, ptr %20, align 8, !tbaa !9
  %793 = load ptr, ptr %21, align 8, !tbaa !5
  %794 = load i64, ptr %22, align 8, !tbaa !9
  %795 = load i64, ptr %53, align 8, !tbaa !9
  %796 = load i64, ptr %54, align 8, !tbaa !9
  %797 = load i64, ptr %55, align 8, !tbaa !9
  %798 = load i64, ptr %56, align 8, !tbaa !9
  %799 = load ptr, ptr %23, align 8, !tbaa !5
  %800 = load i8, ptr %24, align 1, !tbaa !11, !range !27, !noundef !28
  %801 = trunc i8 %800 to i1
  %802 = load i64, ptr %44, align 8, !tbaa !9
  %803 = load double, ptr %47, align 8, !tbaa !23
  %804 = load ptr, ptr %25, align 8, !tbaa !5
  %805 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPNS_10rbfv2modelEPNS_9ae_vectorElS3_lS3_lS3_lS3_llS3_llS3_llS3_llS3_bldPNS_14ae_shared_poolES3_PNS_8ae_stateE(ptr noundef %786, ptr noundef %787, i64 noundef %788, ptr noundef %789, i64 noundef %790, ptr noundef %791, i64 noundef %792, ptr noundef %793, i64 noundef %794, ptr noundef %49, i64 noundef 0, i64 noundef %795, ptr noundef %50, i64 noundef 0, i64 noundef %796, ptr noundef %51, i64 noundef 0, i64 noundef %797, ptr noundef %52, i64 noundef 0, i64 noundef %798, ptr noundef %799, i1 noundef zeroext %801, i64 noundef %802, double noundef %803, ptr noundef %39, ptr noundef %804, ptr noundef %805)
  br label %806

806:                                              ; preds = %785
  %807 = load i64, ptr %44, align 8, !tbaa !9
  %808 = add nsw i64 %807, 1
  store i64 %808, ptr %44, align 8, !tbaa !9
  br label %388, !llvm.loop !40

809:                                              ; preds = %388
  %810 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %810)
  store i32 0, ptr %62, align 4
  br label %811

811:                                              ; preds = %809, %385
  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 8, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 144, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 712, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  %812 = load i32, ptr %62, align 4
  switch i32 %812, label %814 [
    i32 0, label %813
    i32 1, label %813
  ]

813:                                              ; preds = %811, %811
  ret void

814:                                              ; preds = %811
  unreachable
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl28_rbfv2gridcalcbuffer_destroyEPv(ptr noundef) #4

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

; Function Attrs: mustprogress uwtable
declare hidden noundef i64 @_ZN11alglib_implL21rbfv2_partialcountrecEPNS_9ae_vectorES1_S1_llPNS_15rbfv2calcbufferEldS1_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, double noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPNS_10rbfv2modelEPNS_9ae_vectorElS3_lS3_lS3_lS3_llS3_llS3_llS3_llS3_bldPNS_14ae_shared_poolES3_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

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 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 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 #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, !10, i64 8}
!14 = !{!"_ZTSN11alglib_impl10rbfv2modelE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !15, i64 32, !15, i64 96, !15, i64 160, !15, i64 224, !15, i64 288, !15, i64 352, !15, i64 416, !15, i64 480, !17, i64 544, !18, i64 624, !10, i64 632, !18, i64 640, !10, i64 648, !19, i64 656}
!15 = !{!"_ZTSN11alglib_impl9ae_vectorE", !10, i64 0, !10, i64 8, !12, i64 16, !16, i64 24, !7, i64 56}
!16 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !12, i64 32, !16, i64 40, !7, i64 72}
!18 = !{!"double", !7, i64 0}
!19 = !{!"_ZTSN11alglib_impl15rbfv2calcbufferE", !15, i64 0, !15, i64 64, !15, i64 128, !18, i64 192, !15, i64 200, !15, i64 264}
!20 = !{!14, !10, i64 0}
!21 = !{!15, !10, i64 0}
!22 = !{!7, !7, i64 0}
!23 = !{!18, !18, i64 0}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = distinct !{!26, !25}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = distinct !{!29, !25}
!30 = distinct !{!30, !25}
!31 = distinct !{!31, !25}
!32 = distinct !{!32, !25}
!33 = !{!14, !10, i64 24}
!34 = distinct !{!34, !25}
!35 = distinct !{!35, !25}
!36 = distinct !{!36, !25}
!37 = distinct !{!37, !25}
!38 = !{!14, !10, i64 16}
!39 = distinct !{!39, !25}
!40 = distinct !{!40, !25}


; 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_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"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" }
%"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::ae_shared_pool" = type { %"struct.alglib_impl::ae_lock", ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }

@.str.688 = external hidden unnamed_addr constant [38 x i8], align 1

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

; Function Attrs: mustprogress nocallback nofree 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

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double 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

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

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

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

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) 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 void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL24rbfv2_allocatecalcbufferEPNS_10rbfv2modelEPNS_15rbfv2calcbufferEPNS_8ae_stateE(ptr noundef, ptr 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 #5

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl15rbfv2gridcalcvxEPNS_10rbfv2modelEPNS_9ae_vectorElS3_lS3_lS3_lS3_bS3_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, i1 noundef zeroext %10, ptr noundef %11, ptr noundef %12) local_unnamed_addr #4 {
  %14 = alloca %"struct.alglib_impl::ae_frame", align 8
  %15 = alloca %"struct.alglib_impl::ae_vector", align 8
  %16 = alloca %"struct.alglib_impl::ae_vector", align 8
  %17 = alloca %"struct.alglib_impl::ae_vector", align 8
  %18 = alloca i64, align 8
  %19 = alloca %"struct.alglib_impl::rbfv2gridcalcbuffer", align 8
  %20 = alloca %"struct.alglib_impl::ae_shared_pool", align 8
  %21 = alloca %"struct.alglib_impl::hqrndstate", align 8
  %22 = alloca %"struct.alglib_impl::ae_vector", align 8
  %23 = alloca %"struct.alglib_impl::ae_vector", align 8
  %24 = alloca %"struct.alglib_impl::ae_vector", align 8
  %25 = alloca %"struct.alglib_impl::ae_vector", align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 712, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %12, ptr noundef nonnull %14)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %15, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %16, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %17, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(712) %19, i8 0, i64 712, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(144) %20, i8 0, i64 144, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %22, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %23, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %24, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %25, i8 0, i64 64, i1 false)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %15, i64 noundef 0, i64 noundef 3, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %16, i64 noundef 0, i64 noundef 3, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %17, i64 noundef 0, i64 noundef 3, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl25_rbfv2gridcalcbuffer_initEPvPNS_8ae_stateEb(ptr noundef nonnull %19, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl19ae_shared_pool_initEPvPNS_8ae_stateEb(ptr noundef nonnull %20, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl16_hqrndstate_initEPvPNS_8ae_stateEb(ptr noundef nonnull %21, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %22, i64 noundef 0, i64 noundef 2, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %23, i64 noundef 0, i64 noundef 2, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %24, i64 noundef 0, i64 noundef 2, ptr noundef %12, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %25, i64 noundef 0, i64 noundef 2, ptr noundef %12, i1 noundef zeroext true)
  %30 = getelementptr inbounds i8, ptr %0, i64 8
  %31 = load i64, ptr %30, align 8, !tbaa !5
  %32 = load i64, ptr %0, align 8, !tbaa !17
  call void @_ZN11alglib_impl9hqrndseedEllPNS_10hqrndstateEPNS_8ae_stateE(i64 noundef 532, i64 noundef 54734, ptr noundef nonnull %21, ptr noundef %12)
  %33 = load i64, ptr %30, align 8, !tbaa !5
  %34 = and i64 %33, -2
  %spec.select = icmp eq i64 %34, 2
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %spec.select, ptr noundef nonnull @.str.688, ptr noundef %12)
  %35 = load i64, ptr %30, align 8, !tbaa !5
  %36 = icmp sgt i64 %35, 3
  br i1 %36, label %46, label %37

37:                                               ; preds = %13
  %38 = load i64, ptr %7, align 8, !tbaa !18
  %39 = icmp sgt i64 %38, 0
  br i1 %39, label %40, label %46

40:                                               ; preds = %37
  %41 = getelementptr inbounds i8, ptr %7, i64 56
  %42 = load ptr, ptr %41, align 8, !tbaa !19
  %43 = load double, ptr %42, align 8, !tbaa !20
  %44 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %43, double noundef 0.000000e+00)
  %45 = icmp eq i64 %8, 1
  %spec.select264 = and i1 %45, %44
  br label %46

46:                                               ; preds = %40, %37, %13
  %47 = phi i1 [ true, %13 ], [ false, %37 ], [ %spec.select264, %40 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %47, ptr noundef nonnull @.str.688, ptr noundef %12)
  %48 = load i64, ptr %30, align 8, !tbaa !5
  %49 = icmp sgt i64 %48, 2
  br i1 %49, label %59, label %50

50:                                               ; preds = %46
  %51 = load i64, ptr %5, align 8, !tbaa !18
  %52 = icmp sgt i64 %51, 0
  br i1 %52, label %53, label %59

53:                                               ; preds = %50
  %54 = getelementptr inbounds i8, ptr %5, i64 56
  %55 = load ptr, ptr %54, align 8, !tbaa !19
  %56 = load double, ptr %55, align 8, !tbaa !20
  %57 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %56, double noundef 0.000000e+00)
  %58 = icmp eq i64 %6, 1
  %spec.select265 = and i1 %58, %57
  br label %59

59:                                               ; preds = %53, %50, %46
  %60 = phi i1 [ true, %46 ], [ false, %50 ], [ %spec.select265, %53 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %60, ptr noundef nonnull @.str.688, ptr noundef %12)
  %61 = load i64, ptr %30, align 8, !tbaa !5
  %62 = icmp sgt i64 %61, 1
  br i1 %62, label %72, label %63

63:                                               ; preds = %59
  %64 = load i64, ptr %3, align 8, !tbaa !18
  %65 = icmp sgt i64 %64, 0
  br i1 %65, label %66, label %72

66:                                               ; preds = %63
  %67 = getelementptr inbounds i8, ptr %3, i64 56
  %68 = load ptr, ptr %67, align 8, !tbaa !19
  %69 = load double, ptr %68, align 8, !tbaa !20
  %70 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %69, double noundef 0.000000e+00)
  %71 = icmp eq i64 %4, 1
  %spec.select266 = and i1 %71, %70
  br label %72

72:                                               ; preds = %66, %63, %59
  %73 = phi i1 [ true, %59 ], [ false, %63 ], [ %spec.select266, %66 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %73, ptr noundef nonnull @.str.688, ptr noundef %12)
  %74 = load i64, ptr %30, align 8, !tbaa !5
  %75 = icmp slt i64 %74, 5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %75, ptr noundef nonnull @.str.688, ptr noundef %12)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %17, i64 noundef %32, ptr noundef %12)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %15, i64 noundef 4, ptr noundef %12)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %16, i64 noundef %32, ptr noundef %12)
  %76 = mul nsw i64 %6, %4
  %77 = mul nsw i64 %76, %8
  %.not.not301 = icmp sgt i64 %77, 0
  br i1 %.not.not301, label %.lr.ph304, label %._crit_edge305

.lr.ph304:                                        ; preds = %72
  %78 = getelementptr inbounds i8, ptr %15, i64 56
  %79 = getelementptr inbounds i8, ptr %3, i64 56
  %80 = getelementptr inbounds i8, ptr %5, i64 56
  %81 = getelementptr inbounds i8, ptr %7, i64 56
  %.not.not259289 = icmp sgt i64 %32, 0
  %82 = getelementptr inbounds i8, ptr %0, i64 616
  %.not.not263286 = icmp sgt i64 %31, 1
  %83 = getelementptr inbounds i8, ptr %17, i64 56
  %.not.not260298 = icmp sgt i64 %2, 0
  %84 = getelementptr inbounds i8, ptr %9, i64 56
  %85 = getelementptr inbounds i8, ptr %11, i64 56
  %86 = getelementptr inbounds i8, ptr %1, i64 56
  %87 = add i64 %32, -1
  %88 = add i64 %31, -1
  %89 = add i64 %31, -2
  %xtraiter = and i64 %32, 1
  %90 = icmp eq i64 %87, 0
  %unroll_iter = and i64 %32, 9223372036854775806
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %xtraiter354 = and i64 %88, 3
  %91 = icmp ult i64 %89, 3
  %unroll_iter357 = and i64 %88, -4
  %lcmp.mod355.not = icmp eq i64 %xtraiter354, 0
  %xtraiter359 = and i64 %32, 3
  %92 = icmp ult i64 %32, 4
  %unroll_iter362 = and i64 %32, 9223372036854775804
  %lcmp.mod361.not = icmp eq i64 %xtraiter359, 0
  %xtraiter364 = and i64 %32, 1
  %93 = icmp eq i64 %87, 0
  %unroll_iter367 = and i64 %32, 9223372036854775806
  %lcmp.mod366.not = icmp eq i64 %xtraiter364, 0
  br label %94

94:                                               ; preds = %.lr.ph304, %._crit_edge
  %.0250302 = phi i64 [ 0, %.lr.ph304 ], [ %249, %._crit_edge ]
  %95 = load ptr, ptr %78, align 8, !tbaa !19
  store double 0.000000e+00, ptr %95, align 8, !tbaa !20
  %96 = load ptr, ptr %79, align 8, !tbaa !19
  %97 = srem i64 %.0250302, %4
  %98 = getelementptr inbounds double, ptr %96, i64 %97
  %99 = load double, ptr %98, align 8, !tbaa !20
  %100 = load ptr, ptr %78, align 8, !tbaa !19
  %101 = getelementptr inbounds i8, ptr %100, i64 8
  store double %99, ptr %101, align 8, !tbaa !20
  %102 = sdiv i64 %.0250302, %4
  %103 = load ptr, ptr %80, align 8, !tbaa !19
  %104 = srem i64 %102, %6
  %105 = getelementptr inbounds double, ptr %103, i64 %104
  %106 = load double, ptr %105, align 8, !tbaa !20
  %107 = load ptr, ptr %78, align 8, !tbaa !19
  %108 = getelementptr inbounds i8, ptr %107, i64 16
  store double %106, ptr %108, align 8, !tbaa !20
  %109 = sdiv i64 %102, %6
  %110 = load ptr, ptr %81, align 8, !tbaa !19
  %111 = srem i64 %109, %8
  %112 = getelementptr inbounds double, ptr %110, i64 %111
  %113 = load double, ptr %112, align 8, !tbaa !20
  %114 = load ptr, ptr %78, align 8, !tbaa !19
  %115 = getelementptr inbounds i8, ptr %114, i64 24
  store double %113, ptr %115, align 8, !tbaa !20
  %116 = sdiv i64 %109, %8
  %117 = icmp eq i64 %116, 0
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %117, ptr noundef nonnull @.str.688, ptr noundef %12)
  br i1 %.not.not259289, label %.lr.ph292, label %.preheader285

.lr.ph292:                                        ; preds = %94
  br i1 %.not.not263286, label %.lr.ph.us, label %.lr.ph292.split.preheader

.lr.ph292.split.preheader:                        ; preds = %.lr.ph292
  br i1 %90, label %.preheader285.loopexit352.unr-lcssa, label %.lr.ph292.split

.lr.ph.us:                                        ; preds = %.lr.ph292, %._crit_edge.us
  %.0245290.us = phi i64 [ %156, %._crit_edge.us ], [ 0, %.lr.ph292 ]
  %118 = load ptr, ptr %82, align 8, !tbaa !19
  %119 = getelementptr inbounds ptr, ptr %118, i64 %.0245290.us
  %120 = load ptr, ptr %119, align 8, !tbaa !21
  %121 = getelementptr inbounds double, ptr %120, i64 %31
  %122 = load double, ptr %121, align 8, !tbaa !20
  %123 = load ptr, ptr %78, align 8, !tbaa !19
  br i1 %91, label %._crit_edge.us.unr-lcssa, label %.lr.ph.us.new

.lr.ph.us.new:                                    ; preds = %.lr.ph.us, %.lr.ph.us.new
  %.0248288.us = phi i64 [ %147, %.lr.ph.us.new ], [ 1, %.lr.ph.us ]
  %.0251287.us = phi double [ %146, %.lr.ph.us.new ], [ %122, %.lr.ph.us ]
  %niter358 = phi i64 [ %niter358.next.3, %.lr.ph.us.new ], [ 0, %.lr.ph.us ]
  %124 = getelementptr inbounds double, ptr %123, i64 %.0248288.us
  %125 = load double, ptr %124, align 8, !tbaa !20
  %126 = getelementptr inbounds double, ptr %120, i64 %.0248288.us
  %127 = load double, ptr %126, align 8, !tbaa !20
  %128 = call double @llvm.fmuladd.f64(double %125, double %127, double %.0251287.us)
  %129 = add nuw nsw i64 %.0248288.us, 1
  %130 = getelementptr inbounds double, ptr %123, i64 %129
  %131 = load double, ptr %130, align 8, !tbaa !20
  %132 = getelementptr inbounds double, ptr %120, i64 %129
  %133 = load double, ptr %132, align 8, !tbaa !20
  %134 = call double @llvm.fmuladd.f64(double %131, double %133, double %128)
  %135 = add nuw nsw i64 %.0248288.us, 2
  %136 = getelementptr inbounds double, ptr %123, i64 %135
  %137 = load double, ptr %136, align 8, !tbaa !20
  %138 = getelementptr inbounds double, ptr %120, i64 %135
  %139 = load double, ptr %138, align 8, !tbaa !20
  %140 = call double @llvm.fmuladd.f64(double %137, double %139, double %134)
  %141 = add nuw nsw i64 %.0248288.us, 3
  %142 = getelementptr inbounds double, ptr %123, i64 %141
  %143 = load double, ptr %142, align 8, !tbaa !20
  %144 = getelementptr inbounds double, ptr %120, i64 %141
  %145 = load double, ptr %144, align 8, !tbaa !20
  %146 = call double @llvm.fmuladd.f64(double %143, double %145, double %140)
  %147 = add nuw nsw i64 %.0248288.us, 4
  %niter358.next.3 = add i64 %niter358, 4
  %niter358.ncmp.3 = icmp eq i64 %niter358.next.3, %unroll_iter357
  br i1 %niter358.ncmp.3, label %._crit_edge.us.unr-lcssa, label %.lr.ph.us.new, !llvm.loop !22

._crit_edge.us.unr-lcssa:                         ; preds = %.lr.ph.us.new, %.lr.ph.us
  %.lcssa353.ph = phi double [ poison, %.lr.ph.us ], [ %146, %.lr.ph.us.new ]
  %.0248288.us.unr = phi i64 [ 1, %.lr.ph.us ], [ %147, %.lr.ph.us.new ]
  %.0251287.us.unr = phi double [ %122, %.lr.ph.us ], [ %146, %.lr.ph.us.new ]
  br i1 %lcmp.mod355.not, label %._crit_edge.us, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge.us.unr-lcssa, %.epil.preheader
  %.0248288.us.epil = phi i64 [ %153, %.epil.preheader ], [ %.0248288.us.unr, %._crit_edge.us.unr-lcssa ]
  %.0251287.us.epil = phi double [ %152, %.epil.preheader ], [ %.0251287.us.unr, %._crit_edge.us.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge.us.unr-lcssa ]
  %148 = getelementptr inbounds double, ptr %123, i64 %.0248288.us.epil
  %149 = load double, ptr %148, align 8, !tbaa !20
  %150 = getelementptr inbounds double, ptr %120, i64 %.0248288.us.epil
  %151 = load double, ptr %150, align 8, !tbaa !20
  %152 = call double @llvm.fmuladd.f64(double %149, double %151, double %.0251287.us.epil)
  %153 = add nuw nsw i64 %.0248288.us.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter354
  br i1 %epil.iter.cmp.not, label %._crit_edge.us, label %.epil.preheader, !llvm.loop !24

._crit_edge.us:                                   ; preds = %.epil.preheader, %._crit_edge.us.unr-lcssa
  %.lcssa353 = phi double [ %.lcssa353.ph, %._crit_edge.us.unr-lcssa ], [ %152, %.epil.preheader ]
  %154 = load ptr, ptr %83, align 8, !tbaa !19
  %155 = getelementptr inbounds double, ptr %154, i64 %.0245290.us
  store double %.lcssa353, ptr %155, align 8, !tbaa !20
  %156 = add nuw nsw i64 %.0245290.us, 1
  %exitcond335.not = icmp eq i64 %156, %32
  br i1 %exitcond335.not, label %.preheader285, label %.lr.ph.us, !llvm.loop !26

.preheader285.loopexit352.unr-lcssa:              ; preds = %.lr.ph292.split, %.lr.ph292.split.preheader
  %.0245290.unr = phi i64 [ 0, %.lr.ph292.split.preheader ], [ %180, %.lr.ph292.split ]
  br i1 %lcmp.mod.not, label %.preheader285, label %.lr.ph292.split.epil

.lr.ph292.split.epil:                             ; preds = %.preheader285.loopexit352.unr-lcssa
  %157 = load ptr, ptr %82, align 8, !tbaa !19
  %158 = getelementptr inbounds ptr, ptr %157, i64 %.0245290.unr
  %159 = load ptr, ptr %158, align 8, !tbaa !21
  %160 = getelementptr inbounds double, ptr %159, i64 %31
  %161 = load double, ptr %160, align 8, !tbaa !20
  %162 = load ptr, ptr %83, align 8, !tbaa !19
  %163 = getelementptr inbounds double, ptr %162, i64 %.0245290.unr
  store double %161, ptr %163, align 8, !tbaa !20
  br label %.preheader285

.preheader285:                                    ; preds = %.lr.ph292.split.epil, %.preheader285.loopexit352.unr-lcssa, %._crit_edge.us, %94
  br i1 %.not.not260298, label %.lr.ph300, label %._crit_edge

.lr.ph300:                                        ; preds = %.preheader285
  %164 = mul nuw nsw i64 %.0250302, %2
  br label %181

.lr.ph292.split:                                  ; preds = %.lr.ph292.split.preheader, %.lr.ph292.split
  %.0245290 = phi i64 [ %180, %.lr.ph292.split ], [ 0, %.lr.ph292.split.preheader ]
  %niter = phi i64 [ %niter.next.1, %.lr.ph292.split ], [ 0, %.lr.ph292.split.preheader ]
  %165 = load ptr, ptr %82, align 8, !tbaa !19
  %166 = getelementptr inbounds ptr, ptr %165, i64 %.0245290
  %167 = load ptr, ptr %166, align 8, !tbaa !21
  %168 = getelementptr inbounds double, ptr %167, i64 %31
  %169 = load double, ptr %168, align 8, !tbaa !20
  %170 = load ptr, ptr %83, align 8, !tbaa !19
  %171 = getelementptr inbounds double, ptr %170, i64 %.0245290
  store double %169, ptr %171, align 8, !tbaa !20
  %172 = or disjoint i64 %.0245290, 1
  %173 = load ptr, ptr %82, align 8, !tbaa !19
  %174 = getelementptr inbounds ptr, ptr %173, i64 %172
  %175 = load ptr, ptr %174, align 8, !tbaa !21
  %176 = getelementptr inbounds double, ptr %175, i64 %31
  %177 = load double, ptr %176, align 8, !tbaa !20
  %178 = load ptr, ptr %83, align 8, !tbaa !19
  %179 = getelementptr inbounds double, ptr %178, i64 %172
  store double %177, ptr %179, align 8, !tbaa !20
  %180 = add nuw nsw i64 %.0245290, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.preheader285.loopexit352.unr-lcssa, label %.lr.ph292.split, !llvm.loop !26

181:                                              ; preds = %.lr.ph300, %.loopexit
  %.0299 = phi i64 [ 0, %.lr.ph300 ], [ %248, %.loopexit ]
  %182 = add nuw nsw i64 %.0299, %164
  %183 = mul nsw i64 %182, %32
  br i1 %10, label %184, label %205

184:                                              ; preds = %181
  %185 = load ptr, ptr %84, align 8, !tbaa !19
  %186 = getelementptr inbounds i8, ptr %185, i64 %182
  %187 = load i8, ptr %186, align 1, !tbaa !27, !range !28, !noundef !29
  %188 = trunc nuw i8 %187 to i1
  br i1 %188, label %205, label %.preheader283

.preheader283:                                    ; preds = %184
  br i1 %.not.not259289, label %.lr.ph.preheader, label %.loopexit

.lr.ph.preheader:                                 ; preds = %.preheader283
  br i1 %92, label %.loopexit.loopexit351.unr-lcssa, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %.1246294 = phi i64 [ %204, %.lr.ph ], [ 0, %.lr.ph.preheader ]
  %niter363 = phi i64 [ %niter363.next.3, %.lr.ph ], [ 0, %.lr.ph.preheader ]
  %189 = load ptr, ptr %85, align 8, !tbaa !19
  %190 = getelementptr double, ptr %189, i64 %.1246294
  %191 = getelementptr double, ptr %190, i64 %183
  store double 0.000000e+00, ptr %191, align 8, !tbaa !20
  %192 = or disjoint i64 %.1246294, 1
  %193 = load ptr, ptr %85, align 8, !tbaa !19
  %194 = getelementptr double, ptr %193, i64 %192
  %195 = getelementptr double, ptr %194, i64 %183
  store double 0.000000e+00, ptr %195, align 8, !tbaa !20
  %196 = or disjoint i64 %.1246294, 2
  %197 = load ptr, ptr %85, align 8, !tbaa !19
  %198 = getelementptr double, ptr %197, i64 %196
  %199 = getelementptr double, ptr %198, i64 %183
  store double 0.000000e+00, ptr %199, align 8, !tbaa !20
  %200 = or disjoint i64 %.1246294, 3
  %201 = load ptr, ptr %85, align 8, !tbaa !19
  %202 = getelementptr double, ptr %201, i64 %200
  %203 = getelementptr double, ptr %202, i64 %183
  store double 0.000000e+00, ptr %203, align 8, !tbaa !20
  %204 = add nuw nsw i64 %.1246294, 4
  %niter363.next.3 = add i64 %niter363, 4
  %niter363.ncmp.3 = icmp eq i64 %niter363.next.3, %unroll_iter362
  br i1 %niter363.ncmp.3, label %.loopexit.loopexit351.unr-lcssa, label %.lr.ph, !llvm.loop !30

205:                                              ; preds = %184, %181
  %206 = load ptr, ptr %86, align 8, !tbaa !19
  %207 = getelementptr inbounds double, ptr %206, i64 %.0299
  %208 = load double, ptr %207, align 8, !tbaa !20
  br i1 %.not.not259289, label %.lr.ph297.preheader, label %.loopexit

.lr.ph297.preheader:                              ; preds = %205
  br i1 %93, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph297

.lr.ph297:                                        ; preds = %.lr.ph297.preheader, %.lr.ph297
  %.2247296 = phi i64 [ %232, %.lr.ph297 ], [ 0, %.lr.ph297.preheader ]
  %niter368 = phi i64 [ %niter368.next.1, %.lr.ph297 ], [ 0, %.lr.ph297.preheader ]
  %209 = load ptr, ptr %83, align 8, !tbaa !19
  %210 = getelementptr inbounds double, ptr %209, i64 %.2247296
  %211 = load double, ptr %210, align 8, !tbaa !20
  %212 = load ptr, ptr %82, align 8, !tbaa !19
  %213 = getelementptr inbounds ptr, ptr %212, i64 %.2247296
  %214 = load ptr, ptr %213, align 8, !tbaa !21
  %215 = load double, ptr %214, align 8, !tbaa !20
  %216 = call double @llvm.fmuladd.f64(double %208, double %215, double %211)
  %217 = load ptr, ptr %85, align 8, !tbaa !19
  %218 = getelementptr double, ptr %217, i64 %.2247296
  %219 = getelementptr double, ptr %218, i64 %183
  store double %216, ptr %219, align 8, !tbaa !20
  %220 = or disjoint i64 %.2247296, 1
  %221 = load ptr, ptr %83, align 8, !tbaa !19
  %222 = getelementptr inbounds double, ptr %221, i64 %220
  %223 = load double, ptr %222, align 8, !tbaa !20
  %224 = load ptr, ptr %82, align 8, !tbaa !19
  %225 = getelementptr inbounds ptr, ptr %224, i64 %220
  %226 = load ptr, ptr %225, align 8, !tbaa !21
  %227 = load double, ptr %226, align 8, !tbaa !20
  %228 = call double @llvm.fmuladd.f64(double %208, double %227, double %223)
  %229 = load ptr, ptr %85, align 8, !tbaa !19
  %230 = getelementptr double, ptr %229, i64 %220
  %231 = getelementptr double, ptr %230, i64 %183
  store double %228, ptr %231, align 8, !tbaa !20
  %232 = add nuw nsw i64 %.2247296, 2
  %niter368.next.1 = add i64 %niter368, 2
  %niter368.ncmp.1 = icmp eq i64 %niter368.next.1, %unroll_iter367
  br i1 %niter368.ncmp.1, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph297, !llvm.loop !31

.loopexit.loopexit.unr-lcssa:                     ; preds = %.lr.ph297, %.lr.ph297.preheader
  %.2247296.unr = phi i64 [ 0, %.lr.ph297.preheader ], [ %232, %.lr.ph297 ]
  br i1 %lcmp.mod366.not, label %.loopexit, label %.lr.ph297.epil

.lr.ph297.epil:                                   ; preds = %.loopexit.loopexit.unr-lcssa
  %233 = load ptr, ptr %83, align 8, !tbaa !19
  %234 = getelementptr inbounds double, ptr %233, i64 %.2247296.unr
  %235 = load double, ptr %234, align 8, !tbaa !20
  %236 = load ptr, ptr %82, align 8, !tbaa !19
  %237 = getelementptr inbounds ptr, ptr %236, i64 %.2247296.unr
  %238 = load ptr, ptr %237, align 8, !tbaa !21
  %239 = load double, ptr %238, align 8, !tbaa !20
  %240 = call double @llvm.fmuladd.f64(double %208, double %239, double %235)
  %241 = load ptr, ptr %85, align 8, !tbaa !19
  %242 = getelementptr double, ptr %241, i64 %.2247296.unr
  %243 = getelementptr double, ptr %242, i64 %183
  store double %240, ptr %243, align 8, !tbaa !20
  br label %.loopexit

.loopexit.loopexit351.unr-lcssa:                  ; preds = %.lr.ph, %.lr.ph.preheader
  %.1246294.unr = phi i64 [ 0, %.lr.ph.preheader ], [ %204, %.lr.ph ]
  br i1 %lcmp.mod361.not, label %.loopexit, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %.loopexit.loopexit351.unr-lcssa, %.lr.ph.epil
  %.1246294.epil = phi i64 [ %247, %.lr.ph.epil ], [ %.1246294.unr, %.loopexit.loopexit351.unr-lcssa ]
  %epil.iter360 = phi i64 [ %epil.iter360.next, %.lr.ph.epil ], [ 0, %.loopexit.loopexit351.unr-lcssa ]
  %244 = load ptr, ptr %85, align 8, !tbaa !19
  %245 = getelementptr double, ptr %244, i64 %.1246294.epil
  %246 = getelementptr double, ptr %245, i64 %183
  store double 0.000000e+00, ptr %246, align 8, !tbaa !20
  %247 = add nuw nsw i64 %.1246294.epil, 1
  %epil.iter360.next = add i64 %epil.iter360, 1
  %epil.iter360.cmp.not = icmp eq i64 %epil.iter360.next, %xtraiter359
  br i1 %epil.iter360.cmp.not, label %.loopexit, label %.lr.ph.epil, !llvm.loop !32

.loopexit:                                        ; preds = %.loopexit.loopexit351.unr-lcssa, %.lr.ph.epil, %.lr.ph297.epil, %.loopexit.loopexit.unr-lcssa, %.preheader283, %205
  %248 = add nuw nsw i64 %.0299, 1
  %exitcond338.not = icmp eq i64 %248, %2
  br i1 %exitcond338.not, label %._crit_edge, label %181, !llvm.loop !33

._crit_edge:                                      ; preds = %.loopexit, %.preheader285
  %249 = add nuw nsw i64 %.0250302, 1
  %exitcond339.not = icmp eq i64 %249, %77
  br i1 %exitcond339.not, label %._crit_edge305, label %94, !llvm.loop !34

._crit_edge305:                                   ; preds = %._crit_edge, %72
  %250 = getelementptr inbounds i8, ptr %0, i64 24
  %251 = load i64, ptr %250, align 8, !tbaa !35
  %.not.not254327 = icmp sgt i64 %251, 0
  br i1 %.not.not254327, label %.lr.ph329, label %._crit_edge330

.lr.ph329:                                        ; preds = %._crit_edge305
  %252 = getelementptr inbounds i8, ptr %0, i64 88
  %253 = icmp sgt i64 %31, 0
  %254 = getelementptr inbounds i8, ptr %0, i64 152
  %.not = icmp eq i64 %31, 1
  %255 = icmp ugt i64 %31, 2
  %.not282 = icmp eq i64 %31, 3
  %256 = add nsw i64 %2, 1
  %257 = getelementptr inbounds i8, ptr %22, i64 56
  %.not.not255306 = icmp sgt i64 %2, 1
  %258 = getelementptr inbounds i8, ptr %1, i64 56
  %259 = add nsw i64 %4, 1
  %260 = getelementptr inbounds i8, ptr %23, i64 56
  %.not.not256310 = icmp sgt i64 %4, 1
  %261 = getelementptr inbounds i8, ptr %3, i64 56
  %262 = add nsw i64 %6, 1
  %263 = getelementptr inbounds i8, ptr %24, i64 56
  %.not.not257315 = icmp sgt i64 %6, 1
  %264 = getelementptr inbounds i8, ptr %5, i64 56
  %265 = add nsw i64 %8, 1
  %266 = getelementptr inbounds i8, ptr %25, i64 56
  %.not.not258320 = icmp sgt i64 %8, 1
  %267 = getelementptr inbounds i8, ptr %7, i64 56
  %268 = getelementptr inbounds i8, ptr %0, i64 16
  %269 = getelementptr inbounds i8, ptr %15, i64 56
  %270 = getelementptr inbounds i8, ptr %0, i64 352
  %271 = getelementptr inbounds i8, ptr %0, i64 416
  %272 = getelementptr inbounds i8, ptr %0, i64 224
  %273 = getelementptr inbounds i8, ptr %0, i64 288
  %274 = getelementptr inbounds i8, ptr %0, i64 480
  %275 = getelementptr inbounds i8, ptr %0, i64 216
  br label %276

276:                                              ; preds = %.lr.ph329, %444
  %.0249328 = phi i64 [ 0, %.lr.ph329 ], [ %449, %444 ]
  %277 = load ptr, ptr %252, align 8, !tbaa !19
  %278 = getelementptr inbounds double, ptr %277, i64 %.0249328
  %279 = load double, ptr %278, align 8, !tbaa !20
  br i1 %253, label %280, label %.thread275

280:                                              ; preds = %276
  %281 = load ptr, ptr %254, align 8, !tbaa !19
  %282 = load double, ptr %281, align 8, !tbaa !20
  %283 = fmul double %279, %282
  br i1 %.not, label %.thread275, label %284

284:                                              ; preds = %280
  %285 = getelementptr inbounds i8, ptr %281, i64 8
  %286 = load double, ptr %285, align 8, !tbaa !20
  %287 = fmul double %279, %286
  br i1 %255, label %288, label %.thread275

288:                                              ; preds = %284
  %289 = getelementptr inbounds i8, ptr %281, i64 16
  %290 = load double, ptr %289, align 8, !tbaa !20
  %291 = fmul double %279, %290
  br i1 %.not282, label %.thread275, label %292

292:                                              ; preds = %288
  %293 = getelementptr inbounds i8, ptr %281, i64 24
  %294 = load double, ptr %293, align 8, !tbaa !20
  %295 = fmul double %279, %294
  br label %.thread275

.thread275:                                       ; preds = %276, %280, %284, %292, %288
  %.0241281 = phi double [ %291, %292 ], [ %291, %288 ], [ 1.000000e+00, %284 ], [ 1.000000e+00, %280 ], [ 1.000000e+00, %276 ]
  %.0243268272280 = phi double [ %283, %292 ], [ %283, %288 ], [ %283, %284 ], [ %283, %280 ], [ 1.000000e+00, %276 ]
  %.0242273279 = phi double [ %287, %292 ], [ %287, %288 ], [ %287, %284 ], [ 1.000000e+00, %280 ], [ 1.000000e+00, %276 ]
  %.0240 = phi double [ %295, %292 ], [ 1.000000e+00, %288 ], [ 1.000000e+00, %284 ], [ 1.000000e+00, %280 ], [ 1.000000e+00, %276 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %22, i64 noundef %256, ptr noundef %12)
  store i64 0, ptr %26, align 8, !tbaa !36
  %296 = load ptr, ptr %257, align 8, !tbaa !19
  store i64 0, ptr %296, align 8, !tbaa !36
  br i1 %.not.not255306, label %.lr.ph308, label %._crit_edge309

.lr.ph308:                                        ; preds = %.thread275, %319
  %.1307 = phi i64 [ %320, %319 ], [ 1, %.thread275 ]
  %297 = load ptr, ptr %258, align 8, !tbaa !19
  %298 = getelementptr inbounds double, ptr %297, i64 %.1307
  %299 = load double, ptr %298, align 8, !tbaa !20
  %300 = load ptr, ptr %257, align 8, !tbaa !19
  %301 = load i64, ptr %26, align 8, !tbaa !36
  %302 = getelementptr inbounds i64, ptr %300, i64 %301
  %303 = load i64, ptr %302, align 8, !tbaa !36
  %304 = getelementptr inbounds double, ptr %297, i64 %303
  %305 = load double, ptr %304, align 8, !tbaa !20
  %306 = fsub double %299, %305
  %307 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %306, double noundef %.0243268272280)
  br i1 %307, label %315, label %308

308:                                              ; preds = %.lr.ph308
  %309 = load ptr, ptr %257, align 8, !tbaa !19
  %310 = load i64, ptr %26, align 8, !tbaa !36
  %311 = getelementptr inbounds i64, ptr %309, i64 %310
  %312 = load i64, ptr %311, align 8, !tbaa !36
  %313 = sub nsw i64 %.1307, %312
  %314 = icmp sgt i64 %313, 7
  br i1 %314, label %315, label %319

315:                                              ; preds = %308, %.lr.ph308
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %26, ptr noundef %12)
  %316 = load ptr, ptr %257, align 8, !tbaa !19
  %317 = load i64, ptr %26, align 8, !tbaa !36
  %318 = getelementptr inbounds i64, ptr %316, i64 %317
  store i64 %.1307, ptr %318, align 8, !tbaa !36
  br label %319

319:                                              ; preds = %308, %315
  %320 = add nuw nsw i64 %.1307, 1
  %exitcond340.not = icmp eq i64 %320, %2
  br i1 %exitcond340.not, label %._crit_edge309, label %.lr.ph308, !llvm.loop !37

._crit_edge309:                                   ; preds = %319, %.thread275
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %26, ptr noundef %12)
  %321 = load ptr, ptr %257, align 8, !tbaa !19
  %322 = load i64, ptr %26, align 8, !tbaa !36
  %323 = getelementptr inbounds i64, ptr %321, i64 %322
  store i64 %2, ptr %323, align 8, !tbaa !36
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %23, i64 noundef %259, ptr noundef %12)
  store i64 0, ptr %27, align 8, !tbaa !36
  %324 = load ptr, ptr %260, align 8, !tbaa !19
  store i64 0, ptr %324, align 8, !tbaa !36
  br i1 %.not.not256310, label %.lr.ph313, label %._crit_edge314

.lr.ph313:                                        ; preds = %._crit_edge309, %347
  %.2311 = phi i64 [ %348, %347 ], [ 1, %._crit_edge309 ]
  %325 = load ptr, ptr %261, align 8, !tbaa !19
  %326 = getelementptr inbounds double, ptr %325, i64 %.2311
  %327 = load double, ptr %326, align 8, !tbaa !20
  %328 = load ptr, ptr %260, align 8, !tbaa !19
  %329 = load i64, ptr %27, align 8, !tbaa !36
  %330 = getelementptr inbounds i64, ptr %328, i64 %329
  %331 = load i64, ptr %330, align 8, !tbaa !36
  %332 = getelementptr inbounds double, ptr %325, i64 %331
  %333 = load double, ptr %332, align 8, !tbaa !20
  %334 = fsub double %327, %333
  %335 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %334, double noundef %.0242273279)
  br i1 %335, label %343, label %336

336:                                              ; preds = %.lr.ph313
  %337 = load ptr, ptr %260, align 8, !tbaa !19
  %338 = load i64, ptr %27, align 8, !tbaa !36
  %339 = getelementptr inbounds i64, ptr %337, i64 %338
  %340 = load i64, ptr %339, align 8, !tbaa !36
  %341 = sub nsw i64 %.2311, %340
  %342 = icmp sgt i64 %341, 7
  br i1 %342, label %343, label %347

343:                                              ; preds = %336, %.lr.ph313
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %27, ptr noundef %12)
  %344 = load ptr, ptr %260, align 8, !tbaa !19
  %345 = load i64, ptr %27, align 8, !tbaa !36
  %346 = getelementptr inbounds i64, ptr %344, i64 %345
  store i64 %.2311, ptr %346, align 8, !tbaa !36
  br label %347

347:                                              ; preds = %336, %343
  %348 = add nuw nsw i64 %.2311, 1
  %exitcond341.not = icmp eq i64 %348, %4
  br i1 %exitcond341.not, label %._crit_edge314, label %.lr.ph313, !llvm.loop !38

._crit_edge314:                                   ; preds = %347, %._crit_edge309
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %27, ptr noundef %12)
  %349 = load ptr, ptr %260, align 8, !tbaa !19
  %350 = load i64, ptr %27, align 8, !tbaa !36
  %351 = getelementptr inbounds i64, ptr %349, i64 %350
  store i64 %4, ptr %351, align 8, !tbaa !36
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %24, i64 noundef %262, ptr noundef %12)
  store i64 0, ptr %28, align 8, !tbaa !36
  %352 = load ptr, ptr %263, align 8, !tbaa !19
  store i64 0, ptr %352, align 8, !tbaa !36
  br i1 %.not.not257315, label %.lr.ph318, label %._crit_edge319

.lr.ph318:                                        ; preds = %._crit_edge314, %375
  %.3316 = phi i64 [ %376, %375 ], [ 1, %._crit_edge314 ]
  %353 = load ptr, ptr %264, align 8, !tbaa !19
  %354 = getelementptr inbounds double, ptr %353, i64 %.3316
  %355 = load double, ptr %354, align 8, !tbaa !20
  %356 = load ptr, ptr %263, align 8, !tbaa !19
  %357 = load i64, ptr %28, align 8, !tbaa !36
  %358 = getelementptr inbounds i64, ptr %356, i64 %357
  %359 = load i64, ptr %358, align 8, !tbaa !36
  %360 = getelementptr inbounds double, ptr %353, i64 %359
  %361 = load double, ptr %360, align 8, !tbaa !20
  %362 = fsub double %355, %361
  %363 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %362, double noundef %.0241281)
  br i1 %363, label %371, label %364

364:                                              ; preds = %.lr.ph318
  %365 = load ptr, ptr %263, align 8, !tbaa !19
  %366 = load i64, ptr %28, align 8, !tbaa !36
  %367 = getelementptr inbounds i64, ptr %365, i64 %366
  %368 = load i64, ptr %367, align 8, !tbaa !36
  %369 = sub nsw i64 %.3316, %368
  %370 = icmp sgt i64 %369, 7
  br i1 %370, label %371, label %375

371:                                              ; preds = %364, %.lr.ph318
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %28, ptr noundef %12)
  %372 = load ptr, ptr %263, align 8, !tbaa !19
  %373 = load i64, ptr %28, align 8, !tbaa !36
  %374 = getelementptr inbounds i64, ptr %372, i64 %373
  store i64 %.3316, ptr %374, align 8, !tbaa !36
  br label %375

375:                                              ; preds = %364, %371
  %376 = add nuw nsw i64 %.3316, 1
  %exitcond342.not = icmp eq i64 %376, %6
  br i1 %exitcond342.not, label %._crit_edge319, label %.lr.ph318, !llvm.loop !39

._crit_edge319:                                   ; preds = %375, %._crit_edge314
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %28, ptr noundef %12)
  %377 = load ptr, ptr %263, align 8, !tbaa !19
  %378 = load i64, ptr %28, align 8, !tbaa !36
  %379 = getelementptr inbounds i64, ptr %377, i64 %378
  store i64 %6, ptr %379, align 8, !tbaa !36
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %25, i64 noundef %265, ptr noundef %12)
  store i64 0, ptr %29, align 8, !tbaa !36
  %380 = load ptr, ptr %266, align 8, !tbaa !19
  store i64 0, ptr %380, align 8, !tbaa !36
  br i1 %.not.not258320, label %.lr.ph323, label %._crit_edge324

.lr.ph323:                                        ; preds = %._crit_edge319, %403
  %.4321 = phi i64 [ %404, %403 ], [ 1, %._crit_edge319 ]
  %381 = load ptr, ptr %267, align 8, !tbaa !19
  %382 = getelementptr inbounds double, ptr %381, i64 %.4321
  %383 = load double, ptr %382, align 8, !tbaa !20
  %384 = load ptr, ptr %266, align 8, !tbaa !19
  %385 = load i64, ptr %29, align 8, !tbaa !36
  %386 = getelementptr inbounds i64, ptr %384, i64 %385
  %387 = load i64, ptr %386, align 8, !tbaa !36
  %388 = getelementptr inbounds double, ptr %381, i64 %387
  %389 = load double, ptr %388, align 8, !tbaa !20
  %390 = fsub double %383, %389
  %391 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %390, double noundef %.0240)
  br i1 %391, label %399, label %392

392:                                              ; preds = %.lr.ph323
  %393 = load ptr, ptr %266, align 8, !tbaa !19
  %394 = load i64, ptr %29, align 8, !tbaa !36
  %395 = getelementptr inbounds i64, ptr %393, i64 %394
  %396 = load i64, ptr %395, align 8, !tbaa !36
  %397 = sub nsw i64 %.4321, %396
  %398 = icmp sgt i64 %397, 7
  br i1 %398, label %399, label %403

399:                                              ; preds = %392, %.lr.ph323
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %29, ptr noundef %12)
  %400 = load ptr, ptr %266, align 8, !tbaa !19
  %401 = load i64, ptr %29, align 8, !tbaa !36
  %402 = getelementptr inbounds i64, ptr %400, i64 %401
  store i64 %.4321, ptr %402, align 8, !tbaa !36
  br label %403

403:                                              ; preds = %392, %399
  %404 = add nuw nsw i64 %.4321, 1
  %exitcond343.not = icmp eq i64 %404, %8
  br i1 %exitcond343.not, label %._crit_edge324, label %.lr.ph323, !llvm.loop !40

._crit_edge324:                                   ; preds = %403, %._crit_edge319
  call void @_ZN11alglib_impl3incEPlPNS_8ae_stateE(ptr noundef nonnull %29, ptr noundef %12)
  %405 = load ptr, ptr %266, align 8, !tbaa !19
  %406 = load i64, ptr %29, align 8, !tbaa !36
  %407 = getelementptr inbounds i64, ptr %405, i64 %406
  store i64 %8, ptr %407, align 8, !tbaa !36
  call void @_ZN11alglib_implL24rbfv2_allocatecalcbufferEPNS_10rbfv2modelEPNS_15rbfv2calcbufferEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %19, ptr noundef %12)
  call void @_ZN11alglib_impl23ae_shared_pool_set_seedEPNS_14ae_shared_poolEPvlPFvS2_PNS_8ae_stateEbEPFvS2_S2_S4_bEPFvS2_ES4_(ptr noundef nonnull %20, ptr noundef nonnull %19, i64 noundef 712, ptr noundef nonnull @_ZN11alglib_impl25_rbfv2gridcalcbuffer_initEPvPNS_8ae_stateEb, ptr noundef nonnull @_ZN11alglib_impl30_rbfv2gridcalcbuffer_init_copyEPvS0_PNS_8ae_stateEb, ptr noundef nonnull @_ZN11alglib_impl28_rbfv2gridcalcbuffer_destroyEPv, ptr noundef %12)
  %408 = load i64, ptr %268, align 8, !tbaa !41
  %409 = call noundef double @_ZN11alglib_impl14rbfv2farradiusElPNS_8ae_stateE(i64 noundef %408, ptr noundef %12)
  %410 = fmul double %279, %409
  %411 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %410, ptr noundef %12)
  br label %412

412:                                              ; preds = %._crit_edge324, %412
  %.5326 = phi i64 [ 0, %._crit_edge324 ], [ %443, %412 ]
  %.0244325 = phi double [ 0.000000e+00, %._crit_edge324 ], [ %442, %412 ]
  %413 = load ptr, ptr %258, align 8, !tbaa !19
  %414 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %2, ptr noundef %12)
  %415 = getelementptr inbounds double, ptr %413, i64 %414
  %416 = load double, ptr %415, align 8, !tbaa !20
  %417 = load ptr, ptr %269, align 8, !tbaa !19
  store double %416, ptr %417, align 8, !tbaa !20
  %418 = load ptr, ptr %261, align 8, !tbaa !19
  %419 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %4, ptr noundef %12)
  %420 = getelementptr inbounds double, ptr %418, i64 %419
  %421 = load double, ptr %420, align 8, !tbaa !20
  %422 = load ptr, ptr %269, align 8, !tbaa !19
  %423 = getelementptr inbounds i8, ptr %422, i64 8
  store double %421, ptr %423, align 8, !tbaa !20
  %424 = load ptr, ptr %264, align 8, !tbaa !19
  %425 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %6, ptr noundef %12)
  %426 = getelementptr inbounds double, ptr %424, i64 %425
  %427 = load double, ptr %426, align 8, !tbaa !20
  %428 = load ptr, ptr %269, align 8, !tbaa !19
  %429 = getelementptr inbounds i8, ptr %428, i64 16
  store double %427, ptr %429, align 8, !tbaa !20
  %430 = load ptr, ptr %267, align 8, !tbaa !19
  %431 = call noundef i64 @_ZN11alglib_impl13hqrnduniformiEPNS_10hqrndstateElPNS_8ae_stateE(ptr noundef nonnull %21, i64 noundef %8, ptr noundef %12)
  %432 = getelementptr inbounds double, ptr %430, i64 %431
  %433 = load double, ptr %432, align 8, !tbaa !20
  %434 = load ptr, ptr %269, align 8, !tbaa !19
  %435 = getelementptr inbounds i8, ptr %434, i64 24
  store double %433, ptr %435, align 8, !tbaa !20
  call void @_ZN11alglib_implL25rbfv2_preparepartialqueryEPNS_9ae_vectorES1_S1_lPNS_15rbfv2calcbufferEPlPNS_8ae_stateE(ptr noundef nonnull %15, ptr noundef nonnull %270, ptr noundef nonnull %271, i64 noundef %31, ptr noundef nonnull %19, ptr noundef nonnull %18, ptr noundef %12)
  %436 = load ptr, ptr %275, align 8, !tbaa !19
  %437 = getelementptr inbounds i64, ptr %436, i64 %.0249328
  %438 = load i64, ptr %437, align 8, !tbaa !36
  %439 = call noundef i64 @_ZN11alglib_implL21rbfv2_partialcountrecEPNS_9ae_vectorES1_S1_llPNS_15rbfv2calcbufferEldS1_PNS_8ae_stateE(ptr noundef nonnull %272, ptr noundef nonnull %273, ptr noundef nonnull %274, i64 noundef %31, i64 noundef %32, ptr noundef nonnull %19, i64 noundef %438, double noundef %411, ptr noundef nonnull %15, ptr noundef %12)
  %440 = sitofp i64 %439 to double
  %441 = fdiv double %440, 1.000000e+02
  %442 = fadd double %.0244325, %441
  %443 = add nuw nsw i64 %.5326, 1
  %exitcond344.not = icmp eq i64 %443, 100
  br i1 %exitcond344.not, label %444, label %412, !llvm.loop !42

444:                                              ; preds = %412
  %445 = load i64, ptr %26, align 8, !tbaa !36
  %446 = load i64, ptr %27, align 8, !tbaa !36
  %447 = load i64, ptr %28, align 8, !tbaa !36
  %448 = load i64, ptr %29, align 8, !tbaa !36
  call void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPNS_10rbfv2modelEPNS_9ae_vectorElS3_lS3_lS3_lS3_llS3_llS3_llS3_llS3_bldPNS_14ae_shared_poolES3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1, i64 noundef %2, ptr noundef nonnull %3, i64 noundef %4, ptr noundef nonnull %5, i64 noundef %6, ptr noundef nonnull %7, i64 noundef %8, ptr noundef nonnull %22, i64 noundef 0, i64 noundef %445, ptr noundef nonnull %23, i64 noundef 0, i64 noundef %446, ptr noundef nonnull %24, i64 noundef 0, i64 noundef %447, ptr noundef nonnull %25, i64 noundef 0, i64 noundef %448, ptr noundef %9, i1 noundef zeroext %10, i64 noundef %.0249328, double noundef %442, ptr noundef nonnull %20, ptr noundef %11, ptr noundef %12)
  %449 = add nuw nsw i64 %.0249328, 1
  %450 = load i64, ptr %250, align 8, !tbaa !35
  %.not.not254 = icmp slt i64 %449, %450
  br i1 %.not.not254, label %276, label %._crit_edge330, !llvm.loop !43

._crit_edge330:                                   ; preds = %444, %._crit_edge305
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 712, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  ret void
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl28_rbfv2gridcalcbuffer_destroyEPv(ptr noundef) #4

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

; Function Attrs: mustprogress uwtable
declare hidden noundef i64 @_ZN11alglib_implL21rbfv2_partialcountrecEPNS_9ae_vectorES1_S1_llPNS_15rbfv2calcbufferEldS1_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, double noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl23rbfv2partialgridcalcrecEPNS_10rbfv2modelEPNS_9ae_vectorElS3_lS3_lS3_lS3_llS3_llS3_llS3_llS3_bldPNS_14ae_shared_poolES3_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

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 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 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 #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, !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 = !{!10, !7, i64 0}
!19 = !{!8, !8, i64 0}
!20 = !{!15, !15, i64 0}
!21 = !{!13, !13, i64 0}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.unroll.disable"}
!26 = distinct !{!26, !23}
!27 = !{!11, !11, i64 0}
!28 = !{i8 0, i8 2}
!29 = !{}
!30 = distinct !{!30, !23}
!31 = distinct !{!31, !23}
!32 = distinct !{!32, !25}
!33 = distinct !{!33, !23}
!34 = distinct !{!34, !23}
!35 = !{!6, !7, i64 24}
!36 = !{!7, !7, i64 0}
!37 = distinct !{!37, !23}
!38 = distinct !{!38, !23}
!39 = distinct !{!39, !23}
!40 = distinct !{!40, !23}
!41 = !{!6, !7, i64 16}
!42 = distinct !{!42, !23}
!43 = distinct !{!43, !23}


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