; LLVM IR from venumb/ZSPACE :: cpp/depends/alglib/cpp/tests/test_c.ll (Z10testautogkbPN11alglib_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::autogkstate" = type { double, double, double, double, double, double, double, double, i8, double, i64, %"struct.alglib_impl::autogkinternalstate", %"struct.alglib_impl::rcommstate", double, i64, i64, i64 }
%"struct.alglib_impl::autogkinternalstate" = type { double, double, double, double, double, double, i64, double, %"struct.alglib_impl::ae_matrix", i64, i64, i64, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"struct.alglib_impl::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::autogkreport" = type { i64, i64, i64 }

@.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.586 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.587 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.589 = 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 noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z10testautogkbPN11alglib_impl8ae_stateE(i1 noundef zeroext %0, ptr noundef %1) #3 {
  %3 = alloca i8, align 1
  %4 = alloca ptr, align 8
  %5 = alloca %"struct.alglib_impl::ae_frame", align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca %"struct.alglib_impl::autogkstate", align 8
  %9 = alloca %"struct.alglib_impl::autogkreport", align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca i64, align 8
  %15 = alloca double, align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = zext i1 %0 to i8
  store i8 %20, 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) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 1096, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #4
  %21 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %21, ptr noundef %5)
  call void @llvm.memset.p0.i64(ptr align 8 %8, i8 0, i64 1096, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 24, i1 false)
  %22 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl17_autogkstate_initEPvPNS_8ae_stateEb(ptr noundef %8, ptr noundef %22, i1 noundef zeroext true)
  %23 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl18_autogkreport_initEPvPNS_8ae_stateEb(ptr noundef %9, ptr noundef %23, i1 noundef zeroext true)
  store i8 0, ptr %16, align 1, !tbaa !5
  store i8 0, ptr %17, align 1, !tbaa !5
  store i8 0, ptr %18, align 1, !tbaa !5
  store double 0x3D95FD7FE1796496, ptr %15, align 8, !tbaa !11
  %24 = load ptr, ptr %4, align 8, !tbaa !9
  %25 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %24)
  %26 = mul nsw i64 2, %25
  %27 = sub nsw i64 %26, 1
  %28 = sitofp i64 %27 to double
  %29 = fmul double %28, 1.000000e+00
  store double %29, ptr %6, align 8, !tbaa !11
  %30 = load ptr, ptr %4, align 8, !tbaa !9
  %31 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %30)
  %32 = mul nsw i64 2, %31
  %33 = sub nsw i64 %32, 1
  %34 = sitofp i64 %33 to double
  %35 = fmul double %34, 2.000000e+00
  store double %35, ptr %7, align 8, !tbaa !11
  %36 = load double, ptr %6, align 8, !tbaa !11
  %37 = load double, ptr %7, align 8, !tbaa !11
  %38 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl12autogksmoothEddPNS_11autogkstateEPNS_8ae_stateE(double noundef %36, double noundef %37, ptr noundef %8, ptr noundef %38)
  br label %39

39:                                               ; preds = %42, %2
  %40 = load ptr, ptr %4, align 8, !tbaa !9
  %41 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef %8, ptr noundef %40)
  br i1 %41, label %42, label %48

42:                                               ; preds = %39
  %43 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %44 = load double, ptr %43, align 8, !tbaa !13
  %45 = load ptr, ptr %4, align 8, !tbaa !9
  %46 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %44, ptr noundef %45)
  %47 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %46, ptr %47, align 8, !tbaa !22
  br label %39, !llvm.loop !23

48:                                               ; preds = %39
  %49 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef %8, ptr noundef %10, ptr noundef %9, ptr noundef %49)
  %50 = load double, ptr %7, align 8, !tbaa !11
  %51 = load ptr, ptr %4, align 8, !tbaa !9
  %52 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %50, ptr noundef %51)
  %53 = load double, ptr %6, align 8, !tbaa !11
  %54 = load ptr, ptr %4, align 8, !tbaa !9
  %55 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %53, ptr noundef %54)
  %56 = fsub double %52, %55
  store double %56, ptr %11, align 8, !tbaa !11
  %57 = load double, ptr %7, align 8, !tbaa !11
  %58 = load ptr, ptr %4, align 8, !tbaa !9
  %59 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %57, ptr noundef %58)
  %60 = load double, ptr %6, align 8, !tbaa !11
  %61 = load ptr, ptr %4, align 8, !tbaa !9
  %62 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %60, ptr noundef %61)
  %63 = fsub double %59, %62
  %64 = load ptr, ptr %4, align 8, !tbaa !9
  %65 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %63, ptr noundef %64)
  store double %65, ptr %12, align 8, !tbaa !11
  %66 = getelementptr inbounds %"struct.alglib_impl::autogkreport", ptr %9, i32 0, i32 0
  %67 = load i64, ptr %66, align 8, !tbaa !25
  %68 = icmp sle i64 %67, 0
  br i1 %68, label %69, label %70

69:                                               ; preds = %48
  store i8 1, ptr %16, align 1, !tbaa !5
  br label %86

70:                                               ; preds = %48
  %71 = load i8, ptr %16, align 1, !tbaa !5, !range !27, !noundef !28
  %72 = trunc i8 %71 to i1
  br i1 %72, label %83, label %73

73:                                               ; preds = %70
  %74 = load double, ptr %11, align 8, !tbaa !11
  %75 = load double, ptr %10, align 8, !tbaa !11
  %76 = fsub double %74, %75
  %77 = load ptr, ptr %4, align 8, !tbaa !9
  %78 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %76, ptr noundef %77)
  %79 = load double, ptr %15, align 8, !tbaa !11
  %80 = load double, ptr %12, align 8, !tbaa !11
  %81 = fmul double %79, %80
  %82 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %78, double noundef %81)
  br label %83

83:                                               ; preds = %73, %70
  %84 = phi i1 [ true, %70 ], [ %82, %73 ]
  %85 = zext i1 %84 to i8
  store i8 %85, ptr %16, align 1, !tbaa !5
  br label %86

86:                                               ; preds = %83, %69
  %87 = load ptr, ptr %4, align 8, !tbaa !9
  %88 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %87)
  %89 = mul nsw i64 2, %88
  %90 = sub nsw i64 %89, 1
  %91 = sitofp i64 %90 to double
  %92 = fmul double %91, 1.000000e+00
  store double %92, ptr %6, align 8, !tbaa !11
  %93 = load ptr, ptr %4, align 8, !tbaa !9
  %94 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %93)
  %95 = mul nsw i64 2, %94
  %96 = sub nsw i64 %95, 1
  %97 = sitofp i64 %96 to double
  %98 = fmul double %97, 2.000000e+00
  store double %98, ptr %7, align 8, !tbaa !11
  %99 = load double, ptr %6, align 8, !tbaa !11
  %100 = load double, ptr %7, align 8, !tbaa !11
  %101 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogksmoothwEdddPNS_11autogkstateEPNS_8ae_stateE(double noundef %99, double noundef %100, double noundef 1.000000e-01, ptr noundef %8, ptr noundef %101)
  br label %102

102:                                              ; preds = %105, %86
  %103 = load ptr, ptr %4, align 8, !tbaa !9
  %104 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef %8, ptr noundef %103)
  br i1 %104, label %105, label %111

105:                                              ; preds = %102
  %106 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %107 = load double, ptr %106, align 8, !tbaa !13
  %108 = load ptr, ptr %4, align 8, !tbaa !9
  %109 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %107, ptr noundef %108)
  %110 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %109, ptr %110, align 8, !tbaa !22
  br label %102, !llvm.loop !29

111:                                              ; preds = %102
  %112 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef %8, ptr noundef %10, ptr noundef %9, ptr noundef %112)
  %113 = load double, ptr %7, align 8, !tbaa !11
  %114 = load ptr, ptr %4, align 8, !tbaa !9
  %115 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %113, ptr noundef %114)
  %116 = load double, ptr %6, align 8, !tbaa !11
  %117 = load ptr, ptr %4, align 8, !tbaa !9
  %118 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %116, ptr noundef %117)
  %119 = fsub double %115, %118
  store double %119, ptr %11, align 8, !tbaa !11
  %120 = load double, ptr %7, align 8, !tbaa !11
  %121 = load ptr, ptr %4, align 8, !tbaa !9
  %122 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %120, ptr noundef %121)
  %123 = load double, ptr %6, align 8, !tbaa !11
  %124 = load ptr, ptr %4, align 8, !tbaa !9
  %125 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %123, ptr noundef %124)
  %126 = fsub double %122, %125
  %127 = load ptr, ptr %4, align 8, !tbaa !9
  %128 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %126, ptr noundef %127)
  store double %128, ptr %12, align 8, !tbaa !11
  %129 = getelementptr inbounds %"struct.alglib_impl::autogkreport", ptr %9, i32 0, i32 0
  %130 = load i64, ptr %129, align 8, !tbaa !25
  %131 = icmp sle i64 %130, 0
  br i1 %131, label %132, label %133

132:                                              ; preds = %111
  store i8 1, ptr %16, align 1, !tbaa !5
  br label %149

133:                                              ; preds = %111
  %134 = load i8, ptr %16, align 1, !tbaa !5, !range !27, !noundef !28
  %135 = trunc i8 %134 to i1
  br i1 %135, label %146, label %136

136:                                              ; preds = %133
  %137 = load double, ptr %11, align 8, !tbaa !11
  %138 = load double, ptr %10, align 8, !tbaa !11
  %139 = fsub double %137, %138
  %140 = load ptr, ptr %4, align 8, !tbaa !9
  %141 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %139, ptr noundef %140)
  %142 = load double, ptr %15, align 8, !tbaa !11
  %143 = load double, ptr %12, align 8, !tbaa !11
  %144 = fmul double %142, %143
  %145 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %141, double noundef %144)
  br label %146

146:                                              ; preds = %136, %133
  %147 = phi i1 [ true, %133 ], [ %145, %136 ]
  %148 = zext i1 %147 to i8
  store i8 %148, ptr %16, align 1, !tbaa !5
  br label %149

149:                                              ; preds = %146, %132
  store double 0.000000e+00, ptr %6, align 8, !tbaa !11
  store double 0x401921FB54442D18, ptr %7, align 8, !tbaa !11
  %150 = load double, ptr %6, align 8, !tbaa !11
  %151 = load double, ptr %7, align 8, !tbaa !11
  %152 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl12autogksmoothEddPNS_11autogkstateEPNS_8ae_stateE(double noundef %150, double noundef %151, ptr noundef %8, ptr noundef %152)
  br label %153

153:                                              ; preds = %156, %149
  %154 = load ptr, ptr %4, align 8, !tbaa !9
  %155 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef %8, ptr noundef %154)
  br i1 %155, label %156, label %163

156:                                              ; preds = %153
  %157 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %158 = load double, ptr %157, align 8, !tbaa !13
  %159 = fmul double 1.000000e+02, %158
  %160 = load ptr, ptr %4, align 8, !tbaa !9
  %161 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %159, ptr noundef %160)
  %162 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %161, ptr %162, align 8, !tbaa !22
  br label %153, !llvm.loop !30

163:                                              ; preds = %153
  %164 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef %8, ptr noundef %10, ptr noundef %9, ptr noundef %164)
  store double 0.000000e+00, ptr %11, align 8, !tbaa !11
  store double 4.000000e+00, ptr %12, align 8, !tbaa !11
  %165 = getelementptr inbounds %"struct.alglib_impl::autogkreport", ptr %9, i32 0, i32 0
  %166 = load i64, ptr %165, align 8, !tbaa !25
  %167 = icmp sle i64 %166, 0
  br i1 %167, label %168, label %169

168:                                              ; preds = %163
  store i8 1, ptr %16, align 1, !tbaa !5
  br label %185

169:                                              ; preds = %163
  %170 = load i8, ptr %16, align 1, !tbaa !5, !range !27, !noundef !28
  %171 = trunc i8 %170 to i1
  br i1 %171, label %182, label %172

172:                                              ; preds = %169
  %173 = load double, ptr %11, align 8, !tbaa !11
  %174 = load double, ptr %10, align 8, !tbaa !11
  %175 = fsub double %173, %174
  %176 = load ptr, ptr %4, align 8, !tbaa !9
  %177 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %175, ptr noundef %176)
  %178 = load double, ptr %15, align 8, !tbaa !11
  %179 = load double, ptr %12, align 8, !tbaa !11
  %180 = fmul double %178, %179
  %181 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %177, double noundef %180)
  br label %182

182:                                              ; preds = %172, %169
  %183 = phi i1 [ true, %169 ], [ %181, %172 ]
  %184 = zext i1 %183 to i8
  store i8 %184, ptr %16, align 1, !tbaa !5
  br label %185

185:                                              ; preds = %182, %168
  store double 0.000000e+00, ptr %6, align 8, !tbaa !11
  store double 0x401921FB54442D18, ptr %7, align 8, !tbaa !11
  %186 = load double, ptr %6, align 8, !tbaa !11
  %187 = load double, ptr %7, align 8, !tbaa !11
  %188 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogksmoothwEdddPNS_11autogkstateEPNS_8ae_stateE(double noundef %186, double noundef %187, double noundef 3.000000e-01, ptr noundef %8, ptr noundef %188)
  br label %189

189:                                              ; preds = %192, %185
  %190 = load ptr, ptr %4, align 8, !tbaa !9
  %191 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef %8, ptr noundef %190)
  br i1 %191, label %192, label %199

192:                                              ; preds = %189
  %193 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %194 = load double, ptr %193, align 8, !tbaa !13
  %195 = fmul double 1.000000e+02, %194
  %196 = load ptr, ptr %4, align 8, !tbaa !9
  %197 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %195, ptr noundef %196)
  %198 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %197, ptr %198, align 8, !tbaa !22
  br label %189, !llvm.loop !31

199:                                              ; preds = %189
  %200 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef %8, ptr noundef %10, ptr noundef %9, ptr noundef %200)
  store double 0.000000e+00, ptr %11, align 8, !tbaa !11
  store double 4.000000e+00, ptr %12, align 8, !tbaa !11
  %201 = getelementptr inbounds %"struct.alglib_impl::autogkreport", ptr %9, i32 0, i32 0
  %202 = load i64, ptr %201, align 8, !tbaa !25
  %203 = icmp sle i64 %202, 0
  br i1 %203, label %204, label %205

204:                                              ; preds = %199
  store i8 1, ptr %16, align 1, !tbaa !5
  br label %221

205:                                              ; preds = %199
  %206 = load i8, ptr %16, align 1, !tbaa !5, !range !27, !noundef !28
  %207 = trunc i8 %206 to i1
  br i1 %207, label %218, label %208

208:                                              ; preds = %205
  %209 = load double, ptr %11, align 8, !tbaa !11
  %210 = load double, ptr %10, align 8, !tbaa !11
  %211 = fsub double %209, %210
  %212 = load ptr, ptr %4, align 8, !tbaa !9
  %213 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %211, ptr noundef %212)
  %214 = load double, ptr %15, align 8, !tbaa !11
  %215 = load double, ptr %12, align 8, !tbaa !11
  %216 = fmul double %214, %215
  %217 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %213, double noundef %216)
  br label %218

218:                                              ; preds = %208, %205
  %219 = phi i1 [ true, %205 ], [ %217, %208 ]
  %220 = zext i1 %219 to i8
  store i8 %220, ptr %16, align 1, !tbaa !5
  br label %221

221:                                              ; preds = %218, %204
  store i64 0, ptr %14, align 8, !tbaa !32
  br label %222

222:                                              ; preds = %548, %221
  %223 = load i64, ptr %14, align 8, !tbaa !32
  %224 = icmp sle i64 %223, 6
  br i1 %224, label %225, label %551

225:                                              ; preds = %222
  store double 1.000000e-01, ptr %6, align 8, !tbaa !11
  store double 5.000000e-01, ptr %7, align 8, !tbaa !11
  store double 0.000000e+00, ptr %13, align 8, !tbaa !11
  %226 = load i64, ptr %14, align 8, !tbaa !32
  %227 = icmp eq i64 %226, 0
  br i1 %227, label %228, label %229

228:                                              ; preds = %225
  store double -9.000000e-01, ptr %13, align 8, !tbaa !11
  br label %229

229:                                              ; preds = %228, %225
  %230 = load i64, ptr %14, align 8, !tbaa !32
  %231 = icmp eq i64 %230, 1
  br i1 %231, label %232, label %233

232:                                              ; preds = %229
  store double -5.000000e-01, ptr %13, align 8, !tbaa !11
  br label %233

233:                                              ; preds = %232, %229
  %234 = load i64, ptr %14, align 8, !tbaa !32
  %235 = icmp eq i64 %234, 2
  br i1 %235, label %236, label %237

236:                                              ; preds = %233
  store double -1.000000e-01, ptr %13, align 8, !tbaa !11
  br label %237

237:                                              ; preds = %236, %233
  %238 = load i64, ptr %14, align 8, !tbaa !32
  %239 = icmp eq i64 %238, 3
  br i1 %239, label %240, label %241

240:                                              ; preds = %237
  store double 0.000000e+00, ptr %13, align 8, !tbaa !11
  br label %241

241:                                              ; preds = %240, %237
  %242 = load i64, ptr %14, align 8, !tbaa !32
  %243 = icmp eq i64 %242, 4
  br i1 %243, label %244, label %245

244:                                              ; preds = %241
  store double 1.000000e-01, ptr %13, align 8, !tbaa !11
  br label %245

245:                                              ; preds = %244, %241
  %246 = load i64, ptr %14, align 8, !tbaa !32
  %247 = icmp eq i64 %246, 5
  br i1 %247, label %248, label %249

248:                                              ; preds = %245
  store double 5.000000e-01, ptr %13, align 8, !tbaa !11
  br label %249

249:                                              ; preds = %248, %245
  %250 = load i64, ptr %14, align 8, !tbaa !32
  %251 = icmp eq i64 %250, 6
  br i1 %251, label %252, label %253

252:                                              ; preds = %249
  store double 9.000000e-01, ptr %13, align 8, !tbaa !11
  br label %253

253:                                              ; preds = %252, %249
  %254 = load double, ptr %7, align 8, !tbaa !11
  %255 = load double, ptr %6, align 8, !tbaa !11
  %256 = fsub double %254, %255
  %257 = load double, ptr %13, align 8, !tbaa !11
  %258 = fadd double %257, 2.000000e+00
  %259 = load ptr, ptr %4, align 8, !tbaa !9
  %260 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %256, double noundef %258, ptr noundef %259)
  %261 = load double, ptr %13, align 8, !tbaa !11
  %262 = fadd double %261, 2.000000e+00
  %263 = fdiv double %260, %262
  %264 = load double, ptr %6, align 8, !tbaa !11
  %265 = fadd double 1.000000e+00, %264
  %266 = load double, ptr %7, align 8, !tbaa !11
  %267 = load double, ptr %6, align 8, !tbaa !11
  %268 = fsub double %266, %267
  %269 = load double, ptr %13, align 8, !tbaa !11
  %270 = fadd double %269, 1.000000e+00
  %271 = load ptr, ptr %4, align 8, !tbaa !9
  %272 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %268, double noundef %270, ptr noundef %271)
  %273 = fmul double %265, %272
  %274 = load double, ptr %13, align 8, !tbaa !11
  %275 = fadd double %274, 1.000000e+00
  %276 = fdiv double %273, %275
  %277 = fadd double %263, %276
  store double %277, ptr %11, align 8, !tbaa !11
  %278 = load double, ptr %11, align 8, !tbaa !11
  %279 = load ptr, ptr %4, align 8, !tbaa !9
  %280 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %278, ptr noundef %279)
  store double %280, ptr %12, align 8, !tbaa !11
  %281 = load double, ptr %6, align 8, !tbaa !11
  %282 = load double, ptr %7, align 8, !tbaa !11
  %283 = load double, ptr %13, align 8, !tbaa !11
  %284 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef %281, double noundef %282, double noundef %283, double noundef 0.000000e+00, ptr noundef %8, ptr noundef %284)
  br label %285

285:                                              ; preds = %316, %253
  %286 = load ptr, ptr %4, align 8, !tbaa !9
  %287 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef %8, ptr noundef %286)
  br i1 %287, label %288, label %317

288:                                              ; preds = %285
  %289 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 6
  %290 = load double, ptr %289, align 8, !tbaa !33
  %291 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %290, double noundef 1.000000e-02)
  br i1 %291, label %292, label %303

292:                                              ; preds = %288
  %293 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 6
  %294 = load double, ptr %293, align 8, !tbaa !33
  %295 = load double, ptr %13, align 8, !tbaa !11
  %296 = load ptr, ptr %4, align 8, !tbaa !9
  %297 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %294, double noundef %295, ptr noundef %296)
  %298 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %299 = load double, ptr %298, align 8, !tbaa !13
  %300 = fadd double 1.000000e+00, %299
  %301 = fmul double %297, %300
  %302 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %301, ptr %302, align 8, !tbaa !22
  br label %316

303:                                              ; preds = %288
  %304 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %305 = load double, ptr %304, align 8, !tbaa !13
  %306 = load double, ptr %6, align 8, !tbaa !11
  %307 = fsub double %305, %306
  %308 = load double, ptr %13, align 8, !tbaa !11
  %309 = load ptr, ptr %4, align 8, !tbaa !9
  %310 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %307, double noundef %308, ptr noundef %309)
  %311 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %312 = load double, ptr %311, align 8, !tbaa !13
  %313 = fadd double 1.000000e+00, %312
  %314 = fmul double %310, %313
  %315 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %314, ptr %315, align 8, !tbaa !22
  br label %316

316:                                              ; preds = %303, %292
  br label %285, !llvm.loop !34

317:                                              ; preds = %285
  %318 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef %8, ptr noundef %10, ptr noundef %9, ptr noundef %318)
  %319 = getelementptr inbounds %"struct.alglib_impl::autogkreport", ptr %9, i32 0, i32 0
  %320 = load i64, ptr %319, align 8, !tbaa !25
  %321 = icmp sle i64 %320, 0
  br i1 %321, label %322, label %323

322:                                              ; preds = %317
  store i8 1, ptr %17, align 1, !tbaa !5
  br label %339

323:                                              ; preds = %317
  %324 = load i8, ptr %17, align 1, !tbaa !5, !range !27, !noundef !28
  %325 = trunc i8 %324 to i1
  br i1 %325, label %336, label %326

326:                                              ; preds = %323
  %327 = load double, ptr %10, align 8, !tbaa !11
  %328 = load double, ptr %11, align 8, !tbaa !11
  %329 = fsub double %327, %328
  %330 = load ptr, ptr %4, align 8, !tbaa !9
  %331 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %329, ptr noundef %330)
  %332 = load double, ptr %15, align 8, !tbaa !11
  %333 = load double, ptr %12, align 8, !tbaa !11
  %334 = fmul double %332, %333
  %335 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %331, double noundef %334)
  br label %336

336:                                              ; preds = %326, %323
  %337 = phi i1 [ true, %323 ], [ %335, %326 ]
  %338 = zext i1 %337 to i8
  store i8 %338, ptr %17, align 1, !tbaa !5
  br label %339

339:                                              ; preds = %336, %322
  %340 = load double, ptr %7, align 8, !tbaa !11
  %341 = load double, ptr %6, align 8, !tbaa !11
  %342 = load double, ptr %13, align 8, !tbaa !11
  %343 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef %340, double noundef %341, double noundef 0.000000e+00, double noundef %342, ptr noundef %8, ptr noundef %343)
  br label %344

344:                                              ; preds = %376, %339
  %345 = load ptr, ptr %4, align 8, !tbaa !9
  %346 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef %8, ptr noundef %345)
  br i1 %346, label %347, label %377

347:                                              ; preds = %344
  %348 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 7
  %349 = load double, ptr %348, align 8, !tbaa !35
  %350 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %349, double noundef -1.000000e-02)
  br i1 %350, label %351, label %363

351:                                              ; preds = %347
  %352 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 7
  %353 = load double, ptr %352, align 8, !tbaa !35
  %354 = fneg double %353
  %355 = load double, ptr %13, align 8, !tbaa !11
  %356 = load ptr, ptr %4, align 8, !tbaa !9
  %357 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %354, double noundef %355, ptr noundef %356)
  %358 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %359 = load double, ptr %358, align 8, !tbaa !13
  %360 = fadd double 1.000000e+00, %359
  %361 = fmul double %357, %360
  %362 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %361, ptr %362, align 8, !tbaa !22
  br label %376

363:                                              ; preds = %347
  %364 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %365 = load double, ptr %364, align 8, !tbaa !13
  %366 = load double, ptr %6, align 8, !tbaa !11
  %367 = fsub double %365, %366
  %368 = load double, ptr %13, align 8, !tbaa !11
  %369 = load ptr, ptr %4, align 8, !tbaa !9
  %370 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %367, double noundef %368, ptr noundef %369)
  %371 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %372 = load double, ptr %371, align 8, !tbaa !13
  %373 = fadd double 1.000000e+00, %372
  %374 = fmul double %370, %373
  %375 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %374, ptr %375, align 8, !tbaa !22
  br label %376

376:                                              ; preds = %363, %351
  br label %344, !llvm.loop !36

377:                                              ; preds = %344
  %378 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef %8, ptr noundef %10, ptr noundef %9, ptr noundef %378)
  %379 = getelementptr inbounds %"struct.alglib_impl::autogkreport", ptr %9, i32 0, i32 0
  %380 = load i64, ptr %379, align 8, !tbaa !25
  %381 = icmp sle i64 %380, 0
  br i1 %381, label %382, label %383

382:                                              ; preds = %377
  store i8 1, ptr %17, align 1, !tbaa !5
  br label %400

383:                                              ; preds = %377
  %384 = load i8, ptr %17, align 1, !tbaa !5, !range !27, !noundef !28
  %385 = trunc i8 %384 to i1
  br i1 %385, label %397, label %386

386:                                              ; preds = %383
  %387 = load double, ptr %10, align 8, !tbaa !11
  %388 = fneg double %387
  %389 = load double, ptr %11, align 8, !tbaa !11
  %390 = fsub double %388, %389
  %391 = load ptr, ptr %4, align 8, !tbaa !9
  %392 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %390, ptr noundef %391)
  %393 = load double, ptr %15, align 8, !tbaa !11
  %394 = load double, ptr %12, align 8, !tbaa !11
  %395 = fmul double %393, %394
  %396 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %392, double noundef %395)
  br label %397

397:                                              ; preds = %386, %383
  %398 = phi i1 [ true, %383 ], [ %396, %386 ]
  %399 = zext i1 %398 to i8
  store i8 %399, ptr %17, align 1, !tbaa !5
  br label %400

400:                                              ; preds = %397, %382
  %401 = load double, ptr %7, align 8, !tbaa !11
  %402 = fadd double 1.000000e+00, %401
  %403 = load double, ptr %7, align 8, !tbaa !11
  %404 = load double, ptr %6, align 8, !tbaa !11
  %405 = fsub double %403, %404
  %406 = load double, ptr %13, align 8, !tbaa !11
  %407 = fadd double %406, 1.000000e+00
  %408 = load ptr, ptr %4, align 8, !tbaa !9
  %409 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %405, double noundef %407, ptr noundef %408)
  %410 = fmul double %402, %409
  %411 = load double, ptr %13, align 8, !tbaa !11
  %412 = fadd double %411, 1.000000e+00
  %413 = fdiv double %410, %412
  %414 = load double, ptr %7, align 8, !tbaa !11
  %415 = load double, ptr %6, align 8, !tbaa !11
  %416 = fsub double %414, %415
  %417 = load double, ptr %13, align 8, !tbaa !11
  %418 = fadd double %417, 2.000000e+00
  %419 = load ptr, ptr %4, align 8, !tbaa !9
  %420 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %416, double noundef %418, ptr noundef %419)
  %421 = load double, ptr %13, align 8, !tbaa !11
  %422 = fadd double %421, 2.000000e+00
  %423 = fdiv double %420, %422
  %424 = fsub double %413, %423
  store double %424, ptr %11, align 8, !tbaa !11
  %425 = load double, ptr %11, align 8, !tbaa !11
  %426 = load ptr, ptr %4, align 8, !tbaa !9
  %427 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %425, ptr noundef %426)
  store double %427, ptr %12, align 8, !tbaa !11
  %428 = load double, ptr %6, align 8, !tbaa !11
  %429 = load double, ptr %7, align 8, !tbaa !11
  %430 = load double, ptr %13, align 8, !tbaa !11
  %431 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef %428, double noundef %429, double noundef 0.000000e+00, double noundef %430, ptr noundef %8, ptr noundef %431)
  br label %432

432:                                              ; preds = %463, %400
  %433 = load ptr, ptr %4, align 8, !tbaa !9
  %434 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef %8, ptr noundef %433)
  br i1 %434, label %435, label %464

435:                                              ; preds = %432
  %436 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 7
  %437 = load double, ptr %436, align 8, !tbaa !35
  %438 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %437, double noundef 1.000000e-02)
  br i1 %438, label %439, label %450

439:                                              ; preds = %435
  %440 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 7
  %441 = load double, ptr %440, align 8, !tbaa !35
  %442 = load double, ptr %13, align 8, !tbaa !11
  %443 = load ptr, ptr %4, align 8, !tbaa !9
  %444 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %441, double noundef %442, ptr noundef %443)
  %445 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %446 = load double, ptr %445, align 8, !tbaa !13
  %447 = fadd double 1.000000e+00, %446
  %448 = fmul double %444, %447
  %449 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %448, ptr %449, align 8, !tbaa !22
  br label %463

450:                                              ; preds = %435
  %451 = load double, ptr %7, align 8, !tbaa !11
  %452 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %453 = load double, ptr %452, align 8, !tbaa !13
  %454 = fsub double %451, %453
  %455 = load double, ptr %13, align 8, !tbaa !11
  %456 = load ptr, ptr %4, align 8, !tbaa !9
  %457 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %454, double noundef %455, ptr noundef %456)
  %458 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %459 = load double, ptr %458, align 8, !tbaa !13
  %460 = fadd double 1.000000e+00, %459
  %461 = fmul double %457, %460
  %462 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %461, ptr %462, align 8, !tbaa !22
  br label %463

463:                                              ; preds = %450, %439
  br label %432, !llvm.loop !37

464:                                              ; preds = %432
  %465 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef %8, ptr noundef %10, ptr noundef %9, ptr noundef %465)
  %466 = getelementptr inbounds %"struct.alglib_impl::autogkreport", ptr %9, i32 0, i32 0
  %467 = load i64, ptr %466, align 8, !tbaa !25
  %468 = icmp sle i64 %467, 0
  br i1 %468, label %469, label %470

469:                                              ; preds = %464
  store i8 1, ptr %17, align 1, !tbaa !5
  br label %486

470:                                              ; preds = %464
  %471 = load i8, ptr %17, align 1, !tbaa !5, !range !27, !noundef !28
  %472 = trunc i8 %471 to i1
  br i1 %472, label %483, label %473

473:                                              ; preds = %470
  %474 = load double, ptr %10, align 8, !tbaa !11
  %475 = load double, ptr %11, align 8, !tbaa !11
  %476 = fsub double %474, %475
  %477 = load ptr, ptr %4, align 8, !tbaa !9
  %478 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %476, ptr noundef %477)
  %479 = load double, ptr %15, align 8, !tbaa !11
  %480 = load double, ptr %12, align 8, !tbaa !11
  %481 = fmul double %479, %480
  %482 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %478, double noundef %481)
  br label %483

483:                                              ; preds = %473, %470
  %484 = phi i1 [ true, %470 ], [ %482, %473 ]
  %485 = zext i1 %484 to i8
  store i8 %485, ptr %17, align 1, !tbaa !5
  br label %486

486:                                              ; preds = %483, %469
  %487 = load double, ptr %7, align 8, !tbaa !11
  %488 = load double, ptr %6, align 8, !tbaa !11
  %489 = load double, ptr %13, align 8, !tbaa !11
  %490 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef %487, double noundef %488, double noundef %489, double noundef 0.000000e+00, ptr noundef %8, ptr noundef %490)
  br label %491

491:                                              ; preds = %523, %486
  %492 = load ptr, ptr %4, align 8, !tbaa !9
  %493 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef %8, ptr noundef %492)
  br i1 %493, label %494, label %524

494:                                              ; preds = %491
  %495 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 6
  %496 = load double, ptr %495, align 8, !tbaa !33
  %497 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %496, double noundef -1.000000e-02)
  br i1 %497, label %498, label %510

498:                                              ; preds = %494
  %499 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 6
  %500 = load double, ptr %499, align 8, !tbaa !33
  %501 = fneg double %500
  %502 = load double, ptr %13, align 8, !tbaa !11
  %503 = load ptr, ptr %4, align 8, !tbaa !9
  %504 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %501, double noundef %502, ptr noundef %503)
  %505 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %506 = load double, ptr %505, align 8, !tbaa !13
  %507 = fadd double 1.000000e+00, %506
  %508 = fmul double %504, %507
  %509 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %508, ptr %509, align 8, !tbaa !22
  br label %523

510:                                              ; preds = %494
  %511 = load double, ptr %7, align 8, !tbaa !11
  %512 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %513 = load double, ptr %512, align 8, !tbaa !13
  %514 = fsub double %511, %513
  %515 = load double, ptr %13, align 8, !tbaa !11
  %516 = load ptr, ptr %4, align 8, !tbaa !9
  %517 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %514, double noundef %515, ptr noundef %516)
  %518 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 5
  %519 = load double, ptr %518, align 8, !tbaa !13
  %520 = fadd double 1.000000e+00, %519
  %521 = fmul double %517, %520
  %522 = getelementptr inbounds %"struct.alglib_impl::autogkstate", ptr %8, i32 0, i32 9
  store double %521, ptr %522, align 8, !tbaa !22
  br label %523

523:                                              ; preds = %510, %498
  br label %491, !llvm.loop !38

524:                                              ; preds = %491
  %525 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef %8, ptr noundef %10, ptr noundef %9, ptr noundef %525)
  %526 = getelementptr inbounds %"struct.alglib_impl::autogkreport", ptr %9, i32 0, i32 0
  %527 = load i64, ptr %526, align 8, !tbaa !25
  %528 = icmp sle i64 %527, 0
  br i1 %528, label %529, label %530

529:                                              ; preds = %524
  store i8 1, ptr %17, align 1, !tbaa !5
  br label %547

530:                                              ; preds = %524
  %531 = load i8, ptr %17, align 1, !tbaa !5, !range !27, !noundef !28
  %532 = trunc i8 %531 to i1
  br i1 %532, label %544, label %533

533:                                              ; preds = %530
  %534 = load double, ptr %10, align 8, !tbaa !11
  %535 = fneg double %534
  %536 = load double, ptr %11, align 8, !tbaa !11
  %537 = fsub double %535, %536
  %538 = load ptr, ptr %4, align 8, !tbaa !9
  %539 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %537, ptr noundef %538)
  %540 = load double, ptr %15, align 8, !tbaa !11
  %541 = load double, ptr %12, align 8, !tbaa !11
  %542 = fmul double %540, %541
  %543 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %539, double noundef %542)
  br label %544

544:                                              ; preds = %533, %530
  %545 = phi i1 [ true, %530 ], [ %543, %533 ]
  %546 = zext i1 %545 to i8
  store i8 %546, ptr %17, align 1, !tbaa !5
  br label %547

547:                                              ; preds = %544, %529
  br label %548

548:                                              ; preds = %547
  %549 = load i64, ptr %14, align 8, !tbaa !32
  %550 = add nsw i64 %549, 1
  store i64 %550, ptr %14, align 8, !tbaa !32
  br label %222, !llvm.loop !39

551:                                              ; preds = %222
  %552 = load i8, ptr %16, align 1, !tbaa !5, !range !27, !noundef !28
  %553 = trunc i8 %552 to i1
  br i1 %553, label %557, label %554

554:                                              ; preds = %551
  %555 = load i8, ptr %17, align 1, !tbaa !5, !range !27, !noundef !28
  %556 = trunc i8 %555 to i1
  br label %557

557:                                              ; preds = %554, %551
  %558 = phi i1 [ true, %551 ], [ %556, %554 ]
  %559 = zext i1 %558 to i8
  store i8 %559, ptr %18, align 1, !tbaa !5
  %560 = load i8, ptr %3, align 1, !tbaa !5, !range !27, !noundef !28
  %561 = trunc i8 %560 to i1
  br i1 %561, label %599, label %562

562:                                              ; preds = %557
  %563 = call i32 (ptr, ...) @printf(ptr noundef @.str.586)
  %564 = call i32 (ptr, ...) @printf(ptr noundef @.str.587)
  %565 = load i8, ptr %16, align 1, !tbaa !5, !range !27, !noundef !28
  %566 = trunc i8 %565 to i1
  br i1 %566, label %570, label %567

567:                                              ; preds = %562
  %568 = load i8, ptr %17, align 1, !tbaa !5, !range !27, !noundef !28
  %569 = trunc i8 %568 to i1
  br i1 %569, label %570, label %572

570:                                              ; preds = %567, %562
  %571 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %574

572:                                              ; preds = %567
  %573 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %574

574:                                              ; preds = %572, %570
  %575 = call i32 (ptr, ...) @printf(ptr noundef @.str.588)
  %576 = load i8, ptr %16, align 1, !tbaa !5, !range !27, !noundef !28
  %577 = trunc i8 %576 to i1
  br i1 %577, label %578, label %580

578:                                              ; preds = %574
  %579 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %582

580:                                              ; preds = %574
  %581 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %582

582:                                              ; preds = %580, %578
  %583 = call i32 (ptr, ...) @printf(ptr noundef @.str.589)
  %584 = load i8, ptr %17, align 1, !tbaa !5, !range !27, !noundef !28
  %585 = trunc i8 %584 to i1
  br i1 %585, label %586, label %588

586:                                              ; preds = %582
  %587 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  br label %590

588:                                              ; preds = %582
  %589 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %590

590:                                              ; preds = %588, %586
  %591 = load i8, ptr %18, align 1, !tbaa !5, !range !27, !noundef !28
  %592 = trunc i8 %591 to i1
  br i1 %592, label %593, label %595

593:                                              ; preds = %590
  %594 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  br label %597

595:                                              ; preds = %590
  %596 = call i32 (ptr, ...) @printf(ptr noundef @.str.2)
  br label %597

597:                                              ; preds = %595, %593
  %598 = call i32 (ptr, ...) @printf(ptr noundef @.str.3)
  br label %599

599:                                              ; preds = %597, %557
  %600 = load i8, ptr %18, align 1, !tbaa !5, !range !27, !noundef !28
  %601 = trunc i8 %600 to i1
  %602 = xor i1 %601, true
  %603 = zext i1 %602 to i8
  store i8 %603, ptr %19, align 1, !tbaa !5
  %604 = load ptr, ptr %4, align 8, !tbaa !9
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %604)
  %605 = load i8, ptr %19, align 1, !tbaa !5, !range !27, !noundef !28
  %606 = trunc i8 %605 to i1
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 1096, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #4
  ret i1 %606
}

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

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

declare void @_ZN11alglib_impl12autogksmoothEddPNS_11autogkstateEPNS_8ae_stateE(double noundef, double noundef, ptr noundef, ptr noundef) #1

declare noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

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

declare void @_ZN11alglib_impl13autogksmoothwEdddPNS_11autogkstateEPNS_8ae_stateE(double noundef, double noundef, double noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef, double noundef, double noundef, double noundef, ptr noundef, ptr noundef) #1

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 = { 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 #4 = { 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 = !{!14, !12, i64 40}
!14 = !{!"_ZTSN11alglib_impl11autogkstateE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !6, i64 64, !12, i64 72, !15, i64 80, !16, i64 88, !20, i64 800, !12, i64 1064, !15, i64 1072, !15, i64 1080, !15, i64 1088}
!15 = !{!"long", !7, i64 0}
!16 = !{!"_ZTSN11alglib_impl19autogkinternalstateE", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !15, i64 48, !12, i64 56, !17, i64 64, !15, i64 144, !15, i64 152, !15, i64 160, !12, i64 168, !12, i64 176, !19, i64 184, !19, i64 248, !19, i64 312, !19, i64 376, !15, i64 440, !20, i64 448}
!17 = !{!"_ZTSN11alglib_impl9ae_matrixE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !6, i64 32, !18, i64 40, !7, i64 72}
!18 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24}
!19 = !{!"_ZTSN11alglib_impl9ae_vectorE", !15, i64 0, !15, i64 8, !6, i64 16, !18, i64 24, !7, i64 56}
!20 = !{!"_ZTSN11alglib_impl10rcommstateE", !21, i64 0, !19, i64 8, !19, i64 72, !19, i64 136, !19, i64 200}
!21 = !{!"int", !7, i64 0}
!22 = !{!14, !12, i64 72}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = !{!26, !15, i64 0}
!26 = !{!"_ZTSN11alglib_impl12autogkreportE", !15, i64 0, !15, i64 8, !15, i64 16}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = distinct !{!29, !24}
!30 = distinct !{!30, !24}
!31 = distinct !{!31, !24}
!32 = !{!15, !15, i64 0}
!33 = !{!14, !12, i64 48}
!34 = distinct !{!34, !24}
!35 = !{!14, !12, i64 56}
!36 = distinct !{!36, !24}
!37 = distinct !{!37, !24}
!38 = distinct !{!38, !24}
!39 = distinct !{!39, !24}


; 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::autogkstate" = type { double, double, double, double, double, double, double, double, i8, double, i64, %"struct.alglib_impl::autogkinternalstate", %"struct.alglib_impl::rcommstate", double, i64, i64, i64 }
%"struct.alglib_impl::autogkinternalstate" = type { double, double, double, double, double, double, i64, double, %"struct.alglib_impl::ae_matrix", i64, i64, i64, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon }
%union.anon = type { ptr }
%"struct.alglib_impl::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::autogkreport" = type { i64, i64, i64 }

@.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.586 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.587 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.589 = 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 noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(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

declare noundef double @_ZN11alglib_impl7ae_fabsEdPNS_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 zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef, double noundef) local_unnamed_addr #1

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z10testautogkbPN11alglib_impl8ae_stateE(i1 noundef zeroext %0, ptr noundef %1) local_unnamed_addr #4 {
  %3 = alloca %"struct.alglib_impl::ae_frame", align 8
  %4 = alloca %"struct.alglib_impl::autogkstate", align 8
  %5 = alloca %"struct.alglib_impl::autogkreport", align 8
  %6 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1096, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #5
  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(1096) %4, i8 0, i64 1096, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  call void @_ZN11alglib_impl17_autogkstate_initEPvPNS_8ae_stateEb(ptr noundef nonnull %4, ptr noundef %1, i1 noundef zeroext true)
  call void @_ZN11alglib_impl18_autogkreport_initEPvPNS_8ae_stateEb(ptr noundef nonnull %5, ptr noundef %1, i1 noundef zeroext true)
  %7 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %1)
  %8 = shl nsw i64 %7, 1
  %9 = add nsw i64 %8, -1
  %10 = sitofp i64 %9 to double
  %11 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %1)
  %12 = shl nsw i64 %11, 1
  %13 = add nsw i64 %12, -1
  %14 = sitofp i64 %13 to double
  %15 = fmul double %14, 2.000000e+00
  call void @_ZN11alglib_impl12autogksmoothEddPNS_11autogkstateEPNS_8ae_stateE(double noundef %10, double noundef %15, ptr noundef nonnull %4, ptr noundef %1)
  %16 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %16, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %2
  %17 = getelementptr inbounds i8, ptr %4, i64 40
  %18 = getelementptr inbounds i8, ptr %4, i64 72
  br label %19

19:                                               ; preds = %.lr.ph, %19
  %20 = load double, ptr %17, align 8, !tbaa !5
  %21 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %20, ptr noundef %1)
  store double %21, ptr %18, align 8, !tbaa !19
  %22 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %22, label %19, label %._crit_edge, !llvm.loop !20

._crit_edge:                                      ; preds = %19, %2
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef %1)
  %23 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %15, ptr noundef %1)
  %24 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %10, ptr noundef %1)
  %25 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %15, ptr noundef %1)
  %26 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %10, ptr noundef %1)
  %27 = fsub double %25, %26
  %28 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %27, ptr noundef %1)
  %29 = load i64, ptr %5, align 8, !tbaa !22
  %30 = icmp slt i64 %29, 1
  br i1 %30, label %38, label %31

31:                                               ; preds = %._crit_edge
  %32 = fsub double %23, %24
  %33 = load double, ptr %6, align 8, !tbaa !24
  %34 = fsub double %32, %33
  %35 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %34, ptr noundef %1)
  %36 = fmul double %28, 0x3D95FD7FE1796496
  %37 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %35, double noundef %36)
  br label %38

38:                                               ; preds = %._crit_edge, %31
  %.0184 = phi i1 [ %37, %31 ], [ true, %._crit_edge ]
  %39 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %1)
  %40 = shl nsw i64 %39, 1
  %41 = add nsw i64 %40, -1
  %42 = sitofp i64 %41 to double
  %43 = call noundef i64 @_ZN11alglib_impl16ae_randomintegerElPNS_8ae_stateE(i64 noundef 2, ptr noundef %1)
  %44 = shl nsw i64 %43, 1
  %45 = add nsw i64 %44, -1
  %46 = sitofp i64 %45 to double
  %47 = fmul double %46, 2.000000e+00
  call void @_ZN11alglib_impl13autogksmoothwEdddPNS_11autogkstateEPNS_8ae_stateE(double noundef %42, double noundef %47, double noundef 1.000000e-01, ptr noundef nonnull %4, ptr noundef %1)
  %48 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %48, label %.lr.ph195, label %._crit_edge196

.lr.ph195:                                        ; preds = %38
  %49 = getelementptr inbounds i8, ptr %4, i64 40
  %50 = getelementptr inbounds i8, ptr %4, i64 72
  br label %51

51:                                               ; preds = %.lr.ph195, %51
  %52 = load double, ptr %49, align 8, !tbaa !5
  %53 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %52, ptr noundef %1)
  store double %53, ptr %50, align 8, !tbaa !19
  %54 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %54, label %51, label %._crit_edge196, !llvm.loop !25

._crit_edge196:                                   ; preds = %51, %38
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef %1)
  %55 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %47, ptr noundef %1)
  %56 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %42, ptr noundef %1)
  %57 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %47, ptr noundef %1)
  %58 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %42, ptr noundef %1)
  %59 = fsub double %57, %58
  %60 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %59, ptr noundef %1)
  %61 = load i64, ptr %5, align 8, !tbaa !22
  %62 = icmp slt i64 %61, 1
  %brmerge189 = or i1 %.0184, %62
  br i1 %brmerge189, label %70, label %63

63:                                               ; preds = %._crit_edge196
  %64 = fsub double %55, %56
  %65 = load double, ptr %6, align 8, !tbaa !24
  %66 = fsub double %64, %65
  %67 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %66, ptr noundef %1)
  %68 = fmul double %60, 0x3D95FD7FE1796496
  %69 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %67, double noundef %68)
  br label %70

70:                                               ; preds = %._crit_edge196, %63
  %.1185 = phi i1 [ true, %._crit_edge196 ], [ %69, %63 ]
  call void @_ZN11alglib_impl12autogksmoothEddPNS_11autogkstateEPNS_8ae_stateE(double noundef 0.000000e+00, double noundef 0x401921FB54442D18, ptr noundef nonnull %4, ptr noundef %1)
  %71 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %71, label %.lr.ph198, label %._crit_edge199

.lr.ph198:                                        ; preds = %70
  %72 = getelementptr inbounds i8, ptr %4, i64 40
  %73 = getelementptr inbounds i8, ptr %4, i64 72
  br label %74

74:                                               ; preds = %.lr.ph198, %74
  %75 = load double, ptr %72, align 8, !tbaa !5
  %76 = fmul double %75, 1.000000e+02
  %77 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %76, ptr noundef %1)
  store double %77, ptr %73, align 8, !tbaa !19
  %78 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %78, label %74, label %._crit_edge199, !llvm.loop !26

._crit_edge199:                                   ; preds = %74, %70
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef %1)
  %79 = load i64, ptr %5, align 8, !tbaa !22
  %80 = icmp slt i64 %79, 1
  %brmerge190 = or i1 %.1185, %80
  br i1 %brmerge190, label %86, label %81

81:                                               ; preds = %._crit_edge199
  %82 = load double, ptr %6, align 8, !tbaa !24
  %83 = fsub double 0.000000e+00, %82
  %84 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %83, ptr noundef %1)
  %85 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %84, double noundef 0x3DB5FD7FE1796496)
  br label %86

86:                                               ; preds = %._crit_edge199, %81
  %.2186 = phi i1 [ true, %._crit_edge199 ], [ %85, %81 ]
  call void @_ZN11alglib_impl13autogksmoothwEdddPNS_11autogkstateEPNS_8ae_stateE(double noundef 0.000000e+00, double noundef 0x401921FB54442D18, double noundef 3.000000e-01, ptr noundef nonnull %4, ptr noundef %1)
  %87 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %87, label %.lr.ph201, label %._crit_edge202

.lr.ph201:                                        ; preds = %86
  %88 = getelementptr inbounds i8, ptr %4, i64 40
  %89 = getelementptr inbounds i8, ptr %4, i64 72
  br label %90

90:                                               ; preds = %.lr.ph201, %90
  %91 = load double, ptr %88, align 8, !tbaa !5
  %92 = fmul double %91, 1.000000e+02
  %93 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %92, ptr noundef %1)
  store double %93, ptr %89, align 8, !tbaa !19
  %94 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %94, label %90, label %._crit_edge202, !llvm.loop !27

._crit_edge202:                                   ; preds = %90, %86
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef %1)
  %95 = load i64, ptr %5, align 8, !tbaa !22
  %96 = icmp slt i64 %95, 1
  %brmerge191 = or i1 %.2186, %96
  br i1 %brmerge191, label %102, label %97

97:                                               ; preds = %._crit_edge202
  %98 = load double, ptr %6, align 8, !tbaa !24
  %99 = fsub double 0.000000e+00, %98
  %100 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %99, ptr noundef %1)
  %101 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %100, double noundef 0x3DB5FD7FE1796496)
  br label %102

102:                                              ; preds = %._crit_edge202, %97
  %.3187 = phi i1 [ true, %._crit_edge202 ], [ %101, %97 ]
  %103 = getelementptr inbounds i8, ptr %4, i64 48
  %104 = getelementptr inbounds i8, ptr %4, i64 40
  %105 = getelementptr inbounds i8, ptr %4, i64 72
  %106 = getelementptr inbounds i8, ptr %4, i64 56
  br label %107

107:                                              ; preds = %102, %220
  %.0216 = phi i8 [ 0, %102 ], [ %.4, %220 ]
  %.0188215 = phi i64 [ 0, %102 ], [ %221, %220 ]
  %108 = icmp eq i64 %.0188215, 0
  %spec.store.select = select i1 %108, double -9.000000e-01, double 0.000000e+00
  %109 = icmp eq i64 %.0188215, 1
  %spec.store.select1 = select i1 %109, double -5.000000e-01, double %spec.store.select
  %110 = icmp eq i64 %.0188215, 2
  %spec.store.select2 = select i1 %110, double -1.000000e-01, double %spec.store.select1
  %111 = icmp eq i64 %.0188215, 3
  %spec.store.select3 = select i1 %111, double 0.000000e+00, double %spec.store.select2
  %112 = icmp eq i64 %.0188215, 4
  %spec.store.select4 = select i1 %112, double 1.000000e-01, double %spec.store.select3
  %113 = icmp eq i64 %.0188215, 5
  %spec.store.select5 = select i1 %113, double 5.000000e-01, double %spec.store.select4
  %114 = icmp eq i64 %.0188215, 6
  %spec.store.select6 = select i1 %114, double 9.000000e-01, double %spec.store.select5
  %115 = fadd double %spec.store.select6, 2.000000e+00
  %116 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 4.000000e-01, double noundef %115, ptr noundef %1)
  %117 = fdiv double %116, %115
  %118 = fadd double %spec.store.select6, 1.000000e+00
  %119 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 4.000000e-01, double noundef %118, ptr noundef %1)
  %120 = fmul double %119, 1.100000e+00
  %121 = fdiv double %120, %118
  %122 = fadd double %117, %121
  %123 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %122, ptr noundef %1)
  call void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef 1.000000e-01, double noundef 5.000000e-01, double noundef %spec.store.select6, double noundef 0.000000e+00, ptr noundef nonnull %4, ptr noundef %1)
  %124 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %124, label %.lr.ph204, label %._crit_edge205

.lr.ph204:                                        ; preds = %107, %.lr.ph204
  %125 = load double, ptr %103, align 8, !tbaa !28
  %126 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %125, double noundef 1.000000e-02)
  %127 = load double, ptr %104, align 8
  %128 = fadd double %127, -1.000000e-01
  %129 = load double, ptr %103, align 8
  %.sink222 = select i1 %126, double %129, double %128
  %130 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %.sink222, double noundef %spec.store.select6, ptr noundef %1)
  %131 = load double, ptr %104, align 8, !tbaa !5
  %132 = fadd double %131, 1.000000e+00
  %133 = fmul double %130, %132
  store double %133, ptr %105, align 8, !tbaa !19
  %134 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %134, label %.lr.ph204, label %._crit_edge205, !llvm.loop !29

._crit_edge205:                                   ; preds = %.lr.ph204, %107
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef %1)
  %135 = load i64, ptr %5, align 8, !tbaa !22
  %136 = icmp slt i64 %135, 1
  br i1 %136, label %145, label %137

137:                                              ; preds = %._crit_edge205
  %138 = trunc nuw i8 %.0216 to i1
  br i1 %138, label %145, label %139

139:                                              ; preds = %137
  %140 = load double, ptr %6, align 8, !tbaa !24
  %141 = fsub double %140, %122
  %142 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %141, ptr noundef %1)
  %143 = fmul double %123, 0x3D95FD7FE1796496
  %144 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %142, double noundef %143)
  br label %145

145:                                              ; preds = %137, %139, %._crit_edge205
  %.1 = phi i1 [ true, %._crit_edge205 ], [ true, %137 ], [ %144, %139 ]
  call void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef 5.000000e-01, double noundef 1.000000e-01, double noundef 0.000000e+00, double noundef %spec.store.select6, ptr noundef nonnull %4, ptr noundef %1)
  %146 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %146, label %.lr.ph207, label %._crit_edge208

.lr.ph207:                                        ; preds = %145, %.lr.ph207
  %147 = load double, ptr %106, align 8, !tbaa !30
  %148 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %147, double noundef -1.000000e-02)
  %149 = load double, ptr %104, align 8
  %150 = fadd double %149, -1.000000e-01
  %151 = load double, ptr %106, align 8
  %152 = fneg double %151
  %.sink225 = select i1 %148, double %152, double %150
  %153 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %.sink225, double noundef %spec.store.select6, ptr noundef %1)
  %154 = load double, ptr %104, align 8, !tbaa !5
  %155 = fadd double %154, 1.000000e+00
  %156 = fmul double %153, %155
  store double %156, ptr %105, align 8, !tbaa !19
  %157 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %157, label %.lr.ph207, label %._crit_edge208, !llvm.loop !31

._crit_edge208:                                   ; preds = %.lr.ph207, %145
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef %1)
  %158 = load i64, ptr %5, align 8, !tbaa !22
  %159 = icmp slt i64 %158, 1
  %brmerge192 = or i1 %.1, %159
  br i1 %brmerge192, label %167, label %160

160:                                              ; preds = %._crit_edge208
  %161 = load double, ptr %6, align 8, !tbaa !24
  %162 = fneg double %161
  %163 = fsub double %162, %122
  %164 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %163, ptr noundef %1)
  %165 = fmul double %123, 0x3D95FD7FE1796496
  %166 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %164, double noundef %165)
  br label %167

167:                                              ; preds = %._crit_edge208, %160
  %.2 = phi i1 [ true, %._crit_edge208 ], [ %166, %160 ]
  %168 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 4.000000e-01, double noundef %118, ptr noundef %1)
  %169 = fmul double %168, 1.500000e+00
  %170 = fdiv double %169, %118
  %171 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 4.000000e-01, double noundef %115, ptr noundef %1)
  %172 = fdiv double %171, %115
  %173 = fsub double %170, %172
  %174 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %173, ptr noundef %1)
  call void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef 1.000000e-01, double noundef 5.000000e-01, double noundef 0.000000e+00, double noundef %spec.store.select6, ptr noundef nonnull %4, ptr noundef %1)
  %175 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %175, label %.lr.ph210, label %._crit_edge211

.lr.ph210:                                        ; preds = %167, %.lr.ph210
  %176 = load double, ptr %106, align 8, !tbaa !30
  %177 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %176, double noundef 1.000000e-02)
  %178 = load double, ptr %104, align 8
  %179 = fsub double 5.000000e-01, %178
  %180 = load double, ptr %106, align 8
  %.sink228 = select i1 %177, double %180, double %179
  %181 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %.sink228, double noundef %spec.store.select6, ptr noundef %1)
  %182 = load double, ptr %104, align 8, !tbaa !5
  %183 = fadd double %182, 1.000000e+00
  %184 = fmul double %181, %183
  store double %184, ptr %105, align 8, !tbaa !19
  %185 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %185, label %.lr.ph210, label %._crit_edge211, !llvm.loop !32

._crit_edge211:                                   ; preds = %.lr.ph210, %167
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef %1)
  %186 = load i64, ptr %5, align 8, !tbaa !22
  %187 = icmp slt i64 %186, 1
  %brmerge193 = or i1 %.2, %187
  br i1 %brmerge193, label %194, label %188

188:                                              ; preds = %._crit_edge211
  %189 = load double, ptr %6, align 8, !tbaa !24
  %190 = fsub double %189, %173
  %191 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %190, ptr noundef %1)
  %192 = fmul double %174, 0x3D95FD7FE1796496
  %193 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %191, double noundef %192)
  br label %194

194:                                              ; preds = %._crit_edge211, %188
  %.3 = phi i1 [ true, %._crit_edge211 ], [ %193, %188 ]
  call void @_ZN11alglib_impl14autogksingularEddddPNS_11autogkstateEPNS_8ae_stateE(double noundef 5.000000e-01, double noundef 1.000000e-01, double noundef %spec.store.select6, double noundef 0.000000e+00, ptr noundef nonnull %4, ptr noundef %1)
  %195 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %195, label %.lr.ph213, label %._crit_edge214

.lr.ph213:                                        ; preds = %194, %.lr.ph213
  %196 = load double, ptr %103, align 8, !tbaa !28
  %197 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %196, double noundef -1.000000e-02)
  %198 = load double, ptr %104, align 8
  %199 = fsub double 5.000000e-01, %198
  %200 = load double, ptr %103, align 8
  %201 = fneg double %200
  %.sink231 = select i1 %197, double %201, double %199
  %202 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %.sink231, double noundef %spec.store.select6, ptr noundef %1)
  %203 = load double, ptr %104, align 8, !tbaa !5
  %204 = fadd double %203, 1.000000e+00
  %205 = fmul double %202, %204
  store double %205, ptr %105, align 8, !tbaa !19
  %206 = call noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef %1)
  br i1 %206, label %.lr.ph213, label %._crit_edge214, !llvm.loop !33

._crit_edge214:                                   ; preds = %.lr.ph213, %194
  call void @_ZN11alglib_impl13autogkresultsEPNS_11autogkstateEPdPNS_12autogkreportEPNS_8ae_stateE(ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef %1)
  %207 = load i64, ptr %5, align 8, !tbaa !22
  %208 = icmp slt i64 %207, 1
  br i1 %208, label %220, label %209

209:                                              ; preds = %._crit_edge214
  br i1 %.3, label %217, label %210

210:                                              ; preds = %209
  %211 = load double, ptr %6, align 8, !tbaa !24
  %212 = fneg double %211
  %213 = fsub double %212, %173
  %214 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %213, ptr noundef %1)
  %215 = fmul double %174, 0x3D95FD7FE1796496
  %216 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %214, double noundef %215)
  br label %217

217:                                              ; preds = %210, %209
  %218 = phi i1 [ true, %209 ], [ %216, %210 ]
  %219 = zext i1 %218 to i8
  br label %220

220:                                              ; preds = %._crit_edge214, %217
  %.4 = phi i8 [ %219, %217 ], [ 1, %._crit_edge214 ]
  %221 = add nuw nsw i64 %.0188215, 1
  %exitcond.not = icmp eq i64 %221, 7
  br i1 %exitcond.not, label %222, label %107, !llvm.loop !34

222:                                              ; preds = %220
  %223 = trunc nuw i8 %.4 to i1
  %224 = select i1 %.3187, i1 true, i1 %223
  br i1 %0, label %235, label %225

225:                                              ; preds = %222
  %226 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.586)
  %227 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.587)
  %.str.7..str.6 = select i1 %224, ptr @.str.7, ptr @.str.6
  %228 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.7..str.6)
  %229 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.588)
  %.str.6.sink232 = select i1 %.3187, ptr @.str.7, ptr @.str.6
  %230 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.6.sink232)
  %231 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.589)
  %.str.6.sink233 = select i1 %223, ptr @.str.7, ptr @.str.6
  %232 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.6.sink233)
  %.str.2.sink = select i1 %224, ptr @.str.1, ptr @.str.2
  %233 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.2.sink)
  %234 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3)
  br label %235

235:                                              ; preds = %225, %222
  %236 = xor i1 %224, true
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 1096, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  ret i1 %236
}

declare void @_ZN11alglib_impl17_autogkstate_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

declare void @_ZN11alglib_impl18_autogkreport_initEPvPNS_8ae_stateEb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN11alglib_impl15autogkiterationEPNS_11autogkstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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 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 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 40}
!6 = !{!"_ZTSN11alglib_impl11autogkstateE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !10, i64 64, !7, i64 72, !11, i64 80, !12, i64 88, !17, i64 800, !7, i64 1064, !11, i64 1072, !11, i64 1080, !11, i64 1088}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"long", !8, i64 0}
!12 = !{!"_ZTSN11alglib_impl19autogkinternalstateE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !11, i64 48, !7, i64 56, !13, i64 64, !11, i64 144, !11, i64 152, !11, i64 160, !7, i64 168, !7, i64 176, !16, i64 184, !16, i64 248, !16, i64 312, !16, i64 376, !11, i64 440, !17, i64 448}
!13 = !{!"_ZTSN11alglib_impl9ae_matrixE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !10, i64 32, !14, i64 40, !8, i64 72}
!14 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24}
!15 = !{!"any pointer", !8, i64 0}
!16 = !{!"_ZTSN11alglib_impl9ae_vectorE", !11, i64 0, !11, i64 8, !10, i64 16, !14, i64 24, !8, i64 56}
!17 = !{!"_ZTSN11alglib_impl10rcommstateE", !18, i64 0, !16, i64 8, !16, i64 72, !16, i64 136, !16, i64 200}
!18 = !{!"int", !8, i64 0}
!19 = !{!6, !7, i64 72}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = !{!23, !11, i64 0}
!23 = !{!"_ZTSN11alglib_impl12autogkreportE", !11, i64 0, !11, i64 8, !11, i64 16}
!24 = !{!7, !7, i64 0}
!25 = distinct !{!25, !21}
!26 = distinct !{!26, !21}
!27 = distinct !{!27, !21}
!28 = !{!6, !7, i64 48}
!29 = distinct !{!29, !21}
!30 = !{!6, !7, i64 56}
!31 = distinct !{!31, !21}
!32 = distinct !{!32, !21}
!33 = distinct !{!33, !21}
!34 = distinct !{!34, !21}


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