; LLVM IR from venumb/ZSPACE :: cpp/depends/alglib/cpp/tests/test_c.ll (Z6testgqbPN11alglib_impl8ae_stateE)

; 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 }
%union.anon = type { ptr }

@.str.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.579 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [43 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

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

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

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

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

declare i32 @printf(ptr noundef, ...) #1

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #1

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

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

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

declare noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) #1

declare noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef, ptr noundef) #1

declare noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef, ptr noundef) #1

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

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

declare noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z6testgqbPN11alglib_impl8ae_stateE(i1 noundef zeroext %0, ptr noundef %1) #4 {
  %3 = alloca i8, align 1
  %4 = alloca ptr, align 8
  %5 = alloca %"struct.alglib_impl::ae_frame", align 8
  %6 = alloca %"struct.alglib_impl::ae_vector", align 8
  %7 = alloca %"struct.alglib_impl::ae_vector", align 8
  %8 = alloca %"struct.alglib_impl::ae_vector", align 8
  %9 = alloca %"struct.alglib_impl::ae_vector", align 8
  %10 = alloca %"struct.alglib_impl::ae_vector", align 8
  %11 = alloca %"struct.alglib_impl::ae_vector", align 8
  %12 = alloca double, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca i8, align 1
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca i8, align 1
  %27 = zext i1 %0 to i8
  store i8 %27, ptr %3, align 1, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %6) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %7) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %8) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %9) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr %11) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #6
  %28 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %28, ptr noundef %5)
  call void @llvm.memset.p0.i64(ptr align 8 %6, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %7, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %8, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 64, i1 false)
  %29 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %6, i64 noundef 0, i64 noundef 3, ptr noundef %29, i1 noundef zeroext true)
  %30 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %7, i64 noundef 0, i64 noundef 3, ptr noundef %30, i1 noundef zeroext true)
  %31 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %8, i64 noundef 0, i64 noundef 3, ptr noundef %31, i1 noundef zeroext true)
  %32 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %9, i64 noundef 0, i64 noundef 3, ptr noundef %32, i1 noundef zeroext true)
  %33 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %10, i64 noundef 0, i64 noundef 3, ptr noundef %33, i1 noundef zeroext true)
  %34 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %11, i64 noundef 0, i64 noundef 3, ptr noundef %34, i1 noundef zeroext true)
  store i8 0, ptr %23, align 1, !tbaa !5
  store i8 0, ptr %24, align 1, !tbaa !5
  store i8 0, ptr %25, align 1, !tbaa !5
  store double 0x3D719799812DEA11, ptr %20, align 8, !tbaa !11
  store double 0x3EB0C6F7A0B5ED8D, ptr %21, align 8, !tbaa !11
  store double 5.000000e-13, ptr %22, align 8, !tbaa !11
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  %35 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef 2, ptr noundef %35)
  %36 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 2, ptr noundef %36)
  %37 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %38 = load ptr, ptr %37, align 8, !tbaa !13
  %39 = getelementptr inbounds double, ptr %38, i64 0
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  %40 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %41 = load ptr, ptr %40, align 8, !tbaa !13
  %42 = getelementptr inbounds double, ptr %41, i64 1
  store double 0.000000e+00, ptr %42, align 8, !tbaa !11
  %43 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %44 = load ptr, ptr %43, align 8, !tbaa !13
  %45 = getelementptr inbounds double, ptr %44, i64 1
  store double 0x3FD5555555555555, ptr %45, align 8, !tbaa !11
  %46 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13gqgeneraterecEPNS_9ae_vectorES1_dlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 2.000000e+00, i64 noundef 2, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %46)
  %47 = load i64, ptr %15, align 8, !tbaa !14
  %48 = icmp sgt i64 %47, 0
  br i1 %48, label %49, label %122

49:                                               ; preds = %2
  %50 = load double, ptr %12, align 8, !tbaa !11
  %51 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %52 = load ptr, ptr %51, align 8, !tbaa !13
  %53 = getelementptr inbounds double, ptr %52, i64 0
  %54 = load double, ptr %53, align 8, !tbaa !11
  %55 = load ptr, ptr %4, align 8, !tbaa !9
  %56 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 3.000000e+00, ptr noundef %55)
  %57 = fdiv double %56, 3.000000e+00
  %58 = fadd double %54, %57
  %59 = load ptr, ptr %4, align 8, !tbaa !9
  %60 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %58, ptr noundef %59)
  %61 = load ptr, ptr %4, align 8, !tbaa !9
  %62 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %50, double noundef %60, ptr noundef %61)
  store double %62, ptr %12, align 8, !tbaa !11
  %63 = load double, ptr %12, align 8, !tbaa !11
  %64 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %65 = load ptr, ptr %64, align 8, !tbaa !13
  %66 = getelementptr inbounds double, ptr %65, i64 1
  %67 = load double, ptr %66, align 8, !tbaa !11
  %68 = load ptr, ptr %4, align 8, !tbaa !9
  %69 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 3.000000e+00, ptr noundef %68)
  %70 = fdiv double %69, 3.000000e+00
  %71 = fsub double %67, %70
  %72 = load ptr, ptr %4, align 8, !tbaa !9
  %73 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %71, ptr noundef %72)
  %74 = load ptr, ptr %4, align 8, !tbaa !9
  %75 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %63, double noundef %73, ptr noundef %74)
  store double %75, ptr %12, align 8, !tbaa !11
  %76 = load double, ptr %12, align 8, !tbaa !11
  %77 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %78 = load ptr, ptr %77, align 8, !tbaa !13
  %79 = getelementptr inbounds double, ptr %78, i64 0
  %80 = load double, ptr %79, align 8, !tbaa !11
  %81 = fsub double %80, 1.000000e+00
  %82 = load ptr, ptr %4, align 8, !tbaa !9
  %83 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %81, ptr noundef %82)
  %84 = load ptr, ptr %4, align 8, !tbaa !9
  %85 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %76, double noundef %83, ptr noundef %84)
  store double %85, ptr %12, align 8, !tbaa !11
  %86 = load double, ptr %12, align 8, !tbaa !11
  %87 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %88 = load ptr, ptr %87, align 8, !tbaa !13
  %89 = getelementptr inbounds double, ptr %88, i64 1
  %90 = load double, ptr %89, align 8, !tbaa !11
  %91 = fsub double %90, 1.000000e+00
  %92 = load ptr, ptr %4, align 8, !tbaa !9
  %93 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %91, ptr noundef %92)
  %94 = load ptr, ptr %4, align 8, !tbaa !9
  %95 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %86, double noundef %93, ptr noundef %94)
  store double %95, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %96

96:                                               ; preds = %118, %49
  %97 = load i64, ptr %14, align 8, !tbaa !14
  %98 = icmp sle i64 %97, 0
  br i1 %98, label %99, label %121

99:                                               ; preds = %96
  %100 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %101 = trunc i8 %100 to i1
  br i1 %101, label %115, label %102

102:                                              ; preds = %99
  %103 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %104 = load ptr, ptr %103, align 8, !tbaa !13
  %105 = load i64, ptr %14, align 8, !tbaa !14
  %106 = getelementptr inbounds double, ptr %104, i64 %105
  %107 = load double, ptr %106, align 8, !tbaa !11
  %108 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %109 = load ptr, ptr %108, align 8, !tbaa !13
  %110 = load i64, ptr %14, align 8, !tbaa !14
  %111 = add nsw i64 %110, 1
  %112 = getelementptr inbounds double, ptr %109, i64 %111
  %113 = load double, ptr %112, align 8, !tbaa !11
  %114 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %107, double noundef %113)
  br label %115

115:                                              ; preds = %102, %99
  %116 = phi i1 [ true, %99 ], [ %114, %102 ]
  %117 = zext i1 %116 to i8
  store i8 %117, ptr %23, align 1, !tbaa !5
  br label %118

118:                                              ; preds = %115
  %119 = load i64, ptr %14, align 8, !tbaa !14
  %120 = add nsw i64 %119, 1
  store i64 %120, ptr %14, align 8, !tbaa !14
  br label %96, !llvm.loop !18

121:                                              ; preds = %96
  br label %123

122:                                              ; preds = %2
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %123

123:                                              ; preds = %122, %121
  %124 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef 5, ptr noundef %124)
  %125 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 5, ptr noundef %125)
  %126 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %127 = load ptr, ptr %126, align 8, !tbaa !13
  %128 = getelementptr inbounds double, ptr %127, i64 0
  store double 0.000000e+00, ptr %128, align 8, !tbaa !11
  store i64 1, ptr %14, align 8, !tbaa !14
  br label %129

129:                                              ; preds = %151, %123
  %130 = load i64, ptr %14, align 8, !tbaa !14
  %131 = icmp sle i64 %130, 4
  br i1 %131, label %132, label %154

132:                                              ; preds = %129
  %133 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %134 = load ptr, ptr %133, align 8, !tbaa !13
  %135 = load i64, ptr %14, align 8, !tbaa !14
  %136 = getelementptr inbounds double, ptr %134, i64 %135
  store double 0.000000e+00, ptr %136, align 8, !tbaa !11
  %137 = load i64, ptr %14, align 8, !tbaa !14
  %138 = sitofp i64 %137 to double
  %139 = load ptr, ptr %4, align 8, !tbaa !9
  %140 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %138, ptr noundef %139)
  %141 = load i64, ptr %14, align 8, !tbaa !14
  %142 = sitofp i64 %141 to double
  %143 = load ptr, ptr %4, align 8, !tbaa !9
  %144 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %142, ptr noundef %143)
  %145 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %144, double -1.000000e+00)
  %146 = fdiv double %140, %145
  %147 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %148 = load ptr, ptr %147, align 8, !tbaa !13
  %149 = load i64, ptr %14, align 8, !tbaa !14
  %150 = getelementptr inbounds double, ptr %148, i64 %149
  store double %146, ptr %150, align 8, !tbaa !11
  br label %151

151:                                              ; preds = %132
  %152 = load i64, ptr %14, align 8, !tbaa !14
  %153 = add nsw i64 %152, 1
  store i64 %153, ptr %14, align 8, !tbaa !14
  br label %129, !llvm.loop !20

154:                                              ; preds = %129
  %155 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13gqgeneraterecEPNS_9ae_vectorES1_dlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 2.000000e+00, i64 noundef 5, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %155)
  %156 = load i64, ptr %15, align 8, !tbaa !14
  %157 = icmp sgt i64 %156, 0
  br i1 %157, label %158, label %320

158:                                              ; preds = %154
  %159 = load double, ptr %12, align 8, !tbaa !11
  %160 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %161 = load ptr, ptr %160, align 8, !tbaa !13
  %162 = getelementptr inbounds double, ptr %161, i64 0
  %163 = load double, ptr %162, align 8, !tbaa !11
  %164 = load ptr, ptr %4, align 8, !tbaa !9
  %165 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+01, ptr noundef %164)
  %166 = call double @llvm.fmuladd.f64(double 1.400000e+01, double %165, double 2.450000e+02)
  %167 = load ptr, ptr %4, align 8, !tbaa !9
  %168 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %166, ptr noundef %167)
  %169 = fdiv double %168, 2.100000e+01
  %170 = fadd double %163, %169
  %171 = load ptr, ptr %4, align 8, !tbaa !9
  %172 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %170, ptr noundef %171)
  %173 = load ptr, ptr %4, align 8, !tbaa !9
  %174 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %159, double noundef %172, ptr noundef %173)
  store double %174, ptr %12, align 8, !tbaa !11
  %175 = load double, ptr %12, align 8, !tbaa !11
  %176 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %177 = load ptr, ptr %176, align 8, !tbaa !13
  %178 = getelementptr inbounds double, ptr %177, i64 0
  %179 = load double, ptr %178, align 8, !tbaa !11
  %180 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %181 = load ptr, ptr %180, align 8, !tbaa !13
  %182 = getelementptr inbounds double, ptr %181, i64 4
  %183 = load double, ptr %182, align 8, !tbaa !11
  %184 = fadd double %179, %183
  %185 = load ptr, ptr %4, align 8, !tbaa !9
  %186 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %184, ptr noundef %185)
  %187 = load ptr, ptr %4, align 8, !tbaa !9
  %188 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %175, double noundef %186, ptr noundef %187)
  store double %188, ptr %12, align 8, !tbaa !11
  %189 = load double, ptr %12, align 8, !tbaa !11
  %190 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %191 = load ptr, ptr %190, align 8, !tbaa !13
  %192 = getelementptr inbounds double, ptr %191, i64 1
  %193 = load double, ptr %192, align 8, !tbaa !11
  %194 = load ptr, ptr %4, align 8, !tbaa !9
  %195 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+01, ptr noundef %194)
  %196 = call double @llvm.fmuladd.f64(double -1.400000e+01, double %195, double 2.450000e+02)
  %197 = load ptr, ptr %4, align 8, !tbaa !9
  %198 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %196, ptr noundef %197)
  %199 = fdiv double %198, 2.100000e+01
  %200 = fadd double %193, %199
  %201 = load ptr, ptr %4, align 8, !tbaa !9
  %202 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %200, ptr noundef %201)
  %203 = load ptr, ptr %4, align 8, !tbaa !9
  %204 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %189, double noundef %202, ptr noundef %203)
  store double %204, ptr %12, align 8, !tbaa !11
  %205 = load double, ptr %12, align 8, !tbaa !11
  %206 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %207 = load ptr, ptr %206, align 8, !tbaa !13
  %208 = getelementptr inbounds double, ptr %207, i64 1
  %209 = load double, ptr %208, align 8, !tbaa !11
  %210 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %211 = load ptr, ptr %210, align 8, !tbaa !13
  %212 = getelementptr inbounds double, ptr %211, i64 3
  %213 = load double, ptr %212, align 8, !tbaa !11
  %214 = fadd double %209, %213
  %215 = load ptr, ptr %4, align 8, !tbaa !9
  %216 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %214, ptr noundef %215)
  %217 = load ptr, ptr %4, align 8, !tbaa !9
  %218 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %205, double noundef %216, ptr noundef %217)
  store double %218, ptr %12, align 8, !tbaa !11
  %219 = load double, ptr %12, align 8, !tbaa !11
  %220 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %221 = load ptr, ptr %220, align 8, !tbaa !13
  %222 = getelementptr inbounds double, ptr %221, i64 2
  %223 = load double, ptr %222, align 8, !tbaa !11
  %224 = load ptr, ptr %4, align 8, !tbaa !9
  %225 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %223, ptr noundef %224)
  %226 = load ptr, ptr %4, align 8, !tbaa !9
  %227 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %219, double noundef %225, ptr noundef %226)
  store double %227, ptr %12, align 8, !tbaa !11
  %228 = load double, ptr %12, align 8, !tbaa !11
  %229 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %230 = load ptr, ptr %229, align 8, !tbaa !13
  %231 = getelementptr inbounds double, ptr %230, i64 0
  %232 = load double, ptr %231, align 8, !tbaa !11
  %233 = load ptr, ptr %4, align 8, !tbaa !9
  %234 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+01, ptr noundef %233)
  %235 = call double @llvm.fmuladd.f64(double -1.300000e+01, double %234, double 3.220000e+02)
  %236 = fdiv double %235, 9.000000e+02
  %237 = fsub double %232, %236
  %238 = load ptr, ptr %4, align 8, !tbaa !9
  %239 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %237, ptr noundef %238)
  %240 = load ptr, ptr %4, align 8, !tbaa !9
  %241 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %228, double noundef %239, ptr noundef %240)
  store double %241, ptr %12, align 8, !tbaa !11
  %242 = load double, ptr %12, align 8, !tbaa !11
  %243 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %244 = load ptr, ptr %243, align 8, !tbaa !13
  %245 = getelementptr inbounds double, ptr %244, i64 0
  %246 = load double, ptr %245, align 8, !tbaa !11
  %247 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %248 = load ptr, ptr %247, align 8, !tbaa !13
  %249 = getelementptr inbounds double, ptr %248, i64 4
  %250 = load double, ptr %249, align 8, !tbaa !11
  %251 = fsub double %246, %250
  %252 = load ptr, ptr %4, align 8, !tbaa !9
  %253 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %251, ptr noundef %252)
  %254 = load ptr, ptr %4, align 8, !tbaa !9
  %255 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %242, double noundef %253, ptr noundef %254)
  store double %255, ptr %12, align 8, !tbaa !11
  %256 = load double, ptr %12, align 8, !tbaa !11
  %257 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %258 = load ptr, ptr %257, align 8, !tbaa !13
  %259 = getelementptr inbounds double, ptr %258, i64 1
  %260 = load double, ptr %259, align 8, !tbaa !11
  %261 = load ptr, ptr %4, align 8, !tbaa !9
  %262 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+01, ptr noundef %261)
  %263 = call double @llvm.fmuladd.f64(double 1.300000e+01, double %262, double 3.220000e+02)
  %264 = fdiv double %263, 9.000000e+02
  %265 = fsub double %260, %264
  %266 = load ptr, ptr %4, align 8, !tbaa !9
  %267 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %265, ptr noundef %266)
  %268 = load ptr, ptr %4, align 8, !tbaa !9
  %269 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %256, double noundef %267, ptr noundef %268)
  store double %269, ptr %12, align 8, !tbaa !11
  %270 = load double, ptr %12, align 8, !tbaa !11
  %271 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %272 = load ptr, ptr %271, align 8, !tbaa !13
  %273 = getelementptr inbounds double, ptr %272, i64 1
  %274 = load double, ptr %273, align 8, !tbaa !11
  %275 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %276 = load ptr, ptr %275, align 8, !tbaa !13
  %277 = getelementptr inbounds double, ptr %276, i64 3
  %278 = load double, ptr %277, align 8, !tbaa !11
  %279 = fsub double %274, %278
  %280 = load ptr, ptr %4, align 8, !tbaa !9
  %281 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %279, ptr noundef %280)
  %282 = load ptr, ptr %4, align 8, !tbaa !9
  %283 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %270, double noundef %281, ptr noundef %282)
  store double %283, ptr %12, align 8, !tbaa !11
  %284 = load double, ptr %12, align 8, !tbaa !11
  %285 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %286 = load ptr, ptr %285, align 8, !tbaa !13
  %287 = getelementptr inbounds double, ptr %286, i64 2
  %288 = load double, ptr %287, align 8, !tbaa !11
  %289 = fsub double %288, 0x3FE23456789ABCDF
  %290 = load ptr, ptr %4, align 8, !tbaa !9
  %291 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %289, ptr noundef %290)
  %292 = load ptr, ptr %4, align 8, !tbaa !9
  %293 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %284, double noundef %291, ptr noundef %292)
  store double %293, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %294

294:                                              ; preds = %316, %158
  %295 = load i64, ptr %14, align 8, !tbaa !14
  %296 = icmp sle i64 %295, 3
  br i1 %296, label %297, label %319

297:                                              ; preds = %294
  %298 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %299 = trunc i8 %298 to i1
  br i1 %299, label %313, label %300

300:                                              ; preds = %297
  %301 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %302 = load ptr, ptr %301, align 8, !tbaa !13
  %303 = load i64, ptr %14, align 8, !tbaa !14
  %304 = getelementptr inbounds double, ptr %302, i64 %303
  %305 = load double, ptr %304, align 8, !tbaa !11
  %306 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %307 = load ptr, ptr %306, align 8, !tbaa !13
  %308 = load i64, ptr %14, align 8, !tbaa !14
  %309 = add nsw i64 %308, 1
  %310 = getelementptr inbounds double, ptr %307, i64 %309
  %311 = load double, ptr %310, align 8, !tbaa !11
  %312 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %305, double noundef %311)
  br label %313

313:                                              ; preds = %300, %297
  %314 = phi i1 [ true, %297 ], [ %312, %300 ]
  %315 = zext i1 %314 to i8
  store i8 %315, ptr %23, align 1, !tbaa !5
  br label %316

316:                                              ; preds = %313
  %317 = load i64, ptr %14, align 8, !tbaa !14
  %318 = add nsw i64 %317, 1
  store i64 %318, ptr %14, align 8, !tbaa !14
  br label %294, !llvm.loop !21

319:                                              ; preds = %294
  br label %321

320:                                              ; preds = %154
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %321

321:                                              ; preds = %320, %319
  store i64 1, ptr %13, align 8, !tbaa !14
  br label %322

322:                                              ; preds = %448, %321
  %323 = load i64, ptr %13, align 8, !tbaa !14
  %324 = icmp sle i64 %323, 512
  br i1 %324, label %325, label %451

325:                                              ; preds = %322
  %326 = load i64, ptr %13, align 8, !tbaa !14
  %327 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef %326, ptr noundef %327)
  %328 = load i64, ptr %13, align 8, !tbaa !14
  %329 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef %328, ptr noundef %329)
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %330

330:                                              ; preds = %364, %325
  %331 = load i64, ptr %14, align 8, !tbaa !14
  %332 = load i64, ptr %13, align 8, !tbaa !14
  %333 = sub nsw i64 %332, 1
  %334 = icmp sle i64 %331, %333
  br i1 %334, label %335, label %367

335:                                              ; preds = %330
  %336 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %337 = load ptr, ptr %336, align 8, !tbaa !13
  %338 = load i64, ptr %14, align 8, !tbaa !14
  %339 = getelementptr inbounds double, ptr %337, i64 %338
  store double 0.000000e+00, ptr %339, align 8, !tbaa !11
  %340 = load i64, ptr %14, align 8, !tbaa !14
  %341 = icmp eq i64 %340, 0
  br i1 %341, label %342, label %347

342:                                              ; preds = %335
  %343 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %344 = load ptr, ptr %343, align 8, !tbaa !13
  %345 = load i64, ptr %14, align 8, !tbaa !14
  %346 = getelementptr inbounds double, ptr %344, i64 %345
  store double 0.000000e+00, ptr %346, align 8, !tbaa !11
  br label %347

347:                                              ; preds = %342, %335
  %348 = load i64, ptr %14, align 8, !tbaa !14
  %349 = icmp eq i64 %348, 1
  br i1 %349, label %350, label %355

350:                                              ; preds = %347
  %351 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %352 = load ptr, ptr %351, align 8, !tbaa !13
  %353 = load i64, ptr %14, align 8, !tbaa !14
  %354 = getelementptr inbounds double, ptr %352, i64 %353
  store double 5.000000e-01, ptr %354, align 8, !tbaa !11
  br label %355

355:                                              ; preds = %350, %347
  %356 = load i64, ptr %14, align 8, !tbaa !14
  %357 = icmp sgt i64 %356, 1
  br i1 %357, label %358, label %363

358:                                              ; preds = %355
  %359 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %360 = load ptr, ptr %359, align 8, !tbaa !13
  %361 = load i64, ptr %14, align 8, !tbaa !14
  %362 = getelementptr inbounds double, ptr %360, i64 %361
  store double 2.500000e-01, ptr %362, align 8, !tbaa !11
  br label %363

363:                                              ; preds = %358, %355
  br label %364

364:                                              ; preds = %363
  %365 = load i64, ptr %14, align 8, !tbaa !14
  %366 = add nsw i64 %365, 1
  store i64 %366, ptr %14, align 8, !tbaa !14
  br label %330, !llvm.loop !22

367:                                              ; preds = %330
  %368 = load i64, ptr %13, align 8, !tbaa !14
  %369 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13gqgeneraterecEPNS_9ae_vectorES1_dlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 0x400921FB54442D18, i64 noundef %368, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %369)
  %370 = load i64, ptr %15, align 8, !tbaa !14
  %371 = icmp sgt i64 %370, 0
  br i1 %371, label %372, label %447

372:                                              ; preds = %367
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %373

373:                                              ; preds = %415, %372
  %374 = load i64, ptr %14, align 8, !tbaa !14
  %375 = load i64, ptr %13, align 8, !tbaa !14
  %376 = sub nsw i64 %375, 1
  %377 = icmp sle i64 %374, %376
  br i1 %377, label %378, label %418

378:                                              ; preds = %373
  %379 = load double, ptr %12, align 8, !tbaa !11
  %380 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %381 = load ptr, ptr %380, align 8, !tbaa !13
  %382 = load i64, ptr %14, align 8, !tbaa !14
  %383 = getelementptr inbounds double, ptr %381, i64 %382
  %384 = load double, ptr %383, align 8, !tbaa !11
  %385 = load i64, ptr %13, align 8, !tbaa !14
  %386 = load i64, ptr %14, align 8, !tbaa !14
  %387 = sub nsw i64 %385, %386
  %388 = sitofp i64 %387 to double
  %389 = fsub double %388, 5.000000e-01
  %390 = fmul double 0x400921FB54442D18, %389
  %391 = load i64, ptr %13, align 8, !tbaa !14
  %392 = sitofp i64 %391 to double
  %393 = fdiv double %390, %392
  %394 = load ptr, ptr %4, align 8, !tbaa !9
  %395 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %393, ptr noundef %394)
  %396 = fsub double %384, %395
  %397 = load ptr, ptr %4, align 8, !tbaa !9
  %398 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %396, ptr noundef %397)
  %399 = load ptr, ptr %4, align 8, !tbaa !9
  %400 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %379, double noundef %398, ptr noundef %399)
  store double %400, ptr %12, align 8, !tbaa !11
  %401 = load double, ptr %12, align 8, !tbaa !11
  %402 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %403 = load ptr, ptr %402, align 8, !tbaa !13
  %404 = load i64, ptr %14, align 8, !tbaa !14
  %405 = getelementptr inbounds double, ptr %403, i64 %404
  %406 = load double, ptr %405, align 8, !tbaa !11
  %407 = load i64, ptr %13, align 8, !tbaa !14
  %408 = sitofp i64 %407 to double
  %409 = fdiv double 0x400921FB54442D18, %408
  %410 = fsub double %406, %409
  %411 = load ptr, ptr %4, align 8, !tbaa !9
  %412 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %410, ptr noundef %411)
  %413 = load ptr, ptr %4, align 8, !tbaa !9
  %414 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %401, double noundef %412, ptr noundef %413)
  store double %414, ptr %12, align 8, !tbaa !11
  br label %415

415:                                              ; preds = %378
  %416 = load i64, ptr %14, align 8, !tbaa !14
  %417 = add nsw i64 %416, 1
  store i64 %417, ptr %14, align 8, !tbaa !14
  br label %373, !llvm.loop !23

418:                                              ; preds = %373
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %419

419:                                              ; preds = %443, %418
  %420 = load i64, ptr %14, align 8, !tbaa !14
  %421 = load i64, ptr %13, align 8, !tbaa !14
  %422 = sub nsw i64 %421, 2
  %423 = icmp sle i64 %420, %422
  br i1 %423, label %424, label %446

424:                                              ; preds = %419
  %425 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %426 = trunc i8 %425 to i1
  br i1 %426, label %440, label %427

427:                                              ; preds = %424
  %428 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %429 = load ptr, ptr %428, align 8, !tbaa !13
  %430 = load i64, ptr %14, align 8, !tbaa !14
  %431 = getelementptr inbounds double, ptr %429, i64 %430
  %432 = load double, ptr %431, align 8, !tbaa !11
  %433 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %434 = load ptr, ptr %433, align 8, !tbaa !13
  %435 = load i64, ptr %14, align 8, !tbaa !14
  %436 = add nsw i64 %435, 1
  %437 = getelementptr inbounds double, ptr %434, i64 %436
  %438 = load double, ptr %437, align 8, !tbaa !11
  %439 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %432, double noundef %438)
  br label %440

440:                                              ; preds = %427, %424
  %441 = phi i1 [ true, %424 ], [ %439, %427 ]
  %442 = zext i1 %441 to i8
  store i8 %442, ptr %23, align 1, !tbaa !5
  br label %443

443:                                              ; preds = %440
  %444 = load i64, ptr %14, align 8, !tbaa !14
  %445 = add nsw i64 %444, 1
  store i64 %445, ptr %14, align 8, !tbaa !14
  br label %419, !llvm.loop !24

446:                                              ; preds = %419
  br label %448

447:                                              ; preds = %367
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %448

448:                                              ; preds = %447, %446
  %449 = load i64, ptr %13, align 8, !tbaa !14
  %450 = mul nsw i64 %449, 2
  store i64 %450, ptr %13, align 8, !tbaa !14
  br label %322, !llvm.loop !25

451:                                              ; preds = %322
  %452 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %453 = trunc i8 %452 to i1
  br i1 %453, label %458, label %454

454:                                              ; preds = %451
  %455 = load double, ptr %12, align 8, !tbaa !11
  %456 = load double, ptr %20, align 8, !tbaa !11
  %457 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %455, double noundef %456)
  br label %458

458:                                              ; preds = %454, %451
  %459 = phi i1 [ true, %451 ], [ %457, %454 ]
  %460 = zext i1 %459 to i8
  store i8 %460, ptr %23, align 1, !tbaa !5
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  %461 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef 2, ptr noundef %461)
  %462 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 2, ptr noundef %462)
  %463 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %464 = load ptr, ptr %463, align 8, !tbaa !13
  %465 = getelementptr inbounds double, ptr %464, i64 0
  store double 0.000000e+00, ptr %465, align 8, !tbaa !11
  %466 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %467 = load ptr, ptr %466, align 8, !tbaa !13
  %468 = getelementptr inbounds double, ptr %467, i64 1
  store double 0.000000e+00, ptr %468, align 8, !tbaa !11
  %469 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %470 = load ptr, ptr %469, align 8, !tbaa !13
  %471 = getelementptr inbounds double, ptr %470, i64 0
  store double 0.000000e+00, ptr %471, align 8, !tbaa !11
  %472 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %473 = load ptr, ptr %472, align 8, !tbaa !13
  %474 = getelementptr inbounds double, ptr %473, i64 1
  store double 0x3FD5555555555555, ptr %474, align 8, !tbaa !11
  %475 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl25gqgenerategausslobattorecEPNS_9ae_vectorES1_dddlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 2.000000e+00, double noundef -1.000000e+00, double noundef 1.000000e+00, i64 noundef 3, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %475)
  %476 = load i64, ptr %15, align 8, !tbaa !14
  %477 = icmp sgt i64 %476, 0
  br i1 %477, label %478, label %564

478:                                              ; preds = %458
  %479 = load double, ptr %12, align 8, !tbaa !11
  %480 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %481 = load ptr, ptr %480, align 8, !tbaa !13
  %482 = getelementptr inbounds double, ptr %481, i64 0
  %483 = load double, ptr %482, align 8, !tbaa !11
  %484 = fadd double %483, 1.000000e+00
  %485 = load ptr, ptr %4, align 8, !tbaa !9
  %486 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %484, ptr noundef %485)
  %487 = load ptr, ptr %4, align 8, !tbaa !9
  %488 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %479, double noundef %486, ptr noundef %487)
  store double %488, ptr %12, align 8, !tbaa !11
  %489 = load double, ptr %12, align 8, !tbaa !11
  %490 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %491 = load ptr, ptr %490, align 8, !tbaa !13
  %492 = getelementptr inbounds double, ptr %491, i64 1
  %493 = load double, ptr %492, align 8, !tbaa !11
  %494 = load ptr, ptr %4, align 8, !tbaa !9
  %495 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %493, ptr noundef %494)
  %496 = load ptr, ptr %4, align 8, !tbaa !9
  %497 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %489, double noundef %495, ptr noundef %496)
  store double %497, ptr %12, align 8, !tbaa !11
  %498 = load double, ptr %12, align 8, !tbaa !11
  %499 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %500 = load ptr, ptr %499, align 8, !tbaa !13
  %501 = getelementptr inbounds double, ptr %500, i64 2
  %502 = load double, ptr %501, align 8, !tbaa !11
  %503 = fsub double %502, 1.000000e+00
  %504 = load ptr, ptr %4, align 8, !tbaa !9
  %505 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %503, ptr noundef %504)
  %506 = load ptr, ptr %4, align 8, !tbaa !9
  %507 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %498, double noundef %505, ptr noundef %506)
  store double %507, ptr %12, align 8, !tbaa !11
  %508 = load double, ptr %12, align 8, !tbaa !11
  %509 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %510 = load ptr, ptr %509, align 8, !tbaa !13
  %511 = getelementptr inbounds double, ptr %510, i64 0
  %512 = load double, ptr %511, align 8, !tbaa !11
  %513 = fsub double %512, 0x3FD5555555555555
  %514 = load ptr, ptr %4, align 8, !tbaa !9
  %515 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %513, ptr noundef %514)
  %516 = load ptr, ptr %4, align 8, !tbaa !9
  %517 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %508, double noundef %515, ptr noundef %516)
  store double %517, ptr %12, align 8, !tbaa !11
  %518 = load double, ptr %12, align 8, !tbaa !11
  %519 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %520 = load ptr, ptr %519, align 8, !tbaa !13
  %521 = getelementptr inbounds double, ptr %520, i64 1
  %522 = load double, ptr %521, align 8, !tbaa !11
  %523 = fsub double %522, 0x3FF5555555555555
  %524 = load ptr, ptr %4, align 8, !tbaa !9
  %525 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %523, ptr noundef %524)
  %526 = load ptr, ptr %4, align 8, !tbaa !9
  %527 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %518, double noundef %525, ptr noundef %526)
  store double %527, ptr %12, align 8, !tbaa !11
  %528 = load double, ptr %12, align 8, !tbaa !11
  %529 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %530 = load ptr, ptr %529, align 8, !tbaa !13
  %531 = getelementptr inbounds double, ptr %530, i64 2
  %532 = load double, ptr %531, align 8, !tbaa !11
  %533 = fsub double %532, 0x3FD5555555555555
  %534 = load ptr, ptr %4, align 8, !tbaa !9
  %535 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %533, ptr noundef %534)
  %536 = load ptr, ptr %4, align 8, !tbaa !9
  %537 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %528, double noundef %535, ptr noundef %536)
  store double %537, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %538

538:                                              ; preds = %560, %478
  %539 = load i64, ptr %14, align 8, !tbaa !14
  %540 = icmp sle i64 %539, 1
  br i1 %540, label %541, label %563

541:                                              ; preds = %538
  %542 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %543 = trunc i8 %542 to i1
  br i1 %543, label %557, label %544

544:                                              ; preds = %541
  %545 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %546 = load ptr, ptr %545, align 8, !tbaa !13
  %547 = load i64, ptr %14, align 8, !tbaa !14
  %548 = getelementptr inbounds double, ptr %546, i64 %547
  %549 = load double, ptr %548, align 8, !tbaa !11
  %550 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %551 = load ptr, ptr %550, align 8, !tbaa !13
  %552 = load i64, ptr %14, align 8, !tbaa !14
  %553 = add nsw i64 %552, 1
  %554 = getelementptr inbounds double, ptr %551, i64 %553
  %555 = load double, ptr %554, align 8, !tbaa !11
  %556 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %549, double noundef %555)
  br label %557

557:                                              ; preds = %544, %541
  %558 = phi i1 [ true, %541 ], [ %556, %544 ]
  %559 = zext i1 %558 to i8
  store i8 %559, ptr %23, align 1, !tbaa !5
  br label %560

560:                                              ; preds = %557
  %561 = load i64, ptr %14, align 8, !tbaa !14
  %562 = add nsw i64 %561, 1
  store i64 %562, ptr %14, align 8, !tbaa !14
  br label %538, !llvm.loop !26

563:                                              ; preds = %538
  br label %565

564:                                              ; preds = %458
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %565

565:                                              ; preds = %564, %563
  %566 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef 3, ptr noundef %566)
  %567 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 3, ptr noundef %567)
  %568 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %569 = load ptr, ptr %568, align 8, !tbaa !13
  %570 = getelementptr inbounds double, ptr %569, i64 0
  store double 0.000000e+00, ptr %570, align 8, !tbaa !11
  %571 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %572 = load ptr, ptr %571, align 8, !tbaa !13
  %573 = getelementptr inbounds double, ptr %572, i64 1
  store double 0.000000e+00, ptr %573, align 8, !tbaa !11
  %574 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %575 = load ptr, ptr %574, align 8, !tbaa !13
  %576 = getelementptr inbounds double, ptr %575, i64 2
  store double 0.000000e+00, ptr %576, align 8, !tbaa !11
  %577 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %578 = load ptr, ptr %577, align 8, !tbaa !13
  %579 = getelementptr inbounds double, ptr %578, i64 0
  store double 0.000000e+00, ptr %579, align 8, !tbaa !11
  %580 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %581 = load ptr, ptr %580, align 8, !tbaa !13
  %582 = getelementptr inbounds double, ptr %581, i64 1
  store double 0x3FD5555555555555, ptr %582, align 8, !tbaa !11
  %583 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %584 = load ptr, ptr %583, align 8, !tbaa !13
  %585 = getelementptr inbounds double, ptr %584, i64 2
  store double 0x3FD1111111111111, ptr %585, align 8, !tbaa !11
  %586 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl25gqgenerategausslobattorecEPNS_9ae_vectorES1_dddlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 2.000000e+00, double noundef -1.000000e+00, double noundef 1.000000e+00, i64 noundef 4, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %586)
  %587 = load i64, ptr %15, align 8, !tbaa !14
  %588 = icmp sgt i64 %587, 0
  br i1 %588, label %589, label %702

589:                                              ; preds = %565
  %590 = load double, ptr %12, align 8, !tbaa !11
  %591 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %592 = load ptr, ptr %591, align 8, !tbaa !13
  %593 = getelementptr inbounds double, ptr %592, i64 0
  %594 = load double, ptr %593, align 8, !tbaa !11
  %595 = fadd double %594, 1.000000e+00
  %596 = load ptr, ptr %4, align 8, !tbaa !9
  %597 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %595, ptr noundef %596)
  %598 = load ptr, ptr %4, align 8, !tbaa !9
  %599 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %590, double noundef %597, ptr noundef %598)
  store double %599, ptr %12, align 8, !tbaa !11
  %600 = load double, ptr %12, align 8, !tbaa !11
  %601 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %602 = load ptr, ptr %601, align 8, !tbaa !13
  %603 = getelementptr inbounds double, ptr %602, i64 1
  %604 = load double, ptr %603, align 8, !tbaa !11
  %605 = load ptr, ptr %4, align 8, !tbaa !9
  %606 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e+00, ptr noundef %605)
  %607 = fdiv double %606, 5.000000e+00
  %608 = fadd double %604, %607
  %609 = load ptr, ptr %4, align 8, !tbaa !9
  %610 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %608, ptr noundef %609)
  %611 = load ptr, ptr %4, align 8, !tbaa !9
  %612 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %600, double noundef %610, ptr noundef %611)
  store double %612, ptr %12, align 8, !tbaa !11
  %613 = load double, ptr %12, align 8, !tbaa !11
  %614 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %615 = load ptr, ptr %614, align 8, !tbaa !13
  %616 = getelementptr inbounds double, ptr %615, i64 2
  %617 = load double, ptr %616, align 8, !tbaa !11
  %618 = load ptr, ptr %4, align 8, !tbaa !9
  %619 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e+00, ptr noundef %618)
  %620 = fdiv double %619, 5.000000e+00
  %621 = fsub double %617, %620
  %622 = load ptr, ptr %4, align 8, !tbaa !9
  %623 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %621, ptr noundef %622)
  %624 = load ptr, ptr %4, align 8, !tbaa !9
  %625 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %613, double noundef %623, ptr noundef %624)
  store double %625, ptr %12, align 8, !tbaa !11
  %626 = load double, ptr %12, align 8, !tbaa !11
  %627 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %628 = load ptr, ptr %627, align 8, !tbaa !13
  %629 = getelementptr inbounds double, ptr %628, i64 3
  %630 = load double, ptr %629, align 8, !tbaa !11
  %631 = fsub double %630, 1.000000e+00
  %632 = load ptr, ptr %4, align 8, !tbaa !9
  %633 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %631, ptr noundef %632)
  %634 = load ptr, ptr %4, align 8, !tbaa !9
  %635 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %626, double noundef %633, ptr noundef %634)
  store double %635, ptr %12, align 8, !tbaa !11
  %636 = load double, ptr %12, align 8, !tbaa !11
  %637 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %638 = load ptr, ptr %637, align 8, !tbaa !13
  %639 = getelementptr inbounds double, ptr %638, i64 0
  %640 = load double, ptr %639, align 8, !tbaa !11
  %641 = fsub double %640, 0x3FC5555555555555
  %642 = load ptr, ptr %4, align 8, !tbaa !9
  %643 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %641, ptr noundef %642)
  %644 = load ptr, ptr %4, align 8, !tbaa !9
  %645 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %636, double noundef %643, ptr noundef %644)
  store double %645, ptr %12, align 8, !tbaa !11
  %646 = load double, ptr %12, align 8, !tbaa !11
  %647 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %648 = load ptr, ptr %647, align 8, !tbaa !13
  %649 = getelementptr inbounds double, ptr %648, i64 1
  %650 = load double, ptr %649, align 8, !tbaa !11
  %651 = fsub double %650, 0x3FEAAAAAAAAAAAAB
  %652 = load ptr, ptr %4, align 8, !tbaa !9
  %653 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %651, ptr noundef %652)
  %654 = load ptr, ptr %4, align 8, !tbaa !9
  %655 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %646, double noundef %653, ptr noundef %654)
  store double %655, ptr %12, align 8, !tbaa !11
  %656 = load double, ptr %12, align 8, !tbaa !11
  %657 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %658 = load ptr, ptr %657, align 8, !tbaa !13
  %659 = getelementptr inbounds double, ptr %658, i64 2
  %660 = load double, ptr %659, align 8, !tbaa !11
  %661 = fsub double %660, 0x3FEAAAAAAAAAAAAB
  %662 = load ptr, ptr %4, align 8, !tbaa !9
  %663 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %661, ptr noundef %662)
  %664 = load ptr, ptr %4, align 8, !tbaa !9
  %665 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %656, double noundef %663, ptr noundef %664)
  store double %665, ptr %12, align 8, !tbaa !11
  %666 = load double, ptr %12, align 8, !tbaa !11
  %667 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %668 = load ptr, ptr %667, align 8, !tbaa !13
  %669 = getelementptr inbounds double, ptr %668, i64 3
  %670 = load double, ptr %669, align 8, !tbaa !11
  %671 = fsub double %670, 0x3FC5555555555555
  %672 = load ptr, ptr %4, align 8, !tbaa !9
  %673 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %671, ptr noundef %672)
  %674 = load ptr, ptr %4, align 8, !tbaa !9
  %675 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %666, double noundef %673, ptr noundef %674)
  store double %675, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %676

676:                                              ; preds = %698, %589
  %677 = load i64, ptr %14, align 8, !tbaa !14
  %678 = icmp sle i64 %677, 2
  br i1 %678, label %679, label %701

679:                                              ; preds = %676
  %680 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %681 = trunc i8 %680 to i1
  br i1 %681, label %695, label %682

682:                                              ; preds = %679
  %683 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %684 = load ptr, ptr %683, align 8, !tbaa !13
  %685 = load i64, ptr %14, align 8, !tbaa !14
  %686 = getelementptr inbounds double, ptr %684, i64 %685
  %687 = load double, ptr %686, align 8, !tbaa !11
  %688 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %689 = load ptr, ptr %688, align 8, !tbaa !13
  %690 = load i64, ptr %14, align 8, !tbaa !14
  %691 = add nsw i64 %690, 1
  %692 = getelementptr inbounds double, ptr %689, i64 %691
  %693 = load double, ptr %692, align 8, !tbaa !11
  %694 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %687, double noundef %693)
  br label %695

695:                                              ; preds = %682, %679
  %696 = phi i1 [ true, %679 ], [ %694, %682 ]
  %697 = zext i1 %696 to i8
  store i8 %697, ptr %23, align 1, !tbaa !5
  br label %698

698:                                              ; preds = %695
  %699 = load i64, ptr %14, align 8, !tbaa !14
  %700 = add nsw i64 %699, 1
  store i64 %700, ptr %14, align 8, !tbaa !14
  br label %676, !llvm.loop !27

701:                                              ; preds = %676
  br label %703

702:                                              ; preds = %565
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %703

703:                                              ; preds = %702, %701
  %704 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef 5, ptr noundef %704)
  %705 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 5, ptr noundef %705)
  %706 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %707 = load ptr, ptr %706, align 8, !tbaa !13
  %708 = getelementptr inbounds double, ptr %707, i64 0
  store double 0.000000e+00, ptr %708, align 8, !tbaa !11
  %709 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %710 = load ptr, ptr %709, align 8, !tbaa !13
  %711 = getelementptr inbounds double, ptr %710, i64 1
  store double 0.000000e+00, ptr %711, align 8, !tbaa !11
  %712 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %713 = load ptr, ptr %712, align 8, !tbaa !13
  %714 = getelementptr inbounds double, ptr %713, i64 2
  store double 0.000000e+00, ptr %714, align 8, !tbaa !11
  %715 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %716 = load ptr, ptr %715, align 8, !tbaa !13
  %717 = getelementptr inbounds double, ptr %716, i64 3
  store double 0.000000e+00, ptr %717, align 8, !tbaa !11
  %718 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %719 = load ptr, ptr %718, align 8, !tbaa !13
  %720 = getelementptr inbounds double, ptr %719, i64 4
  store double 0.000000e+00, ptr %720, align 8, !tbaa !11
  %721 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %722 = load ptr, ptr %721, align 8, !tbaa !13
  %723 = getelementptr inbounds double, ptr %722, i64 0
  store double 0.000000e+00, ptr %723, align 8, !tbaa !11
  %724 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %725 = load ptr, ptr %724, align 8, !tbaa !13
  %726 = getelementptr inbounds double, ptr %725, i64 1
  store double 0x3FD5555555555555, ptr %726, align 8, !tbaa !11
  %727 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %728 = load ptr, ptr %727, align 8, !tbaa !13
  %729 = getelementptr inbounds double, ptr %728, i64 2
  store double 0x3FD1111111111111, ptr %729, align 8, !tbaa !11
  %730 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %731 = load ptr, ptr %730, align 8, !tbaa !13
  %732 = getelementptr inbounds double, ptr %731, i64 3
  store double 0x3FD0750750750750, ptr %732, align 8, !tbaa !11
  %733 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %734 = load ptr, ptr %733, align 8, !tbaa !13
  %735 = getelementptr inbounds double, ptr %734, i64 4
  store double 0x3FD0410410410410, ptr %735, align 8, !tbaa !11
  %736 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl25gqgenerategausslobattorecEPNS_9ae_vectorES1_dddlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 2.000000e+00, double noundef -1.000000e+00, double noundef 1.000000e+00, i64 noundef 6, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %736)
  %737 = load i64, ptr %15, align 8, !tbaa !14
  %738 = icmp sgt i64 %737, 0
  br i1 %738, label %739, label %926

739:                                              ; preds = %703
  %740 = load double, ptr %12, align 8, !tbaa !11
  %741 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %742 = load ptr, ptr %741, align 8, !tbaa !13
  %743 = getelementptr inbounds double, ptr %742, i64 0
  %744 = load double, ptr %743, align 8, !tbaa !11
  %745 = fadd double %744, 1.000000e+00
  %746 = load ptr, ptr %4, align 8, !tbaa !9
  %747 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %745, ptr noundef %746)
  %748 = load ptr, ptr %4, align 8, !tbaa !9
  %749 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %740, double noundef %747, ptr noundef %748)
  store double %749, ptr %12, align 8, !tbaa !11
  %750 = load double, ptr %12, align 8, !tbaa !11
  %751 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %752 = load ptr, ptr %751, align 8, !tbaa !13
  %753 = getelementptr inbounds double, ptr %752, i64 1
  %754 = load double, ptr %753, align 8, !tbaa !11
  %755 = load ptr, ptr %4, align 8, !tbaa !9
  %756 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %755)
  %757 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %756, double 7.000000e+00)
  %758 = fdiv double %757, 2.100000e+01
  %759 = load ptr, ptr %4, align 8, !tbaa !9
  %760 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %758, ptr noundef %759)
  %761 = fadd double %754, %760
  %762 = load ptr, ptr %4, align 8, !tbaa !9
  %763 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %761, ptr noundef %762)
  %764 = load ptr, ptr %4, align 8, !tbaa !9
  %765 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %750, double noundef %763, ptr noundef %764)
  store double %765, ptr %12, align 8, !tbaa !11
  %766 = load double, ptr %12, align 8, !tbaa !11
  %767 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %768 = load ptr, ptr %767, align 8, !tbaa !13
  %769 = getelementptr inbounds double, ptr %768, i64 2
  %770 = load double, ptr %769, align 8, !tbaa !11
  %771 = load ptr, ptr %4, align 8, !tbaa !9
  %772 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %771)
  %773 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %772, double 7.000000e+00)
  %774 = fdiv double %773, 2.100000e+01
  %775 = load ptr, ptr %4, align 8, !tbaa !9
  %776 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %774, ptr noundef %775)
  %777 = fadd double %770, %776
  %778 = load ptr, ptr %4, align 8, !tbaa !9
  %779 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %777, ptr noundef %778)
  %780 = load ptr, ptr %4, align 8, !tbaa !9
  %781 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %766, double noundef %779, ptr noundef %780)
  store double %781, ptr %12, align 8, !tbaa !11
  %782 = load double, ptr %12, align 8, !tbaa !11
  %783 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %784 = load ptr, ptr %783, align 8, !tbaa !13
  %785 = getelementptr inbounds double, ptr %784, i64 3
  %786 = load double, ptr %785, align 8, !tbaa !11
  %787 = load ptr, ptr %4, align 8, !tbaa !9
  %788 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %787)
  %789 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %788, double 7.000000e+00)
  %790 = fdiv double %789, 2.100000e+01
  %791 = load ptr, ptr %4, align 8, !tbaa !9
  %792 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %790, ptr noundef %791)
  %793 = fsub double %786, %792
  %794 = load ptr, ptr %4, align 8, !tbaa !9
  %795 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %793, ptr noundef %794)
  %796 = load ptr, ptr %4, align 8, !tbaa !9
  %797 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %782, double noundef %795, ptr noundef %796)
  store double %797, ptr %12, align 8, !tbaa !11
  %798 = load double, ptr %12, align 8, !tbaa !11
  %799 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %800 = load ptr, ptr %799, align 8, !tbaa !13
  %801 = getelementptr inbounds double, ptr %800, i64 4
  %802 = load double, ptr %801, align 8, !tbaa !11
  %803 = load ptr, ptr %4, align 8, !tbaa !9
  %804 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %803)
  %805 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %804, double 7.000000e+00)
  %806 = fdiv double %805, 2.100000e+01
  %807 = load ptr, ptr %4, align 8, !tbaa !9
  %808 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %806, ptr noundef %807)
  %809 = fsub double %802, %808
  %810 = load ptr, ptr %4, align 8, !tbaa !9
  %811 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %809, ptr noundef %810)
  %812 = load ptr, ptr %4, align 8, !tbaa !9
  %813 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %798, double noundef %811, ptr noundef %812)
  store double %813, ptr %12, align 8, !tbaa !11
  %814 = load double, ptr %12, align 8, !tbaa !11
  %815 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %816 = load ptr, ptr %815, align 8, !tbaa !13
  %817 = getelementptr inbounds double, ptr %816, i64 5
  %818 = load double, ptr %817, align 8, !tbaa !11
  %819 = fsub double %818, 1.000000e+00
  %820 = load ptr, ptr %4, align 8, !tbaa !9
  %821 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %819, ptr noundef %820)
  %822 = load ptr, ptr %4, align 8, !tbaa !9
  %823 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %814, double noundef %821, ptr noundef %822)
  store double %823, ptr %12, align 8, !tbaa !11
  %824 = load double, ptr %12, align 8, !tbaa !11
  %825 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %826 = load ptr, ptr %825, align 8, !tbaa !13
  %827 = getelementptr inbounds double, ptr %826, i64 0
  %828 = load double, ptr %827, align 8, !tbaa !11
  %829 = fsub double %828, 0x3FB1111111111111
  %830 = load ptr, ptr %4, align 8, !tbaa !9
  %831 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %829, ptr noundef %830)
  %832 = load ptr, ptr %4, align 8, !tbaa !9
  %833 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %824, double noundef %831, ptr noundef %832)
  store double %833, ptr %12, align 8, !tbaa !11
  %834 = load double, ptr %12, align 8, !tbaa !11
  %835 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %836 = load ptr, ptr %835, align 8, !tbaa !13
  %837 = getelementptr inbounds double, ptr %836, i64 1
  %838 = load double, ptr %837, align 8, !tbaa !11
  %839 = load ptr, ptr %4, align 8, !tbaa !9
  %840 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %839)
  %841 = fsub double 1.400000e+01, %840
  %842 = fdiv double %841, 3.000000e+01
  %843 = fsub double %838, %842
  %844 = load ptr, ptr %4, align 8, !tbaa !9
  %845 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %843, ptr noundef %844)
  %846 = load ptr, ptr %4, align 8, !tbaa !9
  %847 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %834, double noundef %845, ptr noundef %846)
  store double %847, ptr %12, align 8, !tbaa !11
  %848 = load double, ptr %12, align 8, !tbaa !11
  %849 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %850 = load ptr, ptr %849, align 8, !tbaa !13
  %851 = getelementptr inbounds double, ptr %850, i64 2
  %852 = load double, ptr %851, align 8, !tbaa !11
  %853 = load ptr, ptr %4, align 8, !tbaa !9
  %854 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %853)
  %855 = fadd double 1.400000e+01, %854
  %856 = fdiv double %855, 3.000000e+01
  %857 = fsub double %852, %856
  %858 = load ptr, ptr %4, align 8, !tbaa !9
  %859 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %857, ptr noundef %858)
  %860 = load ptr, ptr %4, align 8, !tbaa !9
  %861 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %848, double noundef %859, ptr noundef %860)
  store double %861, ptr %12, align 8, !tbaa !11
  %862 = load double, ptr %12, align 8, !tbaa !11
  %863 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %864 = load ptr, ptr %863, align 8, !tbaa !13
  %865 = getelementptr inbounds double, ptr %864, i64 3
  %866 = load double, ptr %865, align 8, !tbaa !11
  %867 = load ptr, ptr %4, align 8, !tbaa !9
  %868 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %867)
  %869 = fadd double 1.400000e+01, %868
  %870 = fdiv double %869, 3.000000e+01
  %871 = fsub double %866, %870
  %872 = load ptr, ptr %4, align 8, !tbaa !9
  %873 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %871, ptr noundef %872)
  %874 = load ptr, ptr %4, align 8, !tbaa !9
  %875 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %862, double noundef %873, ptr noundef %874)
  store double %875, ptr %12, align 8, !tbaa !11
  %876 = load double, ptr %12, align 8, !tbaa !11
  %877 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %878 = load ptr, ptr %877, align 8, !tbaa !13
  %879 = getelementptr inbounds double, ptr %878, i64 4
  %880 = load double, ptr %879, align 8, !tbaa !11
  %881 = load ptr, ptr %4, align 8, !tbaa !9
  %882 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %881)
  %883 = fsub double 1.400000e+01, %882
  %884 = fdiv double %883, 3.000000e+01
  %885 = fsub double %880, %884
  %886 = load ptr, ptr %4, align 8, !tbaa !9
  %887 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %885, ptr noundef %886)
  %888 = load ptr, ptr %4, align 8, !tbaa !9
  %889 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %876, double noundef %887, ptr noundef %888)
  store double %889, ptr %12, align 8, !tbaa !11
  %890 = load double, ptr %12, align 8, !tbaa !11
  %891 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %892 = load ptr, ptr %891, align 8, !tbaa !13
  %893 = getelementptr inbounds double, ptr %892, i64 5
  %894 = load double, ptr %893, align 8, !tbaa !11
  %895 = fsub double %894, 0x3FB1111111111111
  %896 = load ptr, ptr %4, align 8, !tbaa !9
  %897 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %895, ptr noundef %896)
  %898 = load ptr, ptr %4, align 8, !tbaa !9
  %899 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %890, double noundef %897, ptr noundef %898)
  store double %899, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %900

900:                                              ; preds = %922, %739
  %901 = load i64, ptr %14, align 8, !tbaa !14
  %902 = icmp sle i64 %901, 4
  br i1 %902, label %903, label %925

903:                                              ; preds = %900
  %904 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %905 = trunc i8 %904 to i1
  br i1 %905, label %919, label %906

906:                                              ; preds = %903
  %907 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %908 = load ptr, ptr %907, align 8, !tbaa !13
  %909 = load i64, ptr %14, align 8, !tbaa !14
  %910 = getelementptr inbounds double, ptr %908, i64 %909
  %911 = load double, ptr %910, align 8, !tbaa !11
  %912 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %913 = load ptr, ptr %912, align 8, !tbaa !13
  %914 = load i64, ptr %14, align 8, !tbaa !14
  %915 = add nsw i64 %914, 1
  %916 = getelementptr inbounds double, ptr %913, i64 %915
  %917 = load double, ptr %916, align 8, !tbaa !11
  %918 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %911, double noundef %917)
  br label %919

919:                                              ; preds = %906, %903
  %920 = phi i1 [ true, %903 ], [ %918, %906 ]
  %921 = zext i1 %920 to i8
  store i8 %921, ptr %23, align 1, !tbaa !5
  br label %922

922:                                              ; preds = %919
  %923 = load i64, ptr %14, align 8, !tbaa !14
  %924 = add nsw i64 %923, 1
  store i64 %924, ptr %14, align 8, !tbaa !14
  br label %900, !llvm.loop !28

925:                                              ; preds = %900
  br label %927

926:                                              ; preds = %703
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %927

927:                                              ; preds = %926, %925
  %928 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %929 = trunc i8 %928 to i1
  br i1 %929, label %934, label %930

930:                                              ; preds = %927
  %931 = load double, ptr %12, align 8, !tbaa !11
  %932 = load double, ptr %20, align 8, !tbaa !11
  %933 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %931, double noundef %932)
  br label %934

934:                                              ; preds = %930, %927
  %935 = phi i1 [ true, %927 ], [ %933, %930 ]
  %936 = zext i1 %935 to i8
  store i8 %936, ptr %23, align 1, !tbaa !5
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  %937 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef 1, ptr noundef %937)
  %938 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 2, ptr noundef %938)
  %939 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %940 = load ptr, ptr %939, align 8, !tbaa !13
  %941 = getelementptr inbounds double, ptr %940, i64 0
  store double 0.000000e+00, ptr %941, align 8, !tbaa !11
  %942 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %943 = load ptr, ptr %942, align 8, !tbaa !13
  %944 = getelementptr inbounds double, ptr %943, i64 0
  store double 0.000000e+00, ptr %944, align 8, !tbaa !11
  %945 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %946 = load ptr, ptr %945, align 8, !tbaa !13
  %947 = getelementptr inbounds double, ptr %946, i64 1
  store double 0x3FD5555555555555, ptr %947, align 8, !tbaa !11
  %948 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl23gqgenerategaussradaurecEPNS_9ae_vectorES1_ddlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 2.000000e+00, double noundef -1.000000e+00, i64 noundef 2, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %948)
  %949 = load i64, ptr %15, align 8, !tbaa !14
  %950 = icmp sgt i64 %949, 0
  br i1 %950, label %951, label %1018

951:                                              ; preds = %934
  %952 = load double, ptr %12, align 8, !tbaa !11
  %953 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %954 = load ptr, ptr %953, align 8, !tbaa !13
  %955 = getelementptr inbounds double, ptr %954, i64 0
  %956 = load double, ptr %955, align 8, !tbaa !11
  %957 = fadd double %956, 1.000000e+00
  %958 = load ptr, ptr %4, align 8, !tbaa !9
  %959 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %957, ptr noundef %958)
  %960 = load ptr, ptr %4, align 8, !tbaa !9
  %961 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %952, double noundef %959, ptr noundef %960)
  store double %961, ptr %12, align 8, !tbaa !11
  %962 = load double, ptr %12, align 8, !tbaa !11
  %963 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %964 = load ptr, ptr %963, align 8, !tbaa !13
  %965 = getelementptr inbounds double, ptr %964, i64 1
  %966 = load double, ptr %965, align 8, !tbaa !11
  %967 = fsub double %966, 0x3FD5555555555555
  %968 = load ptr, ptr %4, align 8, !tbaa !9
  %969 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %967, ptr noundef %968)
  %970 = load ptr, ptr %4, align 8, !tbaa !9
  %971 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %962, double noundef %969, ptr noundef %970)
  store double %971, ptr %12, align 8, !tbaa !11
  %972 = load double, ptr %12, align 8, !tbaa !11
  %973 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %974 = load ptr, ptr %973, align 8, !tbaa !13
  %975 = getelementptr inbounds double, ptr %974, i64 0
  %976 = load double, ptr %975, align 8, !tbaa !11
  %977 = fsub double %976, 5.000000e-01
  %978 = load ptr, ptr %4, align 8, !tbaa !9
  %979 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %977, ptr noundef %978)
  %980 = load ptr, ptr %4, align 8, !tbaa !9
  %981 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %972, double noundef %979, ptr noundef %980)
  store double %981, ptr %12, align 8, !tbaa !11
  %982 = load double, ptr %12, align 8, !tbaa !11
  %983 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %984 = load ptr, ptr %983, align 8, !tbaa !13
  %985 = getelementptr inbounds double, ptr %984, i64 1
  %986 = load double, ptr %985, align 8, !tbaa !11
  %987 = fsub double %986, 1.500000e+00
  %988 = load ptr, ptr %4, align 8, !tbaa !9
  %989 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %987, ptr noundef %988)
  %990 = load ptr, ptr %4, align 8, !tbaa !9
  %991 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %982, double noundef %989, ptr noundef %990)
  store double %991, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %992

992:                                              ; preds = %1014, %951
  %993 = load i64, ptr %14, align 8, !tbaa !14
  %994 = icmp sle i64 %993, 0
  br i1 %994, label %995, label %1017

995:                                              ; preds = %992
  %996 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %997 = trunc i8 %996 to i1
  br i1 %997, label %1011, label %998

998:                                              ; preds = %995
  %999 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1000 = load ptr, ptr %999, align 8, !tbaa !13
  %1001 = load i64, ptr %14, align 8, !tbaa !14
  %1002 = getelementptr inbounds double, ptr %1000, i64 %1001
  %1003 = load double, ptr %1002, align 8, !tbaa !11
  %1004 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1005 = load ptr, ptr %1004, align 8, !tbaa !13
  %1006 = load i64, ptr %14, align 8, !tbaa !14
  %1007 = add nsw i64 %1006, 1
  %1008 = getelementptr inbounds double, ptr %1005, i64 %1007
  %1009 = load double, ptr %1008, align 8, !tbaa !11
  %1010 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1003, double noundef %1009)
  br label %1011

1011:                                             ; preds = %998, %995
  %1012 = phi i1 [ true, %995 ], [ %1010, %998 ]
  %1013 = zext i1 %1012 to i8
  store i8 %1013, ptr %23, align 1, !tbaa !5
  br label %1014

1014:                                             ; preds = %1011
  %1015 = load i64, ptr %14, align 8, !tbaa !14
  %1016 = add nsw i64 %1015, 1
  store i64 %1016, ptr %14, align 8, !tbaa !14
  br label %992, !llvm.loop !29

1017:                                             ; preds = %992
  br label %1019

1018:                                             ; preds = %934
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %1019

1019:                                             ; preds = %1018, %1017
  %1020 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef 2, ptr noundef %1020)
  %1021 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 3, ptr noundef %1021)
  %1022 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %1023 = load ptr, ptr %1022, align 8, !tbaa !13
  %1024 = getelementptr inbounds double, ptr %1023, i64 0
  store double 0.000000e+00, ptr %1024, align 8, !tbaa !11
  %1025 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %1026 = load ptr, ptr %1025, align 8, !tbaa !13
  %1027 = getelementptr inbounds double, ptr %1026, i64 1
  store double 0.000000e+00, ptr %1027, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1028

1028:                                             ; preds = %1046, %1019
  %1029 = load i64, ptr %14, align 8, !tbaa !14
  %1030 = icmp sle i64 %1029, 2
  br i1 %1030, label %1031, label %1049

1031:                                             ; preds = %1028
  %1032 = load i64, ptr %14, align 8, !tbaa !14
  %1033 = sitofp i64 %1032 to double
  %1034 = load ptr, ptr %4, align 8, !tbaa !9
  %1035 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1033, ptr noundef %1034)
  %1036 = load i64, ptr %14, align 8, !tbaa !14
  %1037 = sitofp i64 %1036 to double
  %1038 = load ptr, ptr %4, align 8, !tbaa !9
  %1039 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1037, ptr noundef %1038)
  %1040 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %1039, double -1.000000e+00)
  %1041 = fdiv double %1035, %1040
  %1042 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %1043 = load ptr, ptr %1042, align 8, !tbaa !13
  %1044 = load i64, ptr %14, align 8, !tbaa !14
  %1045 = getelementptr inbounds double, ptr %1043, i64 %1044
  store double %1041, ptr %1045, align 8, !tbaa !11
  br label %1046

1046:                                             ; preds = %1031
  %1047 = load i64, ptr %14, align 8, !tbaa !14
  %1048 = add nsw i64 %1047, 1
  store i64 %1048, ptr %14, align 8, !tbaa !14
  br label %1028, !llvm.loop !30

1049:                                             ; preds = %1028
  %1050 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl23gqgenerategaussradaurecEPNS_9ae_vectorES1_ddlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 2.000000e+00, double noundef -1.000000e+00, i64 noundef 3, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %1050)
  %1051 = load i64, ptr %15, align 8, !tbaa !14
  %1052 = icmp sgt i64 %1051, 0
  br i1 %1052, label %1053, label %1156

1053:                                             ; preds = %1049
  %1054 = load double, ptr %12, align 8, !tbaa !11
  %1055 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1056 = load ptr, ptr %1055, align 8, !tbaa !13
  %1057 = getelementptr inbounds double, ptr %1056, i64 0
  %1058 = load double, ptr %1057, align 8, !tbaa !11
  %1059 = fadd double %1058, 1.000000e+00
  %1060 = load ptr, ptr %4, align 8, !tbaa !9
  %1061 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1059, ptr noundef %1060)
  %1062 = load ptr, ptr %4, align 8, !tbaa !9
  %1063 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1054, double noundef %1061, ptr noundef %1062)
  store double %1063, ptr %12, align 8, !tbaa !11
  %1064 = load double, ptr %12, align 8, !tbaa !11
  %1065 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1066 = load ptr, ptr %1065, align 8, !tbaa !13
  %1067 = getelementptr inbounds double, ptr %1066, i64 1
  %1068 = load double, ptr %1067, align 8, !tbaa !11
  %1069 = load ptr, ptr %4, align 8, !tbaa !9
  %1070 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1069)
  %1071 = fsub double 1.000000e+00, %1070
  %1072 = fdiv double %1071, 5.000000e+00
  %1073 = fsub double %1068, %1072
  %1074 = load ptr, ptr %4, align 8, !tbaa !9
  %1075 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1073, ptr noundef %1074)
  %1076 = load ptr, ptr %4, align 8, !tbaa !9
  %1077 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1064, double noundef %1075, ptr noundef %1076)
  store double %1077, ptr %12, align 8, !tbaa !11
  %1078 = load double, ptr %12, align 8, !tbaa !11
  %1079 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1080 = load ptr, ptr %1079, align 8, !tbaa !13
  %1081 = getelementptr inbounds double, ptr %1080, i64 2
  %1082 = load double, ptr %1081, align 8, !tbaa !11
  %1083 = load ptr, ptr %4, align 8, !tbaa !9
  %1084 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1083)
  %1085 = fadd double 1.000000e+00, %1084
  %1086 = fdiv double %1085, 5.000000e+00
  %1087 = fsub double %1082, %1086
  %1088 = load ptr, ptr %4, align 8, !tbaa !9
  %1089 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1087, ptr noundef %1088)
  %1090 = load ptr, ptr %4, align 8, !tbaa !9
  %1091 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1078, double noundef %1089, ptr noundef %1090)
  store double %1091, ptr %12, align 8, !tbaa !11
  %1092 = load double, ptr %12, align 8, !tbaa !11
  %1093 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1094 = load ptr, ptr %1093, align 8, !tbaa !13
  %1095 = getelementptr inbounds double, ptr %1094, i64 0
  %1096 = load double, ptr %1095, align 8, !tbaa !11
  %1097 = fsub double %1096, 0x3FCC71C71C71C71C
  %1098 = load ptr, ptr %4, align 8, !tbaa !9
  %1099 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1097, ptr noundef %1098)
  %1100 = load ptr, ptr %4, align 8, !tbaa !9
  %1101 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1092, double noundef %1099, ptr noundef %1100)
  store double %1101, ptr %12, align 8, !tbaa !11
  %1102 = load double, ptr %12, align 8, !tbaa !11
  %1103 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1104 = load ptr, ptr %1103, align 8, !tbaa !13
  %1105 = getelementptr inbounds double, ptr %1104, i64 1
  %1106 = load double, ptr %1105, align 8, !tbaa !11
  %1107 = load ptr, ptr %4, align 8, !tbaa !9
  %1108 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1107)
  %1109 = fadd double 1.600000e+01, %1108
  %1110 = fdiv double %1109, 1.800000e+01
  %1111 = fsub double %1106, %1110
  %1112 = load ptr, ptr %4, align 8, !tbaa !9
  %1113 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1111, ptr noundef %1112)
  %1114 = load ptr, ptr %4, align 8, !tbaa !9
  %1115 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1102, double noundef %1113, ptr noundef %1114)
  store double %1115, ptr %12, align 8, !tbaa !11
  %1116 = load double, ptr %12, align 8, !tbaa !11
  %1117 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1118 = load ptr, ptr %1117, align 8, !tbaa !13
  %1119 = getelementptr inbounds double, ptr %1118, i64 2
  %1120 = load double, ptr %1119, align 8, !tbaa !11
  %1121 = load ptr, ptr %4, align 8, !tbaa !9
  %1122 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1121)
  %1123 = fsub double 1.600000e+01, %1122
  %1124 = fdiv double %1123, 1.800000e+01
  %1125 = fsub double %1120, %1124
  %1126 = load ptr, ptr %4, align 8, !tbaa !9
  %1127 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1125, ptr noundef %1126)
  %1128 = load ptr, ptr %4, align 8, !tbaa !9
  %1129 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1116, double noundef %1127, ptr noundef %1128)
  store double %1129, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1130

1130:                                             ; preds = %1152, %1053
  %1131 = load i64, ptr %14, align 8, !tbaa !14
  %1132 = icmp sle i64 %1131, 1
  br i1 %1132, label %1133, label %1155

1133:                                             ; preds = %1130
  %1134 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %1135 = trunc i8 %1134 to i1
  br i1 %1135, label %1149, label %1136

1136:                                             ; preds = %1133
  %1137 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1138 = load ptr, ptr %1137, align 8, !tbaa !13
  %1139 = load i64, ptr %14, align 8, !tbaa !14
  %1140 = getelementptr inbounds double, ptr %1138, i64 %1139
  %1141 = load double, ptr %1140, align 8, !tbaa !11
  %1142 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1143 = load ptr, ptr %1142, align 8, !tbaa !13
  %1144 = load i64, ptr %14, align 8, !tbaa !14
  %1145 = add nsw i64 %1144, 1
  %1146 = getelementptr inbounds double, ptr %1143, i64 %1145
  %1147 = load double, ptr %1146, align 8, !tbaa !11
  %1148 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1141, double noundef %1147)
  br label %1149

1149:                                             ; preds = %1136, %1133
  %1150 = phi i1 [ true, %1133 ], [ %1148, %1136 ]
  %1151 = zext i1 %1150 to i8
  store i8 %1151, ptr %23, align 1, !tbaa !5
  br label %1152

1152:                                             ; preds = %1149
  %1153 = load i64, ptr %14, align 8, !tbaa !14
  %1154 = add nsw i64 %1153, 1
  store i64 %1154, ptr %14, align 8, !tbaa !14
  br label %1130, !llvm.loop !31

1155:                                             ; preds = %1130
  br label %1157

1156:                                             ; preds = %1049
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %1157

1157:                                             ; preds = %1156, %1155
  %1158 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %6, i64 noundef 2, ptr noundef %1158)
  %1159 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %7, i64 noundef 3, ptr noundef %1159)
  %1160 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %1161 = load ptr, ptr %1160, align 8, !tbaa !13
  %1162 = getelementptr inbounds double, ptr %1161, i64 0
  store double 0.000000e+00, ptr %1162, align 8, !tbaa !11
  %1163 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %6, i32 0, i32 4
  %1164 = load ptr, ptr %1163, align 8, !tbaa !13
  %1165 = getelementptr inbounds double, ptr %1164, i64 1
  store double 0.000000e+00, ptr %1165, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1166

1166:                                             ; preds = %1184, %1157
  %1167 = load i64, ptr %14, align 8, !tbaa !14
  %1168 = icmp sle i64 %1167, 2
  br i1 %1168, label %1169, label %1187

1169:                                             ; preds = %1166
  %1170 = load i64, ptr %14, align 8, !tbaa !14
  %1171 = sitofp i64 %1170 to double
  %1172 = load ptr, ptr %4, align 8, !tbaa !9
  %1173 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1171, ptr noundef %1172)
  %1174 = load i64, ptr %14, align 8, !tbaa !14
  %1175 = sitofp i64 %1174 to double
  %1176 = load ptr, ptr %4, align 8, !tbaa !9
  %1177 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1175, ptr noundef %1176)
  %1178 = call double @llvm.fmuladd.f64(double 4.000000e+00, double %1177, double -1.000000e+00)
  %1179 = fdiv double %1173, %1178
  %1180 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %7, i32 0, i32 4
  %1181 = load ptr, ptr %1180, align 8, !tbaa !13
  %1182 = load i64, ptr %14, align 8, !tbaa !14
  %1183 = getelementptr inbounds double, ptr %1181, i64 %1182
  store double %1179, ptr %1183, align 8, !tbaa !11
  br label %1184

1184:                                             ; preds = %1169
  %1185 = load i64, ptr %14, align 8, !tbaa !14
  %1186 = add nsw i64 %1185, 1
  store i64 %1186, ptr %14, align 8, !tbaa !14
  br label %1166, !llvm.loop !32

1187:                                             ; preds = %1166
  %1188 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl23gqgenerategaussradaurecEPNS_9ae_vectorES1_ddlPlS1_S1_PNS_8ae_stateE(ptr noundef %6, ptr noundef %7, double noundef 2.000000e+00, double noundef 1.000000e+00, i64 noundef 3, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %1188)
  %1189 = load i64, ptr %15, align 8, !tbaa !14
  %1190 = icmp sgt i64 %1189, 0
  br i1 %1190, label %1191, label %1294

1191:                                             ; preds = %1187
  %1192 = load double, ptr %12, align 8, !tbaa !11
  %1193 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1194 = load ptr, ptr %1193, align 8, !tbaa !13
  %1195 = getelementptr inbounds double, ptr %1194, i64 2
  %1196 = load double, ptr %1195, align 8, !tbaa !11
  %1197 = fsub double %1196, 1.000000e+00
  %1198 = load ptr, ptr %4, align 8, !tbaa !9
  %1199 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1197, ptr noundef %1198)
  %1200 = load ptr, ptr %4, align 8, !tbaa !9
  %1201 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1192, double noundef %1199, ptr noundef %1200)
  store double %1201, ptr %12, align 8, !tbaa !11
  %1202 = load double, ptr %12, align 8, !tbaa !11
  %1203 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1204 = load ptr, ptr %1203, align 8, !tbaa !13
  %1205 = getelementptr inbounds double, ptr %1204, i64 1
  %1206 = load double, ptr %1205, align 8, !tbaa !11
  %1207 = load ptr, ptr %4, align 8, !tbaa !9
  %1208 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1207)
  %1209 = fsub double 1.000000e+00, %1208
  %1210 = fdiv double %1209, 5.000000e+00
  %1211 = fadd double %1206, %1210
  %1212 = load ptr, ptr %4, align 8, !tbaa !9
  %1213 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1211, ptr noundef %1212)
  %1214 = load ptr, ptr %4, align 8, !tbaa !9
  %1215 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1202, double noundef %1213, ptr noundef %1214)
  store double %1215, ptr %12, align 8, !tbaa !11
  %1216 = load double, ptr %12, align 8, !tbaa !11
  %1217 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1218 = load ptr, ptr %1217, align 8, !tbaa !13
  %1219 = getelementptr inbounds double, ptr %1218, i64 0
  %1220 = load double, ptr %1219, align 8, !tbaa !11
  %1221 = load ptr, ptr %4, align 8, !tbaa !9
  %1222 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1221)
  %1223 = fadd double 1.000000e+00, %1222
  %1224 = fdiv double %1223, 5.000000e+00
  %1225 = fadd double %1220, %1224
  %1226 = load ptr, ptr %4, align 8, !tbaa !9
  %1227 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1225, ptr noundef %1226)
  %1228 = load ptr, ptr %4, align 8, !tbaa !9
  %1229 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1216, double noundef %1227, ptr noundef %1228)
  store double %1229, ptr %12, align 8, !tbaa !11
  %1230 = load double, ptr %12, align 8, !tbaa !11
  %1231 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1232 = load ptr, ptr %1231, align 8, !tbaa !13
  %1233 = getelementptr inbounds double, ptr %1232, i64 2
  %1234 = load double, ptr %1233, align 8, !tbaa !11
  %1235 = fsub double %1234, 0x3FCC71C71C71C71C
  %1236 = load ptr, ptr %4, align 8, !tbaa !9
  %1237 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1235, ptr noundef %1236)
  %1238 = load ptr, ptr %4, align 8, !tbaa !9
  %1239 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1230, double noundef %1237, ptr noundef %1238)
  store double %1239, ptr %12, align 8, !tbaa !11
  %1240 = load double, ptr %12, align 8, !tbaa !11
  %1241 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1242 = load ptr, ptr %1241, align 8, !tbaa !13
  %1243 = getelementptr inbounds double, ptr %1242, i64 1
  %1244 = load double, ptr %1243, align 8, !tbaa !11
  %1245 = load ptr, ptr %4, align 8, !tbaa !9
  %1246 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1245)
  %1247 = fadd double 1.600000e+01, %1246
  %1248 = fdiv double %1247, 1.800000e+01
  %1249 = fsub double %1244, %1248
  %1250 = load ptr, ptr %4, align 8, !tbaa !9
  %1251 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1249, ptr noundef %1250)
  %1252 = load ptr, ptr %4, align 8, !tbaa !9
  %1253 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1240, double noundef %1251, ptr noundef %1252)
  store double %1253, ptr %12, align 8, !tbaa !11
  %1254 = load double, ptr %12, align 8, !tbaa !11
  %1255 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1256 = load ptr, ptr %1255, align 8, !tbaa !13
  %1257 = getelementptr inbounds double, ptr %1256, i64 0
  %1258 = load double, ptr %1257, align 8, !tbaa !11
  %1259 = load ptr, ptr %4, align 8, !tbaa !9
  %1260 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1259)
  %1261 = fsub double 1.600000e+01, %1260
  %1262 = fdiv double %1261, 1.800000e+01
  %1263 = fsub double %1258, %1262
  %1264 = load ptr, ptr %4, align 8, !tbaa !9
  %1265 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1263, ptr noundef %1264)
  %1266 = load ptr, ptr %4, align 8, !tbaa !9
  %1267 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1254, double noundef %1265, ptr noundef %1266)
  store double %1267, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1268

1268:                                             ; preds = %1290, %1191
  %1269 = load i64, ptr %14, align 8, !tbaa !14
  %1270 = icmp sle i64 %1269, 1
  br i1 %1270, label %1271, label %1293

1271:                                             ; preds = %1268
  %1272 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %1273 = trunc i8 %1272 to i1
  br i1 %1273, label %1287, label %1274

1274:                                             ; preds = %1271
  %1275 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1276 = load ptr, ptr %1275, align 8, !tbaa !13
  %1277 = load i64, ptr %14, align 8, !tbaa !14
  %1278 = getelementptr inbounds double, ptr %1276, i64 %1277
  %1279 = load double, ptr %1278, align 8, !tbaa !11
  %1280 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1281 = load ptr, ptr %1280, align 8, !tbaa !13
  %1282 = load i64, ptr %14, align 8, !tbaa !14
  %1283 = add nsw i64 %1282, 1
  %1284 = getelementptr inbounds double, ptr %1281, i64 %1283
  %1285 = load double, ptr %1284, align 8, !tbaa !11
  %1286 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1279, double noundef %1285)
  br label %1287

1287:                                             ; preds = %1274, %1271
  %1288 = phi i1 [ true, %1271 ], [ %1286, %1274 ]
  %1289 = zext i1 %1288 to i8
  store i8 %1289, ptr %23, align 1, !tbaa !5
  br label %1290

1290:                                             ; preds = %1287
  %1291 = load i64, ptr %14, align 8, !tbaa !14
  %1292 = add nsw i64 %1291, 1
  store i64 %1292, ptr %14, align 8, !tbaa !14
  br label %1268, !llvm.loop !33

1293:                                             ; preds = %1268
  br label %1295

1294:                                             ; preds = %1187
  store i8 1, ptr %23, align 1, !tbaa !5
  br label %1295

1295:                                             ; preds = %1294, %1293
  %1296 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %1297 = trunc i8 %1296 to i1
  br i1 %1297, label %1302, label %1298

1298:                                             ; preds = %1295
  %1299 = load double, ptr %12, align 8, !tbaa !11
  %1300 = load double, ptr %20, align 8, !tbaa !11
  %1301 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1299, double noundef %1300)
  br label %1302

1302:                                             ; preds = %1298, %1295
  %1303 = phi i1 [ true, %1295 ], [ %1301, %1298 ]
  %1304 = zext i1 %1303 to i8
  store i8 %1304, ptr %23, align 1, !tbaa !5
  store i64 1, ptr %13, align 8, !tbaa !14
  br label %1305

1305:                                             ; preds = %1648, %1302
  %1306 = load i64, ptr %13, align 8, !tbaa !14
  %1307 = icmp sle i64 %1306, 20
  br i1 %1307, label %1308, label %1651

1308:                                             ; preds = %1305
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  %1309 = load i64, ptr %13, align 8, !tbaa !14
  %1310 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl23gqgenerategausslegendreElPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %1309, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %1310)
  %1311 = load i64, ptr %15, align 8, !tbaa !14
  %1312 = icmp sgt i64 %1311, 0
  br i1 %1312, label %1313, label %1358

1313:                                             ; preds = %1308
  %1314 = load i64, ptr %13, align 8, !tbaa !14
  %1315 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZL39testgqunit_buildgausslegendrequadraturelPN11alglib_impl9ae_vectorES1_PNS_8ae_stateE(i64 noundef %1314, ptr noundef %10, ptr noundef %11, ptr noundef %1315)
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1316

1316:                                             ; preds = %1354, %1313
  %1317 = load i64, ptr %14, align 8, !tbaa !14
  %1318 = load i64, ptr %13, align 8, !tbaa !14
  %1319 = sub nsw i64 %1318, 1
  %1320 = icmp sle i64 %1317, %1319
  br i1 %1320, label %1321, label %1357

1321:                                             ; preds = %1316
  %1322 = load double, ptr %12, align 8, !tbaa !11
  %1323 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1324 = load ptr, ptr %1323, align 8, !tbaa !13
  %1325 = load i64, ptr %14, align 8, !tbaa !14
  %1326 = getelementptr inbounds double, ptr %1324, i64 %1325
  %1327 = load double, ptr %1326, align 8, !tbaa !11
  %1328 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %10, i32 0, i32 4
  %1329 = load ptr, ptr %1328, align 8, !tbaa !13
  %1330 = load i64, ptr %14, align 8, !tbaa !14
  %1331 = getelementptr inbounds double, ptr %1329, i64 %1330
  %1332 = load double, ptr %1331, align 8, !tbaa !11
  %1333 = fsub double %1327, %1332
  %1334 = load ptr, ptr %4, align 8, !tbaa !9
  %1335 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1333, ptr noundef %1334)
  %1336 = load ptr, ptr %4, align 8, !tbaa !9
  %1337 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1322, double noundef %1335, ptr noundef %1336)
  store double %1337, ptr %12, align 8, !tbaa !11
  %1338 = load double, ptr %12, align 8, !tbaa !11
  %1339 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1340 = load ptr, ptr %1339, align 8, !tbaa !13
  %1341 = load i64, ptr %14, align 8, !tbaa !14
  %1342 = getelementptr inbounds double, ptr %1340, i64 %1341
  %1343 = load double, ptr %1342, align 8, !tbaa !11
  %1344 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %11, i32 0, i32 4
  %1345 = load ptr, ptr %1344, align 8, !tbaa !13
  %1346 = load i64, ptr %14, align 8, !tbaa !14
  %1347 = getelementptr inbounds double, ptr %1345, i64 %1346
  %1348 = load double, ptr %1347, align 8, !tbaa !11
  %1349 = fsub double %1343, %1348
  %1350 = load ptr, ptr %4, align 8, !tbaa !9
  %1351 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1349, ptr noundef %1350)
  %1352 = load ptr, ptr %4, align 8, !tbaa !9
  %1353 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1338, double noundef %1351, ptr noundef %1352)
  store double %1353, ptr %12, align 8, !tbaa !11
  br label %1354

1354:                                             ; preds = %1321
  %1355 = load i64, ptr %14, align 8, !tbaa !14
  %1356 = add nsw i64 %1355, 1
  store i64 %1356, ptr %14, align 8, !tbaa !14
  br label %1316, !llvm.loop !34

1357:                                             ; preds = %1316
  br label %1359

1358:                                             ; preds = %1308
  store i8 1, ptr %24, align 1, !tbaa !5
  br label %1359

1359:                                             ; preds = %1358, %1357
  %1360 = load i8, ptr %24, align 1, !tbaa !5, !range !16, !noundef !17
  %1361 = trunc i8 %1360 to i1
  br i1 %1361, label %1366, label %1362

1362:                                             ; preds = %1359
  %1363 = load double, ptr %12, align 8, !tbaa !11
  %1364 = load double, ptr %20, align 8, !tbaa !11
  %1365 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1363, double noundef %1364)
  br label %1366

1366:                                             ; preds = %1362, %1359
  %1367 = phi i1 [ true, %1359 ], [ %1365, %1362 ]
  %1368 = zext i1 %1367 to i8
  store i8 %1368, ptr %24, align 1, !tbaa !5
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %16, align 8, !tbaa !14
  br label %1369

1369:                                             ; preds = %1442, %1366
  %1370 = load i64, ptr %16, align 8, !tbaa !14
  %1371 = icmp sle i64 %1370, 9
  br i1 %1371, label %1372, label %1445

1372:                                             ; preds = %1369
  store i64 0, ptr %17, align 8, !tbaa !14
  br label %1373

1373:                                             ; preds = %1438, %1372
  %1374 = load i64, ptr %17, align 8, !tbaa !14
  %1375 = icmp sle i64 %1374, 9
  br i1 %1375, label %1376, label %1441

1376:                                             ; preds = %1373
  %1377 = load i64, ptr %16, align 8, !tbaa !14
  %1378 = load ptr, ptr %4, align 8, !tbaa !9
  %1379 = call noundef double @_ZL18testgqunit_mapkindlPN11alglib_impl8ae_stateE(i64 noundef %1377, ptr noundef %1378)
  store double %1379, ptr %18, align 8, !tbaa !11
  %1380 = load i64, ptr %17, align 8, !tbaa !14
  %1381 = load ptr, ptr %4, align 8, !tbaa !9
  %1382 = call noundef double @_ZL18testgqunit_mapkindlPN11alglib_impl8ae_stateE(i64 noundef %1380, ptr noundef %1381)
  store double %1382, ptr %19, align 8, !tbaa !11
  %1383 = load i64, ptr %13, align 8, !tbaa !14
  %1384 = load double, ptr %18, align 8, !tbaa !11
  %1385 = load double, ptr %19, align 8, !tbaa !11
  %1386 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl21gqgenerategaussjacobiElddPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %1383, double noundef %1384, double noundef %1385, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %1386)
  %1387 = load i64, ptr %15, align 8, !tbaa !14
  %1388 = icmp sgt i64 %1387, 0
  br i1 %1388, label %1389, label %1436

1389:                                             ; preds = %1376
  %1390 = load i64, ptr %13, align 8, !tbaa !14
  %1391 = load double, ptr %18, align 8, !tbaa !11
  %1392 = load double, ptr %19, align 8, !tbaa !11
  %1393 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZL37testgqunit_buildgaussjacobiquadraturelddPN11alglib_impl9ae_vectorES1_PNS_8ae_stateE(i64 noundef %1390, double noundef %1391, double noundef %1392, ptr noundef %10, ptr noundef %11, ptr noundef %1393)
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1394

1394:                                             ; preds = %1432, %1389
  %1395 = load i64, ptr %14, align 8, !tbaa !14
  %1396 = load i64, ptr %13, align 8, !tbaa !14
  %1397 = sub nsw i64 %1396, 1
  %1398 = icmp sle i64 %1395, %1397
  br i1 %1398, label %1399, label %1435

1399:                                             ; preds = %1394
  %1400 = load double, ptr %12, align 8, !tbaa !11
  %1401 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1402 = load ptr, ptr %1401, align 8, !tbaa !13
  %1403 = load i64, ptr %14, align 8, !tbaa !14
  %1404 = getelementptr inbounds double, ptr %1402, i64 %1403
  %1405 = load double, ptr %1404, align 8, !tbaa !11
  %1406 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %10, i32 0, i32 4
  %1407 = load ptr, ptr %1406, align 8, !tbaa !13
  %1408 = load i64, ptr %14, align 8, !tbaa !14
  %1409 = getelementptr inbounds double, ptr %1407, i64 %1408
  %1410 = load double, ptr %1409, align 8, !tbaa !11
  %1411 = fsub double %1405, %1410
  %1412 = load ptr, ptr %4, align 8, !tbaa !9
  %1413 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1411, ptr noundef %1412)
  %1414 = load ptr, ptr %4, align 8, !tbaa !9
  %1415 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1400, double noundef %1413, ptr noundef %1414)
  store double %1415, ptr %12, align 8, !tbaa !11
  %1416 = load double, ptr %12, align 8, !tbaa !11
  %1417 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1418 = load ptr, ptr %1417, align 8, !tbaa !13
  %1419 = load i64, ptr %14, align 8, !tbaa !14
  %1420 = getelementptr inbounds double, ptr %1418, i64 %1419
  %1421 = load double, ptr %1420, align 8, !tbaa !11
  %1422 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %11, i32 0, i32 4
  %1423 = load ptr, ptr %1422, align 8, !tbaa !13
  %1424 = load i64, ptr %14, align 8, !tbaa !14
  %1425 = getelementptr inbounds double, ptr %1423, i64 %1424
  %1426 = load double, ptr %1425, align 8, !tbaa !11
  %1427 = fsub double %1421, %1426
  %1428 = load ptr, ptr %4, align 8, !tbaa !9
  %1429 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1427, ptr noundef %1428)
  %1430 = load ptr, ptr %4, align 8, !tbaa !9
  %1431 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1416, double noundef %1429, ptr noundef %1430)
  store double %1431, ptr %12, align 8, !tbaa !11
  br label %1432

1432:                                             ; preds = %1399
  %1433 = load i64, ptr %14, align 8, !tbaa !14
  %1434 = add nsw i64 %1433, 1
  store i64 %1434, ptr %14, align 8, !tbaa !14
  br label %1394, !llvm.loop !35

1435:                                             ; preds = %1394
  br label %1437

1436:                                             ; preds = %1376
  store i8 1, ptr %24, align 1, !tbaa !5
  br label %1437

1437:                                             ; preds = %1436, %1435
  br label %1438

1438:                                             ; preds = %1437
  %1439 = load i64, ptr %17, align 8, !tbaa !14
  %1440 = add nsw i64 %1439, 1
  store i64 %1440, ptr %17, align 8, !tbaa !14
  br label %1373, !llvm.loop !36

1441:                                             ; preds = %1373
  br label %1442

1442:                                             ; preds = %1441
  %1443 = load i64, ptr %16, align 8, !tbaa !14
  %1444 = add nsw i64 %1443, 1
  store i64 %1444, ptr %16, align 8, !tbaa !14
  br label %1369, !llvm.loop !37

1445:                                             ; preds = %1369
  %1446 = load i8, ptr %24, align 1, !tbaa !5, !range !16, !noundef !17
  %1447 = trunc i8 %1446 to i1
  br i1 %1447, label %1452, label %1448

1448:                                             ; preds = %1445
  %1449 = load double, ptr %12, align 8, !tbaa !11
  %1450 = load double, ptr %21, align 8, !tbaa !11
  %1451 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1449, double noundef %1450)
  br label %1452

1452:                                             ; preds = %1448, %1445
  %1453 = phi i1 [ true, %1445 ], [ %1451, %1448 ]
  %1454 = zext i1 %1453 to i8
  store i8 %1454, ptr %24, align 1, !tbaa !5
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  %1455 = load i64, ptr %13, align 8, !tbaa !14
  %1456 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl21gqgenerategaussjacobiElddPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %1455, double noundef -5.000000e-01, double noundef -5.000000e-01, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %1456)
  %1457 = load i64, ptr %15, align 8, !tbaa !14
  %1458 = icmp sgt i64 %1457, 0
  br i1 %1458, label %1459, label %1504

1459:                                             ; preds = %1452
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1460

1460:                                             ; preds = %1500, %1459
  %1461 = load i64, ptr %14, align 8, !tbaa !14
  %1462 = load i64, ptr %13, align 8, !tbaa !14
  %1463 = sub nsw i64 %1462, 1
  %1464 = icmp sle i64 %1461, %1463
  br i1 %1464, label %1465, label %1503

1465:                                             ; preds = %1460
  %1466 = load double, ptr %12, align 8, !tbaa !11
  %1467 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1468 = load ptr, ptr %1467, align 8, !tbaa !13
  %1469 = load i64, ptr %14, align 8, !tbaa !14
  %1470 = getelementptr inbounds double, ptr %1468, i64 %1469
  %1471 = load double, ptr %1470, align 8, !tbaa !11
  %1472 = load i64, ptr %14, align 8, !tbaa !14
  %1473 = sitofp i64 %1472 to double
  %1474 = fadd double %1473, 5.000000e-01
  %1475 = fmul double 0x400921FB54442D18, %1474
  %1476 = load i64, ptr %13, align 8, !tbaa !14
  %1477 = sitofp i64 %1476 to double
  %1478 = fdiv double %1475, %1477
  %1479 = load ptr, ptr %4, align 8, !tbaa !9
  %1480 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1478, ptr noundef %1479)
  %1481 = fadd double %1471, %1480
  %1482 = load ptr, ptr %4, align 8, !tbaa !9
  %1483 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1481, ptr noundef %1482)
  %1484 = load ptr, ptr %4, align 8, !tbaa !9
  %1485 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1466, double noundef %1483, ptr noundef %1484)
  store double %1485, ptr %12, align 8, !tbaa !11
  %1486 = load double, ptr %12, align 8, !tbaa !11
  %1487 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1488 = load ptr, ptr %1487, align 8, !tbaa !13
  %1489 = load i64, ptr %14, align 8, !tbaa !14
  %1490 = getelementptr inbounds double, ptr %1488, i64 %1489
  %1491 = load double, ptr %1490, align 8, !tbaa !11
  %1492 = load i64, ptr %13, align 8, !tbaa !14
  %1493 = sitofp i64 %1492 to double
  %1494 = fdiv double 0x400921FB54442D18, %1493
  %1495 = fsub double %1491, %1494
  %1496 = load ptr, ptr %4, align 8, !tbaa !9
  %1497 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1495, ptr noundef %1496)
  %1498 = load ptr, ptr %4, align 8, !tbaa !9
  %1499 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1486, double noundef %1497, ptr noundef %1498)
  store double %1499, ptr %12, align 8, !tbaa !11
  br label %1500

1500:                                             ; preds = %1465
  %1501 = load i64, ptr %14, align 8, !tbaa !14
  %1502 = add nsw i64 %1501, 1
  store i64 %1502, ptr %14, align 8, !tbaa !14
  br label %1460, !llvm.loop !38

1503:                                             ; preds = %1460
  br label %1505

1504:                                             ; preds = %1452
  store i8 1, ptr %24, align 1, !tbaa !5
  br label %1505

1505:                                             ; preds = %1504, %1503
  %1506 = load i8, ptr %24, align 1, !tbaa !5, !range !16, !noundef !17
  %1507 = trunc i8 %1506 to i1
  br i1 %1507, label %1512, label %1508

1508:                                             ; preds = %1505
  %1509 = load double, ptr %12, align 8, !tbaa !11
  %1510 = load double, ptr %22, align 8, !tbaa !11
  %1511 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1509, double noundef %1510)
  br label %1512

1512:                                             ; preds = %1508, %1505
  %1513 = phi i1 [ true, %1505 ], [ %1511, %1508 ]
  %1514 = zext i1 %1513 to i8
  store i8 %1514, ptr %24, align 1, !tbaa !5
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  store i64 0, ptr %16, align 8, !tbaa !14
  br label %1515

1515:                                             ; preds = %1575, %1512
  %1516 = load i64, ptr %16, align 8, !tbaa !14
  %1517 = icmp sle i64 %1516, 9
  br i1 %1517, label %1518, label %1578

1518:                                             ; preds = %1515
  %1519 = load i64, ptr %16, align 8, !tbaa !14
  %1520 = load ptr, ptr %4, align 8, !tbaa !9
  %1521 = call noundef double @_ZL18testgqunit_mapkindlPN11alglib_impl8ae_stateE(i64 noundef %1519, ptr noundef %1520)
  store double %1521, ptr %18, align 8, !tbaa !11
  %1522 = load i64, ptr %13, align 8, !tbaa !14
  %1523 = load double, ptr %18, align 8, !tbaa !11
  %1524 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl23gqgenerategausslaguerreEldPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %1522, double noundef %1523, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %1524)
  %1525 = load i64, ptr %15, align 8, !tbaa !14
  %1526 = icmp sgt i64 %1525, 0
  br i1 %1526, label %1527, label %1573

1527:                                             ; preds = %1518
  %1528 = load i64, ptr %13, align 8, !tbaa !14
  %1529 = load double, ptr %18, align 8, !tbaa !11
  %1530 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZL39testgqunit_buildgausslaguerrequadratureldPN11alglib_impl9ae_vectorES1_PNS_8ae_stateE(i64 noundef %1528, double noundef %1529, ptr noundef %10, ptr noundef %11, ptr noundef %1530)
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1531

1531:                                             ; preds = %1569, %1527
  %1532 = load i64, ptr %14, align 8, !tbaa !14
  %1533 = load i64, ptr %13, align 8, !tbaa !14
  %1534 = sub nsw i64 %1533, 1
  %1535 = icmp sle i64 %1532, %1534
  br i1 %1535, label %1536, label %1572

1536:                                             ; preds = %1531
  %1537 = load double, ptr %12, align 8, !tbaa !11
  %1538 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1539 = load ptr, ptr %1538, align 8, !tbaa !13
  %1540 = load i64, ptr %14, align 8, !tbaa !14
  %1541 = getelementptr inbounds double, ptr %1539, i64 %1540
  %1542 = load double, ptr %1541, align 8, !tbaa !11
  %1543 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %10, i32 0, i32 4
  %1544 = load ptr, ptr %1543, align 8, !tbaa !13
  %1545 = load i64, ptr %14, align 8, !tbaa !14
  %1546 = getelementptr inbounds double, ptr %1544, i64 %1545
  %1547 = load double, ptr %1546, align 8, !tbaa !11
  %1548 = fsub double %1542, %1547
  %1549 = load ptr, ptr %4, align 8, !tbaa !9
  %1550 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1548, ptr noundef %1549)
  %1551 = load ptr, ptr %4, align 8, !tbaa !9
  %1552 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1537, double noundef %1550, ptr noundef %1551)
  store double %1552, ptr %12, align 8, !tbaa !11
  %1553 = load double, ptr %12, align 8, !tbaa !11
  %1554 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1555 = load ptr, ptr %1554, align 8, !tbaa !13
  %1556 = load i64, ptr %14, align 8, !tbaa !14
  %1557 = getelementptr inbounds double, ptr %1555, i64 %1556
  %1558 = load double, ptr %1557, align 8, !tbaa !11
  %1559 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %11, i32 0, i32 4
  %1560 = load ptr, ptr %1559, align 8, !tbaa !13
  %1561 = load i64, ptr %14, align 8, !tbaa !14
  %1562 = getelementptr inbounds double, ptr %1560, i64 %1561
  %1563 = load double, ptr %1562, align 8, !tbaa !11
  %1564 = fsub double %1558, %1563
  %1565 = load ptr, ptr %4, align 8, !tbaa !9
  %1566 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1564, ptr noundef %1565)
  %1567 = load ptr, ptr %4, align 8, !tbaa !9
  %1568 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1553, double noundef %1566, ptr noundef %1567)
  store double %1568, ptr %12, align 8, !tbaa !11
  br label %1569

1569:                                             ; preds = %1536
  %1570 = load i64, ptr %14, align 8, !tbaa !14
  %1571 = add nsw i64 %1570, 1
  store i64 %1571, ptr %14, align 8, !tbaa !14
  br label %1531, !llvm.loop !39

1572:                                             ; preds = %1531
  br label %1574

1573:                                             ; preds = %1518
  store i8 1, ptr %24, align 1, !tbaa !5
  br label %1574

1574:                                             ; preds = %1573, %1572
  br label %1575

1575:                                             ; preds = %1574
  %1576 = load i64, ptr %16, align 8, !tbaa !14
  %1577 = add nsw i64 %1576, 1
  store i64 %1577, ptr %16, align 8, !tbaa !14
  br label %1515, !llvm.loop !40

1578:                                             ; preds = %1515
  %1579 = load i8, ptr %24, align 1, !tbaa !5, !range !16, !noundef !17
  %1580 = trunc i8 %1579 to i1
  br i1 %1580, label %1585, label %1581

1581:                                             ; preds = %1578
  %1582 = load double, ptr %12, align 8, !tbaa !11
  %1583 = load double, ptr %21, align 8, !tbaa !11
  %1584 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1582, double noundef %1583)
  br label %1585

1585:                                             ; preds = %1581, %1578
  %1586 = phi i1 [ true, %1578 ], [ %1584, %1581 ]
  %1587 = zext i1 %1586 to i8
  store i8 %1587, ptr %24, align 1, !tbaa !5
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  %1588 = load i64, ptr %13, align 8, !tbaa !14
  %1589 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl22gqgenerategausshermiteElPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %1588, ptr noundef %15, ptr noundef %8, ptr noundef %9, ptr noundef %1589)
  %1590 = load i64, ptr %15, align 8, !tbaa !14
  %1591 = icmp sgt i64 %1590, 0
  br i1 %1591, label %1592, label %1637

1592:                                             ; preds = %1585
  %1593 = load i64, ptr %13, align 8, !tbaa !14
  %1594 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZL38testgqunit_buildgausshermitequadraturelPN11alglib_impl9ae_vectorES1_PNS_8ae_stateE(i64 noundef %1593, ptr noundef %10, ptr noundef %11, ptr noundef %1594)
  store i64 0, ptr %14, align 8, !tbaa !14
  br label %1595

1595:                                             ; preds = %1633, %1592
  %1596 = load i64, ptr %14, align 8, !tbaa !14
  %1597 = load i64, ptr %13, align 8, !tbaa !14
  %1598 = sub nsw i64 %1597, 1
  %1599 = icmp sle i64 %1596, %1598
  br i1 %1599, label %1600, label %1636

1600:                                             ; preds = %1595
  %1601 = load double, ptr %12, align 8, !tbaa !11
  %1602 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %8, i32 0, i32 4
  %1603 = load ptr, ptr %1602, align 8, !tbaa !13
  %1604 = load i64, ptr %14, align 8, !tbaa !14
  %1605 = getelementptr inbounds double, ptr %1603, i64 %1604
  %1606 = load double, ptr %1605, align 8, !tbaa !11
  %1607 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %10, i32 0, i32 4
  %1608 = load ptr, ptr %1607, align 8, !tbaa !13
  %1609 = load i64, ptr %14, align 8, !tbaa !14
  %1610 = getelementptr inbounds double, ptr %1608, i64 %1609
  %1611 = load double, ptr %1610, align 8, !tbaa !11
  %1612 = fsub double %1606, %1611
  %1613 = load ptr, ptr %4, align 8, !tbaa !9
  %1614 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1612, ptr noundef %1613)
  %1615 = load ptr, ptr %4, align 8, !tbaa !9
  %1616 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1601, double noundef %1614, ptr noundef %1615)
  store double %1616, ptr %12, align 8, !tbaa !11
  %1617 = load double, ptr %12, align 8, !tbaa !11
  %1618 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %9, i32 0, i32 4
  %1619 = load ptr, ptr %1618, align 8, !tbaa !13
  %1620 = load i64, ptr %14, align 8, !tbaa !14
  %1621 = getelementptr inbounds double, ptr %1619, i64 %1620
  %1622 = load double, ptr %1621, align 8, !tbaa !11
  %1623 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %11, i32 0, i32 4
  %1624 = load ptr, ptr %1623, align 8, !tbaa !13
  %1625 = load i64, ptr %14, align 8, !tbaa !14
  %1626 = getelementptr inbounds double, ptr %1624, i64 %1625
  %1627 = load double, ptr %1626, align 8, !tbaa !11
  %1628 = fsub double %1622, %1627
  %1629 = load ptr, ptr %4, align 8, !tbaa !9
  %1630 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1628, ptr noundef %1629)
  %1631 = load ptr, ptr %4, align 8, !tbaa !9
  %1632 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1617, double noundef %1630, ptr noundef %1631)
  store double %1632, ptr %12, align 8, !tbaa !11
  br label %1633

1633:                                             ; preds = %1600
  %1634 = load i64, ptr %14, align 8, !tbaa !14
  %1635 = add nsw i64 %1634, 1
  store i64 %1635, ptr %14, align 8, !tbaa !14
  br label %1595, !llvm.loop !41

1636:                                             ; preds = %1595
  br label %1638

1637:                                             ; preds = %1585
  store i8 1, ptr %24, align 1, !tbaa !5
  br label %1638

1638:                                             ; preds = %1637, %1636
  %1639 = load i8, ptr %24, align 1, !tbaa !5, !range !16, !noundef !17
  %1640 = trunc i8 %1639 to i1
  br i1 %1640, label %1645, label %1641

1641:                                             ; preds = %1638
  %1642 = load double, ptr %12, align 8, !tbaa !11
  %1643 = load double, ptr %21, align 8, !tbaa !11
  %1644 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1642, double noundef %1643)
  br label %1645

1645:                                             ; preds = %1641, %1638
  %1646 = phi i1 [ true, %1638 ], [ %1644, %1641 ]
  %1647 = zext i1 %1646 to i8
  store i8 %1647, ptr %24, align 1, !tbaa !5
  br label %1648

1648:                                             ; preds = %1645
  %1649 = load i64, ptr %13, align 8, !tbaa !14
  %1650 = add nsw i64 %1649, 1
  store i64 %1650, ptr %13, align 8, !tbaa !14
  br label %1305, !llvm.loop !42

1651:                                             ; preds = %1305
  %1652 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %1653 = trunc i8 %1652 to i1
  br i1 %1653, label %1657, label %1654

1654:                                             ; preds = %1651
  %1655 = load i8, ptr %24, align 1, !tbaa !5, !range !16, !noundef !17
  %1656 = trunc i8 %1655 to i1
  br label %1657

1657:                                             ; preds = %1654, %1651
  %1658 = phi i1 [ true, %1651 ], [ %1656, %1654 ]
  %1659 = zext i1 %1658 to i8
  store i8 %1659, ptr %25, align 1, !tbaa !5
  %1660 = load i8, ptr %3, align 1, !tbaa !5, !range !16, !noundef !17
  %1661 = trunc i8 %1660 to i1
  br i1 %1661, label %1696, label %1662

1662:                                             ; preds = %1657
  %1663 = call i32 (ptr, ...) @printf(ptr noundef @.str.578)
  %1664 = call i32 (ptr, ...) @printf(ptr noundef @.str.579)
  %1665 = load i8, ptr %25, align 1, !tbaa !5, !range !16, !noundef !17
  %1666 = trunc i8 %1665 to i1
  br i1 %1666, label %1667, label %1669

1667:                                             ; preds = %1662
  %1668 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %1671

1669:                                             ; preds = %1662
  %1670 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %1671

1671:                                             ; preds = %1669, %1667
  %1672 = call i32 (ptr, ...) @printf(ptr noundef @.str.580)
  %1673 = load i8, ptr %24, align 1, !tbaa !5, !range !16, !noundef !17
  %1674 = trunc i8 %1673 to i1
  br i1 %1674, label %1675, label %1677

1675:                                             ; preds = %1671
  %1676 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %1679

1677:                                             ; preds = %1671
  %1678 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %1679

1679:                                             ; preds = %1677, %1675
  %1680 = call i32 (ptr, ...) @printf(ptr noundef @.str.581)
  %1681 = load i8, ptr %23, align 1, !tbaa !5, !range !16, !noundef !17
  %1682 = trunc i8 %1681 to i1
  br i1 %1682, label %1683, label %1685

1683:                                             ; preds = %1679
  %1684 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %1687

1685:                                             ; preds = %1679
  %1686 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %1687

1687:                                             ; preds = %1685, %1683
  %1688 = load i8, ptr %25, align 1, !tbaa !5, !range !16, !noundef !17
  %1689 = trunc i8 %1688 to i1
  br i1 %1689, label %1690, label %1692

1690:                                             ; preds = %1687
  %1691 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  br label %1694

1692:                                             ; preds = %1687
  %1693 = call i32 (ptr, ...) @printf(ptr noundef @.str.2)
  br label %1694

1694:                                             ; preds = %1692, %1690
  %1695 = call i32 (ptr, ...) @printf(ptr noundef @.str.3)
  br label %1696

1696:                                             ; preds = %1694, %1657
  %1697 = load i8, ptr %25, align 1, !tbaa !5, !range !16, !noundef !17
  %1698 = trunc i8 %1697 to i1
  %1699 = xor i1 %1698, true
  %1700 = zext i1 %1699 to i8
  store i8 %1700, ptr %26, align 1, !tbaa !5
  %1701 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1701)
  %1702 = load i8, ptr %26, align 1, !tbaa !5, !range !16, !noundef !17
  %1703 = trunc i8 %1702 to i1
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #6
  ret i1 %1703
}

declare void @_ZN11alglib_impl13gqgeneraterecEPNS_9ae_vectorES1_dlPlS1_S1_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl25gqgenerategausslobattorecEPNS_9ae_vectorES1_dddlPlS1_S1_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, double noundef, double noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl23gqgenerategaussradaurecEPNS_9ae_vectorES1_ddlPlS1_S1_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, double noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl23gqgenerategausslegendreElPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

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

declare void @_ZN11alglib_impl21gqgenerategaussjacobiElddPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

declare void @_ZN11alglib_impl23gqgenerategausslaguerreEldPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

declare void @_ZN11alglib_impl22gqgenerategausshermiteElPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = !{!"bool", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"long", !7, i64 0}
!16 = !{i8 0, i8 2}
!17 = !{}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = distinct !{!21, !19}
!22 = distinct !{!22, !19}
!23 = distinct !{!23, !19}
!24 = distinct !{!24, !19}
!25 = distinct !{!25, !19}
!26 = distinct !{!26, !19}
!27 = distinct !{!27, !19}
!28 = distinct !{!28, !19}
!29 = distinct !{!29, !19}
!30 = distinct !{!30, !19}
!31 = distinct !{!31, !19}
!32 = distinct !{!32, !19}
!33 = distinct !{!33, !19}
!34 = distinct !{!34, !19}
!35 = distinct !{!35, !19}
!36 = distinct !{!36, !19}
!37 = distinct !{!37, !19}
!38 = distinct !{!38, !19}
!39 = distinct !{!39, !19}
!40 = distinct !{!40, !19}
!41 = distinct !{!41, !19}
!42 = distinct !{!42, !19}


; 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 }
%union.anon = type { ptr }

@.str.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.578 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.579 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [43 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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #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 #1

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

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #3

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #1

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

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

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

declare noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) local_unnamed_addr #1

declare noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #1

declare noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #1

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) local_unnamed_addr #1

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

declare noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z6testgqbPN11alglib_impl8ae_stateE(i1 noundef zeroext %0, ptr noundef %1) local_unnamed_addr #5 {
  %3 = alloca %"struct.alglib_impl::ae_frame", align 8
  %4 = alloca %"struct.alglib_impl::ae_vector", align 8
  %5 = alloca %"struct.alglib_impl::ae_vector", align 8
  %6 = alloca %"struct.alglib_impl::ae_vector", align 8
  %7 = alloca %"struct.alglib_impl::ae_vector", align 8
  %8 = alloca %"struct.alglib_impl::ae_vector", align 8
  %9 = alloca %"struct.alglib_impl::ae_vector", align 8
  %10 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %4) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %1, ptr noundef nonnull %3)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %4, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %6, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %7, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %8, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, i8 0, i64 64, i1 false)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %4, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %5, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %6, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %7, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %8, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %9, i64 noundef 0, i64 noundef 3, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 2, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 2, ptr noundef %1)
  %11 = getelementptr inbounds i8, ptr %4, i64 56
  %12 = load ptr, ptr %11, align 8, !tbaa !5
  store double 0.000000e+00, ptr %12, align 8, !tbaa !8
  %13 = load ptr, ptr %11, align 8, !tbaa !5
  %14 = getelementptr inbounds i8, ptr %13, i64 8
  store double 0.000000e+00, ptr %14, align 8, !tbaa !8
  %15 = getelementptr inbounds i8, ptr %5, i64 56
  %16 = load ptr, ptr %15, align 8, !tbaa !5
  %17 = getelementptr inbounds i8, ptr %16, i64 8
  store double 0x3FD5555555555555, ptr %17, align 8, !tbaa !8
  call void @_ZN11alglib_impl13gqgeneraterecEPNS_9ae_vectorES1_dlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 2.000000e+00, i64 noundef 2, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %18 = load i64, ptr %10, align 8, !tbaa !10
  %19 = icmp sgt i64 %18, 0
  br i1 %19, label %.loopexit553, label %53

.loopexit553:                                     ; preds = %2
  %20 = getelementptr inbounds i8, ptr %6, i64 56
  %21 = load ptr, ptr %20, align 8, !tbaa !5
  %22 = load double, ptr %21, align 8, !tbaa !8
  %23 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 3.000000e+00, ptr noundef %1)
  %24 = fdiv double %23, 3.000000e+00
  %25 = fadd double %22, %24
  %26 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %25, ptr noundef %1)
  %27 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef 0.000000e+00, double noundef %26, ptr noundef %1)
  %28 = load ptr, ptr %20, align 8, !tbaa !5
  %29 = getelementptr inbounds i8, ptr %28, i64 8
  %30 = load double, ptr %29, align 8, !tbaa !8
  %31 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 3.000000e+00, ptr noundef %1)
  %32 = fdiv double %31, 3.000000e+00
  %33 = fsub double %30, %32
  %34 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %33, ptr noundef %1)
  %35 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %27, double noundef %34, ptr noundef %1)
  %36 = getelementptr inbounds i8, ptr %7, i64 56
  %37 = load ptr, ptr %36, align 8, !tbaa !5
  %38 = load double, ptr %37, align 8, !tbaa !8
  %39 = fadd double %38, -1.000000e+00
  %40 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %39, ptr noundef %1)
  %41 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %35, double noundef %40, ptr noundef %1)
  %42 = load ptr, ptr %36, align 8, !tbaa !5
  %43 = getelementptr inbounds i8, ptr %42, i64 8
  %44 = load double, ptr %43, align 8, !tbaa !8
  %45 = fadd double %44, -1.000000e+00
  %46 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %45, ptr noundef %1)
  %47 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %41, double noundef %46, ptr noundef %1)
  %48 = load ptr, ptr %20, align 8, !tbaa !5
  %49 = load double, ptr %48, align 8, !tbaa !8
  %50 = getelementptr inbounds i8, ptr %48, i64 8
  %51 = load double, ptr %50, align 8, !tbaa !8
  %52 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %49, double noundef %51)
  br label %53

53:                                               ; preds = %.loopexit553, %2
  %.1479 = phi i1 [ true, %2 ], [ %52, %.loopexit553 ]
  %.0 = phi double [ 0.000000e+00, %2 ], [ %47, %.loopexit553 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 5, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 5, ptr noundef %1)
  %54 = load ptr, ptr %11, align 8, !tbaa !5
  store double 0.000000e+00, ptr %54, align 8, !tbaa !8
  %55 = load ptr, ptr %11, align 8, !tbaa !5
  %56 = getelementptr inbounds i8, ptr %55, i64 8
  store double 0.000000e+00, ptr %56, align 8, !tbaa !8
  %57 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 1.000000e+00, ptr noundef %1)
  %58 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 1.000000e+00, ptr noundef %1)
  %59 = call double @llvm.fmuladd.f64(double %58, double 4.000000e+00, double -1.000000e+00)
  %60 = fdiv double %57, %59
  %61 = load ptr, ptr %15, align 8, !tbaa !5
  %62 = getelementptr inbounds i8, ptr %61, i64 8
  store double %60, ptr %62, align 8, !tbaa !8
  %63 = load ptr, ptr %11, align 8, !tbaa !5
  %64 = getelementptr inbounds i8, ptr %63, i64 16
  store double 0.000000e+00, ptr %64, align 8, !tbaa !8
  %65 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %1)
  %66 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %1)
  %67 = call double @llvm.fmuladd.f64(double %66, double 4.000000e+00, double -1.000000e+00)
  %68 = fdiv double %65, %67
  %69 = load ptr, ptr %15, align 8, !tbaa !5
  %70 = getelementptr inbounds i8, ptr %69, i64 16
  store double %68, ptr %70, align 8, !tbaa !8
  %71 = load ptr, ptr %11, align 8, !tbaa !5
  %72 = getelementptr inbounds i8, ptr %71, i64 24
  store double 0.000000e+00, ptr %72, align 8, !tbaa !8
  %73 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 3.000000e+00, ptr noundef %1)
  %74 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 3.000000e+00, ptr noundef %1)
  %75 = call double @llvm.fmuladd.f64(double %74, double 4.000000e+00, double -1.000000e+00)
  %76 = fdiv double %73, %75
  %77 = load ptr, ptr %15, align 8, !tbaa !5
  %78 = getelementptr inbounds i8, ptr %77, i64 24
  store double %76, ptr %78, align 8, !tbaa !8
  %79 = load ptr, ptr %11, align 8, !tbaa !5
  %80 = getelementptr inbounds i8, ptr %79, i64 32
  store double 0.000000e+00, ptr %80, align 8, !tbaa !8
  %81 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 4.000000e+00, ptr noundef %1)
  %82 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 4.000000e+00, ptr noundef %1)
  %83 = call double @llvm.fmuladd.f64(double %82, double 4.000000e+00, double -1.000000e+00)
  %84 = fdiv double %81, %83
  %85 = load ptr, ptr %15, align 8, !tbaa !5
  %86 = getelementptr inbounds i8, ptr %85, i64 32
  store double %84, ptr %86, align 8, !tbaa !8
  call void @_ZN11alglib_impl13gqgeneraterecEPNS_9ae_vectorES1_dlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 2.000000e+00, i64 noundef 5, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %87 = load i64, ptr %10, align 8, !tbaa !10
  %88 = icmp sgt i64 %87, 0
  br i1 %88, label %89, label %.loopexit552

89:                                               ; preds = %53
  %90 = getelementptr inbounds i8, ptr %6, i64 56
  %91 = load ptr, ptr %90, align 8, !tbaa !5
  %92 = load double, ptr %91, align 8, !tbaa !8
  %93 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+01, ptr noundef %1)
  %94 = call double @llvm.fmuladd.f64(double %93, double 1.400000e+01, double 2.450000e+02)
  %95 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %94, ptr noundef %1)
  %96 = fdiv double %95, 2.100000e+01
  %97 = fadd double %92, %96
  %98 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %97, ptr noundef %1)
  %99 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.0, double noundef %98, ptr noundef %1)
  %100 = load ptr, ptr %90, align 8, !tbaa !5
  %101 = load double, ptr %100, align 8, !tbaa !8
  %102 = getelementptr inbounds i8, ptr %100, i64 32
  %103 = load double, ptr %102, align 8, !tbaa !8
  %104 = fadd double %101, %103
  %105 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %104, ptr noundef %1)
  %106 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %99, double noundef %105, ptr noundef %1)
  %107 = load ptr, ptr %90, align 8, !tbaa !5
  %108 = getelementptr inbounds i8, ptr %107, i64 8
  %109 = load double, ptr %108, align 8, !tbaa !8
  %110 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+01, ptr noundef %1)
  %111 = call double @llvm.fmuladd.f64(double %110, double -1.400000e+01, double 2.450000e+02)
  %112 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %111, ptr noundef %1)
  %113 = fdiv double %112, 2.100000e+01
  %114 = fadd double %109, %113
  %115 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %114, ptr noundef %1)
  %116 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %106, double noundef %115, ptr noundef %1)
  %117 = load ptr, ptr %90, align 8, !tbaa !5
  %118 = getelementptr inbounds i8, ptr %117, i64 8
  %119 = load double, ptr %118, align 8, !tbaa !8
  %120 = getelementptr inbounds i8, ptr %117, i64 24
  %121 = load double, ptr %120, align 8, !tbaa !8
  %122 = fadd double %119, %121
  %123 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %122, ptr noundef %1)
  %124 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %116, double noundef %123, ptr noundef %1)
  %125 = load ptr, ptr %90, align 8, !tbaa !5
  %126 = getelementptr inbounds i8, ptr %125, i64 16
  %127 = load double, ptr %126, align 8, !tbaa !8
  %128 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %127, ptr noundef %1)
  %129 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %124, double noundef %128, ptr noundef %1)
  %130 = getelementptr inbounds i8, ptr %7, i64 56
  %131 = load ptr, ptr %130, align 8, !tbaa !5
  %132 = load double, ptr %131, align 8, !tbaa !8
  %133 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+01, ptr noundef %1)
  %134 = call double @llvm.fmuladd.f64(double %133, double -1.300000e+01, double 3.220000e+02)
  %135 = fdiv double %134, 9.000000e+02
  %136 = fsub double %132, %135
  %137 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %136, ptr noundef %1)
  %138 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %129, double noundef %137, ptr noundef %1)
  %139 = load ptr, ptr %130, align 8, !tbaa !5
  %140 = load double, ptr %139, align 8, !tbaa !8
  %141 = getelementptr inbounds i8, ptr %139, i64 32
  %142 = load double, ptr %141, align 8, !tbaa !8
  %143 = fsub double %140, %142
  %144 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %143, ptr noundef %1)
  %145 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %138, double noundef %144, ptr noundef %1)
  %146 = load ptr, ptr %130, align 8, !tbaa !5
  %147 = getelementptr inbounds i8, ptr %146, i64 8
  %148 = load double, ptr %147, align 8, !tbaa !8
  %149 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+01, ptr noundef %1)
  %150 = call double @llvm.fmuladd.f64(double %149, double 1.300000e+01, double 3.220000e+02)
  %151 = fdiv double %150, 9.000000e+02
  %152 = fsub double %148, %151
  %153 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %152, ptr noundef %1)
  %154 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %145, double noundef %153, ptr noundef %1)
  %155 = load ptr, ptr %130, align 8, !tbaa !5
  %156 = getelementptr inbounds i8, ptr %155, i64 8
  %157 = load double, ptr %156, align 8, !tbaa !8
  %158 = getelementptr inbounds i8, ptr %155, i64 24
  %159 = load double, ptr %158, align 8, !tbaa !8
  %160 = fsub double %157, %159
  %161 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %160, ptr noundef %1)
  %162 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %154, double noundef %161, ptr noundef %1)
  %163 = load ptr, ptr %130, align 8, !tbaa !5
  %164 = getelementptr inbounds i8, ptr %163, i64 16
  %165 = load double, ptr %164, align 8, !tbaa !8
  %166 = fadd double %165, 0xBFE23456789ABCDF
  %167 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %166, ptr noundef %1)
  %168 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %162, double noundef %167, ptr noundef %1)
  br i1 %.1479, label %.loopexit552.loopexit, label %169

169:                                              ; preds = %89
  %170 = load ptr, ptr %90, align 8, !tbaa !5
  %171 = load double, ptr %170, align 8, !tbaa !8
  %172 = getelementptr inbounds i8, ptr %170, i64 8
  %173 = load double, ptr %172, align 8, !tbaa !8
  %174 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %171, double noundef %173)
  br i1 %174, label %.loopexit552.loopexit, label %175

175:                                              ; preds = %169
  %176 = load ptr, ptr %90, align 8, !tbaa !5
  %177 = getelementptr inbounds i8, ptr %176, i64 8
  %178 = load double, ptr %177, align 8, !tbaa !8
  %179 = getelementptr inbounds i8, ptr %176, i64 16
  %180 = load double, ptr %179, align 8, !tbaa !8
  %181 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %178, double noundef %180)
  br i1 %181, label %.loopexit552.loopexit, label %182

182:                                              ; preds = %175
  %183 = load ptr, ptr %90, align 8, !tbaa !5
  %184 = getelementptr inbounds i8, ptr %183, i64 16
  %185 = load double, ptr %184, align 8, !tbaa !8
  %186 = getelementptr inbounds i8, ptr %183, i64 24
  %187 = load double, ptr %186, align 8, !tbaa !8
  %188 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %185, double noundef %187)
  br i1 %188, label %.loopexit552.loopexit, label %189

189:                                              ; preds = %182
  %190 = load ptr, ptr %90, align 8, !tbaa !5
  %191 = getelementptr inbounds i8, ptr %190, i64 24
  %192 = load double, ptr %191, align 8, !tbaa !8
  %193 = getelementptr inbounds i8, ptr %190, i64 32
  %194 = load double, ptr %193, align 8, !tbaa !8
  %195 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %192, double noundef %194)
  br label %.loopexit552.loopexit

.loopexit552.loopexit:                            ; preds = %89, %169, %175, %189, %182
  %196 = phi i1 [ true, %182 ], [ %195, %189 ], [ true, %175 ], [ true, %169 ], [ true, %89 ]
  %197 = zext i1 %196 to i8
  br label %.loopexit552

.loopexit552:                                     ; preds = %.loopexit552.loopexit, %53
  %.3481 = phi i8 [ 1, %53 ], [ %197, %.loopexit552.loopexit ]
  %.1 = phi double [ %.0, %53 ], [ %168, %.loopexit552.loopexit ]
  %198 = getelementptr inbounds i8, ptr %6, i64 56
  %199 = getelementptr inbounds i8, ptr %7, i64 56
  br label %200

200:                                              ; preds = %.loopexit552, %.loopexit550
  %.2566 = phi double [ %.1, %.loopexit552 ], [ %.4, %.loopexit550 ]
  %.4482565 = phi i8 [ %.3481, %.loopexit552 ], [ %.6484, %.loopexit550 ]
  %.0497564 = phi i64 [ 1, %.loopexit552 ], [ %263, %.loopexit550 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef %.0497564, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef %.0497564, ptr noundef %1)
  %xtraiter = and i64 %.0497564, 1
  %201 = icmp eq i64 %.0497564, 1
  br i1 %201, label %.unr-lcssa, label %.new

.new:                                             ; preds = %200
  %unroll_iter = and i64 %.0497564, 9223372036854775806
  br label %202

202:                                              ; preds = %.thread.1, %.new
  %.3502558 = phi i64 [ 0, %.new ], [ %217, %.thread.1 ]
  %niter = phi i64 [ 0, %.new ], [ %niter.next.1, %.thread.1 ]
  %203 = load ptr, ptr %11, align 8, !tbaa !5
  %204 = getelementptr inbounds double, ptr %203, i64 %.3502558
  store double 0.000000e+00, ptr %204, align 8, !tbaa !8
  %205 = load ptr, ptr %15, align 8, !tbaa !5
  %cond = icmp eq i64 %.3502558, 0
  br i1 %cond, label %206, label %207

206:                                              ; preds = %202
  store double 0.000000e+00, ptr %205, align 8, !tbaa !8
  br label %.thread

207:                                              ; preds = %202
  %208 = getelementptr inbounds double, ptr %205, i64 %.3502558
  store double 2.500000e-01, ptr %208, align 8, !tbaa !8
  br label %.thread

.thread:                                          ; preds = %206, %207
  %209 = or disjoint i64 %.3502558, 1
  %210 = load ptr, ptr %11, align 8, !tbaa !5
  %211 = getelementptr inbounds double, ptr %210, i64 %209
  store double 0.000000e+00, ptr %211, align 8, !tbaa !8
  %212 = load ptr, ptr %15, align 8, !tbaa !5
  %cond707 = icmp eq i64 %209, 1
  br i1 %cond707, label %213, label %215

213:                                              ; preds = %.thread
  %214 = getelementptr inbounds i8, ptr %212, i64 8
  store double 5.000000e-01, ptr %214, align 8, !tbaa !8
  br label %.thread.1

215:                                              ; preds = %.thread
  %216 = getelementptr inbounds double, ptr %212, i64 %209
  store double 2.500000e-01, ptr %216, align 8, !tbaa !8
  br label %.thread.1

.thread.1:                                        ; preds = %215, %213
  %217 = add nuw nsw i64 %.3502558, 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 %.unr-lcssa, label %202, !llvm.loop !12

.unr-lcssa:                                       ; preds = %.thread.1, %200
  %.3502558.unr = phi i64 [ 0, %200 ], [ %217, %.thread.1 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.thread.epil, label %.epil.preheader

.epil.preheader:                                  ; preds = %.unr-lcssa
  %218 = load ptr, ptr %11, align 8, !tbaa !5
  %219 = getelementptr inbounds double, ptr %218, i64 %.3502558.unr
  store double 0.000000e+00, ptr %219, align 8, !tbaa !8
  %220 = load ptr, ptr %15, align 8, !tbaa !5
  switch i64 %.3502558.unr, label %224 [
    i64 0, label %223
    i64 1, label %221
  ]

221:                                              ; preds = %.epil.preheader
  %222 = getelementptr inbounds i8, ptr %220, i64 8
  store double 5.000000e-01, ptr %222, align 8, !tbaa !8
  br label %.thread.epil

223:                                              ; preds = %.epil.preheader
  store double 0.000000e+00, ptr %220, align 8, !tbaa !8
  br label %.thread.epil

224:                                              ; preds = %.epil.preheader
  %225 = getelementptr inbounds double, ptr %220, i64 %.3502558.unr
  store double 2.500000e-01, ptr %225, align 8, !tbaa !8
  br label %.thread.epil

.thread.epil:                                     ; preds = %221, %223, %224, %.unr-lcssa
  call void @_ZN11alglib_impl13gqgeneraterecEPNS_9ae_vectorES1_dlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 0x400921FB54442D18, i64 noundef %.0497564, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %226 = load i64, ptr %10, align 8, !tbaa !10
  %227 = icmp sgt i64 %226, 0
  br i1 %227, label %.preheader551, label %.loopexit550

.preheader551:                                    ; preds = %.thread.epil
  %228 = uitofp nneg i64 %.0497564 to double
  %229 = fdiv double 0x400921FB54442D18, %228
  br label %231

.preheader549:                                    ; preds = %231
  %.not561 = icmp ult i64 %.0497564, 2
  br i1 %.not561, label %.loopexit550, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.preheader549
  %230 = add nsw i64 %.0497564, -2
  br label %.lr.ph

231:                                              ; preds = %.preheader551, %231
  %.3560 = phi double [ %.2566, %.preheader551 ], [ %249, %231 ]
  %.4503559 = phi i64 [ 0, %.preheader551 ], [ %250, %231 ]
  %232 = load ptr, ptr %198, align 8, !tbaa !5
  %233 = getelementptr inbounds double, ptr %232, i64 %.4503559
  %234 = load double, ptr %233, align 8, !tbaa !8
  %235 = sub nsw i64 %.0497564, %.4503559
  %236 = sitofp i64 %235 to double
  %237 = fadd double %236, -5.000000e-01
  %238 = fmul double %237, 0x400921FB54442D18
  %239 = fdiv double %238, %228
  %240 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %239, ptr noundef %1)
  %241 = fsub double %234, %240
  %242 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %241, ptr noundef %1)
  %243 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.3560, double noundef %242, ptr noundef %1)
  %244 = load ptr, ptr %199, align 8, !tbaa !5
  %245 = getelementptr inbounds double, ptr %244, i64 %.4503559
  %246 = load double, ptr %245, align 8, !tbaa !8
  %247 = fsub double %246, %229
  %248 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %247, ptr noundef %1)
  %249 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %243, double noundef %248, ptr noundef %1)
  %250 = add nuw nsw i64 %.4503559, 1
  %exitcond615.not = icmp eq i64 %250, %.0497564
  br i1 %exitcond615.not, label %.preheader549, label %231, !llvm.loop !14

.lr.ph:                                           ; preds = %.lr.ph.preheader, %259
  %.5483563 = phi i8 [ %261, %259 ], [ %.4482565, %.lr.ph.preheader ]
  %.5504562 = phi i64 [ %262, %259 ], [ 0, %.lr.ph.preheader ]
  %251 = trunc nuw i8 %.5483563 to i1
  br i1 %251, label %259, label %252

252:                                              ; preds = %.lr.ph
  %253 = load ptr, ptr %198, align 8, !tbaa !5
  %254 = getelementptr inbounds double, ptr %253, i64 %.5504562
  %255 = load double, ptr %254, align 8, !tbaa !8
  %256 = getelementptr inbounds i8, ptr %254, i64 8
  %257 = load double, ptr %256, align 8, !tbaa !8
  %258 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %255, double noundef %257)
  br label %259

259:                                              ; preds = %252, %.lr.ph
  %260 = phi i1 [ true, %.lr.ph ], [ %258, %252 ]
  %261 = zext i1 %260 to i8
  %262 = add nuw nsw i64 %.5504562, 1
  %exitcond616.not = icmp eq i64 %.5504562, %230
  br i1 %exitcond616.not, label %.loopexit550, label %.lr.ph, !llvm.loop !15

.loopexit550:                                     ; preds = %259, %.preheader549, %.thread.epil
  %.6484 = phi i8 [ 1, %.thread.epil ], [ %.4482565, %.preheader549 ], [ %261, %259 ]
  %.4 = phi double [ %.2566, %.thread.epil ], [ %249, %.preheader549 ], [ %249, %259 ]
  %263 = shl nuw nsw i64 %.0497564, 1
  %264 = icmp ult i64 %.0497564, 257
  br i1 %264, label %200, label %265, !llvm.loop !16

265:                                              ; preds = %.loopexit550
  %266 = trunc nuw i8 %.6484 to i1
  br i1 %266, label %269, label %267

267:                                              ; preds = %265
  %268 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %.4, double noundef 0x3D719799812DEA11)
  br label %269

269:                                              ; preds = %267, %265
  %270 = phi i1 [ true, %265 ], [ %268, %267 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 2, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 2, ptr noundef %1)
  %271 = load ptr, ptr %11, align 8, !tbaa !5
  store double 0.000000e+00, ptr %271, align 8, !tbaa !8
  %272 = load ptr, ptr %11, align 8, !tbaa !5
  %273 = getelementptr inbounds i8, ptr %272, i64 8
  store double 0.000000e+00, ptr %273, align 8, !tbaa !8
  %274 = load ptr, ptr %15, align 8, !tbaa !5
  store double 0.000000e+00, ptr %274, align 8, !tbaa !8
  %275 = load ptr, ptr %15, align 8, !tbaa !5
  %276 = getelementptr inbounds i8, ptr %275, i64 8
  store double 0x3FD5555555555555, ptr %276, align 8, !tbaa !8
  call void @_ZN11alglib_impl25gqgenerategausslobattorecEPNS_9ae_vectorES1_dddlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 2.000000e+00, double noundef -1.000000e+00, double noundef 1.000000e+00, i64 noundef 3, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %277 = load i64, ptr %10, align 8, !tbaa !10
  %278 = icmp sgt i64 %277, 0
  br i1 %278, label %279, label %.loopexit548

279:                                              ; preds = %269
  %280 = load ptr, ptr %198, align 8, !tbaa !5
  %281 = load double, ptr %280, align 8, !tbaa !8
  %282 = fadd double %281, 1.000000e+00
  %283 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %282, ptr noundef %1)
  %284 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef 0.000000e+00, double noundef %283, ptr noundef %1)
  %285 = load ptr, ptr %198, align 8, !tbaa !5
  %286 = getelementptr inbounds i8, ptr %285, i64 8
  %287 = load double, ptr %286, align 8, !tbaa !8
  %288 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %287, ptr noundef %1)
  %289 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %284, double noundef %288, ptr noundef %1)
  %290 = load ptr, ptr %198, align 8, !tbaa !5
  %291 = getelementptr inbounds i8, ptr %290, i64 16
  %292 = load double, ptr %291, align 8, !tbaa !8
  %293 = fadd double %292, -1.000000e+00
  %294 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %293, ptr noundef %1)
  %295 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %289, double noundef %294, ptr noundef %1)
  %296 = load ptr, ptr %199, align 8, !tbaa !5
  %297 = load double, ptr %296, align 8, !tbaa !8
  %298 = fadd double %297, 0xBFD5555555555555
  %299 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %298, ptr noundef %1)
  %300 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %295, double noundef %299, ptr noundef %1)
  %301 = load ptr, ptr %199, align 8, !tbaa !5
  %302 = getelementptr inbounds i8, ptr %301, i64 8
  %303 = load double, ptr %302, align 8, !tbaa !8
  %304 = fadd double %303, 0xBFF5555555555555
  %305 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %304, ptr noundef %1)
  %306 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %300, double noundef %305, ptr noundef %1)
  %307 = load ptr, ptr %199, align 8, !tbaa !5
  %308 = getelementptr inbounds i8, ptr %307, i64 16
  %309 = load double, ptr %308, align 8, !tbaa !8
  %310 = fadd double %309, 0xBFD5555555555555
  %311 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %310, ptr noundef %1)
  %312 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %306, double noundef %311, ptr noundef %1)
  br i1 %270, label %.loopexit548, label %313

313:                                              ; preds = %279
  %314 = load ptr, ptr %198, align 8, !tbaa !5
  %315 = load double, ptr %314, align 8, !tbaa !8
  %316 = getelementptr inbounds i8, ptr %314, i64 8
  %317 = load double, ptr %316, align 8, !tbaa !8
  %318 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %315, double noundef %317)
  br i1 %318, label %.loopexit548, label %319

319:                                              ; preds = %313
  %320 = load ptr, ptr %198, align 8, !tbaa !5
  %321 = getelementptr inbounds i8, ptr %320, i64 8
  %322 = load double, ptr %321, align 8, !tbaa !8
  %323 = getelementptr inbounds i8, ptr %320, i64 16
  %324 = load double, ptr %323, align 8, !tbaa !8
  %325 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %322, double noundef %324)
  br label %.loopexit548

.loopexit548:                                     ; preds = %279, %313, %319, %269
  %.8486 = phi i1 [ true, %269 ], [ true, %313 ], [ %325, %319 ], [ true, %279 ]
  %.5 = phi double [ 0.000000e+00, %269 ], [ %312, %313 ], [ %312, %319 ], [ %312, %279 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 3, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 3, ptr noundef %1)
  %326 = load ptr, ptr %11, align 8, !tbaa !5
  store double 0.000000e+00, ptr %326, align 8, !tbaa !8
  %327 = load ptr, ptr %11, align 8, !tbaa !5
  %328 = getelementptr inbounds i8, ptr %327, i64 8
  store double 0.000000e+00, ptr %328, align 8, !tbaa !8
  %329 = load ptr, ptr %11, align 8, !tbaa !5
  %330 = getelementptr inbounds i8, ptr %329, i64 16
  store double 0.000000e+00, ptr %330, align 8, !tbaa !8
  %331 = load ptr, ptr %15, align 8, !tbaa !5
  store double 0.000000e+00, ptr %331, align 8, !tbaa !8
  %332 = load ptr, ptr %15, align 8, !tbaa !5
  %333 = getelementptr inbounds i8, ptr %332, i64 8
  store double 0x3FD5555555555555, ptr %333, align 8, !tbaa !8
  %334 = load ptr, ptr %15, align 8, !tbaa !5
  %335 = getelementptr inbounds i8, ptr %334, i64 16
  store double 0x3FD1111111111111, ptr %335, align 8, !tbaa !8
  call void @_ZN11alglib_impl25gqgenerategausslobattorecEPNS_9ae_vectorES1_dddlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 2.000000e+00, double noundef -1.000000e+00, double noundef 1.000000e+00, i64 noundef 4, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %336 = load i64, ptr %10, align 8, !tbaa !10
  %337 = icmp sgt i64 %336, 0
  br i1 %337, label %338, label %.loopexit547

338:                                              ; preds = %.loopexit548
  %339 = load ptr, ptr %198, align 8, !tbaa !5
  %340 = load double, ptr %339, align 8, !tbaa !8
  %341 = fadd double %340, 1.000000e+00
  %342 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %341, ptr noundef %1)
  %343 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.5, double noundef %342, ptr noundef %1)
  %344 = load ptr, ptr %198, align 8, !tbaa !5
  %345 = getelementptr inbounds i8, ptr %344, i64 8
  %346 = load double, ptr %345, align 8, !tbaa !8
  %347 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e+00, ptr noundef %1)
  %348 = fdiv double %347, 5.000000e+00
  %349 = fadd double %346, %348
  %350 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %349, ptr noundef %1)
  %351 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %343, double noundef %350, ptr noundef %1)
  %352 = load ptr, ptr %198, align 8, !tbaa !5
  %353 = getelementptr inbounds i8, ptr %352, i64 16
  %354 = load double, ptr %353, align 8, !tbaa !8
  %355 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e+00, ptr noundef %1)
  %356 = fdiv double %355, 5.000000e+00
  %357 = fsub double %354, %356
  %358 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %357, ptr noundef %1)
  %359 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %351, double noundef %358, ptr noundef %1)
  %360 = load ptr, ptr %198, align 8, !tbaa !5
  %361 = getelementptr inbounds i8, ptr %360, i64 24
  %362 = load double, ptr %361, align 8, !tbaa !8
  %363 = fadd double %362, -1.000000e+00
  %364 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %363, ptr noundef %1)
  %365 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %359, double noundef %364, ptr noundef %1)
  %366 = load ptr, ptr %199, align 8, !tbaa !5
  %367 = load double, ptr %366, align 8, !tbaa !8
  %368 = fadd double %367, 0xBFC5555555555555
  %369 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %368, ptr noundef %1)
  %370 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %365, double noundef %369, ptr noundef %1)
  %371 = load ptr, ptr %199, align 8, !tbaa !5
  %372 = getelementptr inbounds i8, ptr %371, i64 8
  %373 = load double, ptr %372, align 8, !tbaa !8
  %374 = fadd double %373, 0xBFEAAAAAAAAAAAAB
  %375 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %374, ptr noundef %1)
  %376 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %370, double noundef %375, ptr noundef %1)
  %377 = load ptr, ptr %199, align 8, !tbaa !5
  %378 = getelementptr inbounds i8, ptr %377, i64 16
  %379 = load double, ptr %378, align 8, !tbaa !8
  %380 = fadd double %379, 0xBFEAAAAAAAAAAAAB
  %381 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %380, ptr noundef %1)
  %382 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %376, double noundef %381, ptr noundef %1)
  %383 = load ptr, ptr %199, align 8, !tbaa !5
  %384 = getelementptr inbounds i8, ptr %383, i64 24
  %385 = load double, ptr %384, align 8, !tbaa !8
  %386 = fadd double %385, 0xBFC5555555555555
  %387 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %386, ptr noundef %1)
  %388 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %382, double noundef %387, ptr noundef %1)
  br i1 %.8486, label %.loopexit547, label %389

389:                                              ; preds = %338
  %390 = load ptr, ptr %198, align 8, !tbaa !5
  %391 = load double, ptr %390, align 8, !tbaa !8
  %392 = getelementptr inbounds i8, ptr %390, i64 8
  %393 = load double, ptr %392, align 8, !tbaa !8
  %394 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %391, double noundef %393)
  br i1 %394, label %.loopexit547, label %395

395:                                              ; preds = %389
  %396 = load ptr, ptr %198, align 8, !tbaa !5
  %397 = getelementptr inbounds i8, ptr %396, i64 8
  %398 = load double, ptr %397, align 8, !tbaa !8
  %399 = getelementptr inbounds i8, ptr %396, i64 16
  %400 = load double, ptr %399, align 8, !tbaa !8
  %401 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %398, double noundef %400)
  br i1 %401, label %.loopexit547, label %402

402:                                              ; preds = %395
  %403 = load ptr, ptr %198, align 8, !tbaa !5
  %404 = getelementptr inbounds i8, ptr %403, i64 16
  %405 = load double, ptr %404, align 8, !tbaa !8
  %406 = getelementptr inbounds i8, ptr %403, i64 24
  %407 = load double, ptr %406, align 8, !tbaa !8
  %408 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %405, double noundef %407)
  br label %.loopexit547

.loopexit547:                                     ; preds = %338, %389, %395, %402, %.loopexit548
  %.10488 = phi i1 [ true, %.loopexit548 ], [ true, %395 ], [ %408, %402 ], [ true, %389 ], [ true, %338 ]
  %.6 = phi double [ %.5, %.loopexit548 ], [ %388, %395 ], [ %388, %402 ], [ %388, %389 ], [ %388, %338 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 5, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 5, ptr noundef %1)
  %409 = load ptr, ptr %11, align 8, !tbaa !5
  store double 0.000000e+00, ptr %409, align 8, !tbaa !8
  %410 = load ptr, ptr %11, align 8, !tbaa !5
  %411 = getelementptr inbounds i8, ptr %410, i64 8
  store double 0.000000e+00, ptr %411, align 8, !tbaa !8
  %412 = load ptr, ptr %11, align 8, !tbaa !5
  %413 = getelementptr inbounds i8, ptr %412, i64 16
  store double 0.000000e+00, ptr %413, align 8, !tbaa !8
  %414 = load ptr, ptr %11, align 8, !tbaa !5
  %415 = getelementptr inbounds i8, ptr %414, i64 24
  store double 0.000000e+00, ptr %415, align 8, !tbaa !8
  %416 = load ptr, ptr %11, align 8, !tbaa !5
  %417 = getelementptr inbounds i8, ptr %416, i64 32
  store double 0.000000e+00, ptr %417, align 8, !tbaa !8
  %418 = load ptr, ptr %15, align 8, !tbaa !5
  store double 0.000000e+00, ptr %418, align 8, !tbaa !8
  %419 = load ptr, ptr %15, align 8, !tbaa !5
  %420 = getelementptr inbounds i8, ptr %419, i64 8
  store double 0x3FD5555555555555, ptr %420, align 8, !tbaa !8
  %421 = load ptr, ptr %15, align 8, !tbaa !5
  %422 = getelementptr inbounds i8, ptr %421, i64 16
  store double 0x3FD1111111111111, ptr %422, align 8, !tbaa !8
  %423 = load ptr, ptr %15, align 8, !tbaa !5
  %424 = getelementptr inbounds i8, ptr %423, i64 24
  store double 0x3FD0750750750750, ptr %424, align 8, !tbaa !8
  %425 = load ptr, ptr %15, align 8, !tbaa !5
  %426 = getelementptr inbounds i8, ptr %425, i64 32
  store double 0x3FD0410410410410, ptr %426, align 8, !tbaa !8
  call void @_ZN11alglib_impl25gqgenerategausslobattorecEPNS_9ae_vectorES1_dddlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 2.000000e+00, double noundef -1.000000e+00, double noundef 1.000000e+00, i64 noundef 6, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %427 = load i64, ptr %10, align 8, !tbaa !10
  %428 = icmp sgt i64 %427, 0
  br i1 %428, label %429, label %.thread528

429:                                              ; preds = %.loopexit547
  %430 = load ptr, ptr %198, align 8, !tbaa !5
  %431 = load double, ptr %430, align 8, !tbaa !8
  %432 = fadd double %431, 1.000000e+00
  %433 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %432, ptr noundef %1)
  %434 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.6, double noundef %433, ptr noundef %1)
  %435 = load ptr, ptr %198, align 8, !tbaa !5
  %436 = getelementptr inbounds i8, ptr %435, i64 8
  %437 = load double, ptr %436, align 8, !tbaa !8
  %438 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %1)
  %439 = call double @llvm.fmuladd.f64(double %438, double 2.000000e+00, double 7.000000e+00)
  %440 = fdiv double %439, 2.100000e+01
  %441 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %440, ptr noundef %1)
  %442 = fadd double %437, %441
  %443 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %442, ptr noundef %1)
  %444 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %434, double noundef %443, ptr noundef %1)
  %445 = load ptr, ptr %198, align 8, !tbaa !5
  %446 = getelementptr inbounds i8, ptr %445, i64 16
  %447 = load double, ptr %446, align 8, !tbaa !8
  %448 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %1)
  %449 = call double @llvm.fmuladd.f64(double %448, double -2.000000e+00, double 7.000000e+00)
  %450 = fdiv double %449, 2.100000e+01
  %451 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %450, ptr noundef %1)
  %452 = fadd double %447, %451
  %453 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %452, ptr noundef %1)
  %454 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %444, double noundef %453, ptr noundef %1)
  %455 = load ptr, ptr %198, align 8, !tbaa !5
  %456 = getelementptr inbounds i8, ptr %455, i64 24
  %457 = load double, ptr %456, align 8, !tbaa !8
  %458 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %1)
  %459 = call double @llvm.fmuladd.f64(double %458, double -2.000000e+00, double 7.000000e+00)
  %460 = fdiv double %459, 2.100000e+01
  %461 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %460, ptr noundef %1)
  %462 = fsub double %457, %461
  %463 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %462, ptr noundef %1)
  %464 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %454, double noundef %463, ptr noundef %1)
  %465 = load ptr, ptr %198, align 8, !tbaa !5
  %466 = getelementptr inbounds i8, ptr %465, i64 32
  %467 = load double, ptr %466, align 8, !tbaa !8
  %468 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %1)
  %469 = call double @llvm.fmuladd.f64(double %468, double 2.000000e+00, double 7.000000e+00)
  %470 = fdiv double %469, 2.100000e+01
  %471 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %470, ptr noundef %1)
  %472 = fsub double %467, %471
  %473 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %472, ptr noundef %1)
  %474 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %464, double noundef %473, ptr noundef %1)
  %475 = load ptr, ptr %198, align 8, !tbaa !5
  %476 = getelementptr inbounds i8, ptr %475, i64 40
  %477 = load double, ptr %476, align 8, !tbaa !8
  %478 = fadd double %477, -1.000000e+00
  %479 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %478, ptr noundef %1)
  %480 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %474, double noundef %479, ptr noundef %1)
  %481 = load ptr, ptr %199, align 8, !tbaa !5
  %482 = load double, ptr %481, align 8, !tbaa !8
  %483 = fadd double %482, 0xBFB1111111111111
  %484 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %483, ptr noundef %1)
  %485 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %480, double noundef %484, ptr noundef %1)
  %486 = load ptr, ptr %199, align 8, !tbaa !5
  %487 = getelementptr inbounds i8, ptr %486, i64 8
  %488 = load double, ptr %487, align 8, !tbaa !8
  %489 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %1)
  %490 = fsub double 1.400000e+01, %489
  %491 = fdiv double %490, 3.000000e+01
  %492 = fsub double %488, %491
  %493 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %492, ptr noundef %1)
  %494 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %485, double noundef %493, ptr noundef %1)
  %495 = load ptr, ptr %199, align 8, !tbaa !5
  %496 = getelementptr inbounds i8, ptr %495, i64 16
  %497 = load double, ptr %496, align 8, !tbaa !8
  %498 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %1)
  %499 = fadd double %498, 1.400000e+01
  %500 = fdiv double %499, 3.000000e+01
  %501 = fsub double %497, %500
  %502 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %501, ptr noundef %1)
  %503 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %494, double noundef %502, ptr noundef %1)
  %504 = load ptr, ptr %199, align 8, !tbaa !5
  %505 = getelementptr inbounds i8, ptr %504, i64 24
  %506 = load double, ptr %505, align 8, !tbaa !8
  %507 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %1)
  %508 = fadd double %507, 1.400000e+01
  %509 = fdiv double %508, 3.000000e+01
  %510 = fsub double %506, %509
  %511 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %510, ptr noundef %1)
  %512 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %503, double noundef %511, ptr noundef %1)
  %513 = load ptr, ptr %199, align 8, !tbaa !5
  %514 = getelementptr inbounds i8, ptr %513, i64 32
  %515 = load double, ptr %514, align 8, !tbaa !8
  %516 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 7.000000e+00, ptr noundef %1)
  %517 = fsub double 1.400000e+01, %516
  %518 = fdiv double %517, 3.000000e+01
  %519 = fsub double %515, %518
  %520 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %519, ptr noundef %1)
  %521 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %512, double noundef %520, ptr noundef %1)
  %522 = load ptr, ptr %199, align 8, !tbaa !5
  %523 = getelementptr inbounds i8, ptr %522, i64 40
  %524 = load double, ptr %523, align 8, !tbaa !8
  %525 = fadd double %524, 0xBFB1111111111111
  %526 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %525, ptr noundef %1)
  %527 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %521, double noundef %526, ptr noundef %1)
  br i1 %.10488, label %.thread528, label %528

528:                                              ; preds = %429
  %529 = load ptr, ptr %198, align 8, !tbaa !5
  %530 = load double, ptr %529, align 8, !tbaa !8
  %531 = getelementptr inbounds i8, ptr %529, i64 8
  %532 = load double, ptr %531, align 8, !tbaa !8
  %533 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %530, double noundef %532)
  br i1 %533, label %.thread528, label %534

534:                                              ; preds = %528
  %535 = load ptr, ptr %198, align 8, !tbaa !5
  %536 = getelementptr inbounds i8, ptr %535, i64 8
  %537 = load double, ptr %536, align 8, !tbaa !8
  %538 = getelementptr inbounds i8, ptr %535, i64 16
  %539 = load double, ptr %538, align 8, !tbaa !8
  %540 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %537, double noundef %539)
  br i1 %540, label %.thread528, label %541

541:                                              ; preds = %534
  %542 = load ptr, ptr %198, align 8, !tbaa !5
  %543 = getelementptr inbounds i8, ptr %542, i64 16
  %544 = load double, ptr %543, align 8, !tbaa !8
  %545 = getelementptr inbounds i8, ptr %542, i64 24
  %546 = load double, ptr %545, align 8, !tbaa !8
  %547 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %544, double noundef %546)
  br i1 %547, label %.thread528, label %548

548:                                              ; preds = %541
  %549 = load ptr, ptr %198, align 8, !tbaa !5
  %550 = getelementptr inbounds i8, ptr %549, i64 24
  %551 = load double, ptr %550, align 8, !tbaa !8
  %552 = getelementptr inbounds i8, ptr %549, i64 32
  %553 = load double, ptr %552, align 8, !tbaa !8
  %554 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %551, double noundef %553)
  br i1 %554, label %.thread528, label %555

555:                                              ; preds = %548
  %556 = load ptr, ptr %198, align 8, !tbaa !5
  %557 = getelementptr inbounds i8, ptr %556, i64 32
  %558 = load double, ptr %557, align 8, !tbaa !8
  %559 = getelementptr inbounds i8, ptr %556, i64 40
  %560 = load double, ptr %559, align 8, !tbaa !8
  %561 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %558, double noundef %560)
  br i1 %561, label %.thread528, label %562

562:                                              ; preds = %555
  %563 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %527, double noundef 0x3D719799812DEA11)
  br label %.thread528

.thread528:                                       ; preds = %429, %528, %534, %541, %548, %.loopexit547, %562, %555
  %564 = phi i1 [ true, %555 ], [ %563, %562 ], [ true, %.loopexit547 ], [ true, %548 ], [ true, %541 ], [ true, %534 ], [ true, %528 ], [ true, %429 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 1, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 2, ptr noundef %1)
  %565 = load ptr, ptr %11, align 8, !tbaa !5
  store double 0.000000e+00, ptr %565, align 8, !tbaa !8
  %566 = load ptr, ptr %15, align 8, !tbaa !5
  store double 0.000000e+00, ptr %566, align 8, !tbaa !8
  %567 = load ptr, ptr %15, align 8, !tbaa !5
  %568 = getelementptr inbounds i8, ptr %567, i64 8
  store double 0x3FD5555555555555, ptr %568, align 8, !tbaa !8
  call void @_ZN11alglib_impl23gqgenerategaussradaurecEPNS_9ae_vectorES1_ddlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 2.000000e+00, double noundef -1.000000e+00, i64 noundef 2, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %569 = load i64, ptr %10, align 8, !tbaa !10
  %570 = icmp sgt i64 %569, 0
  br i1 %570, label %571, label %.loopexit546

571:                                              ; preds = %.thread528
  %572 = load ptr, ptr %198, align 8, !tbaa !5
  %573 = load double, ptr %572, align 8, !tbaa !8
  %574 = fadd double %573, 1.000000e+00
  %575 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %574, ptr noundef %1)
  %576 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef 0.000000e+00, double noundef %575, ptr noundef %1)
  %577 = load ptr, ptr %198, align 8, !tbaa !5
  %578 = getelementptr inbounds i8, ptr %577, i64 8
  %579 = load double, ptr %578, align 8, !tbaa !8
  %580 = fadd double %579, 0xBFD5555555555555
  %581 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %580, ptr noundef %1)
  %582 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %576, double noundef %581, ptr noundef %1)
  %583 = load ptr, ptr %199, align 8, !tbaa !5
  %584 = load double, ptr %583, align 8, !tbaa !8
  %585 = fadd double %584, -5.000000e-01
  %586 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %585, ptr noundef %1)
  %587 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %582, double noundef %586, ptr noundef %1)
  %588 = load ptr, ptr %199, align 8, !tbaa !5
  %589 = getelementptr inbounds i8, ptr %588, i64 8
  %590 = load double, ptr %589, align 8, !tbaa !8
  %591 = fadd double %590, -1.500000e+00
  %592 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %591, ptr noundef %1)
  %593 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %587, double noundef %592, ptr noundef %1)
  br i1 %564, label %.loopexit546, label %594

594:                                              ; preds = %571
  %595 = load ptr, ptr %198, align 8, !tbaa !5
  %596 = load double, ptr %595, align 8, !tbaa !8
  %597 = getelementptr inbounds i8, ptr %595, i64 8
  %598 = load double, ptr %597, align 8, !tbaa !8
  %599 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %596, double noundef %598)
  br label %.loopexit546

.loopexit546:                                     ; preds = %594, %571, %.thread528
  %.14492 = phi i1 [ true, %.thread528 ], [ true, %571 ], [ %599, %594 ]
  %.8 = phi double [ 0.000000e+00, %.thread528 ], [ %593, %571 ], [ %593, %594 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 2, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 3, ptr noundef %1)
  %600 = load ptr, ptr %11, align 8, !tbaa !5
  store double 0.000000e+00, ptr %600, align 8, !tbaa !8
  %601 = load ptr, ptr %11, align 8, !tbaa !5
  %602 = getelementptr inbounds i8, ptr %601, i64 8
  store double 0.000000e+00, ptr %602, align 8, !tbaa !8
  %603 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 0.000000e+00, ptr noundef %1)
  %604 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 0.000000e+00, ptr noundef %1)
  %605 = call double @llvm.fmuladd.f64(double %604, double 4.000000e+00, double -1.000000e+00)
  %606 = fdiv double %603, %605
  %607 = load ptr, ptr %15, align 8, !tbaa !5
  store double %606, ptr %607, align 8, !tbaa !8
  %608 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 1.000000e+00, ptr noundef %1)
  %609 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 1.000000e+00, ptr noundef %1)
  %610 = call double @llvm.fmuladd.f64(double %609, double 4.000000e+00, double -1.000000e+00)
  %611 = fdiv double %608, %610
  %612 = load ptr, ptr %15, align 8, !tbaa !5
  %613 = getelementptr inbounds i8, ptr %612, i64 8
  store double %611, ptr %613, align 8, !tbaa !8
  %614 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %1)
  %615 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %1)
  %616 = call double @llvm.fmuladd.f64(double %615, double 4.000000e+00, double -1.000000e+00)
  %617 = fdiv double %614, %616
  %618 = load ptr, ptr %15, align 8, !tbaa !5
  %619 = getelementptr inbounds i8, ptr %618, i64 16
  store double %617, ptr %619, align 8, !tbaa !8
  call void @_ZN11alglib_impl23gqgenerategaussradaurecEPNS_9ae_vectorES1_ddlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 2.000000e+00, double noundef -1.000000e+00, i64 noundef 3, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %620 = load i64, ptr %10, align 8, !tbaa !10
  %621 = icmp sgt i64 %620, 0
  br i1 %621, label %622, label %.loopexit545

622:                                              ; preds = %.loopexit546
  %623 = load ptr, ptr %198, align 8, !tbaa !5
  %624 = load double, ptr %623, align 8, !tbaa !8
  %625 = fadd double %624, 1.000000e+00
  %626 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %625, ptr noundef %1)
  %627 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.8, double noundef %626, ptr noundef %1)
  %628 = load ptr, ptr %198, align 8, !tbaa !5
  %629 = getelementptr inbounds i8, ptr %628, i64 8
  %630 = load double, ptr %629, align 8, !tbaa !8
  %631 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1)
  %632 = fsub double 1.000000e+00, %631
  %633 = fdiv double %632, 5.000000e+00
  %634 = fsub double %630, %633
  %635 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %634, ptr noundef %1)
  %636 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %627, double noundef %635, ptr noundef %1)
  %637 = load ptr, ptr %198, align 8, !tbaa !5
  %638 = getelementptr inbounds i8, ptr %637, i64 16
  %639 = load double, ptr %638, align 8, !tbaa !8
  %640 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1)
  %641 = fadd double %640, 1.000000e+00
  %642 = fdiv double %641, 5.000000e+00
  %643 = fsub double %639, %642
  %644 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %643, ptr noundef %1)
  %645 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %636, double noundef %644, ptr noundef %1)
  %646 = load ptr, ptr %199, align 8, !tbaa !5
  %647 = load double, ptr %646, align 8, !tbaa !8
  %648 = fadd double %647, 0xBFCC71C71C71C71C
  %649 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %648, ptr noundef %1)
  %650 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %645, double noundef %649, ptr noundef %1)
  %651 = load ptr, ptr %199, align 8, !tbaa !5
  %652 = getelementptr inbounds i8, ptr %651, i64 8
  %653 = load double, ptr %652, align 8, !tbaa !8
  %654 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1)
  %655 = fadd double %654, 1.600000e+01
  %656 = fdiv double %655, 1.800000e+01
  %657 = fsub double %653, %656
  %658 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %657, ptr noundef %1)
  %659 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %650, double noundef %658, ptr noundef %1)
  %660 = load ptr, ptr %199, align 8, !tbaa !5
  %661 = getelementptr inbounds i8, ptr %660, i64 16
  %662 = load double, ptr %661, align 8, !tbaa !8
  %663 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1)
  %664 = fsub double 1.600000e+01, %663
  %665 = fdiv double %664, 1.800000e+01
  %666 = fsub double %662, %665
  %667 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %666, ptr noundef %1)
  %668 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %659, double noundef %667, ptr noundef %1)
  br i1 %.14492, label %.loopexit545, label %669

669:                                              ; preds = %622
  %670 = load ptr, ptr %198, align 8, !tbaa !5
  %671 = load double, ptr %670, align 8, !tbaa !8
  %672 = getelementptr inbounds i8, ptr %670, i64 8
  %673 = load double, ptr %672, align 8, !tbaa !8
  %674 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %671, double noundef %673)
  br i1 %674, label %.loopexit545, label %675

675:                                              ; preds = %669
  %676 = load ptr, ptr %198, align 8, !tbaa !5
  %677 = getelementptr inbounds i8, ptr %676, i64 8
  %678 = load double, ptr %677, align 8, !tbaa !8
  %679 = getelementptr inbounds i8, ptr %676, i64 16
  %680 = load double, ptr %679, align 8, !tbaa !8
  %681 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %678, double noundef %680)
  br label %.loopexit545

.loopexit545:                                     ; preds = %622, %669, %675, %.loopexit546
  %.16494 = phi i1 [ true, %.loopexit546 ], [ true, %669 ], [ %681, %675 ], [ true, %622 ]
  %.9 = phi double [ %.8, %.loopexit546 ], [ %668, %669 ], [ %668, %675 ], [ %668, %622 ]
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %4, i64 noundef 2, ptr noundef %1)
  call void @_ZN11alglib_impl20ae_vector_set_lengthEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %5, i64 noundef 3, ptr noundef %1)
  %682 = load ptr, ptr %11, align 8, !tbaa !5
  store double 0.000000e+00, ptr %682, align 8, !tbaa !8
  %683 = load ptr, ptr %11, align 8, !tbaa !5
  %684 = getelementptr inbounds i8, ptr %683, i64 8
  store double 0.000000e+00, ptr %684, align 8, !tbaa !8
  %685 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 0.000000e+00, ptr noundef %1)
  %686 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 0.000000e+00, ptr noundef %1)
  %687 = call double @llvm.fmuladd.f64(double %686, double 4.000000e+00, double -1.000000e+00)
  %688 = fdiv double %685, %687
  %689 = load ptr, ptr %15, align 8, !tbaa !5
  store double %688, ptr %689, align 8, !tbaa !8
  %690 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 1.000000e+00, ptr noundef %1)
  %691 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 1.000000e+00, ptr noundef %1)
  %692 = call double @llvm.fmuladd.f64(double %691, double 4.000000e+00, double -1.000000e+00)
  %693 = fdiv double %690, %692
  %694 = load ptr, ptr %15, align 8, !tbaa !5
  %695 = getelementptr inbounds i8, ptr %694, i64 8
  store double %693, ptr %695, align 8, !tbaa !8
  %696 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %1)
  %697 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %1)
  %698 = call double @llvm.fmuladd.f64(double %697, double 4.000000e+00, double -1.000000e+00)
  %699 = fdiv double %696, %698
  %700 = load ptr, ptr %15, align 8, !tbaa !5
  %701 = getelementptr inbounds i8, ptr %700, i64 16
  store double %699, ptr %701, align 8, !tbaa !8
  call void @_ZN11alglib_impl23gqgenerategaussradaurecEPNS_9ae_vectorES1_ddlPlS1_S1_PNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %5, double noundef 2.000000e+00, double noundef 1.000000e+00, i64 noundef 3, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %702 = load i64, ptr %10, align 8, !tbaa !10
  %703 = icmp sgt i64 %702, 0
  br i1 %703, label %704, label %.thread531

704:                                              ; preds = %.loopexit545
  %705 = load ptr, ptr %198, align 8, !tbaa !5
  %706 = getelementptr inbounds i8, ptr %705, i64 16
  %707 = load double, ptr %706, align 8, !tbaa !8
  %708 = fadd double %707, -1.000000e+00
  %709 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %708, ptr noundef %1)
  %710 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.9, double noundef %709, ptr noundef %1)
  %711 = load ptr, ptr %198, align 8, !tbaa !5
  %712 = getelementptr inbounds i8, ptr %711, i64 8
  %713 = load double, ptr %712, align 8, !tbaa !8
  %714 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1)
  %715 = fsub double 1.000000e+00, %714
  %716 = fdiv double %715, 5.000000e+00
  %717 = fadd double %713, %716
  %718 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %717, ptr noundef %1)
  %719 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %710, double noundef %718, ptr noundef %1)
  %720 = load ptr, ptr %198, align 8, !tbaa !5
  %721 = load double, ptr %720, align 8, !tbaa !8
  %722 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1)
  %723 = fadd double %722, 1.000000e+00
  %724 = fdiv double %723, 5.000000e+00
  %725 = fadd double %721, %724
  %726 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %725, ptr noundef %1)
  %727 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %719, double noundef %726, ptr noundef %1)
  %728 = load ptr, ptr %199, align 8, !tbaa !5
  %729 = getelementptr inbounds i8, ptr %728, i64 16
  %730 = load double, ptr %729, align 8, !tbaa !8
  %731 = fadd double %730, 0xBFCC71C71C71C71C
  %732 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %731, ptr noundef %1)
  %733 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %727, double noundef %732, ptr noundef %1)
  %734 = load ptr, ptr %199, align 8, !tbaa !5
  %735 = getelementptr inbounds i8, ptr %734, i64 8
  %736 = load double, ptr %735, align 8, !tbaa !8
  %737 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1)
  %738 = fadd double %737, 1.600000e+01
  %739 = fdiv double %738, 1.800000e+01
  %740 = fsub double %736, %739
  %741 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %740, ptr noundef %1)
  %742 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %733, double noundef %741, ptr noundef %1)
  %743 = load ptr, ptr %199, align 8, !tbaa !5
  %744 = load double, ptr %743, align 8, !tbaa !8
  %745 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 6.000000e+00, ptr noundef %1)
  %746 = fsub double 1.600000e+01, %745
  %747 = fdiv double %746, 1.800000e+01
  %748 = fsub double %744, %747
  %749 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %748, ptr noundef %1)
  %750 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %742, double noundef %749, ptr noundef %1)
  br i1 %.16494, label %.thread531, label %751

751:                                              ; preds = %704
  %752 = load ptr, ptr %198, align 8, !tbaa !5
  %753 = load double, ptr %752, align 8, !tbaa !8
  %754 = getelementptr inbounds i8, ptr %752, i64 8
  %755 = load double, ptr %754, align 8, !tbaa !8
  %756 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %753, double noundef %755)
  br i1 %756, label %.thread531, label %757

757:                                              ; preds = %751
  %758 = load ptr, ptr %198, align 8, !tbaa !5
  %759 = getelementptr inbounds i8, ptr %758, i64 8
  %760 = load double, ptr %759, align 8, !tbaa !8
  %761 = getelementptr inbounds i8, ptr %758, i64 16
  %762 = load double, ptr %761, align 8, !tbaa !8
  %763 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %760, double noundef %762)
  br i1 %763, label %.thread531, label %764

764:                                              ; preds = %757
  %765 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %750, double noundef 0x3D719799812DEA11)
  br label %.thread531

.thread531:                                       ; preds = %704, %751, %.loopexit545, %764, %757
  %766 = phi i1 [ true, %757 ], [ %765, %764 ], [ true, %.loopexit545 ], [ true, %751 ], [ true, %704 ]
  %767 = getelementptr inbounds i8, ptr %8, i64 56
  %768 = getelementptr inbounds i8, ptr %9, i64 56
  br label %769

769:                                              ; preds = %.thread531, %.thread540
  %.0469600 = phi i1 [ false, %.thread531 ], [ %915, %.thread540 ]
  %.1498599 = phi i64 [ 1, %.thread531 ], [ %916, %.thread540 ]
  call void @_ZN11alglib_impl23gqgenerategausslegendreElPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %.1498599, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %770 = load i64, ptr %10, align 8, !tbaa !10
  %771 = icmp sgt i64 %770, 0
  br i1 %771, label %772, label %.preheader.preheader

772:                                              ; preds = %769
  call void @_ZL39testgqunit_buildgausslegendrequadraturelPN11alglib_impl9ae_vectorES1_PNS_8ae_stateE(i64 noundef %.1498599, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef %1)
  br label %773

773:                                              ; preds = %772, %773
  %.11581 = phi double [ 0.000000e+00, %772 ], [ %791, %773 ]
  %.14513580 = phi i64 [ 0, %772 ], [ %792, %773 ]
  %774 = load ptr, ptr %198, align 8, !tbaa !5
  %775 = getelementptr inbounds double, ptr %774, i64 %.14513580
  %776 = load double, ptr %775, align 8, !tbaa !8
  %777 = load ptr, ptr %767, align 8, !tbaa !5
  %778 = getelementptr inbounds double, ptr %777, i64 %.14513580
  %779 = load double, ptr %778, align 8, !tbaa !8
  %780 = fsub double %776, %779
  %781 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %780, ptr noundef %1)
  %782 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.11581, double noundef %781, ptr noundef %1)
  %783 = load ptr, ptr %199, align 8, !tbaa !5
  %784 = getelementptr inbounds double, ptr %783, i64 %.14513580
  %785 = load double, ptr %784, align 8, !tbaa !8
  %786 = load ptr, ptr %768, align 8, !tbaa !5
  %787 = getelementptr inbounds double, ptr %786, i64 %.14513580
  %788 = load double, ptr %787, align 8, !tbaa !8
  %789 = fsub double %785, %788
  %790 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %789, ptr noundef %1)
  %791 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %782, double noundef %790, ptr noundef %1)
  %792 = add nuw nsw i64 %.14513580, 1
  %exitcond621.not = icmp eq i64 %792, %.1498599
  br i1 %exitcond621.not, label %793, label %773, !llvm.loop !17

793:                                              ; preds = %773
  br i1 %.0469600, label %.preheader.preheader, label %794

794:                                              ; preds = %793
  %795 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %791, double noundef 0x3D719799812DEA11)
  br label %.preheader.preheader

.preheader.preheader:                             ; preds = %769, %794, %793
  %.2471588.ph = phi i1 [ true, %793 ], [ %795, %794 ], [ true, %769 ]
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %823
  %.13589 = phi double [ %.16, %823 ], [ 0.000000e+00, %.preheader.preheader ]
  %.2471588 = phi i1 [ %.4473, %823 ], [ %.2471588.ph, %.preheader.preheader ]
  %.0518587 = phi i64 [ %824, %823 ], [ 0, %.preheader.preheader ]
  br label %796

796:                                              ; preds = %.preheader, %.loopexit
  %.14586 = phi double [ %.13589, %.preheader ], [ %.16, %.loopexit ]
  %.3472585 = phi i1 [ %.2471588, %.preheader ], [ %.4473, %.loopexit ]
  %.0520584 = phi i64 [ 0, %.preheader ], [ %822, %.loopexit ]
  %797 = call noundef double @_ZL18testgqunit_mapkindlPN11alglib_impl8ae_stateE(i64 noundef %.0518587, ptr noundef %1)
  %798 = call noundef double @_ZL18testgqunit_mapkindlPN11alglib_impl8ae_stateE(i64 noundef %.0520584, ptr noundef %1)
  call void @_ZN11alglib_impl21gqgenerategaussjacobiElddPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %.1498599, double noundef %797, double noundef %798, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %799 = load i64, ptr %10, align 8, !tbaa !10
  %800 = icmp sgt i64 %799, 0
  br i1 %800, label %801, label %.loopexit

801:                                              ; preds = %796
  call void @_ZL37testgqunit_buildgaussjacobiquadraturelddPN11alglib_impl9ae_vectorES1_PNS_8ae_stateE(i64 noundef %.1498599, double noundef %797, double noundef %798, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef %1)
  br label %802

802:                                              ; preds = %801, %802
  %.15583 = phi double [ %.14586, %801 ], [ %820, %802 ]
  %.15514582 = phi i64 [ 0, %801 ], [ %821, %802 ]
  %803 = load ptr, ptr %198, align 8, !tbaa !5
  %804 = getelementptr inbounds double, ptr %803, i64 %.15514582
  %805 = load double, ptr %804, align 8, !tbaa !8
  %806 = load ptr, ptr %767, align 8, !tbaa !5
  %807 = getelementptr inbounds double, ptr %806, i64 %.15514582
  %808 = load double, ptr %807, align 8, !tbaa !8
  %809 = fsub double %805, %808
  %810 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %809, ptr noundef %1)
  %811 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.15583, double noundef %810, ptr noundef %1)
  %812 = load ptr, ptr %199, align 8, !tbaa !5
  %813 = getelementptr inbounds double, ptr %812, i64 %.15514582
  %814 = load double, ptr %813, align 8, !tbaa !8
  %815 = load ptr, ptr %768, align 8, !tbaa !5
  %816 = getelementptr inbounds double, ptr %815, i64 %.15514582
  %817 = load double, ptr %816, align 8, !tbaa !8
  %818 = fsub double %814, %817
  %819 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %818, ptr noundef %1)
  %820 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %811, double noundef %819, ptr noundef %1)
  %821 = add nuw nsw i64 %.15514582, 1
  %exitcond622.not = icmp eq i64 %821, %.1498599
  br i1 %exitcond622.not, label %.loopexit, label %802, !llvm.loop !18

.loopexit:                                        ; preds = %802, %796
  %.4473 = phi i1 [ true, %796 ], [ %.3472585, %802 ]
  %.16 = phi double [ %.14586, %796 ], [ %820, %802 ]
  %822 = add nuw nsw i64 %.0520584, 1
  %exitcond623.not = icmp eq i64 %822, 10
  br i1 %exitcond623.not, label %823, label %796, !llvm.loop !19

823:                                              ; preds = %.loopexit
  %824 = add nuw nsw i64 %.0518587, 1
  %exitcond624.not = icmp eq i64 %824, 10
  br i1 %exitcond624.not, label %825, label %.preheader, !llvm.loop !20

825:                                              ; preds = %823
  br i1 %.4473, label %828, label %826

826:                                              ; preds = %825
  %827 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %.16, double noundef 0x3EB0C6F7A0B5ED8D)
  br label %828

828:                                              ; preds = %826, %825
  %829 = phi i1 [ true, %825 ], [ %827, %826 ]
  call void @_ZN11alglib_impl21gqgenerategaussjacobiElddPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %.1498599, double noundef -5.000000e-01, double noundef -5.000000e-01, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %830 = load i64, ptr %10, align 8, !tbaa !10
  %831 = icmp sgt i64 %830, 0
  br i1 %831, label %.preheader544, label %.outer.preheader

.preheader544:                                    ; preds = %828
  %832 = uitofp nneg i64 %.1498599 to double
  %833 = fdiv double 0x400921FB54442D18, %832
  br label %834

834:                                              ; preds = %.preheader544, %834
  %.17591 = phi double [ 0.000000e+00, %.preheader544 ], [ %851, %834 ]
  %.16515590 = phi i64 [ 0, %.preheader544 ], [ %852, %834 ]
  %835 = load ptr, ptr %198, align 8, !tbaa !5
  %836 = getelementptr inbounds double, ptr %835, i64 %.16515590
  %837 = load double, ptr %836, align 8, !tbaa !8
  %838 = uitofp nneg i64 %.16515590 to double
  %839 = fadd double %838, 5.000000e-01
  %840 = fmul double %839, 0x400921FB54442D18
  %841 = fdiv double %840, %832
  %842 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %841, ptr noundef %1)
  %843 = fadd double %837, %842
  %844 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %843, ptr noundef %1)
  %845 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.17591, double noundef %844, ptr noundef %1)
  %846 = load ptr, ptr %199, align 8, !tbaa !5
  %847 = getelementptr inbounds double, ptr %846, i64 %.16515590
  %848 = load double, ptr %847, align 8, !tbaa !8
  %849 = fsub double %848, %833
  %850 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %849, ptr noundef %1)
  %851 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %845, double noundef %850, ptr noundef %1)
  %852 = add nuw nsw i64 %.16515590, 1
  %exitcond625.not = icmp eq i64 %852, %.1498599
  br i1 %exitcond625.not, label %853, label %834, !llvm.loop !21

853:                                              ; preds = %834
  br i1 %829, label %.outer.preheader, label %854

854:                                              ; preds = %853
  %855 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %851, double noundef 5.000000e-13)
  br label %.outer.preheader

.outer.preheader:                                 ; preds = %828, %854, %853
  %.6475595.ph.ph = phi i1 [ true, %853 ], [ %855, %854 ], [ true, %828 ]
  br label %.outer

.outer:                                           ; preds = %.outer.preheader, %.loopexit543
  %.19596.ph = phi double [ %881, %.loopexit543 ], [ 0.000000e+00, %.outer.preheader ]
  %.6475595.ph = phi i1 [ %.6475595.lcssa, %.loopexit543 ], [ %.6475595.ph.ph, %.outer.preheader ]
  %.1519594.ph = phi i64 [ %883, %.loopexit543 ], [ 0, %.outer.preheader ]
  %856 = call noundef double @_ZL18testgqunit_mapkindlPN11alglib_impl8ae_stateE(i64 noundef %.1519594.ph, ptr noundef %1)
  call void @_ZN11alglib_impl23gqgenerategausslaguerreEldPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %.1498599, double noundef %856, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %857 = load i64, ptr %10, align 8, !tbaa !10
  %858 = icmp sgt i64 %857, 0
  br i1 %858, label %._crit_edge, label %.loopexit543.thread

859:                                              ; preds = %.loopexit543.thread
  %860 = call noundef double @_ZL18testgqunit_mapkindlPN11alglib_impl8ae_stateE(i64 noundef %884, ptr noundef %1)
  call void @_ZN11alglib_impl23gqgenerategausslaguerreEldPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %.1498599, double noundef %860, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %861 = load i64, ptr %10, align 8, !tbaa !10
  %862 = icmp sgt i64 %861, 0
  br i1 %862, label %._crit_edge, label %.loopexit543.thread, !llvm.loop !22

._crit_edge:                                      ; preds = %859, %.outer
  %.6475595.lcssa = phi i1 [ %.6475595.ph, %.outer ], [ true, %859 ]
  %.1519594.lcssa = phi i64 [ %.1519594.ph, %.outer ], [ %884, %859 ]
  %.lcssa674 = phi double [ %856, %.outer ], [ %860, %859 ]
  call void @_ZL39testgqunit_buildgausslaguerrequadratureldPN11alglib_impl9ae_vectorES1_PNS_8ae_stateE(i64 noundef %.1498599, double noundef %.lcssa674, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef %1)
  br label %863

863:                                              ; preds = %._crit_edge, %863
  %.20593 = phi double [ %.19596.ph, %._crit_edge ], [ %881, %863 ]
  %.17516592 = phi i64 [ 0, %._crit_edge ], [ %882, %863 ]
  %864 = load ptr, ptr %198, align 8, !tbaa !5
  %865 = getelementptr inbounds double, ptr %864, i64 %.17516592
  %866 = load double, ptr %865, align 8, !tbaa !8
  %867 = load ptr, ptr %767, align 8, !tbaa !5
  %868 = getelementptr inbounds double, ptr %867, i64 %.17516592
  %869 = load double, ptr %868, align 8, !tbaa !8
  %870 = fsub double %866, %869
  %871 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %870, ptr noundef %1)
  %872 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.20593, double noundef %871, ptr noundef %1)
  %873 = load ptr, ptr %199, align 8, !tbaa !5
  %874 = getelementptr inbounds double, ptr %873, i64 %.17516592
  %875 = load double, ptr %874, align 8, !tbaa !8
  %876 = load ptr, ptr %768, align 8, !tbaa !5
  %877 = getelementptr inbounds double, ptr %876, i64 %.17516592
  %878 = load double, ptr %877, align 8, !tbaa !8
  %879 = fsub double %875, %878
  %880 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %879, ptr noundef %1)
  %881 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %872, double noundef %880, ptr noundef %1)
  %882 = add nuw nsw i64 %.17516592, 1
  %exitcond626.not = icmp eq i64 %882, %.1498599
  br i1 %exitcond626.not, label %.loopexit543, label %863, !llvm.loop !23

.loopexit543:                                     ; preds = %863
  %883 = add nuw nsw i64 %.1519594.lcssa, 1
  %exitcond627.not = icmp eq i64 %883, 10
  br i1 %exitcond627.not, label %885, label %.outer, !llvm.loop !22

.loopexit543.thread:                              ; preds = %.outer, %859
  %.1519594683 = phi i64 [ %884, %859 ], [ %.1519594.ph, %.outer ]
  %884 = add nuw nsw i64 %.1519594683, 1
  %exitcond627.not653 = icmp eq i64 %884, 10
  br i1 %exitcond627.not653, label %.thread656, label %859, !llvm.loop !22

885:                                              ; preds = %.loopexit543
  br i1 %.6475595.lcssa, label %.thread656, label %886

886:                                              ; preds = %885
  %887 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %881, double noundef 0x3EB0C6F7A0B5ED8D)
  br label %.thread656

.thread656:                                       ; preds = %.loopexit543.thread, %886, %885
  %888 = phi i1 [ true, %885 ], [ %887, %886 ], [ true, %.loopexit543.thread ]
  call void @_ZN11alglib_impl22gqgenerategausshermiteElPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %.1498599, ptr noundef nonnull %10, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %1)
  %889 = load i64, ptr %10, align 8, !tbaa !10
  %890 = icmp sgt i64 %889, 0
  br i1 %890, label %891, label %.thread540

891:                                              ; preds = %.thread656
  call void @_ZL38testgqunit_buildgausshermitequadraturelPN11alglib_impl9ae_vectorES1_PNS_8ae_stateE(i64 noundef %.1498599, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef %1)
  br label %892

892:                                              ; preds = %891, %892
  %.22598 = phi double [ 0.000000e+00, %891 ], [ %910, %892 ]
  %.18517597 = phi i64 [ 0, %891 ], [ %911, %892 ]
  %893 = load ptr, ptr %198, align 8, !tbaa !5
  %894 = getelementptr inbounds double, ptr %893, i64 %.18517597
  %895 = load double, ptr %894, align 8, !tbaa !8
  %896 = load ptr, ptr %767, align 8, !tbaa !5
  %897 = getelementptr inbounds double, ptr %896, i64 %.18517597
  %898 = load double, ptr %897, align 8, !tbaa !8
  %899 = fsub double %895, %898
  %900 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %899, ptr noundef %1)
  %901 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.22598, double noundef %900, ptr noundef %1)
  %902 = load ptr, ptr %199, align 8, !tbaa !5
  %903 = getelementptr inbounds double, ptr %902, i64 %.18517597
  %904 = load double, ptr %903, align 8, !tbaa !8
  %905 = load ptr, ptr %768, align 8, !tbaa !5
  %906 = getelementptr inbounds double, ptr %905, i64 %.18517597
  %907 = load double, ptr %906, align 8, !tbaa !8
  %908 = fsub double %904, %907
  %909 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %908, ptr noundef %1)
  %910 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %901, double noundef %909, ptr noundef %1)
  %911 = add nuw nsw i64 %.18517597, 1
  %exitcond628.not = icmp eq i64 %911, %.1498599
  br i1 %exitcond628.not, label %912, label %892, !llvm.loop !24

912:                                              ; preds = %892
  br i1 %888, label %.thread540, label %913

913:                                              ; preds = %912
  %914 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %910, double noundef 0x3EB0C6F7A0B5ED8D)
  br label %.thread540

.thread540:                                       ; preds = %.thread656, %913, %912
  %915 = phi i1 [ true, %912 ], [ %914, %913 ], [ true, %.thread656 ]
  %916 = add nuw nsw i64 %.1498599, 1
  %exitcond629.not = icmp eq i64 %916, 21
  br i1 %exitcond629.not, label %917, label %769, !llvm.loop !25

917:                                              ; preds = %.thread540
  %918 = or i1 %766, %915
  br i1 %0, label %932, label %919

919:                                              ; preds = %917
  %920 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.578)
  %921 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.579)
  %.str.7..str.6 = select i1 %918, ptr @.str.7, ptr @.str.6
  %922 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.7..str.6)
  %923 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.580)
  %.str.6.sink671 = select i1 %915, ptr @.str.7, ptr @.str.6
  %924 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.6.sink671)
  %925 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.581)
  br i1 %766, label %.thread659, label %927

.thread659:                                       ; preds = %919
  %926 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7)
  br label %929

927:                                              ; preds = %919
  %928 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6)
  %spec.select = select i1 %915, ptr @.str.1, ptr @.str.2
  br label %929

929:                                              ; preds = %927, %.thread659
  %.str.2.sink = phi ptr [ @.str.1, %.thread659 ], [ %spec.select, %927 ]
  %930 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.2.sink)
  %931 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3)
  br label %932

932:                                              ; preds = %929, %917
  %933 = xor i1 %918, true
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  ret i1 %933
}

declare void @_ZN11alglib_impl13gqgeneraterecEPNS_9ae_vectorES1_dlPlS1_S1_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl25gqgenerategausslobattorecEPNS_9ae_vectorES1_dddlPlS1_S1_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, double noundef, double noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl23gqgenerategaussradaurecEPNS_9ae_vectorES1_ddlPlS1_S1_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, double noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl23gqgenerategausslegendreElPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef double @_ZL18testgqunit_mapkindlPN11alglib_impl8ae_stateE(i64 noundef, ptr noundef) local_unnamed_addr #6

declare void @_ZN11alglib_impl21gqgenerategaussjacobiElddPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare void @_ZN11alglib_impl23gqgenerategausslaguerreEldPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare void @_ZN11alglib_impl22gqgenerategausshermiteElPlPNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"double", !6, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"long", !6, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !13}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13}


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