; LLVM IR from mkmarek/forex.analytics :: lib/ta-lib/src/ta_func (ta_CDLABANDONEDBABY)

; 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.TA_LibcPriv = type { i32, [3 x %struct.TA_ModuleControl], i32, i32, ptr, ptr, i32, [24 x i32], [11 x %struct.TA_CandleSetting] }
%struct.TA_ModuleControl = type { i32, ptr, ptr }
%struct.TA_CandleSetting = type { i32, i32, i32, double }

@TA_Globals = external global ptr, align 8

; Function Attrs: nounwind uwtable
declare dso_local i32 @TA_CDLABANDONEDBABY_Lookback(double noundef) #0

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @TA_S_CDLABANDONEDBABY(i32 noundef %0, i32 noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, double noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9) #0 {
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca double, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  store i32 %0, ptr %12, align 4, !tbaa !5
  store i32 %1, ptr %13, align 4, !tbaa !5
  store ptr %2, ptr %14, align 8, !tbaa !9
  store ptr %3, ptr %15, align 8, !tbaa !9
  store ptr %4, ptr %16, align 8, !tbaa !9
  store ptr %5, ptr %17, align 8, !tbaa !9
  store double %6, ptr %18, align 8, !tbaa !11
  store ptr %7, ptr %19, align 8, !tbaa !9
  store ptr %8, ptr %20, align 8, !tbaa !9
  store ptr %9, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #3
  %32 = load i32, ptr %12, align 4, !tbaa !5
  %33 = icmp slt i32 %32, 0
  br i1 %33, label %34, label %35

34:                                               ; preds = %10
  store i32 12, ptr %11, align 4
  store i32 1, ptr %31, align 4
  br label %2006

35:                                               ; preds = %10
  %36 = load i32, ptr %13, align 4, !tbaa !5
  %37 = icmp slt i32 %36, 0
  br i1 %37, label %42, label %38

38:                                               ; preds = %35
  %39 = load i32, ptr %13, align 4, !tbaa !5
  %40 = load i32, ptr %12, align 4, !tbaa !5
  %41 = icmp slt i32 %39, %40
  br i1 %41, label %42, label %43

42:                                               ; preds = %38, %35
  store i32 13, ptr %11, align 4
  store i32 1, ptr %31, align 4
  br label %2006

43:                                               ; preds = %38
  %44 = load ptr, ptr %14, align 8, !tbaa !9
  %45 = icmp ne ptr %44, null
  br i1 %45, label %46, label %55

46:                                               ; preds = %43
  %47 = load ptr, ptr %15, align 8, !tbaa !9
  %48 = icmp ne ptr %47, null
  br i1 %48, label %49, label %55

49:                                               ; preds = %46
  %50 = load ptr, ptr %16, align 8, !tbaa !9
  %51 = icmp ne ptr %50, null
  br i1 %51, label %52, label %55

52:                                               ; preds = %49
  %53 = load ptr, ptr %17, align 8, !tbaa !9
  %54 = icmp ne ptr %53, null
  br i1 %54, label %56, label %55

55:                                               ; preds = %52, %49, %46, %43
  store i32 2, ptr %11, align 4
  store i32 1, ptr %31, align 4
  br label %2006

56:                                               ; preds = %52
  %57 = load double, ptr %18, align 8, !tbaa !11
  %58 = fcmp oeq double %57, -4.000000e+37
  br i1 %58, label %59, label %60

59:                                               ; preds = %56
  store double 3.000000e-01, ptr %18, align 8, !tbaa !11
  br label %68

60:                                               ; preds = %56
  %61 = load double, ptr %18, align 8, !tbaa !11
  %62 = fcmp olt double %61, 0.000000e+00
  br i1 %62, label %66, label %63

63:                                               ; preds = %60
  %64 = load double, ptr %18, align 8, !tbaa !11
  %65 = fcmp ogt double %64, 3.000000e+37
  br i1 %65, label %66, label %67

66:                                               ; preds = %63, %60
  store i32 2, ptr %11, align 4
  store i32 1, ptr %31, align 4
  br label %2006

67:                                               ; preds = %63
  br label %68

68:                                               ; preds = %67, %59
  %69 = load ptr, ptr %21, align 8, !tbaa !9
  %70 = icmp ne ptr %69, null
  br i1 %70, label %72, label %71

71:                                               ; preds = %68
  store i32 2, ptr %11, align 4
  store i32 1, ptr %31, align 4
  br label %2006

72:                                               ; preds = %68
  %73 = load double, ptr %18, align 8, !tbaa !11
  %74 = call i32 @TA_CDLABANDONEDBABY_Lookback(double noundef %73)
  store i32 %74, ptr %30, align 4, !tbaa !5
  %75 = load i32, ptr %12, align 4, !tbaa !5
  %76 = load i32, ptr %30, align 4, !tbaa !5
  %77 = icmp slt i32 %75, %76
  br i1 %77, label %78, label %80

78:                                               ; preds = %72
  %79 = load i32, ptr %30, align 4, !tbaa !5
  store i32 %79, ptr %12, align 4, !tbaa !5
  br label %80

80:                                               ; preds = %78, %72
  %81 = load i32, ptr %12, align 4, !tbaa !5
  %82 = load i32, ptr %13, align 4, !tbaa !5
  %83 = icmp sgt i32 %81, %82
  br i1 %83, label %84, label %87

84:                                               ; preds = %80
  %85 = load ptr, ptr %19, align 8, !tbaa !9
  store i32 0, ptr %85, align 4, !tbaa !5
  %86 = load ptr, ptr %20, align 8, !tbaa !9
  store i32 0, ptr %86, align 4, !tbaa !5
  store i32 0, ptr %11, align 4
  store i32 1, ptr %31, align 4
  br label %2006

87:                                               ; preds = %80
  store double 0.000000e+00, ptr %23, align 8, !tbaa !11
  store double 0.000000e+00, ptr %22, align 8, !tbaa !11
  store double 0.000000e+00, ptr %24, align 8, !tbaa !11
  %88 = load i32, ptr %12, align 4, !tbaa !5
  %89 = sub nsw i32 %88, 2
  %90 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %91 = getelementptr inbounds %struct.TA_LibcPriv, ptr %90, i32 0, i32 8
  %92 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %91, i64 0, i64 0
  %93 = getelementptr inbounds %struct.TA_CandleSetting, ptr %92, i32 0, i32 2
  %94 = load i32, ptr %93, align 8, !tbaa !13
  %95 = sub nsw i32 %89, %94
  store i32 %95, ptr %28, align 4, !tbaa !5
  %96 = load i32, ptr %12, align 4, !tbaa !5
  %97 = sub nsw i32 %96, 1
  %98 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %99 = getelementptr inbounds %struct.TA_LibcPriv, ptr %98, i32 0, i32 8
  %100 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %99, i64 0, i64 3
  %101 = getelementptr inbounds %struct.TA_CandleSetting, ptr %100, i32 0, i32 2
  %102 = load i32, ptr %101, align 8, !tbaa !13
  %103 = sub nsw i32 %97, %102
  store i32 %103, ptr %27, align 4, !tbaa !5
  %104 = load i32, ptr %12, align 4, !tbaa !5
  %105 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %106 = getelementptr inbounds %struct.TA_LibcPriv, ptr %105, i32 0, i32 8
  %107 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %106, i64 0, i64 2
  %108 = getelementptr inbounds %struct.TA_CandleSetting, ptr %107, i32 0, i32 2
  %109 = load i32, ptr %108, align 8, !tbaa !13
  %110 = sub nsw i32 %104, %109
  store i32 %110, ptr %29, align 4, !tbaa !5
  %111 = load i32, ptr %28, align 4, !tbaa !5
  store i32 %111, ptr %25, align 4, !tbaa !5
  br label %112

112:                                              ; preds = %234, %87
  %113 = load i32, ptr %25, align 4, !tbaa !5
  %114 = load i32, ptr %12, align 4, !tbaa !5
  %115 = sub nsw i32 %114, 2
  %116 = icmp slt i32 %113, %115
  br i1 %116, label %117, label %240

117:                                              ; preds = %112
  %118 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %119 = getelementptr inbounds %struct.TA_LibcPriv, ptr %118, i32 0, i32 8
  %120 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %119, i64 0, i64 0
  %121 = getelementptr inbounds %struct.TA_CandleSetting, ptr %120, i32 0, i32 1
  %122 = load i32, ptr %121, align 4, !tbaa !15
  %123 = icmp eq i32 %122, 0
  br i1 %123, label %124, label %138

124:                                              ; preds = %117
  %125 = load ptr, ptr %17, align 8, !tbaa !9
  %126 = load i32, ptr %25, align 4, !tbaa !5
  %127 = sext i32 %126 to i64
  %128 = getelementptr inbounds float, ptr %125, i64 %127
  %129 = load float, ptr %128, align 4, !tbaa !16
  %130 = load ptr, ptr %14, align 8, !tbaa !9
  %131 = load i32, ptr %25, align 4, !tbaa !5
  %132 = sext i32 %131 to i64
  %133 = getelementptr inbounds float, ptr %130, i64 %132
  %134 = load float, ptr %133, align 4, !tbaa !16
  %135 = fsub float %129, %134
  %136 = fpext float %135 to double
  %137 = call double @llvm.fabs.f64(double %136)
  br label %234

138:                                              ; preds = %117
  %139 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %140 = getelementptr inbounds %struct.TA_LibcPriv, ptr %139, i32 0, i32 8
  %141 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %140, i64 0, i64 0
  %142 = getelementptr inbounds %struct.TA_CandleSetting, ptr %141, i32 0, i32 1
  %143 = load i32, ptr %142, align 4, !tbaa !15
  %144 = icmp eq i32 %143, 1
  br i1 %144, label %145, label %157

145:                                              ; preds = %138
  %146 = load ptr, ptr %15, align 8, !tbaa !9
  %147 = load i32, ptr %25, align 4, !tbaa !5
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds float, ptr %146, i64 %148
  %150 = load float, ptr %149, align 4, !tbaa !16
  %151 = load ptr, ptr %16, align 8, !tbaa !9
  %152 = load i32, ptr %25, align 4, !tbaa !5
  %153 = sext i32 %152 to i64
  %154 = getelementptr inbounds float, ptr %151, i64 %153
  %155 = load float, ptr %154, align 4, !tbaa !16
  %156 = fsub float %150, %155
  br label %231

157:                                              ; preds = %138
  %158 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %159 = getelementptr inbounds %struct.TA_LibcPriv, ptr %158, i32 0, i32 8
  %160 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %159, i64 0, i64 0
  %161 = getelementptr inbounds %struct.TA_CandleSetting, ptr %160, i32 0, i32 1
  %162 = load i32, ptr %161, align 4, !tbaa !15
  %163 = icmp eq i32 %162, 2
  br i1 %163, label %164, label %228

164:                                              ; preds = %157
  %165 = load ptr, ptr %15, align 8, !tbaa !9
  %166 = load i32, ptr %25, align 4, !tbaa !5
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds float, ptr %165, i64 %167
  %169 = load float, ptr %168, align 4, !tbaa !16
  %170 = load ptr, ptr %17, align 8, !tbaa !9
  %171 = load i32, ptr %25, align 4, !tbaa !5
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds float, ptr %170, i64 %172
  %174 = load float, ptr %173, align 4, !tbaa !16
  %175 = load ptr, ptr %14, align 8, !tbaa !9
  %176 = load i32, ptr %25, align 4, !tbaa !5
  %177 = sext i32 %176 to i64
  %178 = getelementptr inbounds float, ptr %175, i64 %177
  %179 = load float, ptr %178, align 4, !tbaa !16
  %180 = fcmp oge float %174, %179
  br i1 %180, label %181, label %187

181:                                              ; preds = %164
  %182 = load ptr, ptr %17, align 8, !tbaa !9
  %183 = load i32, ptr %25, align 4, !tbaa !5
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds float, ptr %182, i64 %184
  %186 = load float, ptr %185, align 4, !tbaa !16
  br label %193

187:                                              ; preds = %164
  %188 = load ptr, ptr %14, align 8, !tbaa !9
  %189 = load i32, ptr %25, align 4, !tbaa !5
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds float, ptr %188, i64 %190
  %192 = load float, ptr %191, align 4, !tbaa !16
  br label %193

193:                                              ; preds = %187, %181
  %194 = phi float [ %186, %181 ], [ %192, %187 ]
  %195 = fsub float %169, %194
  %196 = load ptr, ptr %17, align 8, !tbaa !9
  %197 = load i32, ptr %25, align 4, !tbaa !5
  %198 = sext i32 %197 to i64
  %199 = getelementptr inbounds float, ptr %196, i64 %198
  %200 = load float, ptr %199, align 4, !tbaa !16
  %201 = load ptr, ptr %14, align 8, !tbaa !9
  %202 = load i32, ptr %25, align 4, !tbaa !5
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds float, ptr %201, i64 %203
  %205 = load float, ptr %204, align 4, !tbaa !16
  %206 = fcmp oge float %200, %205
  br i1 %206, label %207, label %213

207:                                              ; preds = %193
  %208 = load ptr, ptr %14, align 8, !tbaa !9
  %209 = load i32, ptr %25, align 4, !tbaa !5
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds float, ptr %208, i64 %210
  %212 = load float, ptr %211, align 4, !tbaa !16
  br label %219

213:                                              ; preds = %193
  %214 = load ptr, ptr %17, align 8, !tbaa !9
  %215 = load i32, ptr %25, align 4, !tbaa !5
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds float, ptr %214, i64 %216
  %218 = load float, ptr %217, align 4, !tbaa !16
  br label %219

219:                                              ; preds = %213, %207
  %220 = phi float [ %212, %207 ], [ %218, %213 ]
  %221 = load ptr, ptr %16, align 8, !tbaa !9
  %222 = load i32, ptr %25, align 4, !tbaa !5
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds float, ptr %221, i64 %223
  %225 = load float, ptr %224, align 4, !tbaa !16
  %226 = fsub float %220, %225
  %227 = fadd float %195, %226
  br label %229

228:                                              ; preds = %157
  br label %229

229:                                              ; preds = %228, %219
  %230 = phi float [ %227, %219 ], [ 0.000000e+00, %228 ]
  br label %231

231:                                              ; preds = %229, %145
  %232 = phi float [ %156, %145 ], [ %230, %229 ]
  %233 = fpext float %232 to double
  br label %234

234:                                              ; preds = %231, %124
  %235 = phi double [ %137, %124 ], [ %233, %231 ]
  %236 = load double, ptr %23, align 8, !tbaa !11
  %237 = fadd double %236, %235
  store double %237, ptr %23, align 8, !tbaa !11
  %238 = load i32, ptr %25, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  store i32 %239, ptr %25, align 4, !tbaa !5
  br label %112, !llvm.loop !18

240:                                              ; preds = %112
  %241 = load i32, ptr %27, align 4, !tbaa !5
  store i32 %241, ptr %25, align 4, !tbaa !5
  br label %242

242:                                              ; preds = %364, %240
  %243 = load i32, ptr %25, align 4, !tbaa !5
  %244 = load i32, ptr %12, align 4, !tbaa !5
  %245 = sub nsw i32 %244, 1
  %246 = icmp slt i32 %243, %245
  br i1 %246, label %247, label %370

247:                                              ; preds = %242
  %248 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %249 = getelementptr inbounds %struct.TA_LibcPriv, ptr %248, i32 0, i32 8
  %250 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %249, i64 0, i64 3
  %251 = getelementptr inbounds %struct.TA_CandleSetting, ptr %250, i32 0, i32 1
  %252 = load i32, ptr %251, align 4, !tbaa !15
  %253 = icmp eq i32 %252, 0
  br i1 %253, label %254, label %268

254:                                              ; preds = %247
  %255 = load ptr, ptr %17, align 8, !tbaa !9
  %256 = load i32, ptr %25, align 4, !tbaa !5
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds float, ptr %255, i64 %257
  %259 = load float, ptr %258, align 4, !tbaa !16
  %260 = load ptr, ptr %14, align 8, !tbaa !9
  %261 = load i32, ptr %25, align 4, !tbaa !5
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds float, ptr %260, i64 %262
  %264 = load float, ptr %263, align 4, !tbaa !16
  %265 = fsub float %259, %264
  %266 = fpext float %265 to double
  %267 = call double @llvm.fabs.f64(double %266)
  br label %364

268:                                              ; preds = %247
  %269 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %270 = getelementptr inbounds %struct.TA_LibcPriv, ptr %269, i32 0, i32 8
  %271 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %270, i64 0, i64 3
  %272 = getelementptr inbounds %struct.TA_CandleSetting, ptr %271, i32 0, i32 1
  %273 = load i32, ptr %272, align 4, !tbaa !15
  %274 = icmp eq i32 %273, 1
  br i1 %274, label %275, label %287

275:                                              ; preds = %268
  %276 = load ptr, ptr %15, align 8, !tbaa !9
  %277 = load i32, ptr %25, align 4, !tbaa !5
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds float, ptr %276, i64 %278
  %280 = load float, ptr %279, align 4, !tbaa !16
  %281 = load ptr, ptr %16, align 8, !tbaa !9
  %282 = load i32, ptr %25, align 4, !tbaa !5
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds float, ptr %281, i64 %283
  %285 = load float, ptr %284, align 4, !tbaa !16
  %286 = fsub float %280, %285
  br label %361

287:                                              ; preds = %268
  %288 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %289 = getelementptr inbounds %struct.TA_LibcPriv, ptr %288, i32 0, i32 8
  %290 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %289, i64 0, i64 3
  %291 = getelementptr inbounds %struct.TA_CandleSetting, ptr %290, i32 0, i32 1
  %292 = load i32, ptr %291, align 4, !tbaa !15
  %293 = icmp eq i32 %292, 2
  br i1 %293, label %294, label %358

294:                                              ; preds = %287
  %295 = load ptr, ptr %15, align 8, !tbaa !9
  %296 = load i32, ptr %25, align 4, !tbaa !5
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds float, ptr %295, i64 %297
  %299 = load float, ptr %298, align 4, !tbaa !16
  %300 = load ptr, ptr %17, align 8, !tbaa !9
  %301 = load i32, ptr %25, align 4, !tbaa !5
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds float, ptr %300, i64 %302
  %304 = load float, ptr %303, align 4, !tbaa !16
  %305 = load ptr, ptr %14, align 8, !tbaa !9
  %306 = load i32, ptr %25, align 4, !tbaa !5
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds float, ptr %305, i64 %307
  %309 = load float, ptr %308, align 4, !tbaa !16
  %310 = fcmp oge float %304, %309
  br i1 %310, label %311, label %317

311:                                              ; preds = %294
  %312 = load ptr, ptr %17, align 8, !tbaa !9
  %313 = load i32, ptr %25, align 4, !tbaa !5
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds float, ptr %312, i64 %314
  %316 = load float, ptr %315, align 4, !tbaa !16
  br label %323

317:                                              ; preds = %294
  %318 = load ptr, ptr %14, align 8, !tbaa !9
  %319 = load i32, ptr %25, align 4, !tbaa !5
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds float, ptr %318, i64 %320
  %322 = load float, ptr %321, align 4, !tbaa !16
  br label %323

323:                                              ; preds = %317, %311
  %324 = phi float [ %316, %311 ], [ %322, %317 ]
  %325 = fsub float %299, %324
  %326 = load ptr, ptr %17, align 8, !tbaa !9
  %327 = load i32, ptr %25, align 4, !tbaa !5
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds float, ptr %326, i64 %328
  %330 = load float, ptr %329, align 4, !tbaa !16
  %331 = load ptr, ptr %14, align 8, !tbaa !9
  %332 = load i32, ptr %25, align 4, !tbaa !5
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds float, ptr %331, i64 %333
  %335 = load float, ptr %334, align 4, !tbaa !16
  %336 = fcmp oge float %330, %335
  br i1 %336, label %337, label %343

337:                                              ; preds = %323
  %338 = load ptr, ptr %14, align 8, !tbaa !9
  %339 = load i32, ptr %25, align 4, !tbaa !5
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds float, ptr %338, i64 %340
  %342 = load float, ptr %341, align 4, !tbaa !16
  br label %349

343:                                              ; preds = %323
  %344 = load ptr, ptr %17, align 8, !tbaa !9
  %345 = load i32, ptr %25, align 4, !tbaa !5
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds float, ptr %344, i64 %346
  %348 = load float, ptr %347, align 4, !tbaa !16
  br label %349

349:                                              ; preds = %343, %337
  %350 = phi float [ %342, %337 ], [ %348, %343 ]
  %351 = load ptr, ptr %16, align 8, !tbaa !9
  %352 = load i32, ptr %25, align 4, !tbaa !5
  %353 = sext i32 %352 to i64
  %354 = getelementptr inbounds float, ptr %351, i64 %353
  %355 = load float, ptr %354, align 4, !tbaa !16
  %356 = fsub float %350, %355
  %357 = fadd float %325, %356
  br label %359

358:                                              ; preds = %287
  br label %359

359:                                              ; preds = %358, %349
  %360 = phi float [ %357, %349 ], [ 0.000000e+00, %358 ]
  br label %361

361:                                              ; preds = %359, %275
  %362 = phi float [ %286, %275 ], [ %360, %359 ]
  %363 = fpext float %362 to double
  br label %364

364:                                              ; preds = %361, %254
  %365 = phi double [ %267, %254 ], [ %363, %361 ]
  %366 = load double, ptr %22, align 8, !tbaa !11
  %367 = fadd double %366, %365
  store double %367, ptr %22, align 8, !tbaa !11
  %368 = load i32, ptr %25, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr %25, align 4, !tbaa !5
  br label %242, !llvm.loop !20

370:                                              ; preds = %242
  %371 = load i32, ptr %29, align 4, !tbaa !5
  store i32 %371, ptr %25, align 4, !tbaa !5
  br label %372

372:                                              ; preds = %493, %370
  %373 = load i32, ptr %25, align 4, !tbaa !5
  %374 = load i32, ptr %12, align 4, !tbaa !5
  %375 = icmp slt i32 %373, %374
  br i1 %375, label %376, label %499

376:                                              ; preds = %372
  %377 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %378 = getelementptr inbounds %struct.TA_LibcPriv, ptr %377, i32 0, i32 8
  %379 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %378, i64 0, i64 2
  %380 = getelementptr inbounds %struct.TA_CandleSetting, ptr %379, i32 0, i32 1
  %381 = load i32, ptr %380, align 4, !tbaa !15
  %382 = icmp eq i32 %381, 0
  br i1 %382, label %383, label %397

383:                                              ; preds = %376
  %384 = load ptr, ptr %17, align 8, !tbaa !9
  %385 = load i32, ptr %25, align 4, !tbaa !5
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds float, ptr %384, i64 %386
  %388 = load float, ptr %387, align 4, !tbaa !16
  %389 = load ptr, ptr %14, align 8, !tbaa !9
  %390 = load i32, ptr %25, align 4, !tbaa !5
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds float, ptr %389, i64 %391
  %393 = load float, ptr %392, align 4, !tbaa !16
  %394 = fsub float %388, %393
  %395 = fpext float %394 to double
  %396 = call double @llvm.fabs.f64(double %395)
  br label %493

397:                                              ; preds = %376
  %398 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %399 = getelementptr inbounds %struct.TA_LibcPriv, ptr %398, i32 0, i32 8
  %400 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %399, i64 0, i64 2
  %401 = getelementptr inbounds %struct.TA_CandleSetting, ptr %400, i32 0, i32 1
  %402 = load i32, ptr %401, align 4, !tbaa !15
  %403 = icmp eq i32 %402, 1
  br i1 %403, label %404, label %416

404:                                              ; preds = %397
  %405 = load ptr, ptr %15, align 8, !tbaa !9
  %406 = load i32, ptr %25, align 4, !tbaa !5
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds float, ptr %405, i64 %407
  %409 = load float, ptr %408, align 4, !tbaa !16
  %410 = load ptr, ptr %16, align 8, !tbaa !9
  %411 = load i32, ptr %25, align 4, !tbaa !5
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds float, ptr %410, i64 %412
  %414 = load float, ptr %413, align 4, !tbaa !16
  %415 = fsub float %409, %414
  br label %490

416:                                              ; preds = %397
  %417 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %418 = getelementptr inbounds %struct.TA_LibcPriv, ptr %417, i32 0, i32 8
  %419 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %418, i64 0, i64 2
  %420 = getelementptr inbounds %struct.TA_CandleSetting, ptr %419, i32 0, i32 1
  %421 = load i32, ptr %420, align 4, !tbaa !15
  %422 = icmp eq i32 %421, 2
  br i1 %422, label %423, label %487

423:                                              ; preds = %416
  %424 = load ptr, ptr %15, align 8, !tbaa !9
  %425 = load i32, ptr %25, align 4, !tbaa !5
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds float, ptr %424, i64 %426
  %428 = load float, ptr %427, align 4, !tbaa !16
  %429 = load ptr, ptr %17, align 8, !tbaa !9
  %430 = load i32, ptr %25, align 4, !tbaa !5
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds float, ptr %429, i64 %431
  %433 = load float, ptr %432, align 4, !tbaa !16
  %434 = load ptr, ptr %14, align 8, !tbaa !9
  %435 = load i32, ptr %25, align 4, !tbaa !5
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds float, ptr %434, i64 %436
  %438 = load float, ptr %437, align 4, !tbaa !16
  %439 = fcmp oge float %433, %438
  br i1 %439, label %440, label %446

440:                                              ; preds = %423
  %441 = load ptr, ptr %17, align 8, !tbaa !9
  %442 = load i32, ptr %25, align 4, !tbaa !5
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds float, ptr %441, i64 %443
  %445 = load float, ptr %444, align 4, !tbaa !16
  br label %452

446:                                              ; preds = %423
  %447 = load ptr, ptr %14, align 8, !tbaa !9
  %448 = load i32, ptr %25, align 4, !tbaa !5
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds float, ptr %447, i64 %449
  %451 = load float, ptr %450, align 4, !tbaa !16
  br label %452

452:                                              ; preds = %446, %440
  %453 = phi float [ %445, %440 ], [ %451, %446 ]
  %454 = fsub float %428, %453
  %455 = load ptr, ptr %17, align 8, !tbaa !9
  %456 = load i32, ptr %25, align 4, !tbaa !5
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds float, ptr %455, i64 %457
  %459 = load float, ptr %458, align 4, !tbaa !16
  %460 = load ptr, ptr %14, align 8, !tbaa !9
  %461 = load i32, ptr %25, align 4, !tbaa !5
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds float, ptr %460, i64 %462
  %464 = load float, ptr %463, align 4, !tbaa !16
  %465 = fcmp oge float %459, %464
  br i1 %465, label %466, label %472

466:                                              ; preds = %452
  %467 = load ptr, ptr %14, align 8, !tbaa !9
  %468 = load i32, ptr %25, align 4, !tbaa !5
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds float, ptr %467, i64 %469
  %471 = load float, ptr %470, align 4, !tbaa !16
  br label %478

472:                                              ; preds = %452
  %473 = load ptr, ptr %17, align 8, !tbaa !9
  %474 = load i32, ptr %25, align 4, !tbaa !5
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds float, ptr %473, i64 %475
  %477 = load float, ptr %476, align 4, !tbaa !16
  br label %478

478:                                              ; preds = %472, %466
  %479 = phi float [ %471, %466 ], [ %477, %472 ]
  %480 = load ptr, ptr %16, align 8, !tbaa !9
  %481 = load i32, ptr %25, align 4, !tbaa !5
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds float, ptr %480, i64 %482
  %484 = load float, ptr %483, align 4, !tbaa !16
  %485 = fsub float %479, %484
  %486 = fadd float %454, %485
  br label %488

487:                                              ; preds = %416
  br label %488

488:                                              ; preds = %487, %478
  %489 = phi float [ %486, %478 ], [ 0.000000e+00, %487 ]
  br label %490

490:                                              ; preds = %488, %404
  %491 = phi float [ %415, %404 ], [ %489, %488 ]
  %492 = fpext float %491 to double
  br label %493

493:                                              ; preds = %490, %383
  %494 = phi double [ %396, %383 ], [ %492, %490 ]
  %495 = load double, ptr %24, align 8, !tbaa !11
  %496 = fadd double %495, %494
  store double %496, ptr %24, align 8, !tbaa !11
  %497 = load i32, ptr %25, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr %25, align 4, !tbaa !5
  br label %372, !llvm.loop !21

499:                                              ; preds = %372
  %500 = load i32, ptr %12, align 4, !tbaa !5
  store i32 %500, ptr %25, align 4, !tbaa !5
  store i32 0, ptr %26, align 4, !tbaa !5
  br label %501

501:                                              ; preds = %1997, %499
  %502 = load ptr, ptr %17, align 8, !tbaa !9
  %503 = load i32, ptr %25, align 4, !tbaa !5
  %504 = sub nsw i32 %503, 2
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %502, i64 %505
  %507 = load float, ptr %506, align 4, !tbaa !16
  %508 = load ptr, ptr %14, align 8, !tbaa !9
  %509 = load i32, ptr %25, align 4, !tbaa !5
  %510 = sub nsw i32 %509, 2
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds float, ptr %508, i64 %511
  %513 = load float, ptr %512, align 4, !tbaa !16
  %514 = fsub float %507, %513
  %515 = fpext float %514 to double
  %516 = call double @llvm.fabs.f64(double %515)
  %517 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %518 = getelementptr inbounds %struct.TA_LibcPriv, ptr %517, i32 0, i32 8
  %519 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %518, i64 0, i64 0
  %520 = getelementptr inbounds %struct.TA_CandleSetting, ptr %519, i32 0, i32 3
  %521 = load double, ptr %520, align 8, !tbaa !22
  %522 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %523 = getelementptr inbounds %struct.TA_LibcPriv, ptr %522, i32 0, i32 8
  %524 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %523, i64 0, i64 0
  %525 = getelementptr inbounds %struct.TA_CandleSetting, ptr %524, i32 0, i32 2
  %526 = load i32, ptr %525, align 8, !tbaa !13
  %527 = sitofp i32 %526 to double
  %528 = fcmp une double %527, 0.000000e+00
  br i1 %528, label %529, label %538

529:                                              ; preds = %501
  %530 = load double, ptr %23, align 8, !tbaa !11
  %531 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %532 = getelementptr inbounds %struct.TA_LibcPriv, ptr %531, i32 0, i32 8
  %533 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %532, i64 0, i64 0
  %534 = getelementptr inbounds %struct.TA_CandleSetting, ptr %533, i32 0, i32 2
  %535 = load i32, ptr %534, align 8, !tbaa !13
  %536 = sitofp i32 %535 to double
  %537 = fdiv double %530, %536
  br label %671

538:                                              ; preds = %501
  %539 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %540 = getelementptr inbounds %struct.TA_LibcPriv, ptr %539, i32 0, i32 8
  %541 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %540, i64 0, i64 0
  %542 = getelementptr inbounds %struct.TA_CandleSetting, ptr %541, i32 0, i32 1
  %543 = load i32, ptr %542, align 4, !tbaa !15
  %544 = icmp eq i32 %543, 0
  br i1 %544, label %545, label %561

545:                                              ; preds = %538
  %546 = load ptr, ptr %17, align 8, !tbaa !9
  %547 = load i32, ptr %25, align 4, !tbaa !5
  %548 = sub nsw i32 %547, 2
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds float, ptr %546, i64 %549
  %551 = load float, ptr %550, align 4, !tbaa !16
  %552 = load ptr, ptr %14, align 8, !tbaa !9
  %553 = load i32, ptr %25, align 4, !tbaa !5
  %554 = sub nsw i32 %553, 2
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds float, ptr %552, i64 %555
  %557 = load float, ptr %556, align 4, !tbaa !16
  %558 = fsub float %551, %557
  %559 = fpext float %558 to double
  %560 = call double @llvm.fabs.f64(double %559)
  br label %669

561:                                              ; preds = %538
  %562 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %563 = getelementptr inbounds %struct.TA_LibcPriv, ptr %562, i32 0, i32 8
  %564 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %563, i64 0, i64 0
  %565 = getelementptr inbounds %struct.TA_CandleSetting, ptr %564, i32 0, i32 1
  %566 = load i32, ptr %565, align 4, !tbaa !15
  %567 = icmp eq i32 %566, 1
  br i1 %567, label %568, label %582

568:                                              ; preds = %561
  %569 = load ptr, ptr %15, align 8, !tbaa !9
  %570 = load i32, ptr %25, align 4, !tbaa !5
  %571 = sub nsw i32 %570, 2
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds float, ptr %569, i64 %572
  %574 = load float, ptr %573, align 4, !tbaa !16
  %575 = load ptr, ptr %16, align 8, !tbaa !9
  %576 = load i32, ptr %25, align 4, !tbaa !5
  %577 = sub nsw i32 %576, 2
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds float, ptr %575, i64 %578
  %580 = load float, ptr %579, align 4, !tbaa !16
  %581 = fsub float %574, %580
  br label %666

582:                                              ; preds = %561
  %583 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %584 = getelementptr inbounds %struct.TA_LibcPriv, ptr %583, i32 0, i32 8
  %585 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %584, i64 0, i64 0
  %586 = getelementptr inbounds %struct.TA_CandleSetting, ptr %585, i32 0, i32 1
  %587 = load i32, ptr %586, align 4, !tbaa !15
  %588 = icmp eq i32 %587, 2
  br i1 %588, label %589, label %663

589:                                              ; preds = %582
  %590 = load ptr, ptr %15, align 8, !tbaa !9
  %591 = load i32, ptr %25, align 4, !tbaa !5
  %592 = sub nsw i32 %591, 2
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds float, ptr %590, i64 %593
  %595 = load float, ptr %594, align 4, !tbaa !16
  %596 = load ptr, ptr %17, align 8, !tbaa !9
  %597 = load i32, ptr %25, align 4, !tbaa !5
  %598 = sub nsw i32 %597, 2
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds float, ptr %596, i64 %599
  %601 = load float, ptr %600, align 4, !tbaa !16
  %602 = load ptr, ptr %14, align 8, !tbaa !9
  %603 = load i32, ptr %25, align 4, !tbaa !5
  %604 = sub nsw i32 %603, 2
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds float, ptr %602, i64 %605
  %607 = load float, ptr %606, align 4, !tbaa !16
  %608 = fcmp oge float %601, %607
  br i1 %608, label %609, label %616

609:                                              ; preds = %589
  %610 = load ptr, ptr %17, align 8, !tbaa !9
  %611 = load i32, ptr %25, align 4, !tbaa !5
  %612 = sub nsw i32 %611, 2
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds float, ptr %610, i64 %613
  %615 = load float, ptr %614, align 4, !tbaa !16
  br label %623

616:                                              ; preds = %589
  %617 = load ptr, ptr %14, align 8, !tbaa !9
  %618 = load i32, ptr %25, align 4, !tbaa !5
  %619 = sub nsw i32 %618, 2
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds float, ptr %617, i64 %620
  %622 = load float, ptr %621, align 4, !tbaa !16
  br label %623

623:                                              ; preds = %616, %609
  %624 = phi float [ %615, %609 ], [ %622, %616 ]
  %625 = fsub float %595, %624
  %626 = load ptr, ptr %17, align 8, !tbaa !9
  %627 = load i32, ptr %25, align 4, !tbaa !5
  %628 = sub nsw i32 %627, 2
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds float, ptr %626, i64 %629
  %631 = load float, ptr %630, align 4, !tbaa !16
  %632 = load ptr, ptr %14, align 8, !tbaa !9
  %633 = load i32, ptr %25, align 4, !tbaa !5
  %634 = sub nsw i32 %633, 2
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds float, ptr %632, i64 %635
  %637 = load float, ptr %636, align 4, !tbaa !16
  %638 = fcmp oge float %631, %637
  br i1 %638, label %639, label %646

639:                                              ; preds = %623
  %640 = load ptr, ptr %14, align 8, !tbaa !9
  %641 = load i32, ptr %25, align 4, !tbaa !5
  %642 = sub nsw i32 %641, 2
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds float, ptr %640, i64 %643
  %645 = load float, ptr %644, align 4, !tbaa !16
  br label %653

646:                                              ; preds = %623
  %647 = load ptr, ptr %17, align 8, !tbaa !9
  %648 = load i32, ptr %25, align 4, !tbaa !5
  %649 = sub nsw i32 %648, 2
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds float, ptr %647, i64 %650
  %652 = load float, ptr %651, align 4, !tbaa !16
  br label %653

653:                                              ; preds = %646, %639
  %654 = phi float [ %645, %639 ], [ %652, %646 ]
  %655 = load ptr, ptr %16, align 8, !tbaa !9
  %656 = load i32, ptr %25, align 4, !tbaa !5
  %657 = sub nsw i32 %656, 2
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %655, i64 %658
  %660 = load float, ptr %659, align 4, !tbaa !16
  %661 = fsub float %654, %660
  %662 = fadd float %625, %661
  br label %664

663:                                              ; preds = %582
  br label %664

664:                                              ; preds = %663, %653
  %665 = phi float [ %662, %653 ], [ 0.000000e+00, %663 ]
  br label %666

666:                                              ; preds = %664, %568
  %667 = phi float [ %581, %568 ], [ %665, %664 ]
  %668 = fpext float %667 to double
  br label %669

669:                                              ; preds = %666, %545
  %670 = phi double [ %560, %545 ], [ %668, %666 ]
  br label %671

671:                                              ; preds = %669, %529
  %672 = phi double [ %537, %529 ], [ %670, %669 ]
  %673 = fmul double %521, %672
  %674 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %675 = getelementptr inbounds %struct.TA_LibcPriv, ptr %674, i32 0, i32 8
  %676 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %675, i64 0, i64 0
  %677 = getelementptr inbounds %struct.TA_CandleSetting, ptr %676, i32 0, i32 1
  %678 = load i32, ptr %677, align 4, !tbaa !15
  %679 = icmp eq i32 %678, 2
  %680 = zext i1 %679 to i64
  %681 = select i1 %679, double 2.000000e+00, double 1.000000e+00
  %682 = fdiv double %673, %681
  %683 = fcmp ogt double %516, %682
  br i1 %683, label %684, label %1237

684:                                              ; preds = %671
  %685 = load ptr, ptr %17, align 8, !tbaa !9
  %686 = load i32, ptr %25, align 4, !tbaa !5
  %687 = sub nsw i32 %686, 1
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds float, ptr %685, i64 %688
  %690 = load float, ptr %689, align 4, !tbaa !16
  %691 = load ptr, ptr %14, align 8, !tbaa !9
  %692 = load i32, ptr %25, align 4, !tbaa !5
  %693 = sub nsw i32 %692, 1
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %691, i64 %694
  %696 = load float, ptr %695, align 4, !tbaa !16
  %697 = fsub float %690, %696
  %698 = fpext float %697 to double
  %699 = call double @llvm.fabs.f64(double %698)
  %700 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %701 = getelementptr inbounds %struct.TA_LibcPriv, ptr %700, i32 0, i32 8
  %702 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %701, i64 0, i64 3
  %703 = getelementptr inbounds %struct.TA_CandleSetting, ptr %702, i32 0, i32 3
  %704 = load double, ptr %703, align 8, !tbaa !22
  %705 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %706 = getelementptr inbounds %struct.TA_LibcPriv, ptr %705, i32 0, i32 8
  %707 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %706, i64 0, i64 3
  %708 = getelementptr inbounds %struct.TA_CandleSetting, ptr %707, i32 0, i32 2
  %709 = load i32, ptr %708, align 8, !tbaa !13
  %710 = sitofp i32 %709 to double
  %711 = fcmp une double %710, 0.000000e+00
  br i1 %711, label %712, label %721

712:                                              ; preds = %684
  %713 = load double, ptr %22, align 8, !tbaa !11
  %714 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %715 = getelementptr inbounds %struct.TA_LibcPriv, ptr %714, i32 0, i32 8
  %716 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %715, i64 0, i64 3
  %717 = getelementptr inbounds %struct.TA_CandleSetting, ptr %716, i32 0, i32 2
  %718 = load i32, ptr %717, align 8, !tbaa !13
  %719 = sitofp i32 %718 to double
  %720 = fdiv double %713, %719
  br label %854

721:                                              ; preds = %684
  %722 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %723 = getelementptr inbounds %struct.TA_LibcPriv, ptr %722, i32 0, i32 8
  %724 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %723, i64 0, i64 3
  %725 = getelementptr inbounds %struct.TA_CandleSetting, ptr %724, i32 0, i32 1
  %726 = load i32, ptr %725, align 4, !tbaa !15
  %727 = icmp eq i32 %726, 0
  br i1 %727, label %728, label %744

728:                                              ; preds = %721
  %729 = load ptr, ptr %17, align 8, !tbaa !9
  %730 = load i32, ptr %25, align 4, !tbaa !5
  %731 = sub nsw i32 %730, 1
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds float, ptr %729, i64 %732
  %734 = load float, ptr %733, align 4, !tbaa !16
  %735 = load ptr, ptr %14, align 8, !tbaa !9
  %736 = load i32, ptr %25, align 4, !tbaa !5
  %737 = sub nsw i32 %736, 1
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds float, ptr %735, i64 %738
  %740 = load float, ptr %739, align 4, !tbaa !16
  %741 = fsub float %734, %740
  %742 = fpext float %741 to double
  %743 = call double @llvm.fabs.f64(double %742)
  br label %852

744:                                              ; preds = %721
  %745 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %746 = getelementptr inbounds %struct.TA_LibcPriv, ptr %745, i32 0, i32 8
  %747 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %746, i64 0, i64 3
  %748 = getelementptr inbounds %struct.TA_CandleSetting, ptr %747, i32 0, i32 1
  %749 = load i32, ptr %748, align 4, !tbaa !15
  %750 = icmp eq i32 %749, 1
  br i1 %750, label %751, label %765

751:                                              ; preds = %744
  %752 = load ptr, ptr %15, align 8, !tbaa !9
  %753 = load i32, ptr %25, align 4, !tbaa !5
  %754 = sub nsw i32 %753, 1
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds float, ptr %752, i64 %755
  %757 = load float, ptr %756, align 4, !tbaa !16
  %758 = load ptr, ptr %16, align 8, !tbaa !9
  %759 = load i32, ptr %25, align 4, !tbaa !5
  %760 = sub nsw i32 %759, 1
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds float, ptr %758, i64 %761
  %763 = load float, ptr %762, align 4, !tbaa !16
  %764 = fsub float %757, %763
  br label %849

765:                                              ; preds = %744
  %766 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %767 = getelementptr inbounds %struct.TA_LibcPriv, ptr %766, i32 0, i32 8
  %768 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %767, i64 0, i64 3
  %769 = getelementptr inbounds %struct.TA_CandleSetting, ptr %768, i32 0, i32 1
  %770 = load i32, ptr %769, align 4, !tbaa !15
  %771 = icmp eq i32 %770, 2
  br i1 %771, label %772, label %846

772:                                              ; preds = %765
  %773 = load ptr, ptr %15, align 8, !tbaa !9
  %774 = load i32, ptr %25, align 4, !tbaa !5
  %775 = sub nsw i32 %774, 1
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds float, ptr %773, i64 %776
  %778 = load float, ptr %777, align 4, !tbaa !16
  %779 = load ptr, ptr %17, align 8, !tbaa !9
  %780 = load i32, ptr %25, align 4, !tbaa !5
  %781 = sub nsw i32 %780, 1
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds float, ptr %779, i64 %782
  %784 = load float, ptr %783, align 4, !tbaa !16
  %785 = load ptr, ptr %14, align 8, !tbaa !9
  %786 = load i32, ptr %25, align 4, !tbaa !5
  %787 = sub nsw i32 %786, 1
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds float, ptr %785, i64 %788
  %790 = load float, ptr %789, align 4, !tbaa !16
  %791 = fcmp oge float %784, %790
  br i1 %791, label %792, label %799

792:                                              ; preds = %772
  %793 = load ptr, ptr %17, align 8, !tbaa !9
  %794 = load i32, ptr %25, align 4, !tbaa !5
  %795 = sub nsw i32 %794, 1
  %796 = sext i32 %795 to i64
  %797 = getelementptr inbounds float, ptr %793, i64 %796
  %798 = load float, ptr %797, align 4, !tbaa !16
  br label %806

799:                                              ; preds = %772
  %800 = load ptr, ptr %14, align 8, !tbaa !9
  %801 = load i32, ptr %25, align 4, !tbaa !5
  %802 = sub nsw i32 %801, 1
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds float, ptr %800, i64 %803
  %805 = load float, ptr %804, align 4, !tbaa !16
  br label %806

806:                                              ; preds = %799, %792
  %807 = phi float [ %798, %792 ], [ %805, %799 ]
  %808 = fsub float %778, %807
  %809 = load ptr, ptr %17, align 8, !tbaa !9
  %810 = load i32, ptr %25, align 4, !tbaa !5
  %811 = sub nsw i32 %810, 1
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds float, ptr %809, i64 %812
  %814 = load float, ptr %813, align 4, !tbaa !16
  %815 = load ptr, ptr %14, align 8, !tbaa !9
  %816 = load i32, ptr %25, align 4, !tbaa !5
  %817 = sub nsw i32 %816, 1
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds float, ptr %815, i64 %818
  %820 = load float, ptr %819, align 4, !tbaa !16
  %821 = fcmp oge float %814, %820
  br i1 %821, label %822, label %829

822:                                              ; preds = %806
  %823 = load ptr, ptr %14, align 8, !tbaa !9
  %824 = load i32, ptr %25, align 4, !tbaa !5
  %825 = sub nsw i32 %824, 1
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds float, ptr %823, i64 %826
  %828 = load float, ptr %827, align 4, !tbaa !16
  br label %836

829:                                              ; preds = %806
  %830 = load ptr, ptr %17, align 8, !tbaa !9
  %831 = load i32, ptr %25, align 4, !tbaa !5
  %832 = sub nsw i32 %831, 1
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds float, ptr %830, i64 %833
  %835 = load float, ptr %834, align 4, !tbaa !16
  br label %836

836:                                              ; preds = %829, %822
  %837 = phi float [ %828, %822 ], [ %835, %829 ]
  %838 = load ptr, ptr %16, align 8, !tbaa !9
  %839 = load i32, ptr %25, align 4, !tbaa !5
  %840 = sub nsw i32 %839, 1
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds float, ptr %838, i64 %841
  %843 = load float, ptr %842, align 4, !tbaa !16
  %844 = fsub float %837, %843
  %845 = fadd float %808, %844
  br label %847

846:                                              ; preds = %765
  br label %847

847:                                              ; preds = %846, %836
  %848 = phi float [ %845, %836 ], [ 0.000000e+00, %846 ]
  br label %849

849:                                              ; preds = %847, %751
  %850 = phi float [ %764, %751 ], [ %848, %847 ]
  %851 = fpext float %850 to double
  br label %852

852:                                              ; preds = %849, %728
  %853 = phi double [ %743, %728 ], [ %851, %849 ]
  br label %854

854:                                              ; preds = %852, %712
  %855 = phi double [ %720, %712 ], [ %853, %852 ]
  %856 = fmul double %704, %855
  %857 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %858 = getelementptr inbounds %struct.TA_LibcPriv, ptr %857, i32 0, i32 8
  %859 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %858, i64 0, i64 3
  %860 = getelementptr inbounds %struct.TA_CandleSetting, ptr %859, i32 0, i32 1
  %861 = load i32, ptr %860, align 4, !tbaa !15
  %862 = icmp eq i32 %861, 2
  %863 = zext i1 %862 to i64
  %864 = select i1 %862, double 2.000000e+00, double 1.000000e+00
  %865 = fdiv double %856, %864
  %866 = fcmp ole double %699, %865
  br i1 %866, label %867, label %1237

867:                                              ; preds = %854
  %868 = load ptr, ptr %17, align 8, !tbaa !9
  %869 = load i32, ptr %25, align 4, !tbaa !5
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds float, ptr %868, i64 %870
  %872 = load float, ptr %871, align 4, !tbaa !16
  %873 = load ptr, ptr %14, align 8, !tbaa !9
  %874 = load i32, ptr %25, align 4, !tbaa !5
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds float, ptr %873, i64 %875
  %877 = load float, ptr %876, align 4, !tbaa !16
  %878 = fsub float %872, %877
  %879 = fpext float %878 to double
  %880 = call double @llvm.fabs.f64(double %879)
  %881 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %882 = getelementptr inbounds %struct.TA_LibcPriv, ptr %881, i32 0, i32 8
  %883 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %882, i64 0, i64 2
  %884 = getelementptr inbounds %struct.TA_CandleSetting, ptr %883, i32 0, i32 3
  %885 = load double, ptr %884, align 8, !tbaa !22
  %886 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %887 = getelementptr inbounds %struct.TA_LibcPriv, ptr %886, i32 0, i32 8
  %888 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %887, i64 0, i64 2
  %889 = getelementptr inbounds %struct.TA_CandleSetting, ptr %888, i32 0, i32 2
  %890 = load i32, ptr %889, align 8, !tbaa !13
  %891 = sitofp i32 %890 to double
  %892 = fcmp une double %891, 0.000000e+00
  br i1 %892, label %893, label %902

893:                                              ; preds = %867
  %894 = load double, ptr %24, align 8, !tbaa !11
  %895 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %896 = getelementptr inbounds %struct.TA_LibcPriv, ptr %895, i32 0, i32 8
  %897 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %896, i64 0, i64 2
  %898 = getelementptr inbounds %struct.TA_CandleSetting, ptr %897, i32 0, i32 2
  %899 = load i32, ptr %898, align 8, !tbaa !13
  %900 = sitofp i32 %899 to double
  %901 = fdiv double %894, %900
  br label %1021

902:                                              ; preds = %867
  %903 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %904 = getelementptr inbounds %struct.TA_LibcPriv, ptr %903, i32 0, i32 8
  %905 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %904, i64 0, i64 2
  %906 = getelementptr inbounds %struct.TA_CandleSetting, ptr %905, i32 0, i32 1
  %907 = load i32, ptr %906, align 4, !tbaa !15
  %908 = icmp eq i32 %907, 0
  br i1 %908, label %909, label %923

909:                                              ; preds = %902
  %910 = load ptr, ptr %17, align 8, !tbaa !9
  %911 = load i32, ptr %25, align 4, !tbaa !5
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds float, ptr %910, i64 %912
  %914 = load float, ptr %913, align 4, !tbaa !16
  %915 = load ptr, ptr %14, align 8, !tbaa !9
  %916 = load i32, ptr %25, align 4, !tbaa !5
  %917 = sext i32 %916 to i64
  %918 = getelementptr inbounds float, ptr %915, i64 %917
  %919 = load float, ptr %918, align 4, !tbaa !16
  %920 = fsub float %914, %919
  %921 = fpext float %920 to double
  %922 = call double @llvm.fabs.f64(double %921)
  br label %1019

923:                                              ; preds = %902
  %924 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %925 = getelementptr inbounds %struct.TA_LibcPriv, ptr %924, i32 0, i32 8
  %926 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %925, i64 0, i64 2
  %927 = getelementptr inbounds %struct.TA_CandleSetting, ptr %926, i32 0, i32 1
  %928 = load i32, ptr %927, align 4, !tbaa !15
  %929 = icmp eq i32 %928, 1
  br i1 %929, label %930, label %942

930:                                              ; preds = %923
  %931 = load ptr, ptr %15, align 8, !tbaa !9
  %932 = load i32, ptr %25, align 4, !tbaa !5
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds float, ptr %931, i64 %933
  %935 = load float, ptr %934, align 4, !tbaa !16
  %936 = load ptr, ptr %16, align 8, !tbaa !9
  %937 = load i32, ptr %25, align 4, !tbaa !5
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds float, ptr %936, i64 %938
  %940 = load float, ptr %939, align 4, !tbaa !16
  %941 = fsub float %935, %940
  br label %1016

942:                                              ; preds = %923
  %943 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %944 = getelementptr inbounds %struct.TA_LibcPriv, ptr %943, i32 0, i32 8
  %945 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %944, i64 0, i64 2
  %946 = getelementptr inbounds %struct.TA_CandleSetting, ptr %945, i32 0, i32 1
  %947 = load i32, ptr %946, align 4, !tbaa !15
  %948 = icmp eq i32 %947, 2
  br i1 %948, label %949, label %1013

949:                                              ; preds = %942
  %950 = load ptr, ptr %15, align 8, !tbaa !9
  %951 = load i32, ptr %25, align 4, !tbaa !5
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds float, ptr %950, i64 %952
  %954 = load float, ptr %953, align 4, !tbaa !16
  %955 = load ptr, ptr %17, align 8, !tbaa !9
  %956 = load i32, ptr %25, align 4, !tbaa !5
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds float, ptr %955, i64 %957
  %959 = load float, ptr %958, align 4, !tbaa !16
  %960 = load ptr, ptr %14, align 8, !tbaa !9
  %961 = load i32, ptr %25, align 4, !tbaa !5
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds float, ptr %960, i64 %962
  %964 = load float, ptr %963, align 4, !tbaa !16
  %965 = fcmp oge float %959, %964
  br i1 %965, label %966, label %972

966:                                              ; preds = %949
  %967 = load ptr, ptr %17, align 8, !tbaa !9
  %968 = load i32, ptr %25, align 4, !tbaa !5
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds float, ptr %967, i64 %969
  %971 = load float, ptr %970, align 4, !tbaa !16
  br label %978

972:                                              ; preds = %949
  %973 = load ptr, ptr %14, align 8, !tbaa !9
  %974 = load i32, ptr %25, align 4, !tbaa !5
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds float, ptr %973, i64 %975
  %977 = load float, ptr %976, align 4, !tbaa !16
  br label %978

978:                                              ; preds = %972, %966
  %979 = phi float [ %971, %966 ], [ %977, %972 ]
  %980 = fsub float %954, %979
  %981 = load ptr, ptr %17, align 8, !tbaa !9
  %982 = load i32, ptr %25, align 4, !tbaa !5
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds float, ptr %981, i64 %983
  %985 = load float, ptr %984, align 4, !tbaa !16
  %986 = load ptr, ptr %14, align 8, !tbaa !9
  %987 = load i32, ptr %25, align 4, !tbaa !5
  %988 = sext i32 %987 to i64
  %989 = getelementptr inbounds float, ptr %986, i64 %988
  %990 = load float, ptr %989, align 4, !tbaa !16
  %991 = fcmp oge float %985, %990
  br i1 %991, label %992, label %998

992:                                              ; preds = %978
  %993 = load ptr, ptr %14, align 8, !tbaa !9
  %994 = load i32, ptr %25, align 4, !tbaa !5
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds float, ptr %993, i64 %995
  %997 = load float, ptr %996, align 4, !tbaa !16
  br label %1004

998:                                              ; preds = %978
  %999 = load ptr, ptr %17, align 8, !tbaa !9
  %1000 = load i32, ptr %25, align 4, !tbaa !5
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds float, ptr %999, i64 %1001
  %1003 = load float, ptr %1002, align 4, !tbaa !16
  br label %1004

1004:                                             ; preds = %998, %992
  %1005 = phi float [ %997, %992 ], [ %1003, %998 ]
  %1006 = load ptr, ptr %16, align 8, !tbaa !9
  %1007 = load i32, ptr %25, align 4, !tbaa !5
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds float, ptr %1006, i64 %1008
  %1010 = load float, ptr %1009, align 4, !tbaa !16
  %1011 = fsub float %1005, %1010
  %1012 = fadd float %980, %1011
  br label %1014

1013:                                             ; preds = %942
  br label %1014

1014:                                             ; preds = %1013, %1004
  %1015 = phi float [ %1012, %1004 ], [ 0.000000e+00, %1013 ]
  br label %1016

1016:                                             ; preds = %1014, %930
  %1017 = phi float [ %941, %930 ], [ %1015, %1014 ]
  %1018 = fpext float %1017 to double
  br label %1019

1019:                                             ; preds = %1016, %909
  %1020 = phi double [ %922, %909 ], [ %1018, %1016 ]
  br label %1021

1021:                                             ; preds = %1019, %893
  %1022 = phi double [ %901, %893 ], [ %1020, %1019 ]
  %1023 = fmul double %885, %1022
  %1024 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1025 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1024, i32 0, i32 8
  %1026 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1025, i64 0, i64 2
  %1027 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1026, i32 0, i32 1
  %1028 = load i32, ptr %1027, align 4, !tbaa !15
  %1029 = icmp eq i32 %1028, 2
  %1030 = zext i1 %1029 to i64
  %1031 = select i1 %1029, double 2.000000e+00, double 1.000000e+00
  %1032 = fdiv double %1023, %1031
  %1033 = fcmp ogt double %880, %1032
  br i1 %1033, label %1034, label %1237

1034:                                             ; preds = %1021
  %1035 = load ptr, ptr %17, align 8, !tbaa !9
  %1036 = load i32, ptr %25, align 4, !tbaa !5
  %1037 = sub nsw i32 %1036, 2
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds float, ptr %1035, i64 %1038
  %1040 = load float, ptr %1039, align 4, !tbaa !16
  %1041 = load ptr, ptr %14, align 8, !tbaa !9
  %1042 = load i32, ptr %25, align 4, !tbaa !5
  %1043 = sub nsw i32 %1042, 2
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds float, ptr %1041, i64 %1044
  %1046 = load float, ptr %1045, align 4, !tbaa !16
  %1047 = fcmp oge float %1040, %1046
  %1048 = zext i1 %1047 to i64
  %1049 = select i1 %1047, i32 1, i32 -1
  %1050 = icmp eq i32 %1049, 1
  br i1 %1050, label %1051, label %1126

1051:                                             ; preds = %1034
  %1052 = load ptr, ptr %17, align 8, !tbaa !9
  %1053 = load i32, ptr %25, align 4, !tbaa !5
  %1054 = sext i32 %1053 to i64
  %1055 = getelementptr inbounds float, ptr %1052, i64 %1054
  %1056 = load float, ptr %1055, align 4, !tbaa !16
  %1057 = load ptr, ptr %14, align 8, !tbaa !9
  %1058 = load i32, ptr %25, align 4, !tbaa !5
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds float, ptr %1057, i64 %1059
  %1061 = load float, ptr %1060, align 4, !tbaa !16
  %1062 = fcmp oge float %1056, %1061
  %1063 = zext i1 %1062 to i64
  %1064 = select i1 %1062, i32 1, i32 -1
  %1065 = icmp eq i32 %1064, -1
  br i1 %1065, label %1066, label %1126

1066:                                             ; preds = %1051
  %1067 = load ptr, ptr %17, align 8, !tbaa !9
  %1068 = load i32, ptr %25, align 4, !tbaa !5
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds float, ptr %1067, i64 %1069
  %1071 = load float, ptr %1070, align 4, !tbaa !16
  %1072 = fpext float %1071 to double
  %1073 = load ptr, ptr %17, align 8, !tbaa !9
  %1074 = load i32, ptr %25, align 4, !tbaa !5
  %1075 = sub nsw i32 %1074, 2
  %1076 = sext i32 %1075 to i64
  %1077 = getelementptr inbounds float, ptr %1073, i64 %1076
  %1078 = load float, ptr %1077, align 4, !tbaa !16
  %1079 = fpext float %1078 to double
  %1080 = load ptr, ptr %17, align 8, !tbaa !9
  %1081 = load i32, ptr %25, align 4, !tbaa !5
  %1082 = sub nsw i32 %1081, 2
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds float, ptr %1080, i64 %1083
  %1085 = load float, ptr %1084, align 4, !tbaa !16
  %1086 = load ptr, ptr %14, align 8, !tbaa !9
  %1087 = load i32, ptr %25, align 4, !tbaa !5
  %1088 = sub nsw i32 %1087, 2
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds float, ptr %1086, i64 %1089
  %1091 = load float, ptr %1090, align 4, !tbaa !16
  %1092 = fsub float %1085, %1091
  %1093 = fpext float %1092 to double
  %1094 = call double @llvm.fabs.f64(double %1093)
  %1095 = load double, ptr %18, align 8, !tbaa !11
  %1096 = fneg double %1094
  %1097 = call double @llvm.fmuladd.f64(double %1096, double %1095, double %1079)
  %1098 = fcmp olt double %1072, %1097
  br i1 %1098, label %1099, label %1126

1099:                                             ; preds = %1066
  %1100 = load ptr, ptr %16, align 8, !tbaa !9
  %1101 = load i32, ptr %25, align 4, !tbaa !5
  %1102 = sub nsw i32 %1101, 1
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds float, ptr %1100, i64 %1103
  %1105 = load float, ptr %1104, align 4, !tbaa !16
  %1106 = load ptr, ptr %15, align 8, !tbaa !9
  %1107 = load i32, ptr %25, align 4, !tbaa !5
  %1108 = sub nsw i32 %1107, 2
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds float, ptr %1106, i64 %1109
  %1111 = load float, ptr %1110, align 4, !tbaa !16
  %1112 = fcmp ogt float %1105, %1111
  br i1 %1112, label %1113, label %1126

1113:                                             ; preds = %1099
  %1114 = load ptr, ptr %15, align 8, !tbaa !9
  %1115 = load i32, ptr %25, align 4, !tbaa !5
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds float, ptr %1114, i64 %1116
  %1118 = load float, ptr %1117, align 4, !tbaa !16
  %1119 = load ptr, ptr %16, align 8, !tbaa !9
  %1120 = load i32, ptr %25, align 4, !tbaa !5
  %1121 = sub nsw i32 %1120, 1
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds float, ptr %1119, i64 %1122
  %1124 = load float, ptr %1123, align 4, !tbaa !16
  %1125 = fcmp olt float %1118, %1124
  br i1 %1125, label %1217, label %1126

1126:                                             ; preds = %1113, %1099, %1066, %1051, %1034
  %1127 = load ptr, ptr %17, align 8, !tbaa !9
  %1128 = load i32, ptr %25, align 4, !tbaa !5
  %1129 = sub nsw i32 %1128, 2
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds float, ptr %1127, i64 %1130
  %1132 = load float, ptr %1131, align 4, !tbaa !16
  %1133 = load ptr, ptr %14, align 8, !tbaa !9
  %1134 = load i32, ptr %25, align 4, !tbaa !5
  %1135 = sub nsw i32 %1134, 2
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds float, ptr %1133, i64 %1136
  %1138 = load float, ptr %1137, align 4, !tbaa !16
  %1139 = fcmp oge float %1132, %1138
  %1140 = zext i1 %1139 to i64
  %1141 = select i1 %1139, i32 1, i32 -1
  %1142 = icmp eq i32 %1141, -1
  br i1 %1142, label %1143, label %1237

1143:                                             ; preds = %1126
  %1144 = load ptr, ptr %17, align 8, !tbaa !9
  %1145 = load i32, ptr %25, align 4, !tbaa !5
  %1146 = sext i32 %1145 to i64
  %1147 = getelementptr inbounds float, ptr %1144, i64 %1146
  %1148 = load float, ptr %1147, align 4, !tbaa !16
  %1149 = load ptr, ptr %14, align 8, !tbaa !9
  %1150 = load i32, ptr %25, align 4, !tbaa !5
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds float, ptr %1149, i64 %1151
  %1153 = load float, ptr %1152, align 4, !tbaa !16
  %1154 = fcmp oge float %1148, %1153
  %1155 = zext i1 %1154 to i64
  %1156 = select i1 %1154, i32 1, i32 -1
  %1157 = icmp eq i32 %1156, 1
  br i1 %1157, label %1158, label %1237

1158:                                             ; preds = %1143
  %1159 = load ptr, ptr %17, align 8, !tbaa !9
  %1160 = load i32, ptr %25, align 4, !tbaa !5
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds float, ptr %1159, i64 %1161
  %1163 = load float, ptr %1162, align 4, !tbaa !16
  %1164 = fpext float %1163 to double
  %1165 = load ptr, ptr %17, align 8, !tbaa !9
  %1166 = load i32, ptr %25, align 4, !tbaa !5
  %1167 = sub nsw i32 %1166, 2
  %1168 = sext i32 %1167 to i64
  %1169 = getelementptr inbounds float, ptr %1165, i64 %1168
  %1170 = load float, ptr %1169, align 4, !tbaa !16
  %1171 = fpext float %1170 to double
  %1172 = load ptr, ptr %17, align 8, !tbaa !9
  %1173 = load i32, ptr %25, align 4, !tbaa !5
  %1174 = sub nsw i32 %1173, 2
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds float, ptr %1172, i64 %1175
  %1177 = load float, ptr %1176, align 4, !tbaa !16
  %1178 = load ptr, ptr %14, align 8, !tbaa !9
  %1179 = load i32, ptr %25, align 4, !tbaa !5
  %1180 = sub nsw i32 %1179, 2
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds float, ptr %1178, i64 %1181
  %1183 = load float, ptr %1182, align 4, !tbaa !16
  %1184 = fsub float %1177, %1183
  %1185 = fpext float %1184 to double
  %1186 = call double @llvm.fabs.f64(double %1185)
  %1187 = load double, ptr %18, align 8, !tbaa !11
  %1188 = call double @llvm.fmuladd.f64(double %1186, double %1187, double %1171)
  %1189 = fcmp ogt double %1164, %1188
  br i1 %1189, label %1190, label %1237

1190:                                             ; preds = %1158
  %1191 = load ptr, ptr %15, align 8, !tbaa !9
  %1192 = load i32, ptr %25, align 4, !tbaa !5
  %1193 = sub nsw i32 %1192, 1
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds float, ptr %1191, i64 %1194
  %1196 = load float, ptr %1195, align 4, !tbaa !16
  %1197 = load ptr, ptr %16, align 8, !tbaa !9
  %1198 = load i32, ptr %25, align 4, !tbaa !5
  %1199 = sub nsw i32 %1198, 2
  %1200 = sext i32 %1199 to i64
  %1201 = getelementptr inbounds float, ptr %1197, i64 %1200
  %1202 = load float, ptr %1201, align 4, !tbaa !16
  %1203 = fcmp olt float %1196, %1202
  br i1 %1203, label %1204, label %1237

1204:                                             ; preds = %1190
  %1205 = load ptr, ptr %16, align 8, !tbaa !9
  %1206 = load i32, ptr %25, align 4, !tbaa !5
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds float, ptr %1205, i64 %1207
  %1209 = load float, ptr %1208, align 4, !tbaa !16
  %1210 = load ptr, ptr %15, align 8, !tbaa !9
  %1211 = load i32, ptr %25, align 4, !tbaa !5
  %1212 = sub nsw i32 %1211, 1
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds float, ptr %1210, i64 %1213
  %1215 = load float, ptr %1214, align 4, !tbaa !16
  %1216 = fcmp ogt float %1209, %1215
  br i1 %1216, label %1217, label %1237

1217:                                             ; preds = %1204, %1113
  %1218 = load ptr, ptr %17, align 8, !tbaa !9
  %1219 = load i32, ptr %25, align 4, !tbaa !5
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds float, ptr %1218, i64 %1220
  %1222 = load float, ptr %1221, align 4, !tbaa !16
  %1223 = load ptr, ptr %14, align 8, !tbaa !9
  %1224 = load i32, ptr %25, align 4, !tbaa !5
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds float, ptr %1223, i64 %1225
  %1227 = load float, ptr %1226, align 4, !tbaa !16
  %1228 = fcmp oge float %1222, %1227
  %1229 = zext i1 %1228 to i64
  %1230 = select i1 %1228, i32 1, i32 -1
  %1231 = mul nsw i32 %1230, 100
  %1232 = load ptr, ptr %21, align 8, !tbaa !9
  %1233 = load i32, ptr %26, align 4, !tbaa !5
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr %26, align 4, !tbaa !5
  %1235 = sext i32 %1233 to i64
  %1236 = getelementptr inbounds i32, ptr %1232, i64 %1235
  store i32 %1231, ptr %1236, align 4, !tbaa !5
  br label %1243

1237:                                             ; preds = %1204, %1190, %1158, %1143, %1126, %1021, %854, %671
  %1238 = load ptr, ptr %21, align 8, !tbaa !9
  %1239 = load i32, ptr %26, align 4, !tbaa !5
  %1240 = add nsw i32 %1239, 1
  store i32 %1240, ptr %26, align 4, !tbaa !5
  %1241 = sext i32 %1239 to i64
  %1242 = getelementptr inbounds i32, ptr %1238, i64 %1241
  store i32 0, ptr %1242, align 4, !tbaa !5
  br label %1243

1243:                                             ; preds = %1237, %1217
  %1244 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1245 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1244, i32 0, i32 8
  %1246 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1245, i64 0, i64 0
  %1247 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1246, i32 0, i32 1
  %1248 = load i32, ptr %1247, align 4, !tbaa !15
  %1249 = icmp eq i32 %1248, 0
  br i1 %1249, label %1250, label %1266

1250:                                             ; preds = %1243
  %1251 = load ptr, ptr %17, align 8, !tbaa !9
  %1252 = load i32, ptr %25, align 4, !tbaa !5
  %1253 = sub nsw i32 %1252, 2
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds float, ptr %1251, i64 %1254
  %1256 = load float, ptr %1255, align 4, !tbaa !16
  %1257 = load ptr, ptr %14, align 8, !tbaa !9
  %1258 = load i32, ptr %25, align 4, !tbaa !5
  %1259 = sub nsw i32 %1258, 2
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds float, ptr %1257, i64 %1260
  %1262 = load float, ptr %1261, align 4, !tbaa !16
  %1263 = fsub float %1256, %1262
  %1264 = fpext float %1263 to double
  %1265 = call double @llvm.fabs.f64(double %1264)
  br label %1374

1266:                                             ; preds = %1243
  %1267 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1268 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1267, i32 0, i32 8
  %1269 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1268, i64 0, i64 0
  %1270 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1269, i32 0, i32 1
  %1271 = load i32, ptr %1270, align 4, !tbaa !15
  %1272 = icmp eq i32 %1271, 1
  br i1 %1272, label %1273, label %1287

1273:                                             ; preds = %1266
  %1274 = load ptr, ptr %15, align 8, !tbaa !9
  %1275 = load i32, ptr %25, align 4, !tbaa !5
  %1276 = sub nsw i32 %1275, 2
  %1277 = sext i32 %1276 to i64
  %1278 = getelementptr inbounds float, ptr %1274, i64 %1277
  %1279 = load float, ptr %1278, align 4, !tbaa !16
  %1280 = load ptr, ptr %16, align 8, !tbaa !9
  %1281 = load i32, ptr %25, align 4, !tbaa !5
  %1282 = sub nsw i32 %1281, 2
  %1283 = sext i32 %1282 to i64
  %1284 = getelementptr inbounds float, ptr %1280, i64 %1283
  %1285 = load float, ptr %1284, align 4, !tbaa !16
  %1286 = fsub float %1279, %1285
  br label %1371

1287:                                             ; preds = %1266
  %1288 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1289 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1288, i32 0, i32 8
  %1290 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1289, i64 0, i64 0
  %1291 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1290, i32 0, i32 1
  %1292 = load i32, ptr %1291, align 4, !tbaa !15
  %1293 = icmp eq i32 %1292, 2
  br i1 %1293, label %1294, label %1368

1294:                                             ; preds = %1287
  %1295 = load ptr, ptr %15, align 8, !tbaa !9
  %1296 = load i32, ptr %25, align 4, !tbaa !5
  %1297 = sub nsw i32 %1296, 2
  %1298 = sext i32 %1297 to i64
  %1299 = getelementptr inbounds float, ptr %1295, i64 %1298
  %1300 = load float, ptr %1299, align 4, !tbaa !16
  %1301 = load ptr, ptr %17, align 8, !tbaa !9
  %1302 = load i32, ptr %25, align 4, !tbaa !5
  %1303 = sub nsw i32 %1302, 2
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds float, ptr %1301, i64 %1304
  %1306 = load float, ptr %1305, align 4, !tbaa !16
  %1307 = load ptr, ptr %14, align 8, !tbaa !9
  %1308 = load i32, ptr %25, align 4, !tbaa !5
  %1309 = sub nsw i32 %1308, 2
  %1310 = sext i32 %1309 to i64
  %1311 = getelementptr inbounds float, ptr %1307, i64 %1310
  %1312 = load float, ptr %1311, align 4, !tbaa !16
  %1313 = fcmp oge float %1306, %1312
  br i1 %1313, label %1314, label %1321

1314:                                             ; preds = %1294
  %1315 = load ptr, ptr %17, align 8, !tbaa !9
  %1316 = load i32, ptr %25, align 4, !tbaa !5
  %1317 = sub nsw i32 %1316, 2
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds float, ptr %1315, i64 %1318
  %1320 = load float, ptr %1319, align 4, !tbaa !16
  br label %1328

1321:                                             ; preds = %1294
  %1322 = load ptr, ptr %14, align 8, !tbaa !9
  %1323 = load i32, ptr %25, align 4, !tbaa !5
  %1324 = sub nsw i32 %1323, 2
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds float, ptr %1322, i64 %1325
  %1327 = load float, ptr %1326, align 4, !tbaa !16
  br label %1328

1328:                                             ; preds = %1321, %1314
  %1329 = phi float [ %1320, %1314 ], [ %1327, %1321 ]
  %1330 = fsub float %1300, %1329
  %1331 = load ptr, ptr %17, align 8, !tbaa !9
  %1332 = load i32, ptr %25, align 4, !tbaa !5
  %1333 = sub nsw i32 %1332, 2
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds float, ptr %1331, i64 %1334
  %1336 = load float, ptr %1335, align 4, !tbaa !16
  %1337 = load ptr, ptr %14, align 8, !tbaa !9
  %1338 = load i32, ptr %25, align 4, !tbaa !5
  %1339 = sub nsw i32 %1338, 2
  %1340 = sext i32 %1339 to i64
  %1341 = getelementptr inbounds float, ptr %1337, i64 %1340
  %1342 = load float, ptr %1341, align 4, !tbaa !16
  %1343 = fcmp oge float %1336, %1342
  br i1 %1343, label %1344, label %1351

1344:                                             ; preds = %1328
  %1345 = load ptr, ptr %14, align 8, !tbaa !9
  %1346 = load i32, ptr %25, align 4, !tbaa !5
  %1347 = sub nsw i32 %1346, 2
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds float, ptr %1345, i64 %1348
  %1350 = load float, ptr %1349, align 4, !tbaa !16
  br label %1358

1351:                                             ; preds = %1328
  %1352 = load ptr, ptr %17, align 8, !tbaa !9
  %1353 = load i32, ptr %25, align 4, !tbaa !5
  %1354 = sub nsw i32 %1353, 2
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds float, ptr %1352, i64 %1355
  %1357 = load float, ptr %1356, align 4, !tbaa !16
  br label %1358

1358:                                             ; preds = %1351, %1344
  %1359 = phi float [ %1350, %1344 ], [ %1357, %1351 ]
  %1360 = load ptr, ptr %16, align 8, !tbaa !9
  %1361 = load i32, ptr %25, align 4, !tbaa !5
  %1362 = sub nsw i32 %1361, 2
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds float, ptr %1360, i64 %1363
  %1365 = load float, ptr %1364, align 4, !tbaa !16
  %1366 = fsub float %1359, %1365
  %1367 = fadd float %1330, %1366
  br label %1369

1368:                                             ; preds = %1287
  br label %1369

1369:                                             ; preds = %1368, %1358
  %1370 = phi float [ %1367, %1358 ], [ 0.000000e+00, %1368 ]
  br label %1371

1371:                                             ; preds = %1369, %1273
  %1372 = phi float [ %1286, %1273 ], [ %1370, %1369 ]
  %1373 = fpext float %1372 to double
  br label %1374

1374:                                             ; preds = %1371, %1250
  %1375 = phi double [ %1265, %1250 ], [ %1373, %1371 ]
  %1376 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1377 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1376, i32 0, i32 8
  %1378 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1377, i64 0, i64 0
  %1379 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1378, i32 0, i32 1
  %1380 = load i32, ptr %1379, align 4, !tbaa !15
  %1381 = icmp eq i32 %1380, 0
  br i1 %1381, label %1382, label %1396

1382:                                             ; preds = %1374
  %1383 = load ptr, ptr %17, align 8, !tbaa !9
  %1384 = load i32, ptr %28, align 4, !tbaa !5
  %1385 = sext i32 %1384 to i64
  %1386 = getelementptr inbounds float, ptr %1383, i64 %1385
  %1387 = load float, ptr %1386, align 4, !tbaa !16
  %1388 = load ptr, ptr %14, align 8, !tbaa !9
  %1389 = load i32, ptr %28, align 4, !tbaa !5
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds float, ptr %1388, i64 %1390
  %1392 = load float, ptr %1391, align 4, !tbaa !16
  %1393 = fsub float %1387, %1392
  %1394 = fpext float %1393 to double
  %1395 = call double @llvm.fabs.f64(double %1394)
  br label %1492

1396:                                             ; preds = %1374
  %1397 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1398 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1397, i32 0, i32 8
  %1399 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1398, i64 0, i64 0
  %1400 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1399, i32 0, i32 1
  %1401 = load i32, ptr %1400, align 4, !tbaa !15
  %1402 = icmp eq i32 %1401, 1
  br i1 %1402, label %1403, label %1415

1403:                                             ; preds = %1396
  %1404 = load ptr, ptr %15, align 8, !tbaa !9
  %1405 = load i32, ptr %28, align 4, !tbaa !5
  %1406 = sext i32 %1405 to i64
  %1407 = getelementptr inbounds float, ptr %1404, i64 %1406
  %1408 = load float, ptr %1407, align 4, !tbaa !16
  %1409 = load ptr, ptr %16, align 8, !tbaa !9
  %1410 = load i32, ptr %28, align 4, !tbaa !5
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds float, ptr %1409, i64 %1411
  %1413 = load float, ptr %1412, align 4, !tbaa !16
  %1414 = fsub float %1408, %1413
  br label %1489

1415:                                             ; preds = %1396
  %1416 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1417 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1416, i32 0, i32 8
  %1418 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1417, i64 0, i64 0
  %1419 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1418, i32 0, i32 1
  %1420 = load i32, ptr %1419, align 4, !tbaa !15
  %1421 = icmp eq i32 %1420, 2
  br i1 %1421, label %1422, label %1486

1422:                                             ; preds = %1415
  %1423 = load ptr, ptr %15, align 8, !tbaa !9
  %1424 = load i32, ptr %28, align 4, !tbaa !5
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds float, ptr %1423, i64 %1425
  %1427 = load float, ptr %1426, align 4, !tbaa !16
  %1428 = load ptr, ptr %17, align 8, !tbaa !9
  %1429 = load i32, ptr %28, align 4, !tbaa !5
  %1430 = sext i32 %1429 to i64
  %1431 = getelementptr inbounds float, ptr %1428, i64 %1430
  %1432 = load float, ptr %1431, align 4, !tbaa !16
  %1433 = load ptr, ptr %14, align 8, !tbaa !9
  %1434 = load i32, ptr %28, align 4, !tbaa !5
  %1435 = sext i32 %1434 to i64
  %1436 = getelementptr inbounds float, ptr %1433, i64 %1435
  %1437 = load float, ptr %1436, align 4, !tbaa !16
  %1438 = fcmp oge float %1432, %1437
  br i1 %1438, label %1439, label %1445

1439:                                             ; preds = %1422
  %1440 = load ptr, ptr %17, align 8, !tbaa !9
  %1441 = load i32, ptr %28, align 4, !tbaa !5
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds float, ptr %1440, i64 %1442
  %1444 = load float, ptr %1443, align 4, !tbaa !16
  br label %1451

1445:                                             ; preds = %1422
  %1446 = load ptr, ptr %14, align 8, !tbaa !9
  %1447 = load i32, ptr %28, align 4, !tbaa !5
  %1448 = sext i32 %1447 to i64
  %1449 = getelementptr inbounds float, ptr %1446, i64 %1448
  %1450 = load float, ptr %1449, align 4, !tbaa !16
  br label %1451

1451:                                             ; preds = %1445, %1439
  %1452 = phi float [ %1444, %1439 ], [ %1450, %1445 ]
  %1453 = fsub float %1427, %1452
  %1454 = load ptr, ptr %17, align 8, !tbaa !9
  %1455 = load i32, ptr %28, align 4, !tbaa !5
  %1456 = sext i32 %1455 to i64
  %1457 = getelementptr inbounds float, ptr %1454, i64 %1456
  %1458 = load float, ptr %1457, align 4, !tbaa !16
  %1459 = load ptr, ptr %14, align 8, !tbaa !9
  %1460 = load i32, ptr %28, align 4, !tbaa !5
  %1461 = sext i32 %1460 to i64
  %1462 = getelementptr inbounds float, ptr %1459, i64 %1461
  %1463 = load float, ptr %1462, align 4, !tbaa !16
  %1464 = fcmp oge float %1458, %1463
  br i1 %1464, label %1465, label %1471

1465:                                             ; preds = %1451
  %1466 = load ptr, ptr %14, align 8, !tbaa !9
  %1467 = load i32, ptr %28, align 4, !tbaa !5
  %1468 = sext i32 %1467 to i64
  %1469 = getelementptr inbounds float, ptr %1466, i64 %1468
  %1470 = load float, ptr %1469, align 4, !tbaa !16
  br label %1477

1471:                                             ; preds = %1451
  %1472 = load ptr, ptr %17, align 8, !tbaa !9
  %1473 = load i32, ptr %28, align 4, !tbaa !5
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds float, ptr %1472, i64 %1474
  %1476 = load float, ptr %1475, align 4, !tbaa !16
  br label %1477

1477:                                             ; preds = %1471, %1465
  %1478 = phi float [ %1470, %1465 ], [ %1476, %1471 ]
  %1479 = load ptr, ptr %16, align 8, !tbaa !9
  %1480 = load i32, ptr %28, align 4, !tbaa !5
  %1481 = sext i32 %1480 to i64
  %1482 = getelementptr inbounds float, ptr %1479, i64 %1481
  %1483 = load float, ptr %1482, align 4, !tbaa !16
  %1484 = fsub float %1478, %1483
  %1485 = fadd float %1453, %1484
  br label %1487

1486:                                             ; preds = %1415
  br label %1487

1487:                                             ; preds = %1486, %1477
  %1488 = phi float [ %1485, %1477 ], [ 0.000000e+00, %1486 ]
  br label %1489

1489:                                             ; preds = %1487, %1403
  %1490 = phi float [ %1414, %1403 ], [ %1488, %1487 ]
  %1491 = fpext float %1490 to double
  br label %1492

1492:                                             ; preds = %1489, %1382
  %1493 = phi double [ %1395, %1382 ], [ %1491, %1489 ]
  %1494 = fsub double %1375, %1493
  %1495 = load double, ptr %23, align 8, !tbaa !11
  %1496 = fadd double %1495, %1494
  store double %1496, ptr %23, align 8, !tbaa !11
  %1497 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1498 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1497, i32 0, i32 8
  %1499 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1498, i64 0, i64 3
  %1500 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1499, i32 0, i32 1
  %1501 = load i32, ptr %1500, align 4, !tbaa !15
  %1502 = icmp eq i32 %1501, 0
  br i1 %1502, label %1503, label %1519

1503:                                             ; preds = %1492
  %1504 = load ptr, ptr %17, align 8, !tbaa !9
  %1505 = load i32, ptr %25, align 4, !tbaa !5
  %1506 = sub nsw i32 %1505, 1
  %1507 = sext i32 %1506 to i64
  %1508 = getelementptr inbounds float, ptr %1504, i64 %1507
  %1509 = load float, ptr %1508, align 4, !tbaa !16
  %1510 = load ptr, ptr %14, align 8, !tbaa !9
  %1511 = load i32, ptr %25, align 4, !tbaa !5
  %1512 = sub nsw i32 %1511, 1
  %1513 = sext i32 %1512 to i64
  %1514 = getelementptr inbounds float, ptr %1510, i64 %1513
  %1515 = load float, ptr %1514, align 4, !tbaa !16
  %1516 = fsub float %1509, %1515
  %1517 = fpext float %1516 to double
  %1518 = call double @llvm.fabs.f64(double %1517)
  br label %1627

1519:                                             ; preds = %1492
  %1520 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1521 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1520, i32 0, i32 8
  %1522 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1521, i64 0, i64 3
  %1523 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1522, i32 0, i32 1
  %1524 = load i32, ptr %1523, align 4, !tbaa !15
  %1525 = icmp eq i32 %1524, 1
  br i1 %1525, label %1526, label %1540

1526:                                             ; preds = %1519
  %1527 = load ptr, ptr %15, align 8, !tbaa !9
  %1528 = load i32, ptr %25, align 4, !tbaa !5
  %1529 = sub nsw i32 %1528, 1
  %1530 = sext i32 %1529 to i64
  %1531 = getelementptr inbounds float, ptr %1527, i64 %1530
  %1532 = load float, ptr %1531, align 4, !tbaa !16
  %1533 = load ptr, ptr %16, align 8, !tbaa !9
  %1534 = load i32, ptr %25, align 4, !tbaa !5
  %1535 = sub nsw i32 %1534, 1
  %1536 = sext i32 %1535 to i64
  %1537 = getelementptr inbounds float, ptr %1533, i64 %1536
  %1538 = load float, ptr %1537, align 4, !tbaa !16
  %1539 = fsub float %1532, %1538
  br label %1624

1540:                                             ; preds = %1519
  %1541 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1542 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1541, i32 0, i32 8
  %1543 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1542, i64 0, i64 3
  %1544 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1543, i32 0, i32 1
  %1545 = load i32, ptr %1544, align 4, !tbaa !15
  %1546 = icmp eq i32 %1545, 2
  br i1 %1546, label %1547, label %1621

1547:                                             ; preds = %1540
  %1548 = load ptr, ptr %15, align 8, !tbaa !9
  %1549 = load i32, ptr %25, align 4, !tbaa !5
  %1550 = sub nsw i32 %1549, 1
  %1551 = sext i32 %1550 to i64
  %1552 = getelementptr inbounds float, ptr %1548, i64 %1551
  %1553 = load float, ptr %1552, align 4, !tbaa !16
  %1554 = load ptr, ptr %17, align 8, !tbaa !9
  %1555 = load i32, ptr %25, align 4, !tbaa !5
  %1556 = sub nsw i32 %1555, 1
  %1557 = sext i32 %1556 to i64
  %1558 = getelementptr inbounds float, ptr %1554, i64 %1557
  %1559 = load float, ptr %1558, align 4, !tbaa !16
  %1560 = load ptr, ptr %14, align 8, !tbaa !9
  %1561 = load i32, ptr %25, align 4, !tbaa !5
  %1562 = sub nsw i32 %1561, 1
  %1563 = sext i32 %1562 to i64
  %1564 = getelementptr inbounds float, ptr %1560, i64 %1563
  %1565 = load float, ptr %1564, align 4, !tbaa !16
  %1566 = fcmp oge float %1559, %1565
  br i1 %1566, label %1567, label %1574

1567:                                             ; preds = %1547
  %1568 = load ptr, ptr %17, align 8, !tbaa !9
  %1569 = load i32, ptr %25, align 4, !tbaa !5
  %1570 = sub nsw i32 %1569, 1
  %1571 = sext i32 %1570 to i64
  %1572 = getelementptr inbounds float, ptr %1568, i64 %1571
  %1573 = load float, ptr %1572, align 4, !tbaa !16
  br label %1581

1574:                                             ; preds = %1547
  %1575 = load ptr, ptr %14, align 8, !tbaa !9
  %1576 = load i32, ptr %25, align 4, !tbaa !5
  %1577 = sub nsw i32 %1576, 1
  %1578 = sext i32 %1577 to i64
  %1579 = getelementptr inbounds float, ptr %1575, i64 %1578
  %1580 = load float, ptr %1579, align 4, !tbaa !16
  br label %1581

1581:                                             ; preds = %1574, %1567
  %1582 = phi float [ %1573, %1567 ], [ %1580, %1574 ]
  %1583 = fsub float %1553, %1582
  %1584 = load ptr, ptr %17, align 8, !tbaa !9
  %1585 = load i32, ptr %25, align 4, !tbaa !5
  %1586 = sub nsw i32 %1585, 1
  %1587 = sext i32 %1586 to i64
  %1588 = getelementptr inbounds float, ptr %1584, i64 %1587
  %1589 = load float, ptr %1588, align 4, !tbaa !16
  %1590 = load ptr, ptr %14, align 8, !tbaa !9
  %1591 = load i32, ptr %25, align 4, !tbaa !5
  %1592 = sub nsw i32 %1591, 1
  %1593 = sext i32 %1592 to i64
  %1594 = getelementptr inbounds float, ptr %1590, i64 %1593
  %1595 = load float, ptr %1594, align 4, !tbaa !16
  %1596 = fcmp oge float %1589, %1595
  br i1 %1596, label %1597, label %1604

1597:                                             ; preds = %1581
  %1598 = load ptr, ptr %14, align 8, !tbaa !9
  %1599 = load i32, ptr %25, align 4, !tbaa !5
  %1600 = sub nsw i32 %1599, 1
  %1601 = sext i32 %1600 to i64
  %1602 = getelementptr inbounds float, ptr %1598, i64 %1601
  %1603 = load float, ptr %1602, align 4, !tbaa !16
  br label %1611

1604:                                             ; preds = %1581
  %1605 = load ptr, ptr %17, align 8, !tbaa !9
  %1606 = load i32, ptr %25, align 4, !tbaa !5
  %1607 = sub nsw i32 %1606, 1
  %1608 = sext i32 %1607 to i64
  %1609 = getelementptr inbounds float, ptr %1605, i64 %1608
  %1610 = load float, ptr %1609, align 4, !tbaa !16
  br label %1611

1611:                                             ; preds = %1604, %1597
  %1612 = phi float [ %1603, %1597 ], [ %1610, %1604 ]
  %1613 = load ptr, ptr %16, align 8, !tbaa !9
  %1614 = load i32, ptr %25, align 4, !tbaa !5
  %1615 = sub nsw i32 %1614, 1
  %1616 = sext i32 %1615 to i64
  %1617 = getelementptr inbounds float, ptr %1613, i64 %1616
  %1618 = load float, ptr %1617, align 4, !tbaa !16
  %1619 = fsub float %1612, %1618
  %1620 = fadd float %1583, %1619
  br label %1622

1621:                                             ; preds = %1540
  br label %1622

1622:                                             ; preds = %1621, %1611
  %1623 = phi float [ %1620, %1611 ], [ 0.000000e+00, %1621 ]
  br label %1624

1624:                                             ; preds = %1622, %1526
  %1625 = phi float [ %1539, %1526 ], [ %1623, %1622 ]
  %1626 = fpext float %1625 to double
  br label %1627

1627:                                             ; preds = %1624, %1503
  %1628 = phi double [ %1518, %1503 ], [ %1626, %1624 ]
  %1629 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1630 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1629, i32 0, i32 8
  %1631 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1630, i64 0, i64 3
  %1632 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1631, i32 0, i32 1
  %1633 = load i32, ptr %1632, align 4, !tbaa !15
  %1634 = icmp eq i32 %1633, 0
  br i1 %1634, label %1635, label %1649

1635:                                             ; preds = %1627
  %1636 = load ptr, ptr %17, align 8, !tbaa !9
  %1637 = load i32, ptr %27, align 4, !tbaa !5
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds float, ptr %1636, i64 %1638
  %1640 = load float, ptr %1639, align 4, !tbaa !16
  %1641 = load ptr, ptr %14, align 8, !tbaa !9
  %1642 = load i32, ptr %27, align 4, !tbaa !5
  %1643 = sext i32 %1642 to i64
  %1644 = getelementptr inbounds float, ptr %1641, i64 %1643
  %1645 = load float, ptr %1644, align 4, !tbaa !16
  %1646 = fsub float %1640, %1645
  %1647 = fpext float %1646 to double
  %1648 = call double @llvm.fabs.f64(double %1647)
  br label %1745

1649:                                             ; preds = %1627
  %1650 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1651 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1650, i32 0, i32 8
  %1652 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1651, i64 0, i64 3
  %1653 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1652, i32 0, i32 1
  %1654 = load i32, ptr %1653, align 4, !tbaa !15
  %1655 = icmp eq i32 %1654, 1
  br i1 %1655, label %1656, label %1668

1656:                                             ; preds = %1649
  %1657 = load ptr, ptr %15, align 8, !tbaa !9
  %1658 = load i32, ptr %27, align 4, !tbaa !5
  %1659 = sext i32 %1658 to i64
  %1660 = getelementptr inbounds float, ptr %1657, i64 %1659
  %1661 = load float, ptr %1660, align 4, !tbaa !16
  %1662 = load ptr, ptr %16, align 8, !tbaa !9
  %1663 = load i32, ptr %27, align 4, !tbaa !5
  %1664 = sext i32 %1663 to i64
  %1665 = getelementptr inbounds float, ptr %1662, i64 %1664
  %1666 = load float, ptr %1665, align 4, !tbaa !16
  %1667 = fsub float %1661, %1666
  br label %1742

1668:                                             ; preds = %1649
  %1669 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1670 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1669, i32 0, i32 8
  %1671 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1670, i64 0, i64 3
  %1672 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1671, i32 0, i32 1
  %1673 = load i32, ptr %1672, align 4, !tbaa !15
  %1674 = icmp eq i32 %1673, 2
  br i1 %1674, label %1675, label %1739

1675:                                             ; preds = %1668
  %1676 = load ptr, ptr %15, align 8, !tbaa !9
  %1677 = load i32, ptr %27, align 4, !tbaa !5
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds float, ptr %1676, i64 %1678
  %1680 = load float, ptr %1679, align 4, !tbaa !16
  %1681 = load ptr, ptr %17, align 8, !tbaa !9
  %1682 = load i32, ptr %27, align 4, !tbaa !5
  %1683 = sext i32 %1682 to i64
  %1684 = getelementptr inbounds float, ptr %1681, i64 %1683
  %1685 = load float, ptr %1684, align 4, !tbaa !16
  %1686 = load ptr, ptr %14, align 8, !tbaa !9
  %1687 = load i32, ptr %27, align 4, !tbaa !5
  %1688 = sext i32 %1687 to i64
  %1689 = getelementptr inbounds float, ptr %1686, i64 %1688
  %1690 = load float, ptr %1689, align 4, !tbaa !16
  %1691 = fcmp oge float %1685, %1690
  br i1 %1691, label %1692, label %1698

1692:                                             ; preds = %1675
  %1693 = load ptr, ptr %17, align 8, !tbaa !9
  %1694 = load i32, ptr %27, align 4, !tbaa !5
  %1695 = sext i32 %1694 to i64
  %1696 = getelementptr inbounds float, ptr %1693, i64 %1695
  %1697 = load float, ptr %1696, align 4, !tbaa !16
  br label %1704

1698:                                             ; preds = %1675
  %1699 = load ptr, ptr %14, align 8, !tbaa !9
  %1700 = load i32, ptr %27, align 4, !tbaa !5
  %1701 = sext i32 %1700 to i64
  %1702 = getelementptr inbounds float, ptr %1699, i64 %1701
  %1703 = load float, ptr %1702, align 4, !tbaa !16
  br label %1704

1704:                                             ; preds = %1698, %1692
  %1705 = phi float [ %1697, %1692 ], [ %1703, %1698 ]
  %1706 = fsub float %1680, %1705
  %1707 = load ptr, ptr %17, align 8, !tbaa !9
  %1708 = load i32, ptr %27, align 4, !tbaa !5
  %1709 = sext i32 %1708 to i64
  %1710 = getelementptr inbounds float, ptr %1707, i64 %1709
  %1711 = load float, ptr %1710, align 4, !tbaa !16
  %1712 = load ptr, ptr %14, align 8, !tbaa !9
  %1713 = load i32, ptr %27, align 4, !tbaa !5
  %1714 = sext i32 %1713 to i64
  %1715 = getelementptr inbounds float, ptr %1712, i64 %1714
  %1716 = load float, ptr %1715, align 4, !tbaa !16
  %1717 = fcmp oge float %1711, %1716
  br i1 %1717, label %1718, label %1724

1718:                                             ; preds = %1704
  %1719 = load ptr, ptr %14, align 8, !tbaa !9
  %1720 = load i32, ptr %27, align 4, !tbaa !5
  %1721 = sext i32 %1720 to i64
  %1722 = getelementptr inbounds float, ptr %1719, i64 %1721
  %1723 = load float, ptr %1722, align 4, !tbaa !16
  br label %1730

1724:                                             ; preds = %1704
  %1725 = load ptr, ptr %17, align 8, !tbaa !9
  %1726 = load i32, ptr %27, align 4, !tbaa !5
  %1727 = sext i32 %1726 to i64
  %1728 = getelementptr inbounds float, ptr %1725, i64 %1727
  %1729 = load float, ptr %1728, align 4, !tbaa !16
  br label %1730

1730:                                             ; preds = %1724, %1718
  %1731 = phi float [ %1723, %1718 ], [ %1729, %1724 ]
  %1732 = load ptr, ptr %16, align 8, !tbaa !9
  %1733 = load i32, ptr %27, align 4, !tbaa !5
  %1734 = sext i32 %1733 to i64
  %1735 = getelementptr inbounds float, ptr %1732, i64 %1734
  %1736 = load float, ptr %1735, align 4, !tbaa !16
  %1737 = fsub float %1731, %1736
  %1738 = fadd float %1706, %1737
  br label %1740

1739:                                             ; preds = %1668
  br label %1740

1740:                                             ; preds = %1739, %1730
  %1741 = phi float [ %1738, %1730 ], [ 0.000000e+00, %1739 ]
  br label %1742

1742:                                             ; preds = %1740, %1656
  %1743 = phi float [ %1667, %1656 ], [ %1741, %1740 ]
  %1744 = fpext float %1743 to double
  br label %1745

1745:                                             ; preds = %1742, %1635
  %1746 = phi double [ %1648, %1635 ], [ %1744, %1742 ]
  %1747 = fsub double %1628, %1746
  %1748 = load double, ptr %22, align 8, !tbaa !11
  %1749 = fadd double %1748, %1747
  store double %1749, ptr %22, align 8, !tbaa !11
  %1750 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1751 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1750, i32 0, i32 8
  %1752 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1751, i64 0, i64 2
  %1753 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1752, i32 0, i32 1
  %1754 = load i32, ptr %1753, align 4, !tbaa !15
  %1755 = icmp eq i32 %1754, 0
  br i1 %1755, label %1756, label %1770

1756:                                             ; preds = %1745
  %1757 = load ptr, ptr %17, align 8, !tbaa !9
  %1758 = load i32, ptr %25, align 4, !tbaa !5
  %1759 = sext i32 %1758 to i64
  %1760 = getelementptr inbounds float, ptr %1757, i64 %1759
  %1761 = load float, ptr %1760, align 4, !tbaa !16
  %1762 = load ptr, ptr %14, align 8, !tbaa !9
  %1763 = load i32, ptr %25, align 4, !tbaa !5
  %1764 = sext i32 %1763 to i64
  %1765 = getelementptr inbounds float, ptr %1762, i64 %1764
  %1766 = load float, ptr %1765, align 4, !tbaa !16
  %1767 = fsub float %1761, %1766
  %1768 = fpext float %1767 to double
  %1769 = call double @llvm.fabs.f64(double %1768)
  br label %1866

1770:                                             ; preds = %1745
  %1771 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1772 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1771, i32 0, i32 8
  %1773 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1772, i64 0, i64 2
  %1774 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1773, i32 0, i32 1
  %1775 = load i32, ptr %1774, align 4, !tbaa !15
  %1776 = icmp eq i32 %1775, 1
  br i1 %1776, label %1777, label %1789

1777:                                             ; preds = %1770
  %1778 = load ptr, ptr %15, align 8, !tbaa !9
  %1779 = load i32, ptr %25, align 4, !tbaa !5
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds float, ptr %1778, i64 %1780
  %1782 = load float, ptr %1781, align 4, !tbaa !16
  %1783 = load ptr, ptr %16, align 8, !tbaa !9
  %1784 = load i32, ptr %25, align 4, !tbaa !5
  %1785 = sext i32 %1784 to i64
  %1786 = getelementptr inbounds float, ptr %1783, i64 %1785
  %1787 = load float, ptr %1786, align 4, !tbaa !16
  %1788 = fsub float %1782, %1787
  br label %1863

1789:                                             ; preds = %1770
  %1790 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1791 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1790, i32 0, i32 8
  %1792 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1791, i64 0, i64 2
  %1793 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1792, i32 0, i32 1
  %1794 = load i32, ptr %1793, align 4, !tbaa !15
  %1795 = icmp eq i32 %1794, 2
  br i1 %1795, label %1796, label %1860

1796:                                             ; preds = %1789
  %1797 = load ptr, ptr %15, align 8, !tbaa !9
  %1798 = load i32, ptr %25, align 4, !tbaa !5
  %1799 = sext i32 %1798 to i64
  %1800 = getelementptr inbounds float, ptr %1797, i64 %1799
  %1801 = load float, ptr %1800, align 4, !tbaa !16
  %1802 = load ptr, ptr %17, align 8, !tbaa !9
  %1803 = load i32, ptr %25, align 4, !tbaa !5
  %1804 = sext i32 %1803 to i64
  %1805 = getelementptr inbounds float, ptr %1802, i64 %1804
  %1806 = load float, ptr %1805, align 4, !tbaa !16
  %1807 = load ptr, ptr %14, align 8, !tbaa !9
  %1808 = load i32, ptr %25, align 4, !tbaa !5
  %1809 = sext i32 %1808 to i64
  %1810 = getelementptr inbounds float, ptr %1807, i64 %1809
  %1811 = load float, ptr %1810, align 4, !tbaa !16
  %1812 = fcmp oge float %1806, %1811
  br i1 %1812, label %1813, label %1819

1813:                                             ; preds = %1796
  %1814 = load ptr, ptr %17, align 8, !tbaa !9
  %1815 = load i32, ptr %25, align 4, !tbaa !5
  %1816 = sext i32 %1815 to i64
  %1817 = getelementptr inbounds float, ptr %1814, i64 %1816
  %1818 = load float, ptr %1817, align 4, !tbaa !16
  br label %1825

1819:                                             ; preds = %1796
  %1820 = load ptr, ptr %14, align 8, !tbaa !9
  %1821 = load i32, ptr %25, align 4, !tbaa !5
  %1822 = sext i32 %1821 to i64
  %1823 = getelementptr inbounds float, ptr %1820, i64 %1822
  %1824 = load float, ptr %1823, align 4, !tbaa !16
  br label %1825

1825:                                             ; preds = %1819, %1813
  %1826 = phi float [ %1818, %1813 ], [ %1824, %1819 ]
  %1827 = fsub float %1801, %1826
  %1828 = load ptr, ptr %17, align 8, !tbaa !9
  %1829 = load i32, ptr %25, align 4, !tbaa !5
  %1830 = sext i32 %1829 to i64
  %1831 = getelementptr inbounds float, ptr %1828, i64 %1830
  %1832 = load float, ptr %1831, align 4, !tbaa !16
  %1833 = load ptr, ptr %14, align 8, !tbaa !9
  %1834 = load i32, ptr %25, align 4, !tbaa !5
  %1835 = sext i32 %1834 to i64
  %1836 = getelementptr inbounds float, ptr %1833, i64 %1835
  %1837 = load float, ptr %1836, align 4, !tbaa !16
  %1838 = fcmp oge float %1832, %1837
  br i1 %1838, label %1839, label %1845

1839:                                             ; preds = %1825
  %1840 = load ptr, ptr %14, align 8, !tbaa !9
  %1841 = load i32, ptr %25, align 4, !tbaa !5
  %1842 = sext i32 %1841 to i64
  %1843 = getelementptr inbounds float, ptr %1840, i64 %1842
  %1844 = load float, ptr %1843, align 4, !tbaa !16
  br label %1851

1845:                                             ; preds = %1825
  %1846 = load ptr, ptr %17, align 8, !tbaa !9
  %1847 = load i32, ptr %25, align 4, !tbaa !5
  %1848 = sext i32 %1847 to i64
  %1849 = getelementptr inbounds float, ptr %1846, i64 %1848
  %1850 = load float, ptr %1849, align 4, !tbaa !16
  br label %1851

1851:                                             ; preds = %1845, %1839
  %1852 = phi float [ %1844, %1839 ], [ %1850, %1845 ]
  %1853 = load ptr, ptr %16, align 8, !tbaa !9
  %1854 = load i32, ptr %25, align 4, !tbaa !5
  %1855 = sext i32 %1854 to i64
  %1856 = getelementptr inbounds float, ptr %1853, i64 %1855
  %1857 = load float, ptr %1856, align 4, !tbaa !16
  %1858 = fsub float %1852, %1857
  %1859 = fadd float %1827, %1858
  br label %1861

1860:                                             ; preds = %1789
  br label %1861

1861:                                             ; preds = %1860, %1851
  %1862 = phi float [ %1859, %1851 ], [ 0.000000e+00, %1860 ]
  br label %1863

1863:                                             ; preds = %1861, %1777
  %1864 = phi float [ %1788, %1777 ], [ %1862, %1861 ]
  %1865 = fpext float %1864 to double
  br label %1866

1866:                                             ; preds = %1863, %1756
  %1867 = phi double [ %1769, %1756 ], [ %1865, %1863 ]
  %1868 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1869 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1868, i32 0, i32 8
  %1870 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1869, i64 0, i64 2
  %1871 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1870, i32 0, i32 1
  %1872 = load i32, ptr %1871, align 4, !tbaa !15
  %1873 = icmp eq i32 %1872, 0
  br i1 %1873, label %1874, label %1888

1874:                                             ; preds = %1866
  %1875 = load ptr, ptr %17, align 8, !tbaa !9
  %1876 = load i32, ptr %29, align 4, !tbaa !5
  %1877 = sext i32 %1876 to i64
  %1878 = getelementptr inbounds float, ptr %1875, i64 %1877
  %1879 = load float, ptr %1878, align 4, !tbaa !16
  %1880 = load ptr, ptr %14, align 8, !tbaa !9
  %1881 = load i32, ptr %29, align 4, !tbaa !5
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds float, ptr %1880, i64 %1882
  %1884 = load float, ptr %1883, align 4, !tbaa !16
  %1885 = fsub float %1879, %1884
  %1886 = fpext float %1885 to double
  %1887 = call double @llvm.fabs.f64(double %1886)
  br label %1984

1888:                                             ; preds = %1866
  %1889 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1890 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1889, i32 0, i32 8
  %1891 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1890, i64 0, i64 2
  %1892 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1891, i32 0, i32 1
  %1893 = load i32, ptr %1892, align 4, !tbaa !15
  %1894 = icmp eq i32 %1893, 1
  br i1 %1894, label %1895, label %1907

1895:                                             ; preds = %1888
  %1896 = load ptr, ptr %15, align 8, !tbaa !9
  %1897 = load i32, ptr %29, align 4, !tbaa !5
  %1898 = sext i32 %1897 to i64
  %1899 = getelementptr inbounds float, ptr %1896, i64 %1898
  %1900 = load float, ptr %1899, align 4, !tbaa !16
  %1901 = load ptr, ptr %16, align 8, !tbaa !9
  %1902 = load i32, ptr %29, align 4, !tbaa !5
  %1903 = sext i32 %1902 to i64
  %1904 = getelementptr inbounds float, ptr %1901, i64 %1903
  %1905 = load float, ptr %1904, align 4, !tbaa !16
  %1906 = fsub float %1900, %1905
  br label %1981

1907:                                             ; preds = %1888
  %1908 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1909 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1908, i32 0, i32 8
  %1910 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1909, i64 0, i64 2
  %1911 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1910, i32 0, i32 1
  %1912 = load i32, ptr %1911, align 4, !tbaa !15
  %1913 = icmp eq i32 %1912, 2
  br i1 %1913, label %1914, label %1978

1914:                                             ; preds = %1907
  %1915 = load ptr, ptr %15, align 8, !tbaa !9
  %1916 = load i32, ptr %29, align 4, !tbaa !5
  %1917 = sext i32 %1916 to i64
  %1918 = getelementptr inbounds float, ptr %1915, i64 %1917
  %1919 = load float, ptr %1918, align 4, !tbaa !16
  %1920 = load ptr, ptr %17, align 8, !tbaa !9
  %1921 = load i32, ptr %29, align 4, !tbaa !5
  %1922 = sext i32 %1921 to i64
  %1923 = getelementptr inbounds float, ptr %1920, i64 %1922
  %1924 = load float, ptr %1923, align 4, !tbaa !16
  %1925 = load ptr, ptr %14, align 8, !tbaa !9
  %1926 = load i32, ptr %29, align 4, !tbaa !5
  %1927 = sext i32 %1926 to i64
  %1928 = getelementptr inbounds float, ptr %1925, i64 %1927
  %1929 = load float, ptr %1928, align 4, !tbaa !16
  %1930 = fcmp oge float %1924, %1929
  br i1 %1930, label %1931, label %1937

1931:                                             ; preds = %1914
  %1932 = load ptr, ptr %17, align 8, !tbaa !9
  %1933 = load i32, ptr %29, align 4, !tbaa !5
  %1934 = sext i32 %1933 to i64
  %1935 = getelementptr inbounds float, ptr %1932, i64 %1934
  %1936 = load float, ptr %1935, align 4, !tbaa !16
  br label %1943

1937:                                             ; preds = %1914
  %1938 = load ptr, ptr %14, align 8, !tbaa !9
  %1939 = load i32, ptr %29, align 4, !tbaa !5
  %1940 = sext i32 %1939 to i64
  %1941 = getelementptr inbounds float, ptr %1938, i64 %1940
  %1942 = load float, ptr %1941, align 4, !tbaa !16
  br label %1943

1943:                                             ; preds = %1937, %1931
  %1944 = phi float [ %1936, %1931 ], [ %1942, %1937 ]
  %1945 = fsub float %1919, %1944
  %1946 = load ptr, ptr %17, align 8, !tbaa !9
  %1947 = load i32, ptr %29, align 4, !tbaa !5
  %1948 = sext i32 %1947 to i64
  %1949 = getelementptr inbounds float, ptr %1946, i64 %1948
  %1950 = load float, ptr %1949, align 4, !tbaa !16
  %1951 = load ptr, ptr %14, align 8, !tbaa !9
  %1952 = load i32, ptr %29, align 4, !tbaa !5
  %1953 = sext i32 %1952 to i64
  %1954 = getelementptr inbounds float, ptr %1951, i64 %1953
  %1955 = load float, ptr %1954, align 4, !tbaa !16
  %1956 = fcmp oge float %1950, %1955
  br i1 %1956, label %1957, label %1963

1957:                                             ; preds = %1943
  %1958 = load ptr, ptr %14, align 8, !tbaa !9
  %1959 = load i32, ptr %29, align 4, !tbaa !5
  %1960 = sext i32 %1959 to i64
  %1961 = getelementptr inbounds float, ptr %1958, i64 %1960
  %1962 = load float, ptr %1961, align 4, !tbaa !16
  br label %1969

1963:                                             ; preds = %1943
  %1964 = load ptr, ptr %17, align 8, !tbaa !9
  %1965 = load i32, ptr %29, align 4, !tbaa !5
  %1966 = sext i32 %1965 to i64
  %1967 = getelementptr inbounds float, ptr %1964, i64 %1966
  %1968 = load float, ptr %1967, align 4, !tbaa !16
  br label %1969

1969:                                             ; preds = %1963, %1957
  %1970 = phi float [ %1962, %1957 ], [ %1968, %1963 ]
  %1971 = load ptr, ptr %16, align 8, !tbaa !9
  %1972 = load i32, ptr %29, align 4, !tbaa !5
  %1973 = sext i32 %1972 to i64
  %1974 = getelementptr inbounds float, ptr %1971, i64 %1973
  %1975 = load float, ptr %1974, align 4, !tbaa !16
  %1976 = fsub float %1970, %1975
  %1977 = fadd float %1945, %1976
  br label %1979

1978:                                             ; preds = %1907
  br label %1979

1979:                                             ; preds = %1978, %1969
  %1980 = phi float [ %1977, %1969 ], [ 0.000000e+00, %1978 ]
  br label %1981

1981:                                             ; preds = %1979, %1895
  %1982 = phi float [ %1906, %1895 ], [ %1980, %1979 ]
  %1983 = fpext float %1982 to double
  br label %1984

1984:                                             ; preds = %1981, %1874
  %1985 = phi double [ %1887, %1874 ], [ %1983, %1981 ]
  %1986 = fsub double %1867, %1985
  %1987 = load double, ptr %24, align 8, !tbaa !11
  %1988 = fadd double %1987, %1986
  store double %1988, ptr %24, align 8, !tbaa !11
  %1989 = load i32, ptr %25, align 4, !tbaa !5
  %1990 = add nsw i32 %1989, 1
  store i32 %1990, ptr %25, align 4, !tbaa !5
  %1991 = load i32, ptr %28, align 4, !tbaa !5
  %1992 = add nsw i32 %1991, 1
  store i32 %1992, ptr %28, align 4, !tbaa !5
  %1993 = load i32, ptr %27, align 4, !tbaa !5
  %1994 = add nsw i32 %1993, 1
  store i32 %1994, ptr %27, align 4, !tbaa !5
  %1995 = load i32, ptr %29, align 4, !tbaa !5
  %1996 = add nsw i32 %1995, 1
  store i32 %1996, ptr %29, align 4, !tbaa !5
  br label %1997

1997:                                             ; preds = %1984
  %1998 = load i32, ptr %25, align 4, !tbaa !5
  %1999 = load i32, ptr %13, align 4, !tbaa !5
  %2000 = icmp sle i32 %1998, %1999
  br i1 %2000, label %501, label %2001, !llvm.loop !23

2001:                                             ; preds = %1997
  %2002 = load i32, ptr %26, align 4, !tbaa !5
  %2003 = load ptr, ptr %20, align 8, !tbaa !9
  store i32 %2002, ptr %2003, align 4, !tbaa !5
  %2004 = load i32, ptr %12, align 4, !tbaa !5
  %2005 = load ptr, ptr %19, align 8, !tbaa !9
  store i32 %2004, ptr %2005, align 4, !tbaa !5
  store i32 0, ptr %11, align 4
  store i32 1, ptr %31, align 4
  br label %2006

2006:                                             ; preds = %2001, %84, %71, %66, %55, %42, %34
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #3
  %2007 = load i32, ptr %11, align 4
  ret i32 %2007
}

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/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, !6, i64 8}
!14 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8, !12, i64 16}
!15 = !{!14, !6, i64 4}
!16 = !{!17, !17, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = distinct !{!21, !19}
!22 = !{!14, !12, i64 16}
!23 = distinct !{!23, !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"

@TA_Globals = external local_unnamed_addr global ptr, align 8

; Function Attrs: nounwind uwtable
declare dso_local i32 @TA_CDLABANDONEDBABY_Lookback(double noundef) local_unnamed_addr #0

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

; Function Attrs: nounwind uwtable
define dso_local range(i32 0, 14) i32 @TA_S_CDLABANDONEDBABY(i32 noundef %0, i32 noundef %1, ptr noundef readonly %2, ptr noundef readonly %3, ptr noundef readonly %4, ptr noundef readonly %5, double noundef %6, ptr nocapture noundef writeonly %7, ptr nocapture noundef writeonly %8, ptr noundef writeonly %9) local_unnamed_addr #0 {
  %11 = icmp slt i32 %0, 0
  br i1 %11, label %508, label %12

12:                                               ; preds = %10
  %13 = icmp slt i32 %1, %0
  br i1 %13, label %508, label %14

14:                                               ; preds = %12
  %15 = insertelement <4 x ptr> poison, ptr %2, i64 0
  %16 = insertelement <4 x ptr> %15, ptr %3, i64 1
  %17 = insertelement <4 x ptr> %16, ptr %4, i64 2
  %18 = insertelement <4 x ptr> %17, ptr %5, i64 3
  %19 = icmp eq <4 x ptr> %18, zeroinitializer
  %20 = bitcast <4 x i1> %19 to i4
  %21 = icmp eq i4 %20, 0
  br i1 %21, label %22, label %508

22:                                               ; preds = %14
  %23 = fcmp oeq double %6, -4.000000e+37
  br i1 %23, label %27, label %24

24:                                               ; preds = %22
  %25 = fcmp olt double %6, 0.000000e+00
  %26 = fcmp ogt double %6, 3.000000e+37
  %or.cond7 = or i1 %25, %26
  br i1 %or.cond7, label %508, label %27

27:                                               ; preds = %22, %24
  %.0481 = phi double [ %6, %24 ], [ 3.000000e-01, %22 ]
  %.not = icmp eq ptr %9, null
  br i1 %.not, label %508, label %28

28:                                               ; preds = %27
  %29 = tail call i32 @TA_CDLABANDONEDBABY_Lookback(double noundef %.0481)
  %spec.select = tail call i32 @llvm.smax.i32(i32 %29, i32 %0)
  %30 = icmp ugt i32 %spec.select, %1
  br i1 %30, label %31, label %32

31:                                               ; preds = %28
  store i32 0, ptr %7, align 4, !tbaa !5
  store i32 0, ptr %8, align 4, !tbaa !5
  br label %508

32:                                               ; preds = %28
  %33 = add nsw i32 %spec.select, -2
  %34 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %35 = getelementptr inbounds i8, ptr %34, i64 216
  %36 = load i32, ptr %35, align 8, !tbaa !11
  %37 = sub i32 %33, %36
  %38 = add nsw i32 %spec.select, -1
  %39 = getelementptr inbounds i8, ptr %34, i64 288
  %40 = load i32, ptr %39, align 8, !tbaa !11
  %41 = sub i32 %38, %40
  %42 = getelementptr inbounds i8, ptr %34, i64 264
  %43 = load i32, ptr %42, align 8, !tbaa !11
  %44 = sub i32 %spec.select, %43
  %45 = icmp sgt i32 %36, 0
  br i1 %45, label %.lr.ph, label %.preheader603

.lr.ph:                                           ; preds = %32
  %46 = getelementptr inbounds i8, ptr %34, i64 212
  %47 = load i32, ptr %46, align 4, !tbaa !14
  switch i32 %47, label %.preheader603 [
    i32 0, label %.lr.ph.split.us.preheader
    i32 1, label %.lr.ph.split.us606.preheader
    i32 2, label %.lr.ph.split.us612.preheader
  ]

.lr.ph.split.us612.preheader:                     ; preds = %.lr.ph
  %48 = sext i32 %37 to i64
  %49 = sext i32 %33 to i64
  br label %.lr.ph.split.us612

.lr.ph.split.us606.preheader:                     ; preds = %.lr.ph
  %50 = sext i32 %37 to i64
  %51 = sext i32 %33 to i64
  br label %.lr.ph.split.us606

.lr.ph.split.us.preheader:                        ; preds = %.lr.ph
  %52 = sext i32 %37 to i64
  %53 = sext i32 %33 to i64
  br label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.preheader, %.lr.ph.split.us
  %indvars.iv637 = phi i64 [ %52, %.lr.ph.split.us.preheader ], [ %indvars.iv.next638, %.lr.ph.split.us ]
  %.0476604.us = phi double [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %61, %.lr.ph.split.us ]
  %54 = getelementptr inbounds float, ptr %5, i64 %indvars.iv637
  %55 = load float, ptr %54, align 4, !tbaa !15
  %56 = getelementptr inbounds float, ptr %2, i64 %indvars.iv637
  %57 = load float, ptr %56, align 4, !tbaa !15
  %58 = fsub float %55, %57
  %59 = tail call float @llvm.fabs.f32(float %58)
  %60 = fpext float %59 to double
  %61 = fadd double %.0476604.us, %60
  %indvars.iv.next638 = add nsw i64 %indvars.iv637, 1
  %62 = icmp slt i64 %indvars.iv.next638, %53
  br i1 %62, label %.lr.ph.split.us, label %.preheader603, !llvm.loop !17

.lr.ph.split.us606:                               ; preds = %.lr.ph.split.us606.preheader, %.lr.ph.split.us606
  %indvars.iv634 = phi i64 [ %50, %.lr.ph.split.us606.preheader ], [ %indvars.iv.next635, %.lr.ph.split.us606 ]
  %.0476604.us608 = phi double [ 0.000000e+00, %.lr.ph.split.us606.preheader ], [ %69, %.lr.ph.split.us606 ]
  %63 = getelementptr inbounds float, ptr %3, i64 %indvars.iv634
  %64 = load float, ptr %63, align 4, !tbaa !15
  %65 = getelementptr inbounds float, ptr %4, i64 %indvars.iv634
  %66 = load float, ptr %65, align 4, !tbaa !15
  %67 = fsub float %64, %66
  %68 = fpext float %67 to double
  %69 = fadd double %.0476604.us608, %68
  %indvars.iv.next635 = add nsw i64 %indvars.iv634, 1
  %70 = icmp slt i64 %indvars.iv.next635, %51
  br i1 %70, label %.lr.ph.split.us606, label %.preheader603, !llvm.loop !17

.lr.ph.split.us612:                               ; preds = %.lr.ph.split.us612.preheader, %.lr.ph.split.us612
  %indvars.iv = phi i64 [ %48, %.lr.ph.split.us612.preheader ], [ %indvars.iv.next, %.lr.ph.split.us612 ]
  %.0476604.us614 = phi double [ 0.000000e+00, %.lr.ph.split.us612.preheader ], [ %85, %.lr.ph.split.us612 ]
  %71 = getelementptr inbounds float, ptr %3, i64 %indvars.iv
  %72 = load float, ptr %71, align 4, !tbaa !15
  %73 = getelementptr inbounds float, ptr %5, i64 %indvars.iv
  %74 = load float, ptr %73, align 4, !tbaa !15
  %75 = getelementptr inbounds float, ptr %2, i64 %indvars.iv
  %76 = load float, ptr %75, align 4, !tbaa !15
  %77 = fcmp ult float %74, %76
  %..us = select i1 %77, float %76, float %74
  %78 = fsub float %72, %..us
  %79 = select i1 %77, float %74, float %76
  %80 = getelementptr inbounds float, ptr %4, i64 %indvars.iv
  %81 = load float, ptr %80, align 4, !tbaa !15
  %82 = fsub float %79, %81
  %83 = fadd float %78, %82
  %84 = fpext float %83 to double
  %85 = fadd double %.0476604.us614, %84
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %86 = icmp slt i64 %indvars.iv.next, %49
  br i1 %86, label %.lr.ph.split.us612, label %.preheader603, !llvm.loop !17

.preheader603:                                    ; preds = %.lr.ph.split.us612, %.lr.ph.split.us606, %.lr.ph.split.us, %.lr.ph, %32
  %.0476.lcssa = phi double [ 0.000000e+00, %32 ], [ 0.000000e+00, %.lr.ph ], [ %61, %.lr.ph.split.us ], [ %69, %.lr.ph.split.us606 ], [ %85, %.lr.ph.split.us612 ]
  %87 = icmp sgt i32 %40, 0
  br i1 %87, label %.lr.ph620, label %.preheader602

.lr.ph620:                                        ; preds = %.preheader603
  %88 = getelementptr inbounds i8, ptr %34, i64 284
  %89 = load i32, ptr %88, align 4, !tbaa !14
  %90 = sext i32 %41 to i64
  %91 = sext i32 %38 to i64
  br label %97

.preheader602:                                    ; preds = %125, %.preheader603
  %.0478.lcssa = phi double [ 0.000000e+00, %.preheader603 ], [ %127, %125 ]
  %92 = icmp sgt i32 %43, 0
  br i1 %92, label %.lr.ph624, label %.preheader602..preheader_crit_edge

.preheader602..preheader_crit_edge:               ; preds = %.preheader602
  %.pre665 = sext i32 %44 to i64
  br label %.preheader

.lr.ph624:                                        ; preds = %.preheader602
  %93 = getelementptr inbounds i8, ptr %34, i64 260
  %94 = load i32, ptr %93, align 4, !tbaa !14
  %95 = sext i32 %44 to i64
  %96 = zext nneg i32 %spec.select to i64
  br label %141

97:                                               ; preds = %.lr.ph620, %125
  %indvars.iv640 = phi i64 [ %90, %.lr.ph620 ], [ %indvars.iv.next641, %125 ]
  %.0478618 = phi double [ 0.000000e+00, %.lr.ph620 ], [ %127, %125 ]
  switch i32 %89, label %125 [
    i32 0, label %98
    i32 1, label %105
    i32 2, label %111
  ]

98:                                               ; preds = %97
  %99 = getelementptr inbounds float, ptr %5, i64 %indvars.iv640
  %100 = load float, ptr %99, align 4, !tbaa !15
  %101 = getelementptr inbounds float, ptr %2, i64 %indvars.iv640
  %102 = load float, ptr %101, align 4, !tbaa !15
  %103 = fsub float %100, %102
  %104 = tail call float @llvm.fabs.f32(float %103)
  br label %125

105:                                              ; preds = %97
  %106 = getelementptr inbounds float, ptr %3, i64 %indvars.iv640
  %107 = load float, ptr %106, align 4, !tbaa !15
  %108 = getelementptr inbounds float, ptr %4, i64 %indvars.iv640
  %109 = load float, ptr %108, align 4, !tbaa !15
  %110 = fsub float %107, %109
  br label %125

111:                                              ; preds = %97
  %112 = getelementptr inbounds float, ptr %3, i64 %indvars.iv640
  %113 = load float, ptr %112, align 4, !tbaa !15
  %114 = getelementptr inbounds float, ptr %5, i64 %indvars.iv640
  %115 = load float, ptr %114, align 4, !tbaa !15
  %116 = getelementptr inbounds float, ptr %2, i64 %indvars.iv640
  %117 = load float, ptr %116, align 4, !tbaa !15
  %118 = fcmp ult float %115, %117
  %.573 = select i1 %118, float %117, float %115
  %119 = fsub float %113, %.573
  %120 = select i1 %118, float %115, float %117
  %121 = getelementptr inbounds float, ptr %4, i64 %indvars.iv640
  %122 = load float, ptr %121, align 4, !tbaa !15
  %123 = fsub float %120, %122
  %124 = fadd float %119, %123
  br label %125

125:                                              ; preds = %105, %111, %97, %98
  %.in570 = phi float [ %104, %98 ], [ %110, %105 ], [ %124, %111 ], [ 0.000000e+00, %97 ]
  %126 = fpext float %.in570 to double
  %127 = fadd double %.0478618, %126
  %indvars.iv.next641 = add nsw i64 %indvars.iv640, 1
  %128 = icmp slt i64 %indvars.iv.next641, %91
  br i1 %128, label %97, label %.preheader602, !llvm.loop !19

.preheader:                                       ; preds = %169, %.preheader602..preheader_crit_edge
  %.pre-phi = phi i64 [ %.pre665, %.preheader602..preheader_crit_edge ], [ %95, %169 ]
  %.0474.lcssa = phi double [ 0.000000e+00, %.preheader602..preheader_crit_edge ], [ %171, %169 ]
  %129 = getelementptr inbounds i8, ptr %34, i64 224
  %130 = load double, ptr %129, align 8, !tbaa !20
  %131 = getelementptr inbounds i8, ptr %34, i64 212
  %132 = getelementptr inbounds i8, ptr %34, i64 284
  %133 = getelementptr inbounds i8, ptr %34, i64 260
  %134 = getelementptr inbounds i8, ptr %34, i64 296
  %135 = getelementptr inbounds i8, ptr %34, i64 272
  %136 = sext i32 %29 to i64
  %137 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %136, i64 %137)
  %138 = sext i32 %1 to i64
  %139 = sext i32 %41 to i64
  %140 = sext i32 %37 to i64
  br label %173

141:                                              ; preds = %.lr.ph624, %169
  %indvars.iv643 = phi i64 [ %95, %.lr.ph624 ], [ %indvars.iv.next644, %169 ]
  %.0474622 = phi double [ 0.000000e+00, %.lr.ph624 ], [ %171, %169 ]
  switch i32 %94, label %169 [
    i32 0, label %142
    i32 1, label %149
    i32 2, label %155
  ]

142:                                              ; preds = %141
  %143 = getelementptr inbounds float, ptr %5, i64 %indvars.iv643
  %144 = load float, ptr %143, align 4, !tbaa !15
  %145 = getelementptr inbounds float, ptr %2, i64 %indvars.iv643
  %146 = load float, ptr %145, align 4, !tbaa !15
  %147 = fsub float %144, %146
  %148 = tail call float @llvm.fabs.f32(float %147)
  br label %169

149:                                              ; preds = %141
  %150 = getelementptr inbounds float, ptr %3, i64 %indvars.iv643
  %151 = load float, ptr %150, align 4, !tbaa !15
  %152 = getelementptr inbounds float, ptr %4, i64 %indvars.iv643
  %153 = load float, ptr %152, align 4, !tbaa !15
  %154 = fsub float %151, %153
  br label %169

155:                                              ; preds = %141
  %156 = getelementptr inbounds float, ptr %3, i64 %indvars.iv643
  %157 = load float, ptr %156, align 4, !tbaa !15
  %158 = getelementptr inbounds float, ptr %5, i64 %indvars.iv643
  %159 = load float, ptr %158, align 4, !tbaa !15
  %160 = getelementptr inbounds float, ptr %2, i64 %indvars.iv643
  %161 = load float, ptr %160, align 4, !tbaa !15
  %162 = fcmp ult float %159, %161
  %.574 = select i1 %162, float %161, float %159
  %163 = fsub float %157, %.574
  %164 = select i1 %162, float %159, float %161
  %165 = getelementptr inbounds float, ptr %4, i64 %indvars.iv643
  %166 = load float, ptr %165, align 4, !tbaa !15
  %167 = fsub float %164, %166
  %168 = fadd float %163, %167
  br label %169

169:                                              ; preds = %149, %155, %141, %142
  %.in569 = phi float [ %148, %142 ], [ %154, %149 ], [ %168, %155 ], [ 0.000000e+00, %141 ]
  %170 = fpext float %.in569 to double
  %171 = fadd double %.0474622, %170
  %indvars.iv.next644 = add nsw i64 %indvars.iv643, 1
  %172 = icmp slt i64 %indvars.iv.next644, %96
  br i1 %172, label %141, label %.preheader, !llvm.loop !21

173:                                              ; preds = %.preheader, %501
  %indvars.iv654 = phi i64 [ %.pre-phi, %.preheader ], [ %indvars.iv.next655, %501 ]
  %indvars.iv652 = phi i64 [ %140, %.preheader ], [ %indvars.iv.next653, %501 ]
  %indvars.iv650 = phi i64 [ %139, %.preheader ], [ %indvars.iv.next651, %501 ]
  %indvars.iv648 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next649, %501 ]
  %indvars.iv646 = phi i64 [ %smax, %.preheader ], [ %indvars.iv.next647, %501 ]
  %.1479 = phi double [ %.0478.lcssa, %.preheader ], [ %448, %501 ]
  %.1477 = phi double [ %.0476.lcssa, %.preheader ], [ %388, %501 ]
  %.1475 = phi double [ %.0474.lcssa, %.preheader ], [ %505, %501 ]
  %174 = add nsw i64 %indvars.iv646, -2
  %175 = getelementptr inbounds float, ptr %5, i64 %174
  %176 = load float, ptr %175, align 4, !tbaa !15
  %177 = getelementptr inbounds float, ptr %2, i64 %174
  %178 = load float, ptr %177, align 4, !tbaa !15
  %179 = fsub float %176, %178
  %180 = tail call float @llvm.fabs.f32(float %179)
  %181 = fpext float %180 to double
  %182 = load i32, ptr %35, align 8, !tbaa !11
  %.not560 = icmp eq i32 %182, 0
  br i1 %.not560, label %186, label %183

183:                                              ; preds = %173
  %184 = sitofp i32 %182 to double
  %185 = fdiv double %.1477, %184
  %.pre = load i32, ptr %131, align 4, !tbaa !14
  br label %207

186:                                              ; preds = %173
  %187 = load i32, ptr %131, align 4, !tbaa !14
  switch i32 %187, label %204 [
    i32 0, label %.thread666
    i32 1, label %188
    i32 2, label %194
  ]

188:                                              ; preds = %186
  %189 = getelementptr inbounds float, ptr %3, i64 %174
  %190 = load float, ptr %189, align 4, !tbaa !15
  %191 = getelementptr inbounds float, ptr %4, i64 %174
  %192 = load float, ptr %191, align 4, !tbaa !15
  %193 = fsub float %190, %192
  br label %204

194:                                              ; preds = %186
  %195 = getelementptr inbounds float, ptr %3, i64 %174
  %196 = load float, ptr %195, align 4, !tbaa !15
  %197 = fcmp ult float %176, %178
  %.575 = select i1 %197, float %178, float %176
  %198 = fsub float %196, %.575
  %199 = select i1 %197, float %176, float %178
  %200 = getelementptr inbounds float, ptr %4, i64 %174
  %201 = load float, ptr %200, align 4, !tbaa !15
  %202 = fsub float %199, %201
  %203 = fadd float %198, %202
  br label %204

204:                                              ; preds = %186, %194, %188
  %205 = phi float [ %193, %188 ], [ %203, %194 ], [ 0.000000e+00, %186 ]
  %206 = fpext float %205 to double
  br label %207

207:                                              ; preds = %204, %183
  %208 = phi i32 [ %.pre, %183 ], [ %187, %204 ]
  %209 = phi double [ %185, %183 ], [ %206, %204 ]
  %.fr = freeze i32 %208
  %210 = icmp eq i32 %.fr, 2
  br i1 %210, label %211, label %.thread666

211:                                              ; preds = %207
  br label %.thread666

.thread666:                                       ; preds = %186, %207, %211
  %.pn = phi double [ %209, %211 ], [ %209, %207 ], [ %181, %186 ]
  %212 = phi double [ 2.000000e+00, %211 ], [ 1.000000e+00, %207 ], [ 1.000000e+00, %186 ]
  %213 = fmul double %130, %.pn
  %214 = fdiv double %213, %212
  %215 = fcmp olt double %214, %181
  br i1 %215, label %216, label %.thread

216:                                              ; preds = %.thread666
  %217 = add nsw i64 %indvars.iv646, -1
  %218 = getelementptr inbounds float, ptr %5, i64 %217
  %219 = load float, ptr %218, align 4, !tbaa !15
  %220 = getelementptr inbounds float, ptr %2, i64 %217
  %221 = load float, ptr %220, align 4, !tbaa !15
  %222 = fsub float %219, %221
  %223 = tail call float @llvm.fabs.f32(float %222)
  %224 = fpext float %223 to double
  %225 = load double, ptr %134, align 8, !tbaa !20
  %226 = load i32, ptr %39, align 8, !tbaa !11
  %.not561 = icmp eq i32 %226, 0
  br i1 %.not561, label %230, label %227

227:                                              ; preds = %216
  %228 = sitofp i32 %226 to double
  %229 = fdiv double %.1479, %228
  %.pre663 = load i32, ptr %132, align 4, !tbaa !14
  br label %251

230:                                              ; preds = %216
  %231 = load i32, ptr %132, align 4, !tbaa !14
  switch i32 %231, label %248 [
    i32 0, label %.thread669
    i32 1, label %232
    i32 2, label %238
  ]

232:                                              ; preds = %230
  %233 = getelementptr inbounds float, ptr %3, i64 %217
  %234 = load float, ptr %233, align 4, !tbaa !15
  %235 = getelementptr inbounds float, ptr %4, i64 %217
  %236 = load float, ptr %235, align 4, !tbaa !15
  %237 = fsub float %234, %236
  br label %248

238:                                              ; preds = %230
  %239 = getelementptr inbounds float, ptr %3, i64 %217
  %240 = load float, ptr %239, align 4, !tbaa !15
  %241 = fcmp ult float %219, %221
  %.576 = select i1 %241, float %221, float %219
  %242 = fsub float %240, %.576
  %243 = select i1 %241, float %219, float %221
  %244 = getelementptr inbounds float, ptr %4, i64 %217
  %245 = load float, ptr %244, align 4, !tbaa !15
  %246 = fsub float %243, %245
  %247 = fadd float %242, %246
  br label %248

248:                                              ; preds = %230, %238, %232
  %249 = phi float [ %237, %232 ], [ %247, %238 ], [ 0.000000e+00, %230 ]
  %250 = fpext float %249 to double
  br label %251

251:                                              ; preds = %248, %227
  %252 = phi i32 [ %.pre663, %227 ], [ %231, %248 ]
  %253 = phi double [ %229, %227 ], [ %250, %248 ]
  %.fr681 = freeze i32 %252
  %254 = icmp eq i32 %.fr681, 2
  br i1 %254, label %255, label %.thread669

255:                                              ; preds = %251
  br label %.thread669

.thread669:                                       ; preds = %230, %251, %255
  %.pn682 = phi double [ %253, %255 ], [ %253, %251 ], [ %224, %230 ]
  %256 = phi double [ 2.000000e+00, %255 ], [ 1.000000e+00, %251 ], [ 1.000000e+00, %230 ]
  %257 = fmul double %225, %.pn682
  %258 = fdiv double %257, %256
  %259 = fcmp ult double %258, %224
  br i1 %259, label %.thread, label %260

260:                                              ; preds = %.thread669
  %261 = getelementptr inbounds float, ptr %5, i64 %indvars.iv646
  %262 = load float, ptr %261, align 4, !tbaa !15
  %263 = getelementptr inbounds float, ptr %2, i64 %indvars.iv646
  %264 = load float, ptr %263, align 4, !tbaa !15
  %265 = fsub float %262, %264
  %266 = tail call float @llvm.fabs.f32(float %265)
  %267 = fpext float %266 to double
  %268 = load double, ptr %135, align 8, !tbaa !20
  %269 = load i32, ptr %42, align 8, !tbaa !11
  %.not562 = icmp eq i32 %269, 0
  br i1 %.not562, label %273, label %270

270:                                              ; preds = %260
  %271 = sitofp i32 %269 to double
  %272 = fdiv double %.1475, %271
  %.pre664 = load i32, ptr %133, align 4, !tbaa !14
  br label %294

273:                                              ; preds = %260
  %274 = load i32, ptr %133, align 4, !tbaa !14
  switch i32 %274, label %291 [
    i32 0, label %.thread672
    i32 1, label %275
    i32 2, label %281
  ]

275:                                              ; preds = %273
  %276 = getelementptr inbounds float, ptr %3, i64 %indvars.iv646
  %277 = load float, ptr %276, align 4, !tbaa !15
  %278 = getelementptr inbounds float, ptr %4, i64 %indvars.iv646
  %279 = load float, ptr %278, align 4, !tbaa !15
  %280 = fsub float %277, %279
  br label %291

281:                                              ; preds = %273
  %282 = getelementptr inbounds float, ptr %3, i64 %indvars.iv646
  %283 = load float, ptr %282, align 4, !tbaa !15
  %284 = fcmp ult float %262, %264
  %.577 = select i1 %284, float %264, float %262
  %285 = fsub float %283, %.577
  %286 = select i1 %284, float %262, float %264
  %287 = getelementptr inbounds float, ptr %4, i64 %indvars.iv646
  %288 = load float, ptr %287, align 4, !tbaa !15
  %289 = fsub float %286, %288
  %290 = fadd float %285, %289
  br label %291

291:                                              ; preds = %273, %281, %275
  %292 = phi float [ %280, %275 ], [ %290, %281 ], [ 0.000000e+00, %273 ]
  %293 = fpext float %292 to double
  br label %294

294:                                              ; preds = %291, %270
  %295 = phi i32 [ %.pre664, %270 ], [ %274, %291 ]
  %296 = phi double [ %272, %270 ], [ %293, %291 ]
  %.fr683 = freeze i32 %295
  %297 = icmp eq i32 %.fr683, 2
  br i1 %297, label %298, label %.thread672

298:                                              ; preds = %294
  br label %.thread672

.thread672:                                       ; preds = %273, %294, %298
  %.pn684 = phi double [ %296, %298 ], [ %296, %294 ], [ %267, %273 ]
  %299 = phi double [ 2.000000e+00, %298 ], [ 1.000000e+00, %294 ], [ 1.000000e+00, %273 ]
  %300 = fmul double %268, %.pn684
  %301 = fdiv double %300, %299
  %302 = fcmp olt double %301, %267
  br i1 %302, label %303, label %.thread

303:                                              ; preds = %.thread672
  %304 = fcmp ult float %176, %178
  %305 = fcmp ult float %262, %264
  br i1 %304, label %323, label %306

306:                                              ; preds = %303
  br i1 %305, label %307, label %.thread

307:                                              ; preds = %306
  %308 = fpext float %262 to double
  %309 = fpext float %176 to double
  %310 = fneg double %181
  %311 = tail call double @llvm.fmuladd.f64(double %310, double %.0481, double %309)
  %312 = fcmp ogt double %311, %308
  br i1 %312, label %313, label %.thread

313:                                              ; preds = %307
  %314 = getelementptr inbounds float, ptr %4, i64 %217
  %315 = load float, ptr %314, align 4, !tbaa !15
  %316 = getelementptr inbounds float, ptr %3, i64 %174
  %317 = load float, ptr %316, align 4, !tbaa !15
  %318 = fcmp ogt float %315, %317
  br i1 %318, label %319, label %.thread

319:                                              ; preds = %313
  %320 = getelementptr inbounds float, ptr %3, i64 %indvars.iv646
  %321 = load float, ptr %320, align 4, !tbaa !15
  %322 = fcmp olt float %321, %315
  br i1 %322, label %339, label %.thread

323:                                              ; preds = %303
  br i1 %305, label %.thread, label %324

324:                                              ; preds = %323
  %325 = fpext float %262 to double
  %326 = fpext float %176 to double
  %327 = tail call double @llvm.fmuladd.f64(double %181, double %.0481, double %326)
  %328 = fcmp olt double %327, %325
  br i1 %328, label %329, label %.thread

329:                                              ; preds = %324
  %330 = getelementptr inbounds float, ptr %3, i64 %217
  %331 = load float, ptr %330, align 4, !tbaa !15
  %332 = getelementptr inbounds float, ptr %4, i64 %174
  %333 = load float, ptr %332, align 4, !tbaa !15
  %334 = fcmp olt float %331, %333
  br i1 %334, label %335, label %.thread

335:                                              ; preds = %329
  %336 = getelementptr inbounds float, ptr %4, i64 %indvars.iv646
  %337 = load float, ptr %336, align 4, !tbaa !15
  %338 = fcmp ogt float %337, %331
  br i1 %338, label %339, label %.thread

339:                                              ; preds = %335, %319
  %340 = fcmp oge float %262, %264
  %341 = select i1 %340, i32 100, i32 -100
  br label %.thread

.thread:                                          ; preds = %.thread666, %.thread669, %.thread672, %323, %324, %329, %335, %319, %313, %307, %306, %339
  %.sink = phi i32 [ %341, %339 ], [ 0, %306 ], [ 0, %307 ], [ 0, %313 ], [ 0, %319 ], [ 0, %335 ], [ 0, %329 ], [ 0, %324 ], [ 0, %323 ], [ 0, %.thread672 ], [ 0, %.thread669 ], [ 0, %.thread666 ]
  %342 = getelementptr inbounds i32, ptr %9, i64 %indvars.iv648
  store i32 %.sink, ptr %342, align 4, !tbaa !5
  %indvars.iv.next649 = add nuw nsw i64 %indvars.iv648, 1
  %343 = load i32, ptr %131, align 4, !tbaa !14
  switch i32 %343, label %384 [
    i32 0, label %.thread584
    i32 1, label %.thread586
    i32 2, label %.thread588
  ]

.thread584:                                       ; preds = %.thread
  %344 = getelementptr inbounds float, ptr %5, i64 %indvars.iv652
  %345 = load float, ptr %344, align 4, !tbaa !15
  %346 = getelementptr inbounds float, ptr %2, i64 %indvars.iv652
  %347 = load float, ptr %346, align 4, !tbaa !15
  %348 = fsub float %345, %347
  %349 = tail call float @llvm.fabs.f32(float %348)
  br label %384

.thread586:                                       ; preds = %.thread
  %350 = getelementptr inbounds float, ptr %3, i64 %174
  %351 = load float, ptr %350, align 4, !tbaa !15
  %352 = getelementptr inbounds float, ptr %4, i64 %174
  %353 = load float, ptr %352, align 4, !tbaa !15
  %354 = fsub float %351, %353
  %355 = fpext float %354 to double
  %356 = getelementptr inbounds float, ptr %3, i64 %indvars.iv652
  %357 = load float, ptr %356, align 4, !tbaa !15
  %358 = getelementptr inbounds float, ptr %4, i64 %indvars.iv652
  %359 = load float, ptr %358, align 4, !tbaa !15
  %360 = fsub float %357, %359
  br label %384

.thread588:                                       ; preds = %.thread
  %361 = getelementptr inbounds float, ptr %3, i64 %174
  %362 = load float, ptr %361, align 4, !tbaa !15
  %363 = fcmp ult float %176, %178
  %.578 = select i1 %363, float %178, float %176
  %364 = fsub float %362, %.578
  %365 = select i1 %363, float %176, float %178
  %366 = getelementptr inbounds float, ptr %4, i64 %174
  %367 = load float, ptr %366, align 4, !tbaa !15
  %368 = fsub float %365, %367
  %369 = fadd float %364, %368
  %370 = fpext float %369 to double
  %371 = getelementptr inbounds float, ptr %3, i64 %indvars.iv652
  %372 = load float, ptr %371, align 4, !tbaa !15
  %373 = getelementptr inbounds float, ptr %5, i64 %indvars.iv652
  %374 = load float, ptr %373, align 4, !tbaa !15
  %375 = getelementptr inbounds float, ptr %2, i64 %indvars.iv652
  %376 = load float, ptr %375, align 4, !tbaa !15
  %377 = fcmp ult float %374, %376
  %.579 = select i1 %377, float %376, float %374
  %378 = fsub float %372, %.579
  %379 = select i1 %377, float %374, float %376
  %380 = getelementptr inbounds float, ptr %4, i64 %indvars.iv652
  %381 = load float, ptr %380, align 4, !tbaa !15
  %382 = fsub float %379, %381
  %383 = fadd float %378, %382
  br label %384

384:                                              ; preds = %.thread, %.thread586, %.thread588, %.thread584
  %385 = phi double [ %181, %.thread584 ], [ %355, %.thread586 ], [ %370, %.thread588 ], [ 0.000000e+00, %.thread ]
  %.in563 = phi float [ %349, %.thread584 ], [ %360, %.thread586 ], [ %383, %.thread588 ], [ 0.000000e+00, %.thread ]
  %386 = fpext float %.in563 to double
  %387 = fsub double %385, %386
  %388 = fadd double %.1477, %387
  %389 = load i32, ptr %132, align 4, !tbaa !14
  switch i32 %389, label %444 [
    i32 0, label %.thread590
    i32 1, label %.thread592
    i32 2, label %.thread594
  ]

.thread590:                                       ; preds = %384
  %390 = add nsw i64 %indvars.iv646, -1
  %391 = getelementptr inbounds float, ptr %5, i64 %390
  %392 = load float, ptr %391, align 4, !tbaa !15
  %393 = getelementptr inbounds float, ptr %2, i64 %390
  %394 = load float, ptr %393, align 4, !tbaa !15
  %395 = fsub float %392, %394
  %396 = tail call float @llvm.fabs.f32(float %395)
  %397 = fpext float %396 to double
  %398 = getelementptr inbounds float, ptr %5, i64 %indvars.iv650
  %399 = load float, ptr %398, align 4, !tbaa !15
  %400 = getelementptr inbounds float, ptr %2, i64 %indvars.iv650
  %401 = load float, ptr %400, align 4, !tbaa !15
  %402 = fsub float %399, %401
  %403 = tail call float @llvm.fabs.f32(float %402)
  br label %444

.thread592:                                       ; preds = %384
  %404 = add nsw i64 %indvars.iv646, -1
  %405 = getelementptr inbounds float, ptr %3, i64 %404
  %406 = load float, ptr %405, align 4, !tbaa !15
  %407 = getelementptr inbounds float, ptr %4, i64 %404
  %408 = load float, ptr %407, align 4, !tbaa !15
  %409 = fsub float %406, %408
  %410 = fpext float %409 to double
  %411 = getelementptr inbounds float, ptr %3, i64 %indvars.iv650
  %412 = load float, ptr %411, align 4, !tbaa !15
  %413 = getelementptr inbounds float, ptr %4, i64 %indvars.iv650
  %414 = load float, ptr %413, align 4, !tbaa !15
  %415 = fsub float %412, %414
  br label %444

.thread594:                                       ; preds = %384
  %416 = add nsw i64 %indvars.iv646, -1
  %417 = getelementptr inbounds float, ptr %3, i64 %416
  %418 = load float, ptr %417, align 4, !tbaa !15
  %419 = getelementptr inbounds float, ptr %5, i64 %416
  %420 = load float, ptr %419, align 4, !tbaa !15
  %421 = getelementptr inbounds float, ptr %2, i64 %416
  %422 = load float, ptr %421, align 4, !tbaa !15
  %423 = fcmp ult float %420, %422
  %.580 = select i1 %423, float %422, float %420
  %424 = fsub float %418, %.580
  %425 = select i1 %423, float %420, float %422
  %426 = getelementptr inbounds float, ptr %4, i64 %416
  %427 = load float, ptr %426, align 4, !tbaa !15
  %428 = fsub float %425, %427
  %429 = fadd float %424, %428
  %430 = fpext float %429 to double
  %431 = getelementptr inbounds float, ptr %3, i64 %indvars.iv650
  %432 = load float, ptr %431, align 4, !tbaa !15
  %433 = getelementptr inbounds float, ptr %5, i64 %indvars.iv650
  %434 = load float, ptr %433, align 4, !tbaa !15
  %435 = getelementptr inbounds float, ptr %2, i64 %indvars.iv650
  %436 = load float, ptr %435, align 4, !tbaa !15
  %437 = fcmp ult float %434, %436
  %.581 = select i1 %437, float %436, float %434
  %438 = fsub float %432, %.581
  %439 = select i1 %437, float %434, float %436
  %440 = getelementptr inbounds float, ptr %4, i64 %indvars.iv650
  %441 = load float, ptr %440, align 4, !tbaa !15
  %442 = fsub float %439, %441
  %443 = fadd float %438, %442
  br label %444

444:                                              ; preds = %384, %.thread592, %.thread594, %.thread590
  %445 = phi double [ %397, %.thread590 ], [ %410, %.thread592 ], [ %430, %.thread594 ], [ 0.000000e+00, %384 ]
  %.in565 = phi float [ %403, %.thread590 ], [ %415, %.thread592 ], [ %443, %.thread594 ], [ 0.000000e+00, %384 ]
  %446 = fpext float %.in565 to double
  %447 = fsub double %445, %446
  %448 = fadd double %.1479, %447
  %449 = load i32, ptr %133, align 4, !tbaa !14
  switch i32 %449, label %501 [
    i32 0, label %.thread596
    i32 1, label %.thread598
    i32 2, label %.thread600
  ]

.thread596:                                       ; preds = %444
  %450 = getelementptr inbounds float, ptr %5, i64 %indvars.iv646
  %451 = load float, ptr %450, align 4, !tbaa !15
  %452 = getelementptr inbounds float, ptr %2, i64 %indvars.iv646
  %453 = load float, ptr %452, align 4, !tbaa !15
  %454 = fsub float %451, %453
  %455 = tail call float @llvm.fabs.f32(float %454)
  %456 = fpext float %455 to double
  %457 = getelementptr inbounds float, ptr %5, i64 %indvars.iv654
  %458 = load float, ptr %457, align 4, !tbaa !15
  %459 = getelementptr inbounds float, ptr %2, i64 %indvars.iv654
  %460 = load float, ptr %459, align 4, !tbaa !15
  %461 = fsub float %458, %460
  %462 = tail call float @llvm.fabs.f32(float %461)
  br label %501

.thread598:                                       ; preds = %444
  %463 = getelementptr inbounds float, ptr %3, i64 %indvars.iv646
  %464 = load float, ptr %463, align 4, !tbaa !15
  %465 = getelementptr inbounds float, ptr %4, i64 %indvars.iv646
  %466 = load float, ptr %465, align 4, !tbaa !15
  %467 = fsub float %464, %466
  %468 = fpext float %467 to double
  %469 = getelementptr inbounds float, ptr %3, i64 %indvars.iv654
  %470 = load float, ptr %469, align 4, !tbaa !15
  %471 = getelementptr inbounds float, ptr %4, i64 %indvars.iv654
  %472 = load float, ptr %471, align 4, !tbaa !15
  %473 = fsub float %470, %472
  br label %501

.thread600:                                       ; preds = %444
  %474 = getelementptr inbounds float, ptr %3, i64 %indvars.iv646
  %475 = load float, ptr %474, align 4, !tbaa !15
  %476 = getelementptr inbounds float, ptr %5, i64 %indvars.iv646
  %477 = load float, ptr %476, align 4, !tbaa !15
  %478 = getelementptr inbounds float, ptr %2, i64 %indvars.iv646
  %479 = load float, ptr %478, align 4, !tbaa !15
  %480 = fcmp ult float %477, %479
  %.582 = select i1 %480, float %479, float %477
  %481 = fsub float %475, %.582
  %482 = select i1 %480, float %477, float %479
  %483 = getelementptr inbounds float, ptr %4, i64 %indvars.iv646
  %484 = load float, ptr %483, align 4, !tbaa !15
  %485 = fsub float %482, %484
  %486 = fadd float %481, %485
  %487 = fpext float %486 to double
  %488 = getelementptr inbounds float, ptr %3, i64 %indvars.iv654
  %489 = load float, ptr %488, align 4, !tbaa !15
  %490 = getelementptr inbounds float, ptr %5, i64 %indvars.iv654
  %491 = load float, ptr %490, align 4, !tbaa !15
  %492 = getelementptr inbounds float, ptr %2, i64 %indvars.iv654
  %493 = load float, ptr %492, align 4, !tbaa !15
  %494 = fcmp ult float %491, %493
  %.583 = select i1 %494, float %493, float %491
  %495 = fsub float %489, %.583
  %496 = select i1 %494, float %491, float %493
  %497 = getelementptr inbounds float, ptr %4, i64 %indvars.iv654
  %498 = load float, ptr %497, align 4, !tbaa !15
  %499 = fsub float %496, %498
  %500 = fadd float %495, %499
  br label %501

501:                                              ; preds = %444, %.thread598, %.thread600, %.thread596
  %502 = phi double [ %456, %.thread596 ], [ %468, %.thread598 ], [ %487, %.thread600 ], [ 0.000000e+00, %444 ]
  %.in567 = phi float [ %462, %.thread596 ], [ %473, %.thread598 ], [ %500, %.thread600 ], [ 0.000000e+00, %444 ]
  %503 = fpext float %.in567 to double
  %504 = fsub double %502, %503
  %505 = fadd double %.1475, %504
  %indvars.iv.next647 = add nuw nsw i64 %indvars.iv646, 1
  %indvars.iv.next653 = add nsw i64 %indvars.iv652, 1
  %indvars.iv.next651 = add nsw i64 %indvars.iv650, 1
  %indvars.iv.next655 = add nsw i64 %indvars.iv654, 1
  %.not568.not = icmp slt i64 %indvars.iv646, %138
  br i1 %.not568.not, label %173, label %506, !llvm.loop !22

506:                                              ; preds = %501
  %507 = trunc nuw i64 %indvars.iv.next649 to i32
  store i32 %507, ptr %8, align 4, !tbaa !5
  store i32 %spec.select, ptr %7, align 4, !tbaa !5
  br label %508

508:                                              ; preds = %27, %24, %14, %12, %10, %506, %31
  %.0 = phi i32 [ 0, %31 ], [ 0, %506 ], [ 12, %10 ], [ 13, %12 ], [ 2, %14 ], [ 2, %24 ], [ 2, %27 ]
  ret i32 %.0
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fabs.f32(float) #2

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

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

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !6, i64 8}
!12 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8, !13, i64 16}
!13 = !{!"double", !7, i64 0}
!14 = !{!12, !6, i64 4}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = !{!12, !13, i64 16}
!21 = distinct !{!21, !18}
!22 = distinct !{!22, !18}


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