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

; 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_CDL3STARSINSOUTH_Lookback() #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 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_CDL3STARSINSOUTH(i32 noundef %0, i32 noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8) #0 {
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca [2 x double], align 16
  %24 = alloca i32, align 4
  %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
  %32 = alloca i32, align 4
  store i32 %0, ptr %11, align 4, !tbaa !5
  store i32 %1, ptr %12, align 4, !tbaa !5
  store ptr %2, ptr %13, align 8, !tbaa !9
  store ptr %3, ptr %14, align 8, !tbaa !9
  store ptr %4, ptr %15, align 8, !tbaa !9
  store ptr %5, ptr %16, align 8, !tbaa !9
  store ptr %6, ptr %17, align 8, !tbaa !9
  store ptr %7, ptr %18, align 8, !tbaa !9
  store ptr %8, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 4, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #3
  %33 = load i32, ptr %11, align 4, !tbaa !5
  %34 = icmp slt i32 %33, 0
  br i1 %34, label %35, label %36

35:                                               ; preds = %9
  store i32 12, ptr %10, align 4
  store i32 1, ptr %32, align 4
  br label %3196

36:                                               ; preds = %9
  %37 = load i32, ptr %12, align 4, !tbaa !5
  %38 = icmp slt i32 %37, 0
  br i1 %38, label %43, label %39

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

43:                                               ; preds = %39, %36
  store i32 13, ptr %10, align 4
  store i32 1, ptr %32, align 4
  br label %3196

44:                                               ; preds = %39
  %45 = load ptr, ptr %13, align 8, !tbaa !9
  %46 = icmp ne ptr %45, null
  br i1 %46, label %47, label %56

47:                                               ; preds = %44
  %48 = load ptr, ptr %14, align 8, !tbaa !9
  %49 = icmp ne ptr %48, null
  br i1 %49, label %50, label %56

50:                                               ; preds = %47
  %51 = load ptr, ptr %15, align 8, !tbaa !9
  %52 = icmp ne ptr %51, null
  br i1 %52, label %53, label %56

53:                                               ; preds = %50
  %54 = load ptr, ptr %16, align 8, !tbaa !9
  %55 = icmp ne ptr %54, null
  br i1 %55, label %57, label %56

56:                                               ; preds = %53, %50, %47, %44
  store i32 2, ptr %10, align 4
  store i32 1, ptr %32, align 4
  br label %3196

57:                                               ; preds = %53
  %58 = load ptr, ptr %19, align 8, !tbaa !9
  %59 = icmp ne ptr %58, null
  br i1 %59, label %61, label %60

60:                                               ; preds = %57
  store i32 2, ptr %10, align 4
  store i32 1, ptr %32, align 4
  br label %3196

61:                                               ; preds = %57
  %62 = call i32 @TA_CDL3STARSINSOUTH_Lookback()
  store i32 %62, ptr %31, align 4, !tbaa !5
  %63 = load i32, ptr %11, align 4, !tbaa !5
  %64 = load i32, ptr %31, align 4, !tbaa !5
  %65 = icmp slt i32 %63, %64
  br i1 %65, label %66, label %68

66:                                               ; preds = %61
  %67 = load i32, ptr %31, align 4, !tbaa !5
  store i32 %67, ptr %11, align 4, !tbaa !5
  br label %68

68:                                               ; preds = %66, %61
  %69 = load i32, ptr %11, align 4, !tbaa !5
  %70 = load i32, ptr %12, align 4, !tbaa !5
  %71 = icmp sgt i32 %69, %70
  br i1 %71, label %72, label %75

72:                                               ; preds = %68
  %73 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 0, ptr %73, align 4, !tbaa !5
  %74 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 0, ptr %74, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %32, align 4
  br label %3196

75:                                               ; preds = %68
  store double 0.000000e+00, ptr %20, align 8, !tbaa !11
  %76 = load i32, ptr %11, align 4, !tbaa !5
  %77 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %78 = getelementptr inbounds %struct.TA_LibcPriv, ptr %77, i32 0, i32 8
  %79 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %78, i64 0, i64 0
  %80 = getelementptr inbounds %struct.TA_CandleSetting, ptr %79, i32 0, i32 2
  %81 = load i32, ptr %80, align 8, !tbaa !13
  %82 = sub nsw i32 %76, %81
  store i32 %82, ptr %27, align 4, !tbaa !5
  store double 0.000000e+00, ptr %22, align 8, !tbaa !11
  %83 = load i32, ptr %11, align 4, !tbaa !5
  %84 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %85 = getelementptr inbounds %struct.TA_LibcPriv, ptr %84, i32 0, i32 8
  %86 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %85, i64 0, i64 4
  %87 = getelementptr inbounds %struct.TA_CandleSetting, ptr %86, i32 0, i32 2
  %88 = load i32, ptr %87, align 8, !tbaa !13
  %89 = sub nsw i32 %83, %88
  store i32 %89, ptr %29, align 4, !tbaa !5
  %90 = getelementptr inbounds [2 x double], ptr %23, i64 0, i64 1
  store double 0.000000e+00, ptr %90, align 8, !tbaa !11
  %91 = getelementptr inbounds [2 x double], ptr %23, i64 0, i64 0
  store double 0.000000e+00, ptr %91, align 16, !tbaa !11
  %92 = load i32, ptr %11, align 4, !tbaa !5
  %93 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %94 = getelementptr inbounds %struct.TA_LibcPriv, ptr %93, i32 0, i32 8
  %95 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %94, i64 0, i64 7
  %96 = getelementptr inbounds %struct.TA_CandleSetting, ptr %95, i32 0, i32 2
  %97 = load i32, ptr %96, align 8, !tbaa !13
  %98 = sub nsw i32 %92, %97
  store i32 %98, ptr %30, align 4, !tbaa !5
  store double 0.000000e+00, ptr %21, align 8, !tbaa !11
  %99 = load i32, ptr %11, align 4, !tbaa !5
  %100 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %101 = getelementptr inbounds %struct.TA_LibcPriv, ptr %100, i32 0, i32 8
  %102 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %101, i64 0, i64 2
  %103 = getelementptr inbounds %struct.TA_CandleSetting, ptr %102, i32 0, i32 2
  %104 = load i32, ptr %103, align 8, !tbaa !13
  %105 = sub nsw i32 %99, %104
  store i32 %105, ptr %28, align 4, !tbaa !5
  %106 = load i32, ptr %27, align 4, !tbaa !5
  store i32 %106, ptr %24, align 4, !tbaa !5
  br label %107

107:                                              ; preds = %242, %75
  %108 = load i32, ptr %24, align 4, !tbaa !5
  %109 = load i32, ptr %11, align 4, !tbaa !5
  %110 = icmp slt i32 %108, %109
  br i1 %110, label %111, label %248

111:                                              ; preds = %107
  %112 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %113 = getelementptr inbounds %struct.TA_LibcPriv, ptr %112, i32 0, i32 8
  %114 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %113, i64 0, i64 0
  %115 = getelementptr inbounds %struct.TA_CandleSetting, ptr %114, i32 0, i32 1
  %116 = load i32, ptr %115, align 4, !tbaa !15
  %117 = icmp eq i32 %116, 0
  br i1 %117, label %118, label %134

118:                                              ; preds = %111
  %119 = load ptr, ptr %16, align 8, !tbaa !9
  %120 = load i32, ptr %24, align 4, !tbaa !5
  %121 = sub nsw i32 %120, 2
  %122 = sext i32 %121 to i64
  %123 = getelementptr inbounds float, ptr %119, i64 %122
  %124 = load float, ptr %123, align 4, !tbaa !16
  %125 = load ptr, ptr %13, align 8, !tbaa !9
  %126 = load i32, ptr %24, align 4, !tbaa !5
  %127 = sub nsw i32 %126, 2
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds float, ptr %125, i64 %128
  %130 = load float, ptr %129, align 4, !tbaa !16
  %131 = fsub float %124, %130
  %132 = fpext float %131 to double
  %133 = call double @llvm.fabs.f64(double %132)
  br label %242

134:                                              ; preds = %111
  %135 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %136 = getelementptr inbounds %struct.TA_LibcPriv, ptr %135, i32 0, i32 8
  %137 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %136, i64 0, i64 0
  %138 = getelementptr inbounds %struct.TA_CandleSetting, ptr %137, i32 0, i32 1
  %139 = load i32, ptr %138, align 4, !tbaa !15
  %140 = icmp eq i32 %139, 1
  br i1 %140, label %141, label %155

141:                                              ; preds = %134
  %142 = load ptr, ptr %14, align 8, !tbaa !9
  %143 = load i32, ptr %24, align 4, !tbaa !5
  %144 = sub nsw i32 %143, 2
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds float, ptr %142, i64 %145
  %147 = load float, ptr %146, align 4, !tbaa !16
  %148 = load ptr, ptr %15, align 8, !tbaa !9
  %149 = load i32, ptr %24, align 4, !tbaa !5
  %150 = sub nsw i32 %149, 2
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds float, ptr %148, i64 %151
  %153 = load float, ptr %152, align 4, !tbaa !16
  %154 = fsub float %147, %153
  br label %239

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

162:                                              ; preds = %155
  %163 = load ptr, ptr %14, align 8, !tbaa !9
  %164 = load i32, ptr %24, align 4, !tbaa !5
  %165 = sub nsw i32 %164, 2
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds float, ptr %163, i64 %166
  %168 = load float, ptr %167, align 4, !tbaa !16
  %169 = load ptr, ptr %16, align 8, !tbaa !9
  %170 = load i32, ptr %24, align 4, !tbaa !5
  %171 = sub nsw i32 %170, 2
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds float, ptr %169, i64 %172
  %174 = load float, ptr %173, align 4, !tbaa !16
  %175 = load ptr, ptr %13, align 8, !tbaa !9
  %176 = load i32, ptr %24, align 4, !tbaa !5
  %177 = sub nsw i32 %176, 2
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds float, ptr %175, i64 %178
  %180 = load float, ptr %179, align 4, !tbaa !16
  %181 = fcmp oge float %174, %180
  br i1 %181, label %182, label %189

182:                                              ; preds = %162
  %183 = load ptr, ptr %16, align 8, !tbaa !9
  %184 = load i32, ptr %24, align 4, !tbaa !5
  %185 = sub nsw i32 %184, 2
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds float, ptr %183, i64 %186
  %188 = load float, ptr %187, align 4, !tbaa !16
  br label %196

189:                                              ; preds = %162
  %190 = load ptr, ptr %13, align 8, !tbaa !9
  %191 = load i32, ptr %24, align 4, !tbaa !5
  %192 = sub nsw i32 %191, 2
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds float, ptr %190, i64 %193
  %195 = load float, ptr %194, align 4, !tbaa !16
  br label %196

196:                                              ; preds = %189, %182
  %197 = phi float [ %188, %182 ], [ %195, %189 ]
  %198 = fsub float %168, %197
  %199 = load ptr, ptr %16, align 8, !tbaa !9
  %200 = load i32, ptr %24, align 4, !tbaa !5
  %201 = sub nsw i32 %200, 2
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds float, ptr %199, i64 %202
  %204 = load float, ptr %203, align 4, !tbaa !16
  %205 = load ptr, ptr %13, align 8, !tbaa !9
  %206 = load i32, ptr %24, align 4, !tbaa !5
  %207 = sub nsw i32 %206, 2
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds float, ptr %205, i64 %208
  %210 = load float, ptr %209, align 4, !tbaa !16
  %211 = fcmp oge float %204, %210
  br i1 %211, label %212, label %219

212:                                              ; preds = %196
  %213 = load ptr, ptr %13, align 8, !tbaa !9
  %214 = load i32, ptr %24, align 4, !tbaa !5
  %215 = sub nsw i32 %214, 2
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds float, ptr %213, i64 %216
  %218 = load float, ptr %217, align 4, !tbaa !16
  br label %226

219:                                              ; preds = %196
  %220 = load ptr, ptr %16, align 8, !tbaa !9
  %221 = load i32, ptr %24, align 4, !tbaa !5
  %222 = sub nsw i32 %221, 2
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds float, ptr %220, i64 %223
  %225 = load float, ptr %224, align 4, !tbaa !16
  br label %226

226:                                              ; preds = %219, %212
  %227 = phi float [ %218, %212 ], [ %225, %219 ]
  %228 = load ptr, ptr %15, align 8, !tbaa !9
  %229 = load i32, ptr %24, align 4, !tbaa !5
  %230 = sub nsw i32 %229, 2
  %231 = sext i32 %230 to i64
  %232 = getelementptr inbounds float, ptr %228, i64 %231
  %233 = load float, ptr %232, align 4, !tbaa !16
  %234 = fsub float %227, %233
  %235 = fadd float %198, %234
  br label %237

236:                                              ; preds = %155
  br label %237

237:                                              ; preds = %236, %226
  %238 = phi float [ %235, %226 ], [ 0.000000e+00, %236 ]
  br label %239

239:                                              ; preds = %237, %141
  %240 = phi float [ %154, %141 ], [ %238, %237 ]
  %241 = fpext float %240 to double
  br label %242

242:                                              ; preds = %239, %118
  %243 = phi double [ %133, %118 ], [ %241, %239 ]
  %244 = load double, ptr %20, align 8, !tbaa !11
  %245 = fadd double %244, %243
  store double %245, ptr %20, align 8, !tbaa !11
  %246 = load i32, ptr %24, align 4, !tbaa !5
  %247 = add nsw i32 %246, 1
  store i32 %247, ptr %24, align 4, !tbaa !5
  br label %107, !llvm.loop !18

248:                                              ; preds = %107
  %249 = load i32, ptr %29, align 4, !tbaa !5
  store i32 %249, ptr %24, align 4, !tbaa !5
  br label %250

250:                                              ; preds = %385, %248
  %251 = load i32, ptr %24, align 4, !tbaa !5
  %252 = load i32, ptr %11, align 4, !tbaa !5
  %253 = icmp slt i32 %251, %252
  br i1 %253, label %254, label %391

254:                                              ; preds = %250
  %255 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %256 = getelementptr inbounds %struct.TA_LibcPriv, ptr %255, i32 0, i32 8
  %257 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %256, i64 0, i64 4
  %258 = getelementptr inbounds %struct.TA_CandleSetting, ptr %257, i32 0, i32 1
  %259 = load i32, ptr %258, align 4, !tbaa !15
  %260 = icmp eq i32 %259, 0
  br i1 %260, label %261, label %277

261:                                              ; preds = %254
  %262 = load ptr, ptr %16, align 8, !tbaa !9
  %263 = load i32, ptr %24, align 4, !tbaa !5
  %264 = sub nsw i32 %263, 2
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds float, ptr %262, i64 %265
  %267 = load float, ptr %266, align 4, !tbaa !16
  %268 = load ptr, ptr %13, align 8, !tbaa !9
  %269 = load i32, ptr %24, align 4, !tbaa !5
  %270 = sub nsw i32 %269, 2
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds float, ptr %268, i64 %271
  %273 = load float, ptr %272, align 4, !tbaa !16
  %274 = fsub float %267, %273
  %275 = fpext float %274 to double
  %276 = call double @llvm.fabs.f64(double %275)
  br label %385

277:                                              ; preds = %254
  %278 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %279 = getelementptr inbounds %struct.TA_LibcPriv, ptr %278, i32 0, i32 8
  %280 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %279, i64 0, i64 4
  %281 = getelementptr inbounds %struct.TA_CandleSetting, ptr %280, i32 0, i32 1
  %282 = load i32, ptr %281, align 4, !tbaa !15
  %283 = icmp eq i32 %282, 1
  br i1 %283, label %284, label %298

284:                                              ; preds = %277
  %285 = load ptr, ptr %14, align 8, !tbaa !9
  %286 = load i32, ptr %24, align 4, !tbaa !5
  %287 = sub nsw i32 %286, 2
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds float, ptr %285, i64 %288
  %290 = load float, ptr %289, align 4, !tbaa !16
  %291 = load ptr, ptr %15, align 8, !tbaa !9
  %292 = load i32, ptr %24, align 4, !tbaa !5
  %293 = sub nsw i32 %292, 2
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds float, ptr %291, i64 %294
  %296 = load float, ptr %295, align 4, !tbaa !16
  %297 = fsub float %290, %296
  br label %382

298:                                              ; preds = %277
  %299 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %300 = getelementptr inbounds %struct.TA_LibcPriv, ptr %299, i32 0, i32 8
  %301 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %300, i64 0, i64 4
  %302 = getelementptr inbounds %struct.TA_CandleSetting, ptr %301, i32 0, i32 1
  %303 = load i32, ptr %302, align 4, !tbaa !15
  %304 = icmp eq i32 %303, 2
  br i1 %304, label %305, label %379

305:                                              ; preds = %298
  %306 = load ptr, ptr %14, align 8, !tbaa !9
  %307 = load i32, ptr %24, align 4, !tbaa !5
  %308 = sub nsw i32 %307, 2
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds float, ptr %306, i64 %309
  %311 = load float, ptr %310, align 4, !tbaa !16
  %312 = load ptr, ptr %16, align 8, !tbaa !9
  %313 = load i32, ptr %24, align 4, !tbaa !5
  %314 = sub nsw i32 %313, 2
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds float, ptr %312, i64 %315
  %317 = load float, ptr %316, align 4, !tbaa !16
  %318 = load ptr, ptr %13, align 8, !tbaa !9
  %319 = load i32, ptr %24, align 4, !tbaa !5
  %320 = sub nsw i32 %319, 2
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds float, ptr %318, i64 %321
  %323 = load float, ptr %322, align 4, !tbaa !16
  %324 = fcmp oge float %317, %323
  br i1 %324, label %325, label %332

325:                                              ; preds = %305
  %326 = load ptr, ptr %16, align 8, !tbaa !9
  %327 = load i32, ptr %24, align 4, !tbaa !5
  %328 = sub nsw i32 %327, 2
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds float, ptr %326, i64 %329
  %331 = load float, ptr %330, align 4, !tbaa !16
  br label %339

332:                                              ; preds = %305
  %333 = load ptr, ptr %13, align 8, !tbaa !9
  %334 = load i32, ptr %24, align 4, !tbaa !5
  %335 = sub nsw i32 %334, 2
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds float, ptr %333, i64 %336
  %338 = load float, ptr %337, align 4, !tbaa !16
  br label %339

339:                                              ; preds = %332, %325
  %340 = phi float [ %331, %325 ], [ %338, %332 ]
  %341 = fsub float %311, %340
  %342 = load ptr, ptr %16, align 8, !tbaa !9
  %343 = load i32, ptr %24, align 4, !tbaa !5
  %344 = sub nsw i32 %343, 2
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds float, ptr %342, i64 %345
  %347 = load float, ptr %346, align 4, !tbaa !16
  %348 = load ptr, ptr %13, align 8, !tbaa !9
  %349 = load i32, ptr %24, align 4, !tbaa !5
  %350 = sub nsw i32 %349, 2
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds float, ptr %348, i64 %351
  %353 = load float, ptr %352, align 4, !tbaa !16
  %354 = fcmp oge float %347, %353
  br i1 %354, label %355, label %362

355:                                              ; preds = %339
  %356 = load ptr, ptr %13, align 8, !tbaa !9
  %357 = load i32, ptr %24, align 4, !tbaa !5
  %358 = sub nsw i32 %357, 2
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds float, ptr %356, i64 %359
  %361 = load float, ptr %360, align 4, !tbaa !16
  br label %369

362:                                              ; preds = %339
  %363 = load ptr, ptr %16, align 8, !tbaa !9
  %364 = load i32, ptr %24, align 4, !tbaa !5
  %365 = sub nsw i32 %364, 2
  %366 = sext i32 %365 to i64
  %367 = getelementptr inbounds float, ptr %363, i64 %366
  %368 = load float, ptr %367, align 4, !tbaa !16
  br label %369

369:                                              ; preds = %362, %355
  %370 = phi float [ %361, %355 ], [ %368, %362 ]
  %371 = load ptr, ptr %15, align 8, !tbaa !9
  %372 = load i32, ptr %24, align 4, !tbaa !5
  %373 = sub nsw i32 %372, 2
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds float, ptr %371, i64 %374
  %376 = load float, ptr %375, align 4, !tbaa !16
  %377 = fsub float %370, %376
  %378 = fadd float %341, %377
  br label %380

379:                                              ; preds = %298
  br label %380

380:                                              ; preds = %379, %369
  %381 = phi float [ %378, %369 ], [ 0.000000e+00, %379 ]
  br label %382

382:                                              ; preds = %380, %284
  %383 = phi float [ %297, %284 ], [ %381, %380 ]
  %384 = fpext float %383 to double
  br label %385

385:                                              ; preds = %382, %261
  %386 = phi double [ %276, %261 ], [ %384, %382 ]
  %387 = load double, ptr %22, align 8, !tbaa !11
  %388 = fadd double %387, %386
  store double %388, ptr %22, align 8, !tbaa !11
  %389 = load i32, ptr %24, align 4, !tbaa !5
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %24, align 4, !tbaa !5
  br label %250, !llvm.loop !20

391:                                              ; preds = %250
  %392 = load i32, ptr %30, align 4, !tbaa !5
  store i32 %392, ptr %24, align 4, !tbaa !5
  br label %393

393:                                              ; preds = %649, %391
  %394 = load i32, ptr %24, align 4, !tbaa !5
  %395 = load i32, ptr %11, align 4, !tbaa !5
  %396 = icmp slt i32 %394, %395
  br i1 %396, label %397, label %656

397:                                              ; preds = %393
  %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 7
  %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, 0
  br i1 %403, label %404, label %420

404:                                              ; preds = %397
  %405 = load ptr, ptr %16, align 8, !tbaa !9
  %406 = load i32, ptr %24, align 4, !tbaa !5
  %407 = sub nsw i32 %406, 1
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds float, ptr %405, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !16
  %411 = load ptr, ptr %13, align 8, !tbaa !9
  %412 = load i32, ptr %24, align 4, !tbaa !5
  %413 = sub nsw i32 %412, 1
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds float, ptr %411, i64 %414
  %416 = load float, ptr %415, align 4, !tbaa !16
  %417 = fsub float %410, %416
  %418 = fpext float %417 to double
  %419 = call double @llvm.fabs.f64(double %418)
  br label %528

420:                                              ; preds = %397
  %421 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %422 = getelementptr inbounds %struct.TA_LibcPriv, ptr %421, i32 0, i32 8
  %423 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %422, i64 0, i64 7
  %424 = getelementptr inbounds %struct.TA_CandleSetting, ptr %423, i32 0, i32 1
  %425 = load i32, ptr %424, align 4, !tbaa !15
  %426 = icmp eq i32 %425, 1
  br i1 %426, label %427, label %441

427:                                              ; preds = %420
  %428 = load ptr, ptr %14, align 8, !tbaa !9
  %429 = load i32, ptr %24, align 4, !tbaa !5
  %430 = sub nsw i32 %429, 1
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds float, ptr %428, i64 %431
  %433 = load float, ptr %432, align 4, !tbaa !16
  %434 = load ptr, ptr %15, align 8, !tbaa !9
  %435 = load i32, ptr %24, align 4, !tbaa !5
  %436 = sub nsw i32 %435, 1
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds float, ptr %434, i64 %437
  %439 = load float, ptr %438, align 4, !tbaa !16
  %440 = fsub float %433, %439
  br label %525

441:                                              ; preds = %420
  %442 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %443 = getelementptr inbounds %struct.TA_LibcPriv, ptr %442, i32 0, i32 8
  %444 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %443, i64 0, i64 7
  %445 = getelementptr inbounds %struct.TA_CandleSetting, ptr %444, i32 0, i32 1
  %446 = load i32, ptr %445, align 4, !tbaa !15
  %447 = icmp eq i32 %446, 2
  br i1 %447, label %448, label %522

448:                                              ; preds = %441
  %449 = load ptr, ptr %14, align 8, !tbaa !9
  %450 = load i32, ptr %24, align 4, !tbaa !5
  %451 = sub nsw i32 %450, 1
  %452 = sext i32 %451 to i64
  %453 = getelementptr inbounds float, ptr %449, i64 %452
  %454 = load float, ptr %453, align 4, !tbaa !16
  %455 = load ptr, ptr %16, align 8, !tbaa !9
  %456 = load i32, ptr %24, align 4, !tbaa !5
  %457 = sub nsw i32 %456, 1
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds float, ptr %455, i64 %458
  %460 = load float, ptr %459, align 4, !tbaa !16
  %461 = load ptr, ptr %13, align 8, !tbaa !9
  %462 = load i32, ptr %24, align 4, !tbaa !5
  %463 = sub nsw i32 %462, 1
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds float, ptr %461, i64 %464
  %466 = load float, ptr %465, align 4, !tbaa !16
  %467 = fcmp oge float %460, %466
  br i1 %467, label %468, label %475

468:                                              ; preds = %448
  %469 = load ptr, ptr %16, align 8, !tbaa !9
  %470 = load i32, ptr %24, align 4, !tbaa !5
  %471 = sub nsw i32 %470, 1
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds float, ptr %469, i64 %472
  %474 = load float, ptr %473, align 4, !tbaa !16
  br label %482

475:                                              ; preds = %448
  %476 = load ptr, ptr %13, align 8, !tbaa !9
  %477 = load i32, ptr %24, align 4, !tbaa !5
  %478 = sub nsw i32 %477, 1
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds float, ptr %476, i64 %479
  %481 = load float, ptr %480, align 4, !tbaa !16
  br label %482

482:                                              ; preds = %475, %468
  %483 = phi float [ %474, %468 ], [ %481, %475 ]
  %484 = fsub float %454, %483
  %485 = load ptr, ptr %16, align 8, !tbaa !9
  %486 = load i32, ptr %24, align 4, !tbaa !5
  %487 = sub nsw i32 %486, 1
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds float, ptr %485, i64 %488
  %490 = load float, ptr %489, align 4, !tbaa !16
  %491 = load ptr, ptr %13, align 8, !tbaa !9
  %492 = load i32, ptr %24, align 4, !tbaa !5
  %493 = sub nsw i32 %492, 1
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds float, ptr %491, i64 %494
  %496 = load float, ptr %495, align 4, !tbaa !16
  %497 = fcmp oge float %490, %496
  br i1 %497, label %498, label %505

498:                                              ; preds = %482
  %499 = load ptr, ptr %13, align 8, !tbaa !9
  %500 = load i32, ptr %24, align 4, !tbaa !5
  %501 = sub nsw i32 %500, 1
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds float, ptr %499, i64 %502
  %504 = load float, ptr %503, align 4, !tbaa !16
  br label %512

505:                                              ; preds = %482
  %506 = load ptr, ptr %16, align 8, !tbaa !9
  %507 = load i32, ptr %24, align 4, !tbaa !5
  %508 = sub nsw i32 %507, 1
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds float, ptr %506, i64 %509
  %511 = load float, ptr %510, align 4, !tbaa !16
  br label %512

512:                                              ; preds = %505, %498
  %513 = phi float [ %504, %498 ], [ %511, %505 ]
  %514 = load ptr, ptr %15, align 8, !tbaa !9
  %515 = load i32, ptr %24, align 4, !tbaa !5
  %516 = sub nsw i32 %515, 1
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds float, ptr %514, i64 %517
  %519 = load float, ptr %518, align 4, !tbaa !16
  %520 = fsub float %513, %519
  %521 = fadd float %484, %520
  br label %523

522:                                              ; preds = %441
  br label %523

523:                                              ; preds = %522, %512
  %524 = phi float [ %521, %512 ], [ 0.000000e+00, %522 ]
  br label %525

525:                                              ; preds = %523, %427
  %526 = phi float [ %440, %427 ], [ %524, %523 ]
  %527 = fpext float %526 to double
  br label %528

528:                                              ; preds = %525, %404
  %529 = phi double [ %419, %404 ], [ %527, %525 ]
  %530 = getelementptr inbounds [2 x double], ptr %23, i64 0, i64 1
  %531 = load double, ptr %530, align 8, !tbaa !11
  %532 = fadd double %531, %529
  store double %532, ptr %530, align 8, !tbaa !11
  %533 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %534 = getelementptr inbounds %struct.TA_LibcPriv, ptr %533, i32 0, i32 8
  %535 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %534, i64 0, i64 7
  %536 = getelementptr inbounds %struct.TA_CandleSetting, ptr %535, i32 0, i32 1
  %537 = load i32, ptr %536, align 4, !tbaa !15
  %538 = icmp eq i32 %537, 0
  br i1 %538, label %539, label %553

539:                                              ; preds = %528
  %540 = load ptr, ptr %16, align 8, !tbaa !9
  %541 = load i32, ptr %24, align 4, !tbaa !5
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds float, ptr %540, i64 %542
  %544 = load float, ptr %543, align 4, !tbaa !16
  %545 = load ptr, ptr %13, align 8, !tbaa !9
  %546 = load i32, ptr %24, align 4, !tbaa !5
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds float, ptr %545, i64 %547
  %549 = load float, ptr %548, align 4, !tbaa !16
  %550 = fsub float %544, %549
  %551 = fpext float %550 to double
  %552 = call double @llvm.fabs.f64(double %551)
  br label %649

553:                                              ; preds = %528
  %554 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %555 = getelementptr inbounds %struct.TA_LibcPriv, ptr %554, i32 0, i32 8
  %556 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %555, i64 0, i64 7
  %557 = getelementptr inbounds %struct.TA_CandleSetting, ptr %556, i32 0, i32 1
  %558 = load i32, ptr %557, align 4, !tbaa !15
  %559 = icmp eq i32 %558, 1
  br i1 %559, label %560, label %572

560:                                              ; preds = %553
  %561 = load ptr, ptr %14, align 8, !tbaa !9
  %562 = load i32, ptr %24, align 4, !tbaa !5
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds float, ptr %561, i64 %563
  %565 = load float, ptr %564, align 4, !tbaa !16
  %566 = load ptr, ptr %15, align 8, !tbaa !9
  %567 = load i32, ptr %24, align 4, !tbaa !5
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds float, ptr %566, i64 %568
  %570 = load float, ptr %569, align 4, !tbaa !16
  %571 = fsub float %565, %570
  br label %646

572:                                              ; preds = %553
  %573 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %574 = getelementptr inbounds %struct.TA_LibcPriv, ptr %573, i32 0, i32 8
  %575 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %574, i64 0, i64 7
  %576 = getelementptr inbounds %struct.TA_CandleSetting, ptr %575, i32 0, i32 1
  %577 = load i32, ptr %576, align 4, !tbaa !15
  %578 = icmp eq i32 %577, 2
  br i1 %578, label %579, label %643

579:                                              ; preds = %572
  %580 = load ptr, ptr %14, align 8, !tbaa !9
  %581 = load i32, ptr %24, align 4, !tbaa !5
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds float, ptr %580, i64 %582
  %584 = load float, ptr %583, align 4, !tbaa !16
  %585 = load ptr, ptr %16, align 8, !tbaa !9
  %586 = load i32, ptr %24, align 4, !tbaa !5
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds float, ptr %585, i64 %587
  %589 = load float, ptr %588, align 4, !tbaa !16
  %590 = load ptr, ptr %13, align 8, !tbaa !9
  %591 = load i32, ptr %24, align 4, !tbaa !5
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds float, ptr %590, i64 %592
  %594 = load float, ptr %593, align 4, !tbaa !16
  %595 = fcmp oge float %589, %594
  br i1 %595, label %596, label %602

596:                                              ; preds = %579
  %597 = load ptr, ptr %16, align 8, !tbaa !9
  %598 = load i32, ptr %24, align 4, !tbaa !5
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds float, ptr %597, i64 %599
  %601 = load float, ptr %600, align 4, !tbaa !16
  br label %608

602:                                              ; preds = %579
  %603 = load ptr, ptr %13, align 8, !tbaa !9
  %604 = load i32, ptr %24, align 4, !tbaa !5
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds float, ptr %603, i64 %605
  %607 = load float, ptr %606, align 4, !tbaa !16
  br label %608

608:                                              ; preds = %602, %596
  %609 = phi float [ %601, %596 ], [ %607, %602 ]
  %610 = fsub float %584, %609
  %611 = load ptr, ptr %16, align 8, !tbaa !9
  %612 = load i32, ptr %24, align 4, !tbaa !5
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds float, ptr %611, i64 %613
  %615 = load float, ptr %614, align 4, !tbaa !16
  %616 = load ptr, ptr %13, align 8, !tbaa !9
  %617 = load i32, ptr %24, align 4, !tbaa !5
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds float, ptr %616, i64 %618
  %620 = load float, ptr %619, align 4, !tbaa !16
  %621 = fcmp oge float %615, %620
  br i1 %621, label %622, label %628

622:                                              ; preds = %608
  %623 = load ptr, ptr %13, align 8, !tbaa !9
  %624 = load i32, ptr %24, align 4, !tbaa !5
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds float, ptr %623, i64 %625
  %627 = load float, ptr %626, align 4, !tbaa !16
  br label %634

628:                                              ; preds = %608
  %629 = load ptr, ptr %16, align 8, !tbaa !9
  %630 = load i32, ptr %24, align 4, !tbaa !5
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds float, ptr %629, i64 %631
  %633 = load float, ptr %632, align 4, !tbaa !16
  br label %634

634:                                              ; preds = %628, %622
  %635 = phi float [ %627, %622 ], [ %633, %628 ]
  %636 = load ptr, ptr %15, align 8, !tbaa !9
  %637 = load i32, ptr %24, align 4, !tbaa !5
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds float, ptr %636, i64 %638
  %640 = load float, ptr %639, align 4, !tbaa !16
  %641 = fsub float %635, %640
  %642 = fadd float %610, %641
  br label %644

643:                                              ; preds = %572
  br label %644

644:                                              ; preds = %643, %634
  %645 = phi float [ %642, %634 ], [ 0.000000e+00, %643 ]
  br label %646

646:                                              ; preds = %644, %560
  %647 = phi float [ %571, %560 ], [ %645, %644 ]
  %648 = fpext float %647 to double
  br label %649

649:                                              ; preds = %646, %539
  %650 = phi double [ %552, %539 ], [ %648, %646 ]
  %651 = getelementptr inbounds [2 x double], ptr %23, i64 0, i64 0
  %652 = load double, ptr %651, align 16, !tbaa !11
  %653 = fadd double %652, %650
  store double %653, ptr %651, align 16, !tbaa !11
  %654 = load i32, ptr %24, align 4, !tbaa !5
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr %24, align 4, !tbaa !5
  br label %393, !llvm.loop !21

656:                                              ; preds = %393
  %657 = load i32, ptr %28, align 4, !tbaa !5
  store i32 %657, ptr %24, align 4, !tbaa !5
  br label %658

658:                                              ; preds = %779, %656
  %659 = load i32, ptr %24, align 4, !tbaa !5
  %660 = load i32, ptr %11, align 4, !tbaa !5
  %661 = icmp slt i32 %659, %660
  br i1 %661, label %662, label %785

662:                                              ; preds = %658
  %663 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %664 = getelementptr inbounds %struct.TA_LibcPriv, ptr %663, i32 0, i32 8
  %665 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %664, i64 0, i64 2
  %666 = getelementptr inbounds %struct.TA_CandleSetting, ptr %665, i32 0, i32 1
  %667 = load i32, ptr %666, align 4, !tbaa !15
  %668 = icmp eq i32 %667, 0
  br i1 %668, label %669, label %683

669:                                              ; preds = %662
  %670 = load ptr, ptr %16, align 8, !tbaa !9
  %671 = load i32, ptr %24, align 4, !tbaa !5
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds float, ptr %670, i64 %672
  %674 = load float, ptr %673, align 4, !tbaa !16
  %675 = load ptr, ptr %13, align 8, !tbaa !9
  %676 = load i32, ptr %24, align 4, !tbaa !5
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %675, i64 %677
  %679 = load float, ptr %678, align 4, !tbaa !16
  %680 = fsub float %674, %679
  %681 = fpext float %680 to double
  %682 = call double @llvm.fabs.f64(double %681)
  br label %779

683:                                              ; preds = %662
  %684 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %685 = getelementptr inbounds %struct.TA_LibcPriv, ptr %684, i32 0, i32 8
  %686 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %685, i64 0, i64 2
  %687 = getelementptr inbounds %struct.TA_CandleSetting, ptr %686, i32 0, i32 1
  %688 = load i32, ptr %687, align 4, !tbaa !15
  %689 = icmp eq i32 %688, 1
  br i1 %689, label %690, label %702

690:                                              ; preds = %683
  %691 = load ptr, ptr %14, align 8, !tbaa !9
  %692 = load i32, ptr %24, align 4, !tbaa !5
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds float, ptr %691, i64 %693
  %695 = load float, ptr %694, align 4, !tbaa !16
  %696 = load ptr, ptr %15, align 8, !tbaa !9
  %697 = load i32, ptr %24, align 4, !tbaa !5
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds float, ptr %696, i64 %698
  %700 = load float, ptr %699, align 4, !tbaa !16
  %701 = fsub float %695, %700
  br label %776

702:                                              ; preds = %683
  %703 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %704 = getelementptr inbounds %struct.TA_LibcPriv, ptr %703, i32 0, i32 8
  %705 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %704, i64 0, i64 2
  %706 = getelementptr inbounds %struct.TA_CandleSetting, ptr %705, i32 0, i32 1
  %707 = load i32, ptr %706, align 4, !tbaa !15
  %708 = icmp eq i32 %707, 2
  br i1 %708, label %709, label %773

709:                                              ; preds = %702
  %710 = load ptr, ptr %14, align 8, !tbaa !9
  %711 = load i32, ptr %24, align 4, !tbaa !5
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds float, ptr %710, i64 %712
  %714 = load float, ptr %713, align 4, !tbaa !16
  %715 = load ptr, ptr %16, align 8, !tbaa !9
  %716 = load i32, ptr %24, align 4, !tbaa !5
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds float, ptr %715, i64 %717
  %719 = load float, ptr %718, align 4, !tbaa !16
  %720 = load ptr, ptr %13, align 8, !tbaa !9
  %721 = load i32, ptr %24, align 4, !tbaa !5
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds float, ptr %720, i64 %722
  %724 = load float, ptr %723, align 4, !tbaa !16
  %725 = fcmp oge float %719, %724
  br i1 %725, label %726, label %732

726:                                              ; preds = %709
  %727 = load ptr, ptr %16, align 8, !tbaa !9
  %728 = load i32, ptr %24, align 4, !tbaa !5
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds float, ptr %727, i64 %729
  %731 = load float, ptr %730, align 4, !tbaa !16
  br label %738

732:                                              ; preds = %709
  %733 = load ptr, ptr %13, align 8, !tbaa !9
  %734 = load i32, ptr %24, align 4, !tbaa !5
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds float, ptr %733, i64 %735
  %737 = load float, ptr %736, align 4, !tbaa !16
  br label %738

738:                                              ; preds = %732, %726
  %739 = phi float [ %731, %726 ], [ %737, %732 ]
  %740 = fsub float %714, %739
  %741 = load ptr, ptr %16, align 8, !tbaa !9
  %742 = load i32, ptr %24, align 4, !tbaa !5
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds float, ptr %741, i64 %743
  %745 = load float, ptr %744, align 4, !tbaa !16
  %746 = load ptr, ptr %13, align 8, !tbaa !9
  %747 = load i32, ptr %24, align 4, !tbaa !5
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds float, ptr %746, i64 %748
  %750 = load float, ptr %749, align 4, !tbaa !16
  %751 = fcmp oge float %745, %750
  br i1 %751, label %752, label %758

752:                                              ; preds = %738
  %753 = load ptr, ptr %13, align 8, !tbaa !9
  %754 = load i32, ptr %24, align 4, !tbaa !5
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds float, ptr %753, i64 %755
  %757 = load float, ptr %756, align 4, !tbaa !16
  br label %764

758:                                              ; preds = %738
  %759 = load ptr, ptr %16, align 8, !tbaa !9
  %760 = load i32, ptr %24, align 4, !tbaa !5
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds float, ptr %759, i64 %761
  %763 = load float, ptr %762, align 4, !tbaa !16
  br label %764

764:                                              ; preds = %758, %752
  %765 = phi float [ %757, %752 ], [ %763, %758 ]
  %766 = load ptr, ptr %15, align 8, !tbaa !9
  %767 = load i32, ptr %24, align 4, !tbaa !5
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds float, ptr %766, i64 %768
  %770 = load float, ptr %769, align 4, !tbaa !16
  %771 = fsub float %765, %770
  %772 = fadd float %740, %771
  br label %774

773:                                              ; preds = %702
  br label %774

774:                                              ; preds = %773, %764
  %775 = phi float [ %772, %764 ], [ 0.000000e+00, %773 ]
  br label %776

776:                                              ; preds = %774, %690
  %777 = phi float [ %701, %690 ], [ %775, %774 ]
  %778 = fpext float %777 to double
  br label %779

779:                                              ; preds = %776, %669
  %780 = phi double [ %682, %669 ], [ %778, %776 ]
  %781 = load double, ptr %21, align 8, !tbaa !11
  %782 = fadd double %781, %780
  store double %782, ptr %21, align 8, !tbaa !11
  %783 = load i32, ptr %24, align 4, !tbaa !5
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr %24, align 4, !tbaa !5
  br label %658, !llvm.loop !22

785:                                              ; preds = %658
  %786 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %786, ptr %24, align 4, !tbaa !5
  store i32 0, ptr %25, align 4, !tbaa !5
  br label %787

787:                                              ; preds = %3187, %785
  %788 = load ptr, ptr %16, align 8, !tbaa !9
  %789 = load i32, ptr %24, align 4, !tbaa !5
  %790 = sub nsw i32 %789, 2
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds float, ptr %788, i64 %791
  %793 = load float, ptr %792, align 4, !tbaa !16
  %794 = load ptr, ptr %13, align 8, !tbaa !9
  %795 = load i32, ptr %24, align 4, !tbaa !5
  %796 = sub nsw i32 %795, 2
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds float, ptr %794, i64 %797
  %799 = load float, ptr %798, align 4, !tbaa !16
  %800 = fcmp oge float %793, %799
  %801 = zext i1 %800 to i64
  %802 = select i1 %800, i32 1, i32 -1
  %803 = icmp eq i32 %802, -1
  br i1 %803, label %804, label %2091

804:                                              ; preds = %787
  %805 = load ptr, ptr %16, align 8, !tbaa !9
  %806 = load i32, ptr %24, align 4, !tbaa !5
  %807 = sub nsw i32 %806, 1
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds float, ptr %805, i64 %808
  %810 = load float, ptr %809, align 4, !tbaa !16
  %811 = load ptr, ptr %13, align 8, !tbaa !9
  %812 = load i32, ptr %24, align 4, !tbaa !5
  %813 = sub nsw i32 %812, 1
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds float, ptr %811, i64 %814
  %816 = load float, ptr %815, align 4, !tbaa !16
  %817 = fcmp oge float %810, %816
  %818 = zext i1 %817 to i64
  %819 = select i1 %817, i32 1, i32 -1
  %820 = icmp eq i32 %819, -1
  br i1 %820, label %821, label %2091

821:                                              ; preds = %804
  %822 = load ptr, ptr %16, align 8, !tbaa !9
  %823 = load i32, ptr %24, align 4, !tbaa !5
  %824 = sext i32 %823 to i64
  %825 = getelementptr inbounds float, ptr %822, i64 %824
  %826 = load float, ptr %825, align 4, !tbaa !16
  %827 = load ptr, ptr %13, align 8, !tbaa !9
  %828 = load i32, ptr %24, align 4, !tbaa !5
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds float, ptr %827, i64 %829
  %831 = load float, ptr %830, align 4, !tbaa !16
  %832 = fcmp oge float %826, %831
  %833 = zext i1 %832 to i64
  %834 = select i1 %832, i32 1, i32 -1
  %835 = icmp eq i32 %834, -1
  br i1 %835, label %836, label %2091

836:                                              ; preds = %821
  %837 = load ptr, ptr %16, align 8, !tbaa !9
  %838 = load i32, ptr %24, align 4, !tbaa !5
  %839 = sub nsw i32 %838, 2
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds float, ptr %837, i64 %840
  %842 = load float, ptr %841, align 4, !tbaa !16
  %843 = load ptr, ptr %13, align 8, !tbaa !9
  %844 = load i32, ptr %24, align 4, !tbaa !5
  %845 = sub nsw i32 %844, 2
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds float, ptr %843, i64 %846
  %848 = load float, ptr %847, align 4, !tbaa !16
  %849 = fsub float %842, %848
  %850 = fpext float %849 to double
  %851 = call double @llvm.fabs.f64(double %850)
  %852 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %853 = getelementptr inbounds %struct.TA_LibcPriv, ptr %852, i32 0, i32 8
  %854 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %853, i64 0, i64 0
  %855 = getelementptr inbounds %struct.TA_CandleSetting, ptr %854, i32 0, i32 3
  %856 = load double, ptr %855, align 8, !tbaa !23
  %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 0
  %860 = getelementptr inbounds %struct.TA_CandleSetting, ptr %859, i32 0, i32 2
  %861 = load i32, ptr %860, align 8, !tbaa !13
  %862 = sitofp i32 %861 to double
  %863 = fcmp une double %862, 0.000000e+00
  br i1 %863, label %864, label %873

864:                                              ; preds = %836
  %865 = load double, ptr %20, align 8, !tbaa !11
  %866 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %867 = getelementptr inbounds %struct.TA_LibcPriv, ptr %866, i32 0, i32 8
  %868 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %867, i64 0, i64 0
  %869 = getelementptr inbounds %struct.TA_CandleSetting, ptr %868, i32 0, i32 2
  %870 = load i32, ptr %869, align 8, !tbaa !13
  %871 = sitofp i32 %870 to double
  %872 = fdiv double %865, %871
  br label %1006

873:                                              ; preds = %836
  %874 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %875 = getelementptr inbounds %struct.TA_LibcPriv, ptr %874, i32 0, i32 8
  %876 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %875, i64 0, i64 0
  %877 = getelementptr inbounds %struct.TA_CandleSetting, ptr %876, i32 0, i32 1
  %878 = load i32, ptr %877, align 4, !tbaa !15
  %879 = icmp eq i32 %878, 0
  br i1 %879, label %880, label %896

880:                                              ; preds = %873
  %881 = load ptr, ptr %16, align 8, !tbaa !9
  %882 = load i32, ptr %24, align 4, !tbaa !5
  %883 = sub nsw i32 %882, 2
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds float, ptr %881, i64 %884
  %886 = load float, ptr %885, align 4, !tbaa !16
  %887 = load ptr, ptr %13, align 8, !tbaa !9
  %888 = load i32, ptr %24, align 4, !tbaa !5
  %889 = sub nsw i32 %888, 2
  %890 = sext i32 %889 to i64
  %891 = getelementptr inbounds float, ptr %887, i64 %890
  %892 = load float, ptr %891, align 4, !tbaa !16
  %893 = fsub float %886, %892
  %894 = fpext float %893 to double
  %895 = call double @llvm.fabs.f64(double %894)
  br label %1004

896:                                              ; preds = %873
  %897 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %898 = getelementptr inbounds %struct.TA_LibcPriv, ptr %897, i32 0, i32 8
  %899 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %898, i64 0, i64 0
  %900 = getelementptr inbounds %struct.TA_CandleSetting, ptr %899, i32 0, i32 1
  %901 = load i32, ptr %900, align 4, !tbaa !15
  %902 = icmp eq i32 %901, 1
  br i1 %902, label %903, label %917

903:                                              ; preds = %896
  %904 = load ptr, ptr %14, align 8, !tbaa !9
  %905 = load i32, ptr %24, align 4, !tbaa !5
  %906 = sub nsw i32 %905, 2
  %907 = sext i32 %906 to i64
  %908 = getelementptr inbounds float, ptr %904, i64 %907
  %909 = load float, ptr %908, align 4, !tbaa !16
  %910 = load ptr, ptr %15, align 8, !tbaa !9
  %911 = load i32, ptr %24, align 4, !tbaa !5
  %912 = sub nsw i32 %911, 2
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %910, i64 %913
  %915 = load float, ptr %914, align 4, !tbaa !16
  %916 = fsub float %909, %915
  br label %1001

917:                                              ; preds = %896
  %918 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %919 = getelementptr inbounds %struct.TA_LibcPriv, ptr %918, i32 0, i32 8
  %920 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %919, i64 0, i64 0
  %921 = getelementptr inbounds %struct.TA_CandleSetting, ptr %920, i32 0, i32 1
  %922 = load i32, ptr %921, align 4, !tbaa !15
  %923 = icmp eq i32 %922, 2
  br i1 %923, label %924, label %998

924:                                              ; preds = %917
  %925 = load ptr, ptr %14, align 8, !tbaa !9
  %926 = load i32, ptr %24, align 4, !tbaa !5
  %927 = sub nsw i32 %926, 2
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds float, ptr %925, i64 %928
  %930 = load float, ptr %929, align 4, !tbaa !16
  %931 = load ptr, ptr %16, align 8, !tbaa !9
  %932 = load i32, ptr %24, align 4, !tbaa !5
  %933 = sub nsw i32 %932, 2
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds float, ptr %931, i64 %934
  %936 = load float, ptr %935, align 4, !tbaa !16
  %937 = load ptr, ptr %13, align 8, !tbaa !9
  %938 = load i32, ptr %24, align 4, !tbaa !5
  %939 = sub nsw i32 %938, 2
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds float, ptr %937, i64 %940
  %942 = load float, ptr %941, align 4, !tbaa !16
  %943 = fcmp oge float %936, %942
  br i1 %943, label %944, label %951

944:                                              ; preds = %924
  %945 = load ptr, ptr %16, align 8, !tbaa !9
  %946 = load i32, ptr %24, align 4, !tbaa !5
  %947 = sub nsw i32 %946, 2
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds float, ptr %945, i64 %948
  %950 = load float, ptr %949, align 4, !tbaa !16
  br label %958

951:                                              ; preds = %924
  %952 = load ptr, ptr %13, align 8, !tbaa !9
  %953 = load i32, ptr %24, align 4, !tbaa !5
  %954 = sub nsw i32 %953, 2
  %955 = sext i32 %954 to i64
  %956 = getelementptr inbounds float, ptr %952, i64 %955
  %957 = load float, ptr %956, align 4, !tbaa !16
  br label %958

958:                                              ; preds = %951, %944
  %959 = phi float [ %950, %944 ], [ %957, %951 ]
  %960 = fsub float %930, %959
  %961 = load ptr, ptr %16, align 8, !tbaa !9
  %962 = load i32, ptr %24, align 4, !tbaa !5
  %963 = sub nsw i32 %962, 2
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds float, ptr %961, i64 %964
  %966 = load float, ptr %965, align 4, !tbaa !16
  %967 = load ptr, ptr %13, align 8, !tbaa !9
  %968 = load i32, ptr %24, align 4, !tbaa !5
  %969 = sub nsw i32 %968, 2
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds float, ptr %967, i64 %970
  %972 = load float, ptr %971, align 4, !tbaa !16
  %973 = fcmp oge float %966, %972
  br i1 %973, label %974, label %981

974:                                              ; preds = %958
  %975 = load ptr, ptr %13, align 8, !tbaa !9
  %976 = load i32, ptr %24, align 4, !tbaa !5
  %977 = sub nsw i32 %976, 2
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds float, ptr %975, i64 %978
  %980 = load float, ptr %979, align 4, !tbaa !16
  br label %988

981:                                              ; preds = %958
  %982 = load ptr, ptr %16, align 8, !tbaa !9
  %983 = load i32, ptr %24, align 4, !tbaa !5
  %984 = sub nsw i32 %983, 2
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds float, ptr %982, i64 %985
  %987 = load float, ptr %986, align 4, !tbaa !16
  br label %988

988:                                              ; preds = %981, %974
  %989 = phi float [ %980, %974 ], [ %987, %981 ]
  %990 = load ptr, ptr %15, align 8, !tbaa !9
  %991 = load i32, ptr %24, align 4, !tbaa !5
  %992 = sub nsw i32 %991, 2
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds float, ptr %990, i64 %993
  %995 = load float, ptr %994, align 4, !tbaa !16
  %996 = fsub float %989, %995
  %997 = fadd float %960, %996
  br label %999

998:                                              ; preds = %917
  br label %999

999:                                              ; preds = %998, %988
  %1000 = phi float [ %997, %988 ], [ 0.000000e+00, %998 ]
  br label %1001

1001:                                             ; preds = %999, %903
  %1002 = phi float [ %916, %903 ], [ %1000, %999 ]
  %1003 = fpext float %1002 to double
  br label %1004

1004:                                             ; preds = %1001, %880
  %1005 = phi double [ %895, %880 ], [ %1003, %1001 ]
  br label %1006

1006:                                             ; preds = %1004, %864
  %1007 = phi double [ %872, %864 ], [ %1005, %1004 ]
  %1008 = fmul double %856, %1007
  %1009 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1010 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1009, i32 0, i32 8
  %1011 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1010, i64 0, i64 0
  %1012 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1011, i32 0, i32 1
  %1013 = load i32, ptr %1012, align 4, !tbaa !15
  %1014 = icmp eq i32 %1013, 2
  %1015 = zext i1 %1014 to i64
  %1016 = select i1 %1014, double 2.000000e+00, double 1.000000e+00
  %1017 = fdiv double %1008, %1016
  %1018 = fcmp ogt double %851, %1017
  br i1 %1018, label %1019, label %2091

1019:                                             ; preds = %1006
  %1020 = load ptr, ptr %16, align 8, !tbaa !9
  %1021 = load i32, ptr %24, align 4, !tbaa !5
  %1022 = sub nsw i32 %1021, 2
  %1023 = sext i32 %1022 to i64
  %1024 = getelementptr inbounds float, ptr %1020, i64 %1023
  %1025 = load float, ptr %1024, align 4, !tbaa !16
  %1026 = load ptr, ptr %13, align 8, !tbaa !9
  %1027 = load i32, ptr %24, align 4, !tbaa !5
  %1028 = sub nsw i32 %1027, 2
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds float, ptr %1026, i64 %1029
  %1031 = load float, ptr %1030, align 4, !tbaa !16
  %1032 = fcmp oge float %1025, %1031
  br i1 %1032, label %1033, label %1040

1033:                                             ; preds = %1019
  %1034 = load ptr, ptr %13, align 8, !tbaa !9
  %1035 = load i32, ptr %24, align 4, !tbaa !5
  %1036 = sub nsw i32 %1035, 2
  %1037 = sext i32 %1036 to i64
  %1038 = getelementptr inbounds float, ptr %1034, i64 %1037
  %1039 = load float, ptr %1038, align 4, !tbaa !16
  br label %1047

1040:                                             ; preds = %1019
  %1041 = load ptr, ptr %16, align 8, !tbaa !9
  %1042 = load i32, ptr %24, 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
  br label %1047

1047:                                             ; preds = %1040, %1033
  %1048 = phi float [ %1039, %1033 ], [ %1046, %1040 ]
  %1049 = load ptr, ptr %15, align 8, !tbaa !9
  %1050 = load i32, ptr %24, align 4, !tbaa !5
  %1051 = sub nsw i32 %1050, 2
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds float, ptr %1049, i64 %1052
  %1054 = load float, ptr %1053, align 4, !tbaa !16
  %1055 = fsub float %1048, %1054
  %1056 = fpext float %1055 to double
  %1057 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1058 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1057, i32 0, i32 8
  %1059 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1058, i64 0, i64 4
  %1060 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1059, i32 0, i32 3
  %1061 = load double, ptr %1060, align 8, !tbaa !23
  %1062 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1063 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1062, i32 0, i32 8
  %1064 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1063, i64 0, i64 4
  %1065 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1064, i32 0, i32 2
  %1066 = load i32, ptr %1065, align 8, !tbaa !13
  %1067 = sitofp i32 %1066 to double
  %1068 = fcmp une double %1067, 0.000000e+00
  br i1 %1068, label %1069, label %1078

1069:                                             ; preds = %1047
  %1070 = load double, ptr %22, align 8, !tbaa !11
  %1071 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1072 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1071, i32 0, i32 8
  %1073 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1072, i64 0, i64 4
  %1074 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1073, i32 0, i32 2
  %1075 = load i32, ptr %1074, align 8, !tbaa !13
  %1076 = sitofp i32 %1075 to double
  %1077 = fdiv double %1070, %1076
  br label %1211

1078:                                             ; preds = %1047
  %1079 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1080 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1079, i32 0, i32 8
  %1081 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1080, i64 0, i64 4
  %1082 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1081, i32 0, i32 1
  %1083 = load i32, ptr %1082, align 4, !tbaa !15
  %1084 = icmp eq i32 %1083, 0
  br i1 %1084, label %1085, label %1101

1085:                                             ; preds = %1078
  %1086 = load ptr, ptr %16, align 8, !tbaa !9
  %1087 = load i32, ptr %24, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %1093 = load i32, ptr %24, align 4, !tbaa !5
  %1094 = sub nsw i32 %1093, 2
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds float, ptr %1092, i64 %1095
  %1097 = load float, ptr %1096, align 4, !tbaa !16
  %1098 = fsub float %1091, %1097
  %1099 = fpext float %1098 to double
  %1100 = call double @llvm.fabs.f64(double %1099)
  br label %1209

1101:                                             ; preds = %1078
  %1102 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1103 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1102, i32 0, i32 8
  %1104 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1103, i64 0, i64 4
  %1105 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1104, i32 0, i32 1
  %1106 = load i32, ptr %1105, align 4, !tbaa !15
  %1107 = icmp eq i32 %1106, 1
  br i1 %1107, label %1108, label %1122

1108:                                             ; preds = %1101
  %1109 = load ptr, ptr %14, align 8, !tbaa !9
  %1110 = load i32, ptr %24, align 4, !tbaa !5
  %1111 = sub nsw i32 %1110, 2
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds float, ptr %1109, i64 %1112
  %1114 = load float, ptr %1113, align 4, !tbaa !16
  %1115 = load ptr, ptr %15, align 8, !tbaa !9
  %1116 = load i32, ptr %24, align 4, !tbaa !5
  %1117 = sub nsw i32 %1116, 2
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds float, ptr %1115, i64 %1118
  %1120 = load float, ptr %1119, align 4, !tbaa !16
  %1121 = fsub float %1114, %1120
  br label %1206

1122:                                             ; preds = %1101
  %1123 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1124 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1123, i32 0, i32 8
  %1125 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1124, i64 0, i64 4
  %1126 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1125, i32 0, i32 1
  %1127 = load i32, ptr %1126, align 4, !tbaa !15
  %1128 = icmp eq i32 %1127, 2
  br i1 %1128, label %1129, label %1203

1129:                                             ; preds = %1122
  %1130 = load ptr, ptr %14, align 8, !tbaa !9
  %1131 = load i32, ptr %24, align 4, !tbaa !5
  %1132 = sub nsw i32 %1131, 2
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds float, ptr %1130, i64 %1133
  %1135 = load float, ptr %1134, align 4, !tbaa !16
  %1136 = load ptr, ptr %16, align 8, !tbaa !9
  %1137 = load i32, ptr %24, align 4, !tbaa !5
  %1138 = sub nsw i32 %1137, 2
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds float, ptr %1136, i64 %1139
  %1141 = load float, ptr %1140, align 4, !tbaa !16
  %1142 = load ptr, ptr %13, align 8, !tbaa !9
  %1143 = load i32, ptr %24, align 4, !tbaa !5
  %1144 = sub nsw i32 %1143, 2
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds float, ptr %1142, i64 %1145
  %1147 = load float, ptr %1146, align 4, !tbaa !16
  %1148 = fcmp oge float %1141, %1147
  br i1 %1148, label %1149, label %1156

1149:                                             ; preds = %1129
  %1150 = load ptr, ptr %16, align 8, !tbaa !9
  %1151 = load i32, ptr %24, align 4, !tbaa !5
  %1152 = sub nsw i32 %1151, 2
  %1153 = sext i32 %1152 to i64
  %1154 = getelementptr inbounds float, ptr %1150, i64 %1153
  %1155 = load float, ptr %1154, align 4, !tbaa !16
  br label %1163

1156:                                             ; preds = %1129
  %1157 = load ptr, ptr %13, align 8, !tbaa !9
  %1158 = load i32, ptr %24, align 4, !tbaa !5
  %1159 = sub nsw i32 %1158, 2
  %1160 = sext i32 %1159 to i64
  %1161 = getelementptr inbounds float, ptr %1157, i64 %1160
  %1162 = load float, ptr %1161, align 4, !tbaa !16
  br label %1163

1163:                                             ; preds = %1156, %1149
  %1164 = phi float [ %1155, %1149 ], [ %1162, %1156 ]
  %1165 = fsub float %1135, %1164
  %1166 = load ptr, ptr %16, align 8, !tbaa !9
  %1167 = load i32, ptr %24, align 4, !tbaa !5
  %1168 = sub nsw i32 %1167, 2
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds float, ptr %1166, i64 %1169
  %1171 = load float, ptr %1170, align 4, !tbaa !16
  %1172 = load ptr, ptr %13, align 8, !tbaa !9
  %1173 = load i32, ptr %24, 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 = fcmp oge float %1171, %1177
  br i1 %1178, label %1179, label %1186

1179:                                             ; preds = %1163
  %1180 = load ptr, ptr %13, align 8, !tbaa !9
  %1181 = load i32, ptr %24, align 4, !tbaa !5
  %1182 = sub nsw i32 %1181, 2
  %1183 = sext i32 %1182 to i64
  %1184 = getelementptr inbounds float, ptr %1180, i64 %1183
  %1185 = load float, ptr %1184, align 4, !tbaa !16
  br label %1193

1186:                                             ; preds = %1163
  %1187 = load ptr, ptr %16, align 8, !tbaa !9
  %1188 = load i32, ptr %24, align 4, !tbaa !5
  %1189 = sub nsw i32 %1188, 2
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds float, ptr %1187, i64 %1190
  %1192 = load float, ptr %1191, align 4, !tbaa !16
  br label %1193

1193:                                             ; preds = %1186, %1179
  %1194 = phi float [ %1185, %1179 ], [ %1192, %1186 ]
  %1195 = load ptr, ptr %15, align 8, !tbaa !9
  %1196 = load i32, ptr %24, align 4, !tbaa !5
  %1197 = sub nsw i32 %1196, 2
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds float, ptr %1195, i64 %1198
  %1200 = load float, ptr %1199, align 4, !tbaa !16
  %1201 = fsub float %1194, %1200
  %1202 = fadd float %1165, %1201
  br label %1204

1203:                                             ; preds = %1122
  br label %1204

1204:                                             ; preds = %1203, %1193
  %1205 = phi float [ %1202, %1193 ], [ 0.000000e+00, %1203 ]
  br label %1206

1206:                                             ; preds = %1204, %1108
  %1207 = phi float [ %1121, %1108 ], [ %1205, %1204 ]
  %1208 = fpext float %1207 to double
  br label %1209

1209:                                             ; preds = %1206, %1085
  %1210 = phi double [ %1100, %1085 ], [ %1208, %1206 ]
  br label %1211

1211:                                             ; preds = %1209, %1069
  %1212 = phi double [ %1077, %1069 ], [ %1210, %1209 ]
  %1213 = fmul double %1061, %1212
  %1214 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1215 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1214, i32 0, i32 8
  %1216 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1215, i64 0, i64 4
  %1217 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1216, i32 0, i32 1
  %1218 = load i32, ptr %1217, align 4, !tbaa !15
  %1219 = icmp eq i32 %1218, 2
  %1220 = zext i1 %1219 to i64
  %1221 = select i1 %1219, double 2.000000e+00, double 1.000000e+00
  %1222 = fdiv double %1213, %1221
  %1223 = fcmp ogt double %1056, %1222
  br i1 %1223, label %1224, label %2091

1224:                                             ; preds = %1211
  %1225 = load ptr, ptr %16, align 8, !tbaa !9
  %1226 = load i32, ptr %24, align 4, !tbaa !5
  %1227 = sub nsw i32 %1226, 1
  %1228 = sext i32 %1227 to i64
  %1229 = getelementptr inbounds float, ptr %1225, i64 %1228
  %1230 = load float, ptr %1229, align 4, !tbaa !16
  %1231 = load ptr, ptr %13, align 8, !tbaa !9
  %1232 = load i32, ptr %24, align 4, !tbaa !5
  %1233 = sub nsw i32 %1232, 1
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds float, ptr %1231, i64 %1234
  %1236 = load float, ptr %1235, align 4, !tbaa !16
  %1237 = fsub float %1230, %1236
  %1238 = fpext float %1237 to double
  %1239 = call double @llvm.fabs.f64(double %1238)
  %1240 = load ptr, ptr %16, align 8, !tbaa !9
  %1241 = load i32, ptr %24, align 4, !tbaa !5
  %1242 = sub nsw i32 %1241, 2
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds float, ptr %1240, i64 %1243
  %1245 = load float, ptr %1244, align 4, !tbaa !16
  %1246 = load ptr, ptr %13, align 8, !tbaa !9
  %1247 = load i32, ptr %24, align 4, !tbaa !5
  %1248 = sub nsw i32 %1247, 2
  %1249 = sext i32 %1248 to i64
  %1250 = getelementptr inbounds float, ptr %1246, i64 %1249
  %1251 = load float, ptr %1250, align 4, !tbaa !16
  %1252 = fsub float %1245, %1251
  %1253 = fpext float %1252 to double
  %1254 = call double @llvm.fabs.f64(double %1253)
  %1255 = fcmp olt double %1239, %1254
  br i1 %1255, label %1256, label %2091

1256:                                             ; preds = %1224
  %1257 = load ptr, ptr %13, align 8, !tbaa !9
  %1258 = load i32, ptr %24, align 4, !tbaa !5
  %1259 = sub nsw i32 %1258, 1
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds float, ptr %1257, i64 %1260
  %1262 = load float, ptr %1261, align 4, !tbaa !16
  %1263 = load ptr, ptr %16, align 8, !tbaa !9
  %1264 = load i32, ptr %24, align 4, !tbaa !5
  %1265 = sub nsw i32 %1264, 2
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds float, ptr %1263, i64 %1266
  %1268 = load float, ptr %1267, align 4, !tbaa !16
  %1269 = fcmp ogt float %1262, %1268
  br i1 %1269, label %1270, label %2091

1270:                                             ; preds = %1256
  %1271 = load ptr, ptr %13, align 8, !tbaa !9
  %1272 = load i32, ptr %24, align 4, !tbaa !5
  %1273 = sub nsw i32 %1272, 1
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds float, ptr %1271, i64 %1274
  %1276 = load float, ptr %1275, align 4, !tbaa !16
  %1277 = load ptr, ptr %14, align 8, !tbaa !9
  %1278 = load i32, ptr %24, align 4, !tbaa !5
  %1279 = sub nsw i32 %1278, 2
  %1280 = sext i32 %1279 to i64
  %1281 = getelementptr inbounds float, ptr %1277, i64 %1280
  %1282 = load float, ptr %1281, align 4, !tbaa !16
  %1283 = fcmp ole float %1276, %1282
  br i1 %1283, label %1284, label %2091

1284:                                             ; preds = %1270
  %1285 = load ptr, ptr %15, align 8, !tbaa !9
  %1286 = load i32, ptr %24, align 4, !tbaa !5
  %1287 = sub nsw i32 %1286, 1
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds float, ptr %1285, i64 %1288
  %1290 = load float, ptr %1289, align 4, !tbaa !16
  %1291 = load ptr, ptr %16, align 8, !tbaa !9
  %1292 = load i32, ptr %24, align 4, !tbaa !5
  %1293 = sub nsw i32 %1292, 2
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds float, ptr %1291, i64 %1294
  %1296 = load float, ptr %1295, align 4, !tbaa !16
  %1297 = fcmp olt float %1290, %1296
  br i1 %1297, label %1298, label %2091

1298:                                             ; preds = %1284
  %1299 = load ptr, ptr %15, align 8, !tbaa !9
  %1300 = load i32, ptr %24, align 4, !tbaa !5
  %1301 = sub nsw i32 %1300, 1
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds float, ptr %1299, i64 %1302
  %1304 = load float, ptr %1303, align 4, !tbaa !16
  %1305 = load ptr, ptr %15, align 8, !tbaa !9
  %1306 = load i32, ptr %24, align 4, !tbaa !5
  %1307 = sub nsw i32 %1306, 2
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds float, ptr %1305, i64 %1308
  %1310 = load float, ptr %1309, align 4, !tbaa !16
  %1311 = fcmp oge float %1304, %1310
  br i1 %1311, label %1312, label %2091

1312:                                             ; preds = %1298
  %1313 = load ptr, ptr %16, align 8, !tbaa !9
  %1314 = load i32, ptr %24, align 4, !tbaa !5
  %1315 = sub nsw i32 %1314, 1
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds float, ptr %1313, i64 %1316
  %1318 = load float, ptr %1317, align 4, !tbaa !16
  %1319 = load ptr, ptr %13, align 8, !tbaa !9
  %1320 = load i32, ptr %24, align 4, !tbaa !5
  %1321 = sub nsw i32 %1320, 1
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds float, ptr %1319, i64 %1322
  %1324 = load float, ptr %1323, align 4, !tbaa !16
  %1325 = fcmp oge float %1318, %1324
  br i1 %1325, label %1326, label %1333

1326:                                             ; preds = %1312
  %1327 = load ptr, ptr %13, align 8, !tbaa !9
  %1328 = load i32, ptr %24, align 4, !tbaa !5
  %1329 = sub nsw i32 %1328, 1
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds float, ptr %1327, i64 %1330
  %1332 = load float, ptr %1331, align 4, !tbaa !16
  br label %1340

1333:                                             ; preds = %1312
  %1334 = load ptr, ptr %16, align 8, !tbaa !9
  %1335 = load i32, ptr %24, align 4, !tbaa !5
  %1336 = sub nsw i32 %1335, 1
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds float, ptr %1334, i64 %1337
  %1339 = load float, ptr %1338, align 4, !tbaa !16
  br label %1340

1340:                                             ; preds = %1333, %1326
  %1341 = phi float [ %1332, %1326 ], [ %1339, %1333 ]
  %1342 = load ptr, ptr %15, align 8, !tbaa !9
  %1343 = load i32, ptr %24, align 4, !tbaa !5
  %1344 = sub nsw i32 %1343, 1
  %1345 = sext i32 %1344 to i64
  %1346 = getelementptr inbounds float, ptr %1342, i64 %1345
  %1347 = load float, ptr %1346, align 4, !tbaa !16
  %1348 = fsub float %1341, %1347
  %1349 = fpext float %1348 to double
  %1350 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1351 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1350, i32 0, i32 8
  %1352 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1351, i64 0, i64 7
  %1353 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1352, i32 0, i32 3
  %1354 = load double, ptr %1353, align 8, !tbaa !23
  %1355 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1356 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1355, i32 0, i32 8
  %1357 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1356, i64 0, i64 7
  %1358 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1357, i32 0, i32 2
  %1359 = load i32, ptr %1358, align 8, !tbaa !13
  %1360 = sitofp i32 %1359 to double
  %1361 = fcmp une double %1360, 0.000000e+00
  br i1 %1361, label %1362, label %1372

1362:                                             ; preds = %1340
  %1363 = getelementptr inbounds [2 x double], ptr %23, i64 0, i64 1
  %1364 = load double, ptr %1363, align 8, !tbaa !11
  %1365 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1366 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1365, i32 0, i32 8
  %1367 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1366, i64 0, i64 7
  %1368 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1367, i32 0, i32 2
  %1369 = load i32, ptr %1368, align 8, !tbaa !13
  %1370 = sitofp i32 %1369 to double
  %1371 = fdiv double %1364, %1370
  br label %1505

1372:                                             ; preds = %1340
  %1373 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1374 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1373, i32 0, i32 8
  %1375 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1374, i64 0, i64 7
  %1376 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1375, i32 0, i32 1
  %1377 = load i32, ptr %1376, align 4, !tbaa !15
  %1378 = icmp eq i32 %1377, 0
  br i1 %1378, label %1379, label %1395

1379:                                             ; preds = %1372
  %1380 = load ptr, ptr %16, align 8, !tbaa !9
  %1381 = load i32, ptr %24, align 4, !tbaa !5
  %1382 = sub nsw i32 %1381, 1
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds float, ptr %1380, i64 %1383
  %1385 = load float, ptr %1384, align 4, !tbaa !16
  %1386 = load ptr, ptr %13, align 8, !tbaa !9
  %1387 = load i32, ptr %24, align 4, !tbaa !5
  %1388 = sub nsw i32 %1387, 1
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds float, ptr %1386, i64 %1389
  %1391 = load float, ptr %1390, align 4, !tbaa !16
  %1392 = fsub float %1385, %1391
  %1393 = fpext float %1392 to double
  %1394 = call double @llvm.fabs.f64(double %1393)
  br label %1503

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

1402:                                             ; preds = %1395
  %1403 = load ptr, ptr %14, align 8, !tbaa !9
  %1404 = load i32, ptr %24, align 4, !tbaa !5
  %1405 = sub nsw i32 %1404, 1
  %1406 = sext i32 %1405 to i64
  %1407 = getelementptr inbounds float, ptr %1403, i64 %1406
  %1408 = load float, ptr %1407, align 4, !tbaa !16
  %1409 = load ptr, ptr %15, align 8, !tbaa !9
  %1410 = load i32, ptr %24, align 4, !tbaa !5
  %1411 = sub nsw i32 %1410, 1
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds float, ptr %1409, i64 %1412
  %1414 = load float, ptr %1413, align 4, !tbaa !16
  %1415 = fsub float %1408, %1414
  br label %1500

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

1423:                                             ; preds = %1416
  %1424 = load ptr, ptr %14, align 8, !tbaa !9
  %1425 = load i32, ptr %24, align 4, !tbaa !5
  %1426 = sub nsw i32 %1425, 1
  %1427 = sext i32 %1426 to i64
  %1428 = getelementptr inbounds float, ptr %1424, i64 %1427
  %1429 = load float, ptr %1428, align 4, !tbaa !16
  %1430 = load ptr, ptr %16, align 8, !tbaa !9
  %1431 = load i32, ptr %24, align 4, !tbaa !5
  %1432 = sub nsw i32 %1431, 1
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds float, ptr %1430, i64 %1433
  %1435 = load float, ptr %1434, align 4, !tbaa !16
  %1436 = load ptr, ptr %13, align 8, !tbaa !9
  %1437 = load i32, ptr %24, align 4, !tbaa !5
  %1438 = sub nsw i32 %1437, 1
  %1439 = sext i32 %1438 to i64
  %1440 = getelementptr inbounds float, ptr %1436, i64 %1439
  %1441 = load float, ptr %1440, align 4, !tbaa !16
  %1442 = fcmp oge float %1435, %1441
  br i1 %1442, label %1443, label %1450

1443:                                             ; preds = %1423
  %1444 = load ptr, ptr %16, align 8, !tbaa !9
  %1445 = load i32, ptr %24, align 4, !tbaa !5
  %1446 = sub nsw i32 %1445, 1
  %1447 = sext i32 %1446 to i64
  %1448 = getelementptr inbounds float, ptr %1444, i64 %1447
  %1449 = load float, ptr %1448, align 4, !tbaa !16
  br label %1457

1450:                                             ; preds = %1423
  %1451 = load ptr, ptr %13, align 8, !tbaa !9
  %1452 = load i32, ptr %24, align 4, !tbaa !5
  %1453 = sub nsw i32 %1452, 1
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds float, ptr %1451, i64 %1454
  %1456 = load float, ptr %1455, align 4, !tbaa !16
  br label %1457

1457:                                             ; preds = %1450, %1443
  %1458 = phi float [ %1449, %1443 ], [ %1456, %1450 ]
  %1459 = fsub float %1429, %1458
  %1460 = load ptr, ptr %16, align 8, !tbaa !9
  %1461 = load i32, ptr %24, align 4, !tbaa !5
  %1462 = sub nsw i32 %1461, 1
  %1463 = sext i32 %1462 to i64
  %1464 = getelementptr inbounds float, ptr %1460, i64 %1463
  %1465 = load float, ptr %1464, align 4, !tbaa !16
  %1466 = load ptr, ptr %13, align 8, !tbaa !9
  %1467 = load i32, ptr %24, align 4, !tbaa !5
  %1468 = sub nsw i32 %1467, 1
  %1469 = sext i32 %1468 to i64
  %1470 = getelementptr inbounds float, ptr %1466, i64 %1469
  %1471 = load float, ptr %1470, align 4, !tbaa !16
  %1472 = fcmp oge float %1465, %1471
  br i1 %1472, label %1473, label %1480

1473:                                             ; preds = %1457
  %1474 = load ptr, ptr %13, align 8, !tbaa !9
  %1475 = load i32, ptr %24, align 4, !tbaa !5
  %1476 = sub nsw i32 %1475, 1
  %1477 = sext i32 %1476 to i64
  %1478 = getelementptr inbounds float, ptr %1474, i64 %1477
  %1479 = load float, ptr %1478, align 4, !tbaa !16
  br label %1487

1480:                                             ; preds = %1457
  %1481 = load ptr, ptr %16, align 8, !tbaa !9
  %1482 = load i32, ptr %24, align 4, !tbaa !5
  %1483 = sub nsw i32 %1482, 1
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds float, ptr %1481, i64 %1484
  %1486 = load float, ptr %1485, align 4, !tbaa !16
  br label %1487

1487:                                             ; preds = %1480, %1473
  %1488 = phi float [ %1479, %1473 ], [ %1486, %1480 ]
  %1489 = load ptr, ptr %15, align 8, !tbaa !9
  %1490 = load i32, ptr %24, align 4, !tbaa !5
  %1491 = sub nsw i32 %1490, 1
  %1492 = sext i32 %1491 to i64
  %1493 = getelementptr inbounds float, ptr %1489, i64 %1492
  %1494 = load float, ptr %1493, align 4, !tbaa !16
  %1495 = fsub float %1488, %1494
  %1496 = fadd float %1459, %1495
  br label %1498

1497:                                             ; preds = %1416
  br label %1498

1498:                                             ; preds = %1497, %1487
  %1499 = phi float [ %1496, %1487 ], [ 0.000000e+00, %1497 ]
  br label %1500

1500:                                             ; preds = %1498, %1402
  %1501 = phi float [ %1415, %1402 ], [ %1499, %1498 ]
  %1502 = fpext float %1501 to double
  br label %1503

1503:                                             ; preds = %1500, %1379
  %1504 = phi double [ %1394, %1379 ], [ %1502, %1500 ]
  br label %1505

1505:                                             ; preds = %1503, %1362
  %1506 = phi double [ %1371, %1362 ], [ %1504, %1503 ]
  %1507 = fmul double %1354, %1506
  %1508 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1509 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1508, i32 0, i32 8
  %1510 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1509, i64 0, i64 7
  %1511 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1510, i32 0, i32 1
  %1512 = load i32, ptr %1511, align 4, !tbaa !15
  %1513 = icmp eq i32 %1512, 2
  %1514 = zext i1 %1513 to i64
  %1515 = select i1 %1513, double 2.000000e+00, double 1.000000e+00
  %1516 = fdiv double %1507, %1515
  %1517 = fcmp ogt double %1349, %1516
  br i1 %1517, label %1518, label %2091

1518:                                             ; preds = %1505
  %1519 = load ptr, ptr %16, align 8, !tbaa !9
  %1520 = load i32, ptr %24, align 4, !tbaa !5
  %1521 = sext i32 %1520 to i64
  %1522 = getelementptr inbounds float, ptr %1519, i64 %1521
  %1523 = load float, ptr %1522, align 4, !tbaa !16
  %1524 = load ptr, ptr %13, align 8, !tbaa !9
  %1525 = load i32, ptr %24, align 4, !tbaa !5
  %1526 = sext i32 %1525 to i64
  %1527 = getelementptr inbounds float, ptr %1524, i64 %1526
  %1528 = load float, ptr %1527, align 4, !tbaa !16
  %1529 = fsub float %1523, %1528
  %1530 = fpext float %1529 to double
  %1531 = call double @llvm.fabs.f64(double %1530)
  %1532 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1533 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1532, i32 0, i32 8
  %1534 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1533, i64 0, i64 2
  %1535 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1534, i32 0, i32 3
  %1536 = load double, ptr %1535, align 8, !tbaa !23
  %1537 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1538 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1537, i32 0, i32 8
  %1539 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1538, i64 0, i64 2
  %1540 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1539, i32 0, i32 2
  %1541 = load i32, ptr %1540, align 8, !tbaa !13
  %1542 = sitofp i32 %1541 to double
  %1543 = fcmp une double %1542, 0.000000e+00
  br i1 %1543, label %1544, label %1553

1544:                                             ; preds = %1518
  %1545 = load double, ptr %21, align 8, !tbaa !11
  %1546 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1547 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1546, i32 0, i32 8
  %1548 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1547, i64 0, i64 2
  %1549 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1548, i32 0, i32 2
  %1550 = load i32, ptr %1549, align 8, !tbaa !13
  %1551 = sitofp i32 %1550 to double
  %1552 = fdiv double %1545, %1551
  br label %1672

1553:                                             ; preds = %1518
  %1554 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1555 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1554, i32 0, i32 8
  %1556 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1555, i64 0, i64 2
  %1557 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1556, i32 0, i32 1
  %1558 = load i32, ptr %1557, align 4, !tbaa !15
  %1559 = icmp eq i32 %1558, 0
  br i1 %1559, label %1560, label %1574

1560:                                             ; preds = %1553
  %1561 = load ptr, ptr %16, align 8, !tbaa !9
  %1562 = load i32, ptr %24, align 4, !tbaa !5
  %1563 = sext i32 %1562 to i64
  %1564 = getelementptr inbounds float, ptr %1561, i64 %1563
  %1565 = load float, ptr %1564, align 4, !tbaa !16
  %1566 = load ptr, ptr %13, align 8, !tbaa !9
  %1567 = load i32, ptr %24, align 4, !tbaa !5
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds float, ptr %1566, i64 %1568
  %1570 = load float, ptr %1569, align 4, !tbaa !16
  %1571 = fsub float %1565, %1570
  %1572 = fpext float %1571 to double
  %1573 = call double @llvm.fabs.f64(double %1572)
  br label %1670

1574:                                             ; preds = %1553
  %1575 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1576 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1575, i32 0, i32 8
  %1577 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1576, i64 0, i64 2
  %1578 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1577, i32 0, i32 1
  %1579 = load i32, ptr %1578, align 4, !tbaa !15
  %1580 = icmp eq i32 %1579, 1
  br i1 %1580, label %1581, label %1593

1581:                                             ; preds = %1574
  %1582 = load ptr, ptr %14, align 8, !tbaa !9
  %1583 = load i32, ptr %24, align 4, !tbaa !5
  %1584 = sext i32 %1583 to i64
  %1585 = getelementptr inbounds float, ptr %1582, i64 %1584
  %1586 = load float, ptr %1585, align 4, !tbaa !16
  %1587 = load ptr, ptr %15, align 8, !tbaa !9
  %1588 = load i32, ptr %24, align 4, !tbaa !5
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds float, ptr %1587, i64 %1589
  %1591 = load float, ptr %1590, align 4, !tbaa !16
  %1592 = fsub float %1586, %1591
  br label %1667

1593:                                             ; preds = %1574
  %1594 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1595 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1594, i32 0, i32 8
  %1596 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1595, i64 0, i64 2
  %1597 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1596, i32 0, i32 1
  %1598 = load i32, ptr %1597, align 4, !tbaa !15
  %1599 = icmp eq i32 %1598, 2
  br i1 %1599, label %1600, label %1664

1600:                                             ; preds = %1593
  %1601 = load ptr, ptr %14, align 8, !tbaa !9
  %1602 = load i32, ptr %24, align 4, !tbaa !5
  %1603 = sext i32 %1602 to i64
  %1604 = getelementptr inbounds float, ptr %1601, i64 %1603
  %1605 = load float, ptr %1604, align 4, !tbaa !16
  %1606 = load ptr, ptr %16, align 8, !tbaa !9
  %1607 = load i32, ptr %24, align 4, !tbaa !5
  %1608 = sext i32 %1607 to i64
  %1609 = getelementptr inbounds float, ptr %1606, i64 %1608
  %1610 = load float, ptr %1609, align 4, !tbaa !16
  %1611 = load ptr, ptr %13, align 8, !tbaa !9
  %1612 = load i32, ptr %24, align 4, !tbaa !5
  %1613 = sext i32 %1612 to i64
  %1614 = getelementptr inbounds float, ptr %1611, i64 %1613
  %1615 = load float, ptr %1614, align 4, !tbaa !16
  %1616 = fcmp oge float %1610, %1615
  br i1 %1616, label %1617, label %1623

1617:                                             ; preds = %1600
  %1618 = load ptr, ptr %16, align 8, !tbaa !9
  %1619 = load i32, ptr %24, align 4, !tbaa !5
  %1620 = sext i32 %1619 to i64
  %1621 = getelementptr inbounds float, ptr %1618, i64 %1620
  %1622 = load float, ptr %1621, align 4, !tbaa !16
  br label %1629

1623:                                             ; preds = %1600
  %1624 = load ptr, ptr %13, align 8, !tbaa !9
  %1625 = load i32, ptr %24, align 4, !tbaa !5
  %1626 = sext i32 %1625 to i64
  %1627 = getelementptr inbounds float, ptr %1624, i64 %1626
  %1628 = load float, ptr %1627, align 4, !tbaa !16
  br label %1629

1629:                                             ; preds = %1623, %1617
  %1630 = phi float [ %1622, %1617 ], [ %1628, %1623 ]
  %1631 = fsub float %1605, %1630
  %1632 = load ptr, ptr %16, align 8, !tbaa !9
  %1633 = load i32, ptr %24, align 4, !tbaa !5
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds float, ptr %1632, i64 %1634
  %1636 = load float, ptr %1635, align 4, !tbaa !16
  %1637 = load ptr, ptr %13, align 8, !tbaa !9
  %1638 = load i32, ptr %24, align 4, !tbaa !5
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds float, ptr %1637, i64 %1639
  %1641 = load float, ptr %1640, align 4, !tbaa !16
  %1642 = fcmp oge float %1636, %1641
  br i1 %1642, label %1643, label %1649

1643:                                             ; preds = %1629
  %1644 = load ptr, ptr %13, align 8, !tbaa !9
  %1645 = load i32, ptr %24, align 4, !tbaa !5
  %1646 = sext i32 %1645 to i64
  %1647 = getelementptr inbounds float, ptr %1644, i64 %1646
  %1648 = load float, ptr %1647, align 4, !tbaa !16
  br label %1655

1649:                                             ; preds = %1629
  %1650 = load ptr, ptr %16, align 8, !tbaa !9
  %1651 = load i32, ptr %24, align 4, !tbaa !5
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds float, ptr %1650, i64 %1652
  %1654 = load float, ptr %1653, align 4, !tbaa !16
  br label %1655

1655:                                             ; preds = %1649, %1643
  %1656 = phi float [ %1648, %1643 ], [ %1654, %1649 ]
  %1657 = load ptr, ptr %15, align 8, !tbaa !9
  %1658 = load i32, ptr %24, 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 = fsub float %1656, %1661
  %1663 = fadd float %1631, %1662
  br label %1665

1664:                                             ; preds = %1593
  br label %1665

1665:                                             ; preds = %1664, %1655
  %1666 = phi float [ %1663, %1655 ], [ 0.000000e+00, %1664 ]
  br label %1667

1667:                                             ; preds = %1665, %1581
  %1668 = phi float [ %1592, %1581 ], [ %1666, %1665 ]
  %1669 = fpext float %1668 to double
  br label %1670

1670:                                             ; preds = %1667, %1560
  %1671 = phi double [ %1573, %1560 ], [ %1669, %1667 ]
  br label %1672

1672:                                             ; preds = %1670, %1544
  %1673 = phi double [ %1552, %1544 ], [ %1671, %1670 ]
  %1674 = fmul double %1536, %1673
  %1675 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1676 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1675, i32 0, i32 8
  %1677 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1676, i64 0, i64 2
  %1678 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1677, i32 0, i32 1
  %1679 = load i32, ptr %1678, align 4, !tbaa !15
  %1680 = icmp eq i32 %1679, 2
  %1681 = zext i1 %1680 to i64
  %1682 = select i1 %1680, double 2.000000e+00, double 1.000000e+00
  %1683 = fdiv double %1674, %1682
  %1684 = fcmp olt double %1531, %1683
  br i1 %1684, label %1685, label %2091

1685:                                             ; preds = %1672
  %1686 = load ptr, ptr %16, align 8, !tbaa !9
  %1687 = load i32, ptr %24, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %1692 = load i32, ptr %24, align 4, !tbaa !5
  %1693 = sext i32 %1692 to i64
  %1694 = getelementptr inbounds float, ptr %1691, i64 %1693
  %1695 = load float, ptr %1694, align 4, !tbaa !16
  %1696 = fcmp oge float %1690, %1695
  br i1 %1696, label %1697, label %1703

1697:                                             ; preds = %1685
  %1698 = load ptr, ptr %13, align 8, !tbaa !9
  %1699 = load i32, ptr %24, align 4, !tbaa !5
  %1700 = sext i32 %1699 to i64
  %1701 = getelementptr inbounds float, ptr %1698, i64 %1700
  %1702 = load float, ptr %1701, align 4, !tbaa !16
  br label %1709

1703:                                             ; preds = %1685
  %1704 = load ptr, ptr %16, align 8, !tbaa !9
  %1705 = load i32, ptr %24, align 4, !tbaa !5
  %1706 = sext i32 %1705 to i64
  %1707 = getelementptr inbounds float, ptr %1704, i64 %1706
  %1708 = load float, ptr %1707, align 4, !tbaa !16
  br label %1709

1709:                                             ; preds = %1703, %1697
  %1710 = phi float [ %1702, %1697 ], [ %1708, %1703 ]
  %1711 = load ptr, ptr %15, align 8, !tbaa !9
  %1712 = load i32, ptr %24, align 4, !tbaa !5
  %1713 = sext i32 %1712 to i64
  %1714 = getelementptr inbounds float, ptr %1711, i64 %1713
  %1715 = load float, ptr %1714, align 4, !tbaa !16
  %1716 = fsub float %1710, %1715
  %1717 = fpext float %1716 to double
  %1718 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1719 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1718, i32 0, i32 8
  %1720 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1719, i64 0, i64 7
  %1721 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1720, i32 0, i32 3
  %1722 = load double, ptr %1721, align 8, !tbaa !23
  %1723 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1724 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1723, i32 0, i32 8
  %1725 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1724, i64 0, i64 7
  %1726 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1725, i32 0, i32 2
  %1727 = load i32, ptr %1726, align 8, !tbaa !13
  %1728 = sitofp i32 %1727 to double
  %1729 = fcmp une double %1728, 0.000000e+00
  br i1 %1729, label %1730, label %1740

1730:                                             ; preds = %1709
  %1731 = getelementptr inbounds [2 x double], ptr %23, i64 0, i64 0
  %1732 = load double, ptr %1731, align 16, !tbaa !11
  %1733 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1734 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1733, i32 0, i32 8
  %1735 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1734, i64 0, i64 7
  %1736 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1735, i32 0, i32 2
  %1737 = load i32, ptr %1736, align 8, !tbaa !13
  %1738 = sitofp i32 %1737 to double
  %1739 = fdiv double %1732, %1738
  br label %1859

1740:                                             ; preds = %1709
  %1741 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1742 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1741, i32 0, i32 8
  %1743 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1742, i64 0, i64 7
  %1744 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1743, i32 0, i32 1
  %1745 = load i32, ptr %1744, align 4, !tbaa !15
  %1746 = icmp eq i32 %1745, 0
  br i1 %1746, label %1747, label %1761

1747:                                             ; preds = %1740
  %1748 = load ptr, ptr %16, align 8, !tbaa !9
  %1749 = load i32, ptr %24, align 4, !tbaa !5
  %1750 = sext i32 %1749 to i64
  %1751 = getelementptr inbounds float, ptr %1748, i64 %1750
  %1752 = load float, ptr %1751, align 4, !tbaa !16
  %1753 = load ptr, ptr %13, align 8, !tbaa !9
  %1754 = load i32, ptr %24, align 4, !tbaa !5
  %1755 = sext i32 %1754 to i64
  %1756 = getelementptr inbounds float, ptr %1753, i64 %1755
  %1757 = load float, ptr %1756, align 4, !tbaa !16
  %1758 = fsub float %1752, %1757
  %1759 = fpext float %1758 to double
  %1760 = call double @llvm.fabs.f64(double %1759)
  br label %1857

1761:                                             ; preds = %1740
  %1762 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1763 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1762, i32 0, i32 8
  %1764 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1763, i64 0, i64 7
  %1765 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1764, i32 0, i32 1
  %1766 = load i32, ptr %1765, align 4, !tbaa !15
  %1767 = icmp eq i32 %1766, 1
  br i1 %1767, label %1768, label %1780

1768:                                             ; preds = %1761
  %1769 = load ptr, ptr %14, align 8, !tbaa !9
  %1770 = load i32, ptr %24, align 4, !tbaa !5
  %1771 = sext i32 %1770 to i64
  %1772 = getelementptr inbounds float, ptr %1769, i64 %1771
  %1773 = load float, ptr %1772, align 4, !tbaa !16
  %1774 = load ptr, ptr %15, align 8, !tbaa !9
  %1775 = load i32, ptr %24, align 4, !tbaa !5
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds float, ptr %1774, i64 %1776
  %1778 = load float, ptr %1777, align 4, !tbaa !16
  %1779 = fsub float %1773, %1778
  br label %1854

1780:                                             ; preds = %1761
  %1781 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1782 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1781, i32 0, i32 8
  %1783 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1782, i64 0, i64 7
  %1784 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1783, i32 0, i32 1
  %1785 = load i32, ptr %1784, align 4, !tbaa !15
  %1786 = icmp eq i32 %1785, 2
  br i1 %1786, label %1787, label %1851

1787:                                             ; preds = %1780
  %1788 = load ptr, ptr %14, align 8, !tbaa !9
  %1789 = load i32, ptr %24, align 4, !tbaa !5
  %1790 = sext i32 %1789 to i64
  %1791 = getelementptr inbounds float, ptr %1788, i64 %1790
  %1792 = load float, ptr %1791, align 4, !tbaa !16
  %1793 = load ptr, ptr %16, align 8, !tbaa !9
  %1794 = load i32, ptr %24, align 4, !tbaa !5
  %1795 = sext i32 %1794 to i64
  %1796 = getelementptr inbounds float, ptr %1793, i64 %1795
  %1797 = load float, ptr %1796, align 4, !tbaa !16
  %1798 = load ptr, ptr %13, align 8, !tbaa !9
  %1799 = load i32, ptr %24, align 4, !tbaa !5
  %1800 = sext i32 %1799 to i64
  %1801 = getelementptr inbounds float, ptr %1798, i64 %1800
  %1802 = load float, ptr %1801, align 4, !tbaa !16
  %1803 = fcmp oge float %1797, %1802
  br i1 %1803, label %1804, label %1810

1804:                                             ; preds = %1787
  %1805 = load ptr, ptr %16, align 8, !tbaa !9
  %1806 = load i32, ptr %24, align 4, !tbaa !5
  %1807 = sext i32 %1806 to i64
  %1808 = getelementptr inbounds float, ptr %1805, i64 %1807
  %1809 = load float, ptr %1808, align 4, !tbaa !16
  br label %1816

1810:                                             ; preds = %1787
  %1811 = load ptr, ptr %13, align 8, !tbaa !9
  %1812 = load i32, ptr %24, align 4, !tbaa !5
  %1813 = sext i32 %1812 to i64
  %1814 = getelementptr inbounds float, ptr %1811, i64 %1813
  %1815 = load float, ptr %1814, align 4, !tbaa !16
  br label %1816

1816:                                             ; preds = %1810, %1804
  %1817 = phi float [ %1809, %1804 ], [ %1815, %1810 ]
  %1818 = fsub float %1792, %1817
  %1819 = load ptr, ptr %16, align 8, !tbaa !9
  %1820 = load i32, ptr %24, align 4, !tbaa !5
  %1821 = sext i32 %1820 to i64
  %1822 = getelementptr inbounds float, ptr %1819, i64 %1821
  %1823 = load float, ptr %1822, align 4, !tbaa !16
  %1824 = load ptr, ptr %13, align 8, !tbaa !9
  %1825 = load i32, ptr %24, align 4, !tbaa !5
  %1826 = sext i32 %1825 to i64
  %1827 = getelementptr inbounds float, ptr %1824, i64 %1826
  %1828 = load float, ptr %1827, align 4, !tbaa !16
  %1829 = fcmp oge float %1823, %1828
  br i1 %1829, label %1830, label %1836

1830:                                             ; preds = %1816
  %1831 = load ptr, ptr %13, align 8, !tbaa !9
  %1832 = load i32, ptr %24, align 4, !tbaa !5
  %1833 = sext i32 %1832 to i64
  %1834 = getelementptr inbounds float, ptr %1831, i64 %1833
  %1835 = load float, ptr %1834, align 4, !tbaa !16
  br label %1842

1836:                                             ; preds = %1816
  %1837 = load ptr, ptr %16, align 8, !tbaa !9
  %1838 = load i32, ptr %24, align 4, !tbaa !5
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds float, ptr %1837, i64 %1839
  %1841 = load float, ptr %1840, align 4, !tbaa !16
  br label %1842

1842:                                             ; preds = %1836, %1830
  %1843 = phi float [ %1835, %1830 ], [ %1841, %1836 ]
  %1844 = load ptr, ptr %15, align 8, !tbaa !9
  %1845 = load i32, ptr %24, align 4, !tbaa !5
  %1846 = sext i32 %1845 to i64
  %1847 = getelementptr inbounds float, ptr %1844, i64 %1846
  %1848 = load float, ptr %1847, align 4, !tbaa !16
  %1849 = fsub float %1843, %1848
  %1850 = fadd float %1818, %1849
  br label %1852

1851:                                             ; preds = %1780
  br label %1852

1852:                                             ; preds = %1851, %1842
  %1853 = phi float [ %1850, %1842 ], [ 0.000000e+00, %1851 ]
  br label %1854

1854:                                             ; preds = %1852, %1768
  %1855 = phi float [ %1779, %1768 ], [ %1853, %1852 ]
  %1856 = fpext float %1855 to double
  br label %1857

1857:                                             ; preds = %1854, %1747
  %1858 = phi double [ %1760, %1747 ], [ %1856, %1854 ]
  br label %1859

1859:                                             ; preds = %1857, %1730
  %1860 = phi double [ %1739, %1730 ], [ %1858, %1857 ]
  %1861 = fmul double %1722, %1860
  %1862 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1863 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1862, i32 0, i32 8
  %1864 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1863, i64 0, i64 7
  %1865 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1864, i32 0, i32 1
  %1866 = load i32, ptr %1865, align 4, !tbaa !15
  %1867 = icmp eq i32 %1866, 2
  %1868 = zext i1 %1867 to i64
  %1869 = select i1 %1867, double 2.000000e+00, double 1.000000e+00
  %1870 = fdiv double %1861, %1869
  %1871 = fcmp olt double %1717, %1870
  br i1 %1871, label %1872, label %2091

1872:                                             ; preds = %1859
  %1873 = load ptr, ptr %14, align 8, !tbaa !9
  %1874 = load i32, ptr %24, align 4, !tbaa !5
  %1875 = sext i32 %1874 to i64
  %1876 = getelementptr inbounds float, ptr %1873, i64 %1875
  %1877 = load float, ptr %1876, align 4, !tbaa !16
  %1878 = load ptr, ptr %16, align 8, !tbaa !9
  %1879 = load i32, ptr %24, align 4, !tbaa !5
  %1880 = sext i32 %1879 to i64
  %1881 = getelementptr inbounds float, ptr %1878, i64 %1880
  %1882 = load float, ptr %1881, align 4, !tbaa !16
  %1883 = load ptr, ptr %13, align 8, !tbaa !9
  %1884 = load i32, ptr %24, align 4, !tbaa !5
  %1885 = sext i32 %1884 to i64
  %1886 = getelementptr inbounds float, ptr %1883, i64 %1885
  %1887 = load float, ptr %1886, align 4, !tbaa !16
  %1888 = fcmp oge float %1882, %1887
  br i1 %1888, label %1889, label %1895

1889:                                             ; preds = %1872
  %1890 = load ptr, ptr %16, align 8, !tbaa !9
  %1891 = load i32, ptr %24, align 4, !tbaa !5
  %1892 = sext i32 %1891 to i64
  %1893 = getelementptr inbounds float, ptr %1890, i64 %1892
  %1894 = load float, ptr %1893, align 4, !tbaa !16
  br label %1901

1895:                                             ; preds = %1872
  %1896 = load ptr, ptr %13, align 8, !tbaa !9
  %1897 = load i32, ptr %24, 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
  br label %1901

1901:                                             ; preds = %1895, %1889
  %1902 = phi float [ %1894, %1889 ], [ %1900, %1895 ]
  %1903 = fsub float %1877, %1902
  %1904 = fpext float %1903 to double
  %1905 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1906 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1905, i32 0, i32 8
  %1907 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1906, i64 0, i64 7
  %1908 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1907, i32 0, i32 3
  %1909 = load double, ptr %1908, align 8, !tbaa !23
  %1910 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1911 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1910, i32 0, i32 8
  %1912 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1911, i64 0, i64 7
  %1913 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1912, i32 0, i32 2
  %1914 = load i32, ptr %1913, align 8, !tbaa !13
  %1915 = sitofp i32 %1914 to double
  %1916 = fcmp une double %1915, 0.000000e+00
  br i1 %1916, label %1917, label %1927

1917:                                             ; preds = %1901
  %1918 = getelementptr inbounds [2 x double], ptr %23, i64 0, i64 0
  %1919 = load double, ptr %1918, align 16, !tbaa !11
  %1920 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1921 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1920, i32 0, i32 8
  %1922 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1921, i64 0, i64 7
  %1923 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1922, i32 0, i32 2
  %1924 = load i32, ptr %1923, align 8, !tbaa !13
  %1925 = sitofp i32 %1924 to double
  %1926 = fdiv double %1919, %1925
  br label %2046

1927:                                             ; preds = %1901
  %1928 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1929 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1928, i32 0, i32 8
  %1930 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1929, i64 0, i64 7
  %1931 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1930, i32 0, i32 1
  %1932 = load i32, ptr %1931, align 4, !tbaa !15
  %1933 = icmp eq i32 %1932, 0
  br i1 %1933, label %1934, label %1948

1934:                                             ; preds = %1927
  %1935 = load ptr, ptr %16, align 8, !tbaa !9
  %1936 = load i32, ptr %24, align 4, !tbaa !5
  %1937 = sext i32 %1936 to i64
  %1938 = getelementptr inbounds float, ptr %1935, i64 %1937
  %1939 = load float, ptr %1938, align 4, !tbaa !16
  %1940 = load ptr, ptr %13, align 8, !tbaa !9
  %1941 = load i32, ptr %24, align 4, !tbaa !5
  %1942 = sext i32 %1941 to i64
  %1943 = getelementptr inbounds float, ptr %1940, i64 %1942
  %1944 = load float, ptr %1943, align 4, !tbaa !16
  %1945 = fsub float %1939, %1944
  %1946 = fpext float %1945 to double
  %1947 = call double @llvm.fabs.f64(double %1946)
  br label %2044

1948:                                             ; preds = %1927
  %1949 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1950 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1949, i32 0, i32 8
  %1951 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1950, i64 0, i64 7
  %1952 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1951, i32 0, i32 1
  %1953 = load i32, ptr %1952, align 4, !tbaa !15
  %1954 = icmp eq i32 %1953, 1
  br i1 %1954, label %1955, label %1967

1955:                                             ; preds = %1948
  %1956 = load ptr, ptr %14, align 8, !tbaa !9
  %1957 = load i32, ptr %24, align 4, !tbaa !5
  %1958 = sext i32 %1957 to i64
  %1959 = getelementptr inbounds float, ptr %1956, i64 %1958
  %1960 = load float, ptr %1959, align 4, !tbaa !16
  %1961 = load ptr, ptr %15, align 8, !tbaa !9
  %1962 = load i32, ptr %24, align 4, !tbaa !5
  %1963 = sext i32 %1962 to i64
  %1964 = getelementptr inbounds float, ptr %1961, i64 %1963
  %1965 = load float, ptr %1964, align 4, !tbaa !16
  %1966 = fsub float %1960, %1965
  br label %2041

1967:                                             ; preds = %1948
  %1968 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1969 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1968, i32 0, i32 8
  %1970 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1969, i64 0, i64 7
  %1971 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1970, i32 0, i32 1
  %1972 = load i32, ptr %1971, align 4, !tbaa !15
  %1973 = icmp eq i32 %1972, 2
  br i1 %1973, label %1974, label %2038

1974:                                             ; preds = %1967
  %1975 = load ptr, ptr %14, align 8, !tbaa !9
  %1976 = load i32, ptr %24, align 4, !tbaa !5
  %1977 = sext i32 %1976 to i64
  %1978 = getelementptr inbounds float, ptr %1975, i64 %1977
  %1979 = load float, ptr %1978, align 4, !tbaa !16
  %1980 = load ptr, ptr %16, align 8, !tbaa !9
  %1981 = load i32, ptr %24, align 4, !tbaa !5
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds float, ptr %1980, i64 %1982
  %1984 = load float, ptr %1983, align 4, !tbaa !16
  %1985 = load ptr, ptr %13, align 8, !tbaa !9
  %1986 = load i32, ptr %24, align 4, !tbaa !5
  %1987 = sext i32 %1986 to i64
  %1988 = getelementptr inbounds float, ptr %1985, i64 %1987
  %1989 = load float, ptr %1988, align 4, !tbaa !16
  %1990 = fcmp oge float %1984, %1989
  br i1 %1990, label %1991, label %1997

1991:                                             ; preds = %1974
  %1992 = load ptr, ptr %16, align 8, !tbaa !9
  %1993 = load i32, ptr %24, align 4, !tbaa !5
  %1994 = sext i32 %1993 to i64
  %1995 = getelementptr inbounds float, ptr %1992, i64 %1994
  %1996 = load float, ptr %1995, align 4, !tbaa !16
  br label %2003

1997:                                             ; preds = %1974
  %1998 = load ptr, ptr %13, align 8, !tbaa !9
  %1999 = load i32, ptr %24, align 4, !tbaa !5
  %2000 = sext i32 %1999 to i64
  %2001 = getelementptr inbounds float, ptr %1998, i64 %2000
  %2002 = load float, ptr %2001, align 4, !tbaa !16
  br label %2003

2003:                                             ; preds = %1997, %1991
  %2004 = phi float [ %1996, %1991 ], [ %2002, %1997 ]
  %2005 = fsub float %1979, %2004
  %2006 = load ptr, ptr %16, align 8, !tbaa !9
  %2007 = load i32, ptr %24, align 4, !tbaa !5
  %2008 = sext i32 %2007 to i64
  %2009 = getelementptr inbounds float, ptr %2006, i64 %2008
  %2010 = load float, ptr %2009, align 4, !tbaa !16
  %2011 = load ptr, ptr %13, align 8, !tbaa !9
  %2012 = load i32, ptr %24, align 4, !tbaa !5
  %2013 = sext i32 %2012 to i64
  %2014 = getelementptr inbounds float, ptr %2011, i64 %2013
  %2015 = load float, ptr %2014, align 4, !tbaa !16
  %2016 = fcmp oge float %2010, %2015
  br i1 %2016, label %2017, label %2023

2017:                                             ; preds = %2003
  %2018 = load ptr, ptr %13, align 8, !tbaa !9
  %2019 = load i32, ptr %24, align 4, !tbaa !5
  %2020 = sext i32 %2019 to i64
  %2021 = getelementptr inbounds float, ptr %2018, i64 %2020
  %2022 = load float, ptr %2021, align 4, !tbaa !16
  br label %2029

2023:                                             ; preds = %2003
  %2024 = load ptr, ptr %16, align 8, !tbaa !9
  %2025 = load i32, ptr %24, align 4, !tbaa !5
  %2026 = sext i32 %2025 to i64
  %2027 = getelementptr inbounds float, ptr %2024, i64 %2026
  %2028 = load float, ptr %2027, align 4, !tbaa !16
  br label %2029

2029:                                             ; preds = %2023, %2017
  %2030 = phi float [ %2022, %2017 ], [ %2028, %2023 ]
  %2031 = load ptr, ptr %15, align 8, !tbaa !9
  %2032 = load i32, ptr %24, align 4, !tbaa !5
  %2033 = sext i32 %2032 to i64
  %2034 = getelementptr inbounds float, ptr %2031, i64 %2033
  %2035 = load float, ptr %2034, align 4, !tbaa !16
  %2036 = fsub float %2030, %2035
  %2037 = fadd float %2005, %2036
  br label %2039

2038:                                             ; preds = %1967
  br label %2039

2039:                                             ; preds = %2038, %2029
  %2040 = phi float [ %2037, %2029 ], [ 0.000000e+00, %2038 ]
  br label %2041

2041:                                             ; preds = %2039, %1955
  %2042 = phi float [ %1966, %1955 ], [ %2040, %2039 ]
  %2043 = fpext float %2042 to double
  br label %2044

2044:                                             ; preds = %2041, %1934
  %2045 = phi double [ %1947, %1934 ], [ %2043, %2041 ]
  br label %2046

2046:                                             ; preds = %2044, %1917
  %2047 = phi double [ %1926, %1917 ], [ %2045, %2044 ]
  %2048 = fmul double %1909, %2047
  %2049 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2050 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2049, i32 0, i32 8
  %2051 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2050, i64 0, i64 7
  %2052 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2051, i32 0, i32 1
  %2053 = load i32, ptr %2052, align 4, !tbaa !15
  %2054 = icmp eq i32 %2053, 2
  %2055 = zext i1 %2054 to i64
  %2056 = select i1 %2054, double 2.000000e+00, double 1.000000e+00
  %2057 = fdiv double %2048, %2056
  %2058 = fcmp olt double %1904, %2057
  br i1 %2058, label %2059, label %2091

2059:                                             ; preds = %2046
  %2060 = load ptr, ptr %15, align 8, !tbaa !9
  %2061 = load i32, ptr %24, align 4, !tbaa !5
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds float, ptr %2060, i64 %2062
  %2064 = load float, ptr %2063, align 4, !tbaa !16
  %2065 = load ptr, ptr %15, align 8, !tbaa !9
  %2066 = load i32, ptr %24, align 4, !tbaa !5
  %2067 = sub nsw i32 %2066, 1
  %2068 = sext i32 %2067 to i64
  %2069 = getelementptr inbounds float, ptr %2065, i64 %2068
  %2070 = load float, ptr %2069, align 4, !tbaa !16
  %2071 = fcmp ogt float %2064, %2070
  br i1 %2071, label %2072, label %2091

2072:                                             ; preds = %2059
  %2073 = load ptr, ptr %14, align 8, !tbaa !9
  %2074 = load i32, ptr %24, align 4, !tbaa !5
  %2075 = sext i32 %2074 to i64
  %2076 = getelementptr inbounds float, ptr %2073, i64 %2075
  %2077 = load float, ptr %2076, align 4, !tbaa !16
  %2078 = load ptr, ptr %14, align 8, !tbaa !9
  %2079 = load i32, ptr %24, align 4, !tbaa !5
  %2080 = sub nsw i32 %2079, 1
  %2081 = sext i32 %2080 to i64
  %2082 = getelementptr inbounds float, ptr %2078, i64 %2081
  %2083 = load float, ptr %2082, align 4, !tbaa !16
  %2084 = fcmp olt float %2077, %2083
  br i1 %2084, label %2085, label %2091

2085:                                             ; preds = %2072
  %2086 = load ptr, ptr %19, align 8, !tbaa !9
  %2087 = load i32, ptr %25, align 4, !tbaa !5
  %2088 = add nsw i32 %2087, 1
  store i32 %2088, ptr %25, align 4, !tbaa !5
  %2089 = sext i32 %2087 to i64
  %2090 = getelementptr inbounds i32, ptr %2086, i64 %2089
  store i32 100, ptr %2090, align 4, !tbaa !5
  br label %2097

2091:                                             ; preds = %2072, %2059, %2046, %1859, %1672, %1505, %1298, %1284, %1270, %1256, %1224, %1211, %1006, %821, %804, %787
  %2092 = load ptr, ptr %19, align 8, !tbaa !9
  %2093 = load i32, ptr %25, align 4, !tbaa !5
  %2094 = add nsw i32 %2093, 1
  store i32 %2094, ptr %25, align 4, !tbaa !5
  %2095 = sext i32 %2093 to i64
  %2096 = getelementptr inbounds i32, ptr %2092, i64 %2095
  store i32 0, ptr %2096, align 4, !tbaa !5
  br label %2097

2097:                                             ; preds = %2091, %2085
  %2098 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2099 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2098, i32 0, i32 8
  %2100 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2099, i64 0, i64 0
  %2101 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2100, i32 0, i32 1
  %2102 = load i32, ptr %2101, align 4, !tbaa !15
  %2103 = icmp eq i32 %2102, 0
  br i1 %2103, label %2104, label %2120

2104:                                             ; preds = %2097
  %2105 = load ptr, ptr %16, align 8, !tbaa !9
  %2106 = load i32, ptr %24, align 4, !tbaa !5
  %2107 = sub nsw i32 %2106, 2
  %2108 = sext i32 %2107 to i64
  %2109 = getelementptr inbounds float, ptr %2105, i64 %2108
  %2110 = load float, ptr %2109, align 4, !tbaa !16
  %2111 = load ptr, ptr %13, align 8, !tbaa !9
  %2112 = load i32, ptr %24, align 4, !tbaa !5
  %2113 = sub nsw i32 %2112, 2
  %2114 = sext i32 %2113 to i64
  %2115 = getelementptr inbounds float, ptr %2111, i64 %2114
  %2116 = load float, ptr %2115, align 4, !tbaa !16
  %2117 = fsub float %2110, %2116
  %2118 = fpext float %2117 to double
  %2119 = call double @llvm.fabs.f64(double %2118)
  br label %2228

2120:                                             ; preds = %2097
  %2121 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2122 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2121, i32 0, i32 8
  %2123 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2122, i64 0, i64 0
  %2124 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2123, i32 0, i32 1
  %2125 = load i32, ptr %2124, align 4, !tbaa !15
  %2126 = icmp eq i32 %2125, 1
  br i1 %2126, label %2127, label %2141

2127:                                             ; preds = %2120
  %2128 = load ptr, ptr %14, align 8, !tbaa !9
  %2129 = load i32, ptr %24, align 4, !tbaa !5
  %2130 = sub nsw i32 %2129, 2
  %2131 = sext i32 %2130 to i64
  %2132 = getelementptr inbounds float, ptr %2128, i64 %2131
  %2133 = load float, ptr %2132, align 4, !tbaa !16
  %2134 = load ptr, ptr %15, align 8, !tbaa !9
  %2135 = load i32, ptr %24, align 4, !tbaa !5
  %2136 = sub nsw i32 %2135, 2
  %2137 = sext i32 %2136 to i64
  %2138 = getelementptr inbounds float, ptr %2134, i64 %2137
  %2139 = load float, ptr %2138, align 4, !tbaa !16
  %2140 = fsub float %2133, %2139
  br label %2225

2141:                                             ; preds = %2120
  %2142 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2143 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2142, i32 0, i32 8
  %2144 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2143, i64 0, i64 0
  %2145 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2144, i32 0, i32 1
  %2146 = load i32, ptr %2145, align 4, !tbaa !15
  %2147 = icmp eq i32 %2146, 2
  br i1 %2147, label %2148, label %2222

2148:                                             ; preds = %2141
  %2149 = load ptr, ptr %14, align 8, !tbaa !9
  %2150 = load i32, ptr %24, align 4, !tbaa !5
  %2151 = sub nsw i32 %2150, 2
  %2152 = sext i32 %2151 to i64
  %2153 = getelementptr inbounds float, ptr %2149, i64 %2152
  %2154 = load float, ptr %2153, align 4, !tbaa !16
  %2155 = load ptr, ptr %16, align 8, !tbaa !9
  %2156 = load i32, ptr %24, align 4, !tbaa !5
  %2157 = sub nsw i32 %2156, 2
  %2158 = sext i32 %2157 to i64
  %2159 = getelementptr inbounds float, ptr %2155, i64 %2158
  %2160 = load float, ptr %2159, align 4, !tbaa !16
  %2161 = load ptr, ptr %13, align 8, !tbaa !9
  %2162 = load i32, ptr %24, align 4, !tbaa !5
  %2163 = sub nsw i32 %2162, 2
  %2164 = sext i32 %2163 to i64
  %2165 = getelementptr inbounds float, ptr %2161, i64 %2164
  %2166 = load float, ptr %2165, align 4, !tbaa !16
  %2167 = fcmp oge float %2160, %2166
  br i1 %2167, label %2168, label %2175

2168:                                             ; preds = %2148
  %2169 = load ptr, ptr %16, align 8, !tbaa !9
  %2170 = load i32, ptr %24, align 4, !tbaa !5
  %2171 = sub nsw i32 %2170, 2
  %2172 = sext i32 %2171 to i64
  %2173 = getelementptr inbounds float, ptr %2169, i64 %2172
  %2174 = load float, ptr %2173, align 4, !tbaa !16
  br label %2182

2175:                                             ; preds = %2148
  %2176 = load ptr, ptr %13, align 8, !tbaa !9
  %2177 = load i32, ptr %24, align 4, !tbaa !5
  %2178 = sub nsw i32 %2177, 2
  %2179 = sext i32 %2178 to i64
  %2180 = getelementptr inbounds float, ptr %2176, i64 %2179
  %2181 = load float, ptr %2180, align 4, !tbaa !16
  br label %2182

2182:                                             ; preds = %2175, %2168
  %2183 = phi float [ %2174, %2168 ], [ %2181, %2175 ]
  %2184 = fsub float %2154, %2183
  %2185 = load ptr, ptr %16, align 8, !tbaa !9
  %2186 = load i32, ptr %24, align 4, !tbaa !5
  %2187 = sub nsw i32 %2186, 2
  %2188 = sext i32 %2187 to i64
  %2189 = getelementptr inbounds float, ptr %2185, i64 %2188
  %2190 = load float, ptr %2189, align 4, !tbaa !16
  %2191 = load ptr, ptr %13, align 8, !tbaa !9
  %2192 = load i32, ptr %24, align 4, !tbaa !5
  %2193 = sub nsw i32 %2192, 2
  %2194 = sext i32 %2193 to i64
  %2195 = getelementptr inbounds float, ptr %2191, i64 %2194
  %2196 = load float, ptr %2195, align 4, !tbaa !16
  %2197 = fcmp oge float %2190, %2196
  br i1 %2197, label %2198, label %2205

2198:                                             ; preds = %2182
  %2199 = load ptr, ptr %13, align 8, !tbaa !9
  %2200 = load i32, ptr %24, align 4, !tbaa !5
  %2201 = sub nsw i32 %2200, 2
  %2202 = sext i32 %2201 to i64
  %2203 = getelementptr inbounds float, ptr %2199, i64 %2202
  %2204 = load float, ptr %2203, align 4, !tbaa !16
  br label %2212

2205:                                             ; preds = %2182
  %2206 = load ptr, ptr %16, align 8, !tbaa !9
  %2207 = load i32, ptr %24, align 4, !tbaa !5
  %2208 = sub nsw i32 %2207, 2
  %2209 = sext i32 %2208 to i64
  %2210 = getelementptr inbounds float, ptr %2206, i64 %2209
  %2211 = load float, ptr %2210, align 4, !tbaa !16
  br label %2212

2212:                                             ; preds = %2205, %2198
  %2213 = phi float [ %2204, %2198 ], [ %2211, %2205 ]
  %2214 = load ptr, ptr %15, align 8, !tbaa !9
  %2215 = load i32, ptr %24, align 4, !tbaa !5
  %2216 = sub nsw i32 %2215, 2
  %2217 = sext i32 %2216 to i64
  %2218 = getelementptr inbounds float, ptr %2214, i64 %2217
  %2219 = load float, ptr %2218, align 4, !tbaa !16
  %2220 = fsub float %2213, %2219
  %2221 = fadd float %2184, %2220
  br label %2223

2222:                                             ; preds = %2141
  br label %2223

2223:                                             ; preds = %2222, %2212
  %2224 = phi float [ %2221, %2212 ], [ 0.000000e+00, %2222 ]
  br label %2225

2225:                                             ; preds = %2223, %2127
  %2226 = phi float [ %2140, %2127 ], [ %2224, %2223 ]
  %2227 = fpext float %2226 to double
  br label %2228

2228:                                             ; preds = %2225, %2104
  %2229 = phi double [ %2119, %2104 ], [ %2227, %2225 ]
  %2230 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2231 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2230, i32 0, i32 8
  %2232 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2231, i64 0, i64 0
  %2233 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2232, i32 0, i32 1
  %2234 = load i32, ptr %2233, align 4, !tbaa !15
  %2235 = icmp eq i32 %2234, 0
  br i1 %2235, label %2236, label %2252

2236:                                             ; preds = %2228
  %2237 = load ptr, ptr %16, align 8, !tbaa !9
  %2238 = load i32, ptr %27, align 4, !tbaa !5
  %2239 = sub nsw i32 %2238, 2
  %2240 = sext i32 %2239 to i64
  %2241 = getelementptr inbounds float, ptr %2237, i64 %2240
  %2242 = load float, ptr %2241, align 4, !tbaa !16
  %2243 = load ptr, ptr %13, align 8, !tbaa !9
  %2244 = load i32, ptr %27, align 4, !tbaa !5
  %2245 = sub nsw i32 %2244, 2
  %2246 = sext i32 %2245 to i64
  %2247 = getelementptr inbounds float, ptr %2243, i64 %2246
  %2248 = load float, ptr %2247, align 4, !tbaa !16
  %2249 = fsub float %2242, %2248
  %2250 = fpext float %2249 to double
  %2251 = call double @llvm.fabs.f64(double %2250)
  br label %2360

2252:                                             ; preds = %2228
  %2253 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2254 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2253, i32 0, i32 8
  %2255 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2254, i64 0, i64 0
  %2256 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2255, i32 0, i32 1
  %2257 = load i32, ptr %2256, align 4, !tbaa !15
  %2258 = icmp eq i32 %2257, 1
  br i1 %2258, label %2259, label %2273

2259:                                             ; preds = %2252
  %2260 = load ptr, ptr %14, align 8, !tbaa !9
  %2261 = load i32, ptr %27, align 4, !tbaa !5
  %2262 = sub nsw i32 %2261, 2
  %2263 = sext i32 %2262 to i64
  %2264 = getelementptr inbounds float, ptr %2260, i64 %2263
  %2265 = load float, ptr %2264, align 4, !tbaa !16
  %2266 = load ptr, ptr %15, align 8, !tbaa !9
  %2267 = load i32, ptr %27, align 4, !tbaa !5
  %2268 = sub nsw i32 %2267, 2
  %2269 = sext i32 %2268 to i64
  %2270 = getelementptr inbounds float, ptr %2266, i64 %2269
  %2271 = load float, ptr %2270, align 4, !tbaa !16
  %2272 = fsub float %2265, %2271
  br label %2357

2273:                                             ; preds = %2252
  %2274 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2275 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2274, i32 0, i32 8
  %2276 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2275, i64 0, i64 0
  %2277 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2276, i32 0, i32 1
  %2278 = load i32, ptr %2277, align 4, !tbaa !15
  %2279 = icmp eq i32 %2278, 2
  br i1 %2279, label %2280, label %2354

2280:                                             ; preds = %2273
  %2281 = load ptr, ptr %14, align 8, !tbaa !9
  %2282 = load i32, ptr %27, align 4, !tbaa !5
  %2283 = sub nsw i32 %2282, 2
  %2284 = sext i32 %2283 to i64
  %2285 = getelementptr inbounds float, ptr %2281, i64 %2284
  %2286 = load float, ptr %2285, align 4, !tbaa !16
  %2287 = load ptr, ptr %16, align 8, !tbaa !9
  %2288 = load i32, ptr %27, align 4, !tbaa !5
  %2289 = sub nsw i32 %2288, 2
  %2290 = sext i32 %2289 to i64
  %2291 = getelementptr inbounds float, ptr %2287, i64 %2290
  %2292 = load float, ptr %2291, align 4, !tbaa !16
  %2293 = load ptr, ptr %13, align 8, !tbaa !9
  %2294 = load i32, ptr %27, align 4, !tbaa !5
  %2295 = sub nsw i32 %2294, 2
  %2296 = sext i32 %2295 to i64
  %2297 = getelementptr inbounds float, ptr %2293, i64 %2296
  %2298 = load float, ptr %2297, align 4, !tbaa !16
  %2299 = fcmp oge float %2292, %2298
  br i1 %2299, label %2300, label %2307

2300:                                             ; preds = %2280
  %2301 = load ptr, ptr %16, align 8, !tbaa !9
  %2302 = load i32, ptr %27, align 4, !tbaa !5
  %2303 = sub nsw i32 %2302, 2
  %2304 = sext i32 %2303 to i64
  %2305 = getelementptr inbounds float, ptr %2301, i64 %2304
  %2306 = load float, ptr %2305, align 4, !tbaa !16
  br label %2314

2307:                                             ; preds = %2280
  %2308 = load ptr, ptr %13, align 8, !tbaa !9
  %2309 = load i32, ptr %27, align 4, !tbaa !5
  %2310 = sub nsw i32 %2309, 2
  %2311 = sext i32 %2310 to i64
  %2312 = getelementptr inbounds float, ptr %2308, i64 %2311
  %2313 = load float, ptr %2312, align 4, !tbaa !16
  br label %2314

2314:                                             ; preds = %2307, %2300
  %2315 = phi float [ %2306, %2300 ], [ %2313, %2307 ]
  %2316 = fsub float %2286, %2315
  %2317 = load ptr, ptr %16, align 8, !tbaa !9
  %2318 = load i32, ptr %27, align 4, !tbaa !5
  %2319 = sub nsw i32 %2318, 2
  %2320 = sext i32 %2319 to i64
  %2321 = getelementptr inbounds float, ptr %2317, i64 %2320
  %2322 = load float, ptr %2321, align 4, !tbaa !16
  %2323 = load ptr, ptr %13, align 8, !tbaa !9
  %2324 = load i32, ptr %27, align 4, !tbaa !5
  %2325 = sub nsw i32 %2324, 2
  %2326 = sext i32 %2325 to i64
  %2327 = getelementptr inbounds float, ptr %2323, i64 %2326
  %2328 = load float, ptr %2327, align 4, !tbaa !16
  %2329 = fcmp oge float %2322, %2328
  br i1 %2329, label %2330, label %2337

2330:                                             ; preds = %2314
  %2331 = load ptr, ptr %13, align 8, !tbaa !9
  %2332 = load i32, ptr %27, align 4, !tbaa !5
  %2333 = sub nsw i32 %2332, 2
  %2334 = sext i32 %2333 to i64
  %2335 = getelementptr inbounds float, ptr %2331, i64 %2334
  %2336 = load float, ptr %2335, align 4, !tbaa !16
  br label %2344

2337:                                             ; preds = %2314
  %2338 = load ptr, ptr %16, align 8, !tbaa !9
  %2339 = load i32, ptr %27, align 4, !tbaa !5
  %2340 = sub nsw i32 %2339, 2
  %2341 = sext i32 %2340 to i64
  %2342 = getelementptr inbounds float, ptr %2338, i64 %2341
  %2343 = load float, ptr %2342, align 4, !tbaa !16
  br label %2344

2344:                                             ; preds = %2337, %2330
  %2345 = phi float [ %2336, %2330 ], [ %2343, %2337 ]
  %2346 = load ptr, ptr %15, align 8, !tbaa !9
  %2347 = load i32, ptr %27, align 4, !tbaa !5
  %2348 = sub nsw i32 %2347, 2
  %2349 = sext i32 %2348 to i64
  %2350 = getelementptr inbounds float, ptr %2346, i64 %2349
  %2351 = load float, ptr %2350, align 4, !tbaa !16
  %2352 = fsub float %2345, %2351
  %2353 = fadd float %2316, %2352
  br label %2355

2354:                                             ; preds = %2273
  br label %2355

2355:                                             ; preds = %2354, %2344
  %2356 = phi float [ %2353, %2344 ], [ 0.000000e+00, %2354 ]
  br label %2357

2357:                                             ; preds = %2355, %2259
  %2358 = phi float [ %2272, %2259 ], [ %2356, %2355 ]
  %2359 = fpext float %2358 to double
  br label %2360

2360:                                             ; preds = %2357, %2236
  %2361 = phi double [ %2251, %2236 ], [ %2359, %2357 ]
  %2362 = fsub double %2229, %2361
  %2363 = load double, ptr %20, align 8, !tbaa !11
  %2364 = fadd double %2363, %2362
  store double %2364, ptr %20, align 8, !tbaa !11
  %2365 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2366 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2365, i32 0, i32 8
  %2367 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2366, i64 0, i64 4
  %2368 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2367, i32 0, i32 1
  %2369 = load i32, ptr %2368, align 4, !tbaa !15
  %2370 = icmp eq i32 %2369, 0
  br i1 %2370, label %2371, label %2387

2371:                                             ; preds = %2360
  %2372 = load ptr, ptr %16, align 8, !tbaa !9
  %2373 = load i32, ptr %24, align 4, !tbaa !5
  %2374 = sub nsw i32 %2373, 2
  %2375 = sext i32 %2374 to i64
  %2376 = getelementptr inbounds float, ptr %2372, i64 %2375
  %2377 = load float, ptr %2376, align 4, !tbaa !16
  %2378 = load ptr, ptr %13, align 8, !tbaa !9
  %2379 = load i32, ptr %24, align 4, !tbaa !5
  %2380 = sub nsw i32 %2379, 2
  %2381 = sext i32 %2380 to i64
  %2382 = getelementptr inbounds float, ptr %2378, i64 %2381
  %2383 = load float, ptr %2382, align 4, !tbaa !16
  %2384 = fsub float %2377, %2383
  %2385 = fpext float %2384 to double
  %2386 = call double @llvm.fabs.f64(double %2385)
  br label %2495

2387:                                             ; preds = %2360
  %2388 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2389 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2388, i32 0, i32 8
  %2390 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2389, i64 0, i64 4
  %2391 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2390, i32 0, i32 1
  %2392 = load i32, ptr %2391, align 4, !tbaa !15
  %2393 = icmp eq i32 %2392, 1
  br i1 %2393, label %2394, label %2408

2394:                                             ; preds = %2387
  %2395 = load ptr, ptr %14, align 8, !tbaa !9
  %2396 = load i32, ptr %24, align 4, !tbaa !5
  %2397 = sub nsw i32 %2396, 2
  %2398 = sext i32 %2397 to i64
  %2399 = getelementptr inbounds float, ptr %2395, i64 %2398
  %2400 = load float, ptr %2399, align 4, !tbaa !16
  %2401 = load ptr, ptr %15, align 8, !tbaa !9
  %2402 = load i32, ptr %24, align 4, !tbaa !5
  %2403 = sub nsw i32 %2402, 2
  %2404 = sext i32 %2403 to i64
  %2405 = getelementptr inbounds float, ptr %2401, i64 %2404
  %2406 = load float, ptr %2405, align 4, !tbaa !16
  %2407 = fsub float %2400, %2406
  br label %2492

2408:                                             ; preds = %2387
  %2409 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2410 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2409, i32 0, i32 8
  %2411 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2410, i64 0, i64 4
  %2412 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2411, i32 0, i32 1
  %2413 = load i32, ptr %2412, align 4, !tbaa !15
  %2414 = icmp eq i32 %2413, 2
  br i1 %2414, label %2415, label %2489

2415:                                             ; preds = %2408
  %2416 = load ptr, ptr %14, align 8, !tbaa !9
  %2417 = load i32, ptr %24, align 4, !tbaa !5
  %2418 = sub nsw i32 %2417, 2
  %2419 = sext i32 %2418 to i64
  %2420 = getelementptr inbounds float, ptr %2416, i64 %2419
  %2421 = load float, ptr %2420, align 4, !tbaa !16
  %2422 = load ptr, ptr %16, align 8, !tbaa !9
  %2423 = load i32, ptr %24, align 4, !tbaa !5
  %2424 = sub nsw i32 %2423, 2
  %2425 = sext i32 %2424 to i64
  %2426 = getelementptr inbounds float, ptr %2422, i64 %2425
  %2427 = load float, ptr %2426, align 4, !tbaa !16
  %2428 = load ptr, ptr %13, align 8, !tbaa !9
  %2429 = load i32, ptr %24, align 4, !tbaa !5
  %2430 = sub nsw i32 %2429, 2
  %2431 = sext i32 %2430 to i64
  %2432 = getelementptr inbounds float, ptr %2428, i64 %2431
  %2433 = load float, ptr %2432, align 4, !tbaa !16
  %2434 = fcmp oge float %2427, %2433
  br i1 %2434, label %2435, label %2442

2435:                                             ; preds = %2415
  %2436 = load ptr, ptr %16, align 8, !tbaa !9
  %2437 = load i32, ptr %24, align 4, !tbaa !5
  %2438 = sub nsw i32 %2437, 2
  %2439 = sext i32 %2438 to i64
  %2440 = getelementptr inbounds float, ptr %2436, i64 %2439
  %2441 = load float, ptr %2440, align 4, !tbaa !16
  br label %2449

2442:                                             ; preds = %2415
  %2443 = load ptr, ptr %13, align 8, !tbaa !9
  %2444 = load i32, ptr %24, align 4, !tbaa !5
  %2445 = sub nsw i32 %2444, 2
  %2446 = sext i32 %2445 to i64
  %2447 = getelementptr inbounds float, ptr %2443, i64 %2446
  %2448 = load float, ptr %2447, align 4, !tbaa !16
  br label %2449

2449:                                             ; preds = %2442, %2435
  %2450 = phi float [ %2441, %2435 ], [ %2448, %2442 ]
  %2451 = fsub float %2421, %2450
  %2452 = load ptr, ptr %16, align 8, !tbaa !9
  %2453 = load i32, ptr %24, align 4, !tbaa !5
  %2454 = sub nsw i32 %2453, 2
  %2455 = sext i32 %2454 to i64
  %2456 = getelementptr inbounds float, ptr %2452, i64 %2455
  %2457 = load float, ptr %2456, align 4, !tbaa !16
  %2458 = load ptr, ptr %13, align 8, !tbaa !9
  %2459 = load i32, ptr %24, align 4, !tbaa !5
  %2460 = sub nsw i32 %2459, 2
  %2461 = sext i32 %2460 to i64
  %2462 = getelementptr inbounds float, ptr %2458, i64 %2461
  %2463 = load float, ptr %2462, align 4, !tbaa !16
  %2464 = fcmp oge float %2457, %2463
  br i1 %2464, label %2465, label %2472

2465:                                             ; preds = %2449
  %2466 = load ptr, ptr %13, align 8, !tbaa !9
  %2467 = load i32, ptr %24, align 4, !tbaa !5
  %2468 = sub nsw i32 %2467, 2
  %2469 = sext i32 %2468 to i64
  %2470 = getelementptr inbounds float, ptr %2466, i64 %2469
  %2471 = load float, ptr %2470, align 4, !tbaa !16
  br label %2479

2472:                                             ; preds = %2449
  %2473 = load ptr, ptr %16, align 8, !tbaa !9
  %2474 = load i32, ptr %24, align 4, !tbaa !5
  %2475 = sub nsw i32 %2474, 2
  %2476 = sext i32 %2475 to i64
  %2477 = getelementptr inbounds float, ptr %2473, i64 %2476
  %2478 = load float, ptr %2477, align 4, !tbaa !16
  br label %2479

2479:                                             ; preds = %2472, %2465
  %2480 = phi float [ %2471, %2465 ], [ %2478, %2472 ]
  %2481 = load ptr, ptr %15, align 8, !tbaa !9
  %2482 = load i32, ptr %24, align 4, !tbaa !5
  %2483 = sub nsw i32 %2482, 2
  %2484 = sext i32 %2483 to i64
  %2485 = getelementptr inbounds float, ptr %2481, i64 %2484
  %2486 = load float, ptr %2485, align 4, !tbaa !16
  %2487 = fsub float %2480, %2486
  %2488 = fadd float %2451, %2487
  br label %2490

2489:                                             ; preds = %2408
  br label %2490

2490:                                             ; preds = %2489, %2479
  %2491 = phi float [ %2488, %2479 ], [ 0.000000e+00, %2489 ]
  br label %2492

2492:                                             ; preds = %2490, %2394
  %2493 = phi float [ %2407, %2394 ], [ %2491, %2490 ]
  %2494 = fpext float %2493 to double
  br label %2495

2495:                                             ; preds = %2492, %2371
  %2496 = phi double [ %2386, %2371 ], [ %2494, %2492 ]
  %2497 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2498 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2497, i32 0, i32 8
  %2499 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2498, i64 0, i64 4
  %2500 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2499, i32 0, i32 1
  %2501 = load i32, ptr %2500, align 4, !tbaa !15
  %2502 = icmp eq i32 %2501, 0
  br i1 %2502, label %2503, label %2519

2503:                                             ; preds = %2495
  %2504 = load ptr, ptr %16, align 8, !tbaa !9
  %2505 = load i32, ptr %29, align 4, !tbaa !5
  %2506 = sub nsw i32 %2505, 2
  %2507 = sext i32 %2506 to i64
  %2508 = getelementptr inbounds float, ptr %2504, i64 %2507
  %2509 = load float, ptr %2508, align 4, !tbaa !16
  %2510 = load ptr, ptr %13, align 8, !tbaa !9
  %2511 = load i32, ptr %29, align 4, !tbaa !5
  %2512 = sub nsw i32 %2511, 2
  %2513 = sext i32 %2512 to i64
  %2514 = getelementptr inbounds float, ptr %2510, i64 %2513
  %2515 = load float, ptr %2514, align 4, !tbaa !16
  %2516 = fsub float %2509, %2515
  %2517 = fpext float %2516 to double
  %2518 = call double @llvm.fabs.f64(double %2517)
  br label %2627

2519:                                             ; preds = %2495
  %2520 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2521 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2520, i32 0, i32 8
  %2522 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2521, i64 0, i64 4
  %2523 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2522, i32 0, i32 1
  %2524 = load i32, ptr %2523, align 4, !tbaa !15
  %2525 = icmp eq i32 %2524, 1
  br i1 %2525, label %2526, label %2540

2526:                                             ; preds = %2519
  %2527 = load ptr, ptr %14, align 8, !tbaa !9
  %2528 = load i32, ptr %29, align 4, !tbaa !5
  %2529 = sub nsw i32 %2528, 2
  %2530 = sext i32 %2529 to i64
  %2531 = getelementptr inbounds float, ptr %2527, i64 %2530
  %2532 = load float, ptr %2531, align 4, !tbaa !16
  %2533 = load ptr, ptr %15, align 8, !tbaa !9
  %2534 = load i32, ptr %29, align 4, !tbaa !5
  %2535 = sub nsw i32 %2534, 2
  %2536 = sext i32 %2535 to i64
  %2537 = getelementptr inbounds float, ptr %2533, i64 %2536
  %2538 = load float, ptr %2537, align 4, !tbaa !16
  %2539 = fsub float %2532, %2538
  br label %2624

2540:                                             ; preds = %2519
  %2541 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2542 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2541, i32 0, i32 8
  %2543 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2542, i64 0, i64 4
  %2544 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2543, i32 0, i32 1
  %2545 = load i32, ptr %2544, align 4, !tbaa !15
  %2546 = icmp eq i32 %2545, 2
  br i1 %2546, label %2547, label %2621

2547:                                             ; preds = %2540
  %2548 = load ptr, ptr %14, align 8, !tbaa !9
  %2549 = load i32, ptr %29, align 4, !tbaa !5
  %2550 = sub nsw i32 %2549, 2
  %2551 = sext i32 %2550 to i64
  %2552 = getelementptr inbounds float, ptr %2548, i64 %2551
  %2553 = load float, ptr %2552, align 4, !tbaa !16
  %2554 = load ptr, ptr %16, align 8, !tbaa !9
  %2555 = load i32, ptr %29, align 4, !tbaa !5
  %2556 = sub nsw i32 %2555, 2
  %2557 = sext i32 %2556 to i64
  %2558 = getelementptr inbounds float, ptr %2554, i64 %2557
  %2559 = load float, ptr %2558, align 4, !tbaa !16
  %2560 = load ptr, ptr %13, align 8, !tbaa !9
  %2561 = load i32, ptr %29, align 4, !tbaa !5
  %2562 = sub nsw i32 %2561, 2
  %2563 = sext i32 %2562 to i64
  %2564 = getelementptr inbounds float, ptr %2560, i64 %2563
  %2565 = load float, ptr %2564, align 4, !tbaa !16
  %2566 = fcmp oge float %2559, %2565
  br i1 %2566, label %2567, label %2574

2567:                                             ; preds = %2547
  %2568 = load ptr, ptr %16, align 8, !tbaa !9
  %2569 = load i32, ptr %29, align 4, !tbaa !5
  %2570 = sub nsw i32 %2569, 2
  %2571 = sext i32 %2570 to i64
  %2572 = getelementptr inbounds float, ptr %2568, i64 %2571
  %2573 = load float, ptr %2572, align 4, !tbaa !16
  br label %2581

2574:                                             ; preds = %2547
  %2575 = load ptr, ptr %13, align 8, !tbaa !9
  %2576 = load i32, ptr %29, align 4, !tbaa !5
  %2577 = sub nsw i32 %2576, 2
  %2578 = sext i32 %2577 to i64
  %2579 = getelementptr inbounds float, ptr %2575, i64 %2578
  %2580 = load float, ptr %2579, align 4, !tbaa !16
  br label %2581

2581:                                             ; preds = %2574, %2567
  %2582 = phi float [ %2573, %2567 ], [ %2580, %2574 ]
  %2583 = fsub float %2553, %2582
  %2584 = load ptr, ptr %16, align 8, !tbaa !9
  %2585 = load i32, ptr %29, align 4, !tbaa !5
  %2586 = sub nsw i32 %2585, 2
  %2587 = sext i32 %2586 to i64
  %2588 = getelementptr inbounds float, ptr %2584, i64 %2587
  %2589 = load float, ptr %2588, align 4, !tbaa !16
  %2590 = load ptr, ptr %13, align 8, !tbaa !9
  %2591 = load i32, ptr %29, align 4, !tbaa !5
  %2592 = sub nsw i32 %2591, 2
  %2593 = sext i32 %2592 to i64
  %2594 = getelementptr inbounds float, ptr %2590, i64 %2593
  %2595 = load float, ptr %2594, align 4, !tbaa !16
  %2596 = fcmp oge float %2589, %2595
  br i1 %2596, label %2597, label %2604

2597:                                             ; preds = %2581
  %2598 = load ptr, ptr %13, align 8, !tbaa !9
  %2599 = load i32, ptr %29, align 4, !tbaa !5
  %2600 = sub nsw i32 %2599, 2
  %2601 = sext i32 %2600 to i64
  %2602 = getelementptr inbounds float, ptr %2598, i64 %2601
  %2603 = load float, ptr %2602, align 4, !tbaa !16
  br label %2611

2604:                                             ; preds = %2581
  %2605 = load ptr, ptr %16, align 8, !tbaa !9
  %2606 = load i32, ptr %29, align 4, !tbaa !5
  %2607 = sub nsw i32 %2606, 2
  %2608 = sext i32 %2607 to i64
  %2609 = getelementptr inbounds float, ptr %2605, i64 %2608
  %2610 = load float, ptr %2609, align 4, !tbaa !16
  br label %2611

2611:                                             ; preds = %2604, %2597
  %2612 = phi float [ %2603, %2597 ], [ %2610, %2604 ]
  %2613 = load ptr, ptr %15, align 8, !tbaa !9
  %2614 = load i32, ptr %29, align 4, !tbaa !5
  %2615 = sub nsw i32 %2614, 2
  %2616 = sext i32 %2615 to i64
  %2617 = getelementptr inbounds float, ptr %2613, i64 %2616
  %2618 = load float, ptr %2617, align 4, !tbaa !16
  %2619 = fsub float %2612, %2618
  %2620 = fadd float %2583, %2619
  br label %2622

2621:                                             ; preds = %2540
  br label %2622

2622:                                             ; preds = %2621, %2611
  %2623 = phi float [ %2620, %2611 ], [ 0.000000e+00, %2621 ]
  br label %2624

2624:                                             ; preds = %2622, %2526
  %2625 = phi float [ %2539, %2526 ], [ %2623, %2622 ]
  %2626 = fpext float %2625 to double
  br label %2627

2627:                                             ; preds = %2624, %2503
  %2628 = phi double [ %2518, %2503 ], [ %2626, %2624 ]
  %2629 = fsub double %2496, %2628
  %2630 = load double, ptr %22, align 8, !tbaa !11
  %2631 = fadd double %2630, %2629
  store double %2631, ptr %22, align 8, !tbaa !11
  store i32 1, ptr %26, align 4, !tbaa !5
  br label %2632

2632:                                             ; preds = %2934, %2627
  %2633 = load i32, ptr %26, align 4, !tbaa !5
  %2634 = icmp sge i32 %2633, 0
  br i1 %2634, label %2635, label %2937

2635:                                             ; preds = %2632
  %2636 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2637 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2636, i32 0, i32 8
  %2638 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2637, i64 0, i64 7
  %2639 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2638, i32 0, i32 1
  %2640 = load i32, ptr %2639, align 4, !tbaa !15
  %2641 = icmp eq i32 %2640, 0
  br i1 %2641, label %2642, label %2660

2642:                                             ; preds = %2635
  %2643 = load ptr, ptr %16, align 8, !tbaa !9
  %2644 = load i32, ptr %24, align 4, !tbaa !5
  %2645 = load i32, ptr %26, align 4, !tbaa !5
  %2646 = sub nsw i32 %2644, %2645
  %2647 = sext i32 %2646 to i64
  %2648 = getelementptr inbounds float, ptr %2643, i64 %2647
  %2649 = load float, ptr %2648, align 4, !tbaa !16
  %2650 = load ptr, ptr %13, align 8, !tbaa !9
  %2651 = load i32, ptr %24, align 4, !tbaa !5
  %2652 = load i32, ptr %26, align 4, !tbaa !5
  %2653 = sub nsw i32 %2651, %2652
  %2654 = sext i32 %2653 to i64
  %2655 = getelementptr inbounds float, ptr %2650, i64 %2654
  %2656 = load float, ptr %2655, align 4, !tbaa !16
  %2657 = fsub float %2649, %2656
  %2658 = fpext float %2657 to double
  %2659 = call double @llvm.fabs.f64(double %2658)
  br label %2780

2660:                                             ; preds = %2635
  %2661 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2662 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2661, i32 0, i32 8
  %2663 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2662, i64 0, i64 7
  %2664 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2663, i32 0, i32 1
  %2665 = load i32, ptr %2664, align 4, !tbaa !15
  %2666 = icmp eq i32 %2665, 1
  br i1 %2666, label %2667, label %2683

2667:                                             ; preds = %2660
  %2668 = load ptr, ptr %14, align 8, !tbaa !9
  %2669 = load i32, ptr %24, align 4, !tbaa !5
  %2670 = load i32, ptr %26, align 4, !tbaa !5
  %2671 = sub nsw i32 %2669, %2670
  %2672 = sext i32 %2671 to i64
  %2673 = getelementptr inbounds float, ptr %2668, i64 %2672
  %2674 = load float, ptr %2673, align 4, !tbaa !16
  %2675 = load ptr, ptr %15, align 8, !tbaa !9
  %2676 = load i32, ptr %24, align 4, !tbaa !5
  %2677 = load i32, ptr %26, align 4, !tbaa !5
  %2678 = sub nsw i32 %2676, %2677
  %2679 = sext i32 %2678 to i64
  %2680 = getelementptr inbounds float, ptr %2675, i64 %2679
  %2681 = load float, ptr %2680, align 4, !tbaa !16
  %2682 = fsub float %2674, %2681
  br label %2777

2683:                                             ; preds = %2660
  %2684 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2685 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2684, i32 0, i32 8
  %2686 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2685, i64 0, i64 7
  %2687 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2686, i32 0, i32 1
  %2688 = load i32, ptr %2687, align 4, !tbaa !15
  %2689 = icmp eq i32 %2688, 2
  br i1 %2689, label %2690, label %2774

2690:                                             ; preds = %2683
  %2691 = load ptr, ptr %14, align 8, !tbaa !9
  %2692 = load i32, ptr %24, align 4, !tbaa !5
  %2693 = load i32, ptr %26, align 4, !tbaa !5
  %2694 = sub nsw i32 %2692, %2693
  %2695 = sext i32 %2694 to i64
  %2696 = getelementptr inbounds float, ptr %2691, i64 %2695
  %2697 = load float, ptr %2696, align 4, !tbaa !16
  %2698 = load ptr, ptr %16, align 8, !tbaa !9
  %2699 = load i32, ptr %24, align 4, !tbaa !5
  %2700 = load i32, ptr %26, align 4, !tbaa !5
  %2701 = sub nsw i32 %2699, %2700
  %2702 = sext i32 %2701 to i64
  %2703 = getelementptr inbounds float, ptr %2698, i64 %2702
  %2704 = load float, ptr %2703, align 4, !tbaa !16
  %2705 = load ptr, ptr %13, align 8, !tbaa !9
  %2706 = load i32, ptr %24, align 4, !tbaa !5
  %2707 = load i32, ptr %26, align 4, !tbaa !5
  %2708 = sub nsw i32 %2706, %2707
  %2709 = sext i32 %2708 to i64
  %2710 = getelementptr inbounds float, ptr %2705, i64 %2709
  %2711 = load float, ptr %2710, align 4, !tbaa !16
  %2712 = fcmp oge float %2704, %2711
  br i1 %2712, label %2713, label %2721

2713:                                             ; preds = %2690
  %2714 = load ptr, ptr %16, align 8, !tbaa !9
  %2715 = load i32, ptr %24, align 4, !tbaa !5
  %2716 = load i32, ptr %26, align 4, !tbaa !5
  %2717 = sub nsw i32 %2715, %2716
  %2718 = sext i32 %2717 to i64
  %2719 = getelementptr inbounds float, ptr %2714, i64 %2718
  %2720 = load float, ptr %2719, align 4, !tbaa !16
  br label %2729

2721:                                             ; preds = %2690
  %2722 = load ptr, ptr %13, align 8, !tbaa !9
  %2723 = load i32, ptr %24, align 4, !tbaa !5
  %2724 = load i32, ptr %26, align 4, !tbaa !5
  %2725 = sub nsw i32 %2723, %2724
  %2726 = sext i32 %2725 to i64
  %2727 = getelementptr inbounds float, ptr %2722, i64 %2726
  %2728 = load float, ptr %2727, align 4, !tbaa !16
  br label %2729

2729:                                             ; preds = %2721, %2713
  %2730 = phi float [ %2720, %2713 ], [ %2728, %2721 ]
  %2731 = fsub float %2697, %2730
  %2732 = load ptr, ptr %16, align 8, !tbaa !9
  %2733 = load i32, ptr %24, align 4, !tbaa !5
  %2734 = load i32, ptr %26, align 4, !tbaa !5
  %2735 = sub nsw i32 %2733, %2734
  %2736 = sext i32 %2735 to i64
  %2737 = getelementptr inbounds float, ptr %2732, i64 %2736
  %2738 = load float, ptr %2737, align 4, !tbaa !16
  %2739 = load ptr, ptr %13, align 8, !tbaa !9
  %2740 = load i32, ptr %24, align 4, !tbaa !5
  %2741 = load i32, ptr %26, align 4, !tbaa !5
  %2742 = sub nsw i32 %2740, %2741
  %2743 = sext i32 %2742 to i64
  %2744 = getelementptr inbounds float, ptr %2739, i64 %2743
  %2745 = load float, ptr %2744, align 4, !tbaa !16
  %2746 = fcmp oge float %2738, %2745
  br i1 %2746, label %2747, label %2755

2747:                                             ; preds = %2729
  %2748 = load ptr, ptr %13, align 8, !tbaa !9
  %2749 = load i32, ptr %24, align 4, !tbaa !5
  %2750 = load i32, ptr %26, align 4, !tbaa !5
  %2751 = sub nsw i32 %2749, %2750
  %2752 = sext i32 %2751 to i64
  %2753 = getelementptr inbounds float, ptr %2748, i64 %2752
  %2754 = load float, ptr %2753, align 4, !tbaa !16
  br label %2763

2755:                                             ; preds = %2729
  %2756 = load ptr, ptr %16, align 8, !tbaa !9
  %2757 = load i32, ptr %24, align 4, !tbaa !5
  %2758 = load i32, ptr %26, align 4, !tbaa !5
  %2759 = sub nsw i32 %2757, %2758
  %2760 = sext i32 %2759 to i64
  %2761 = getelementptr inbounds float, ptr %2756, i64 %2760
  %2762 = load float, ptr %2761, align 4, !tbaa !16
  br label %2763

2763:                                             ; preds = %2755, %2747
  %2764 = phi float [ %2754, %2747 ], [ %2762, %2755 ]
  %2765 = load ptr, ptr %15, align 8, !tbaa !9
  %2766 = load i32, ptr %24, align 4, !tbaa !5
  %2767 = load i32, ptr %26, align 4, !tbaa !5
  %2768 = sub nsw i32 %2766, %2767
  %2769 = sext i32 %2768 to i64
  %2770 = getelementptr inbounds float, ptr %2765, i64 %2769
  %2771 = load float, ptr %2770, align 4, !tbaa !16
  %2772 = fsub float %2764, %2771
  %2773 = fadd float %2731, %2772
  br label %2775

2774:                                             ; preds = %2683
  br label %2775

2775:                                             ; preds = %2774, %2763
  %2776 = phi float [ %2773, %2763 ], [ 0.000000e+00, %2774 ]
  br label %2777

2777:                                             ; preds = %2775, %2667
  %2778 = phi float [ %2682, %2667 ], [ %2776, %2775 ]
  %2779 = fpext float %2778 to double
  br label %2780

2780:                                             ; preds = %2777, %2642
  %2781 = phi double [ %2659, %2642 ], [ %2779, %2777 ]
  %2782 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2783 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2782, i32 0, i32 8
  %2784 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2783, i64 0, i64 7
  %2785 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2784, i32 0, i32 1
  %2786 = load i32, ptr %2785, align 4, !tbaa !15
  %2787 = icmp eq i32 %2786, 0
  br i1 %2787, label %2788, label %2806

2788:                                             ; preds = %2780
  %2789 = load ptr, ptr %16, align 8, !tbaa !9
  %2790 = load i32, ptr %30, align 4, !tbaa !5
  %2791 = load i32, ptr %26, align 4, !tbaa !5
  %2792 = sub nsw i32 %2790, %2791
  %2793 = sext i32 %2792 to i64
  %2794 = getelementptr inbounds float, ptr %2789, i64 %2793
  %2795 = load float, ptr %2794, align 4, !tbaa !16
  %2796 = load ptr, ptr %13, align 8, !tbaa !9
  %2797 = load i32, ptr %30, align 4, !tbaa !5
  %2798 = load i32, ptr %26, align 4, !tbaa !5
  %2799 = sub nsw i32 %2797, %2798
  %2800 = sext i32 %2799 to i64
  %2801 = getelementptr inbounds float, ptr %2796, i64 %2800
  %2802 = load float, ptr %2801, align 4, !tbaa !16
  %2803 = fsub float %2795, %2802
  %2804 = fpext float %2803 to double
  %2805 = call double @llvm.fabs.f64(double %2804)
  br label %2926

2806:                                             ; preds = %2780
  %2807 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2808 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2807, i32 0, i32 8
  %2809 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2808, i64 0, i64 7
  %2810 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2809, i32 0, i32 1
  %2811 = load i32, ptr %2810, align 4, !tbaa !15
  %2812 = icmp eq i32 %2811, 1
  br i1 %2812, label %2813, label %2829

2813:                                             ; preds = %2806
  %2814 = load ptr, ptr %14, align 8, !tbaa !9
  %2815 = load i32, ptr %30, align 4, !tbaa !5
  %2816 = load i32, ptr %26, align 4, !tbaa !5
  %2817 = sub nsw i32 %2815, %2816
  %2818 = sext i32 %2817 to i64
  %2819 = getelementptr inbounds float, ptr %2814, i64 %2818
  %2820 = load float, ptr %2819, align 4, !tbaa !16
  %2821 = load ptr, ptr %15, align 8, !tbaa !9
  %2822 = load i32, ptr %30, align 4, !tbaa !5
  %2823 = load i32, ptr %26, align 4, !tbaa !5
  %2824 = sub nsw i32 %2822, %2823
  %2825 = sext i32 %2824 to i64
  %2826 = getelementptr inbounds float, ptr %2821, i64 %2825
  %2827 = load float, ptr %2826, align 4, !tbaa !16
  %2828 = fsub float %2820, %2827
  br label %2923

2829:                                             ; preds = %2806
  %2830 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2831 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2830, i32 0, i32 8
  %2832 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2831, i64 0, i64 7
  %2833 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2832, i32 0, i32 1
  %2834 = load i32, ptr %2833, align 4, !tbaa !15
  %2835 = icmp eq i32 %2834, 2
  br i1 %2835, label %2836, label %2920

2836:                                             ; preds = %2829
  %2837 = load ptr, ptr %14, align 8, !tbaa !9
  %2838 = load i32, ptr %30, align 4, !tbaa !5
  %2839 = load i32, ptr %26, align 4, !tbaa !5
  %2840 = sub nsw i32 %2838, %2839
  %2841 = sext i32 %2840 to i64
  %2842 = getelementptr inbounds float, ptr %2837, i64 %2841
  %2843 = load float, ptr %2842, align 4, !tbaa !16
  %2844 = load ptr, ptr %16, align 8, !tbaa !9
  %2845 = load i32, ptr %30, align 4, !tbaa !5
  %2846 = load i32, ptr %26, align 4, !tbaa !5
  %2847 = sub nsw i32 %2845, %2846
  %2848 = sext i32 %2847 to i64
  %2849 = getelementptr inbounds float, ptr %2844, i64 %2848
  %2850 = load float, ptr %2849, align 4, !tbaa !16
  %2851 = load ptr, ptr %13, align 8, !tbaa !9
  %2852 = load i32, ptr %30, align 4, !tbaa !5
  %2853 = load i32, ptr %26, align 4, !tbaa !5
  %2854 = sub nsw i32 %2852, %2853
  %2855 = sext i32 %2854 to i64
  %2856 = getelementptr inbounds float, ptr %2851, i64 %2855
  %2857 = load float, ptr %2856, align 4, !tbaa !16
  %2858 = fcmp oge float %2850, %2857
  br i1 %2858, label %2859, label %2867

2859:                                             ; preds = %2836
  %2860 = load ptr, ptr %16, align 8, !tbaa !9
  %2861 = load i32, ptr %30, align 4, !tbaa !5
  %2862 = load i32, ptr %26, align 4, !tbaa !5
  %2863 = sub nsw i32 %2861, %2862
  %2864 = sext i32 %2863 to i64
  %2865 = getelementptr inbounds float, ptr %2860, i64 %2864
  %2866 = load float, ptr %2865, align 4, !tbaa !16
  br label %2875

2867:                                             ; preds = %2836
  %2868 = load ptr, ptr %13, align 8, !tbaa !9
  %2869 = load i32, ptr %30, align 4, !tbaa !5
  %2870 = load i32, ptr %26, align 4, !tbaa !5
  %2871 = sub nsw i32 %2869, %2870
  %2872 = sext i32 %2871 to i64
  %2873 = getelementptr inbounds float, ptr %2868, i64 %2872
  %2874 = load float, ptr %2873, align 4, !tbaa !16
  br label %2875

2875:                                             ; preds = %2867, %2859
  %2876 = phi float [ %2866, %2859 ], [ %2874, %2867 ]
  %2877 = fsub float %2843, %2876
  %2878 = load ptr, ptr %16, align 8, !tbaa !9
  %2879 = load i32, ptr %30, align 4, !tbaa !5
  %2880 = load i32, ptr %26, align 4, !tbaa !5
  %2881 = sub nsw i32 %2879, %2880
  %2882 = sext i32 %2881 to i64
  %2883 = getelementptr inbounds float, ptr %2878, i64 %2882
  %2884 = load float, ptr %2883, align 4, !tbaa !16
  %2885 = load ptr, ptr %13, align 8, !tbaa !9
  %2886 = load i32, ptr %30, align 4, !tbaa !5
  %2887 = load i32, ptr %26, align 4, !tbaa !5
  %2888 = sub nsw i32 %2886, %2887
  %2889 = sext i32 %2888 to i64
  %2890 = getelementptr inbounds float, ptr %2885, i64 %2889
  %2891 = load float, ptr %2890, align 4, !tbaa !16
  %2892 = fcmp oge float %2884, %2891
  br i1 %2892, label %2893, label %2901

2893:                                             ; preds = %2875
  %2894 = load ptr, ptr %13, align 8, !tbaa !9
  %2895 = load i32, ptr %30, align 4, !tbaa !5
  %2896 = load i32, ptr %26, align 4, !tbaa !5
  %2897 = sub nsw i32 %2895, %2896
  %2898 = sext i32 %2897 to i64
  %2899 = getelementptr inbounds float, ptr %2894, i64 %2898
  %2900 = load float, ptr %2899, align 4, !tbaa !16
  br label %2909

2901:                                             ; preds = %2875
  %2902 = load ptr, ptr %16, align 8, !tbaa !9
  %2903 = load i32, ptr %30, align 4, !tbaa !5
  %2904 = load i32, ptr %26, align 4, !tbaa !5
  %2905 = sub nsw i32 %2903, %2904
  %2906 = sext i32 %2905 to i64
  %2907 = getelementptr inbounds float, ptr %2902, i64 %2906
  %2908 = load float, ptr %2907, align 4, !tbaa !16
  br label %2909

2909:                                             ; preds = %2901, %2893
  %2910 = phi float [ %2900, %2893 ], [ %2908, %2901 ]
  %2911 = load ptr, ptr %15, align 8, !tbaa !9
  %2912 = load i32, ptr %30, align 4, !tbaa !5
  %2913 = load i32, ptr %26, align 4, !tbaa !5
  %2914 = sub nsw i32 %2912, %2913
  %2915 = sext i32 %2914 to i64
  %2916 = getelementptr inbounds float, ptr %2911, i64 %2915
  %2917 = load float, ptr %2916, align 4, !tbaa !16
  %2918 = fsub float %2910, %2917
  %2919 = fadd float %2877, %2918
  br label %2921

2920:                                             ; preds = %2829
  br label %2921

2921:                                             ; preds = %2920, %2909
  %2922 = phi float [ %2919, %2909 ], [ 0.000000e+00, %2920 ]
  br label %2923

2923:                                             ; preds = %2921, %2813
  %2924 = phi float [ %2828, %2813 ], [ %2922, %2921 ]
  %2925 = fpext float %2924 to double
  br label %2926

2926:                                             ; preds = %2923, %2788
  %2927 = phi double [ %2805, %2788 ], [ %2925, %2923 ]
  %2928 = fsub double %2781, %2927
  %2929 = load i32, ptr %26, align 4, !tbaa !5
  %2930 = sext i32 %2929 to i64
  %2931 = getelementptr inbounds [2 x double], ptr %23, i64 0, i64 %2930
  %2932 = load double, ptr %2931, align 8, !tbaa !11
  %2933 = fadd double %2932, %2928
  store double %2933, ptr %2931, align 8, !tbaa !11
  br label %2934

2934:                                             ; preds = %2926
  %2935 = load i32, ptr %26, align 4, !tbaa !5
  %2936 = add nsw i32 %2935, -1
  store i32 %2936, ptr %26, align 4, !tbaa !5
  br label %2632, !llvm.loop !24

2937:                                             ; preds = %2632
  %2938 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2939 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2938, i32 0, i32 8
  %2940 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2939, i64 0, i64 2
  %2941 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2940, i32 0, i32 1
  %2942 = load i32, ptr %2941, align 4, !tbaa !15
  %2943 = icmp eq i32 %2942, 0
  br i1 %2943, label %2944, label %2958

2944:                                             ; preds = %2937
  %2945 = load ptr, ptr %16, align 8, !tbaa !9
  %2946 = load i32, ptr %24, align 4, !tbaa !5
  %2947 = sext i32 %2946 to i64
  %2948 = getelementptr inbounds float, ptr %2945, i64 %2947
  %2949 = load float, ptr %2948, align 4, !tbaa !16
  %2950 = load ptr, ptr %13, align 8, !tbaa !9
  %2951 = load i32, ptr %24, align 4, !tbaa !5
  %2952 = sext i32 %2951 to i64
  %2953 = getelementptr inbounds float, ptr %2950, i64 %2952
  %2954 = load float, ptr %2953, align 4, !tbaa !16
  %2955 = fsub float %2949, %2954
  %2956 = fpext float %2955 to double
  %2957 = call double @llvm.fabs.f64(double %2956)
  br label %3054

2958:                                             ; preds = %2937
  %2959 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2960 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2959, i32 0, i32 8
  %2961 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2960, i64 0, i64 2
  %2962 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2961, i32 0, i32 1
  %2963 = load i32, ptr %2962, align 4, !tbaa !15
  %2964 = icmp eq i32 %2963, 1
  br i1 %2964, label %2965, label %2977

2965:                                             ; preds = %2958
  %2966 = load ptr, ptr %14, align 8, !tbaa !9
  %2967 = load i32, ptr %24, align 4, !tbaa !5
  %2968 = sext i32 %2967 to i64
  %2969 = getelementptr inbounds float, ptr %2966, i64 %2968
  %2970 = load float, ptr %2969, align 4, !tbaa !16
  %2971 = load ptr, ptr %15, align 8, !tbaa !9
  %2972 = load i32, ptr %24, align 4, !tbaa !5
  %2973 = sext i32 %2972 to i64
  %2974 = getelementptr inbounds float, ptr %2971, i64 %2973
  %2975 = load float, ptr %2974, align 4, !tbaa !16
  %2976 = fsub float %2970, %2975
  br label %3051

2977:                                             ; preds = %2958
  %2978 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2979 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2978, i32 0, i32 8
  %2980 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2979, i64 0, i64 2
  %2981 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2980, i32 0, i32 1
  %2982 = load i32, ptr %2981, align 4, !tbaa !15
  %2983 = icmp eq i32 %2982, 2
  br i1 %2983, label %2984, label %3048

2984:                                             ; preds = %2977
  %2985 = load ptr, ptr %14, align 8, !tbaa !9
  %2986 = load i32, ptr %24, align 4, !tbaa !5
  %2987 = sext i32 %2986 to i64
  %2988 = getelementptr inbounds float, ptr %2985, i64 %2987
  %2989 = load float, ptr %2988, align 4, !tbaa !16
  %2990 = load ptr, ptr %16, align 8, !tbaa !9
  %2991 = load i32, ptr %24, align 4, !tbaa !5
  %2992 = sext i32 %2991 to i64
  %2993 = getelementptr inbounds float, ptr %2990, i64 %2992
  %2994 = load float, ptr %2993, align 4, !tbaa !16
  %2995 = load ptr, ptr %13, align 8, !tbaa !9
  %2996 = load i32, ptr %24, align 4, !tbaa !5
  %2997 = sext i32 %2996 to i64
  %2998 = getelementptr inbounds float, ptr %2995, i64 %2997
  %2999 = load float, ptr %2998, align 4, !tbaa !16
  %3000 = fcmp oge float %2994, %2999
  br i1 %3000, label %3001, label %3007

3001:                                             ; preds = %2984
  %3002 = load ptr, ptr %16, align 8, !tbaa !9
  %3003 = load i32, ptr %24, align 4, !tbaa !5
  %3004 = sext i32 %3003 to i64
  %3005 = getelementptr inbounds float, ptr %3002, i64 %3004
  %3006 = load float, ptr %3005, align 4, !tbaa !16
  br label %3013

3007:                                             ; preds = %2984
  %3008 = load ptr, ptr %13, align 8, !tbaa !9
  %3009 = load i32, ptr %24, align 4, !tbaa !5
  %3010 = sext i32 %3009 to i64
  %3011 = getelementptr inbounds float, ptr %3008, i64 %3010
  %3012 = load float, ptr %3011, align 4, !tbaa !16
  br label %3013

3013:                                             ; preds = %3007, %3001
  %3014 = phi float [ %3006, %3001 ], [ %3012, %3007 ]
  %3015 = fsub float %2989, %3014
  %3016 = load ptr, ptr %16, align 8, !tbaa !9
  %3017 = load i32, ptr %24, align 4, !tbaa !5
  %3018 = sext i32 %3017 to i64
  %3019 = getelementptr inbounds float, ptr %3016, i64 %3018
  %3020 = load float, ptr %3019, align 4, !tbaa !16
  %3021 = load ptr, ptr %13, align 8, !tbaa !9
  %3022 = load i32, ptr %24, align 4, !tbaa !5
  %3023 = sext i32 %3022 to i64
  %3024 = getelementptr inbounds float, ptr %3021, i64 %3023
  %3025 = load float, ptr %3024, align 4, !tbaa !16
  %3026 = fcmp oge float %3020, %3025
  br i1 %3026, label %3027, label %3033

3027:                                             ; preds = %3013
  %3028 = load ptr, ptr %13, align 8, !tbaa !9
  %3029 = load i32, ptr %24, align 4, !tbaa !5
  %3030 = sext i32 %3029 to i64
  %3031 = getelementptr inbounds float, ptr %3028, i64 %3030
  %3032 = load float, ptr %3031, align 4, !tbaa !16
  br label %3039

3033:                                             ; preds = %3013
  %3034 = load ptr, ptr %16, align 8, !tbaa !9
  %3035 = load i32, ptr %24, align 4, !tbaa !5
  %3036 = sext i32 %3035 to i64
  %3037 = getelementptr inbounds float, ptr %3034, i64 %3036
  %3038 = load float, ptr %3037, align 4, !tbaa !16
  br label %3039

3039:                                             ; preds = %3033, %3027
  %3040 = phi float [ %3032, %3027 ], [ %3038, %3033 ]
  %3041 = load ptr, ptr %15, align 8, !tbaa !9
  %3042 = load i32, ptr %24, align 4, !tbaa !5
  %3043 = sext i32 %3042 to i64
  %3044 = getelementptr inbounds float, ptr %3041, i64 %3043
  %3045 = load float, ptr %3044, align 4, !tbaa !16
  %3046 = fsub float %3040, %3045
  %3047 = fadd float %3015, %3046
  br label %3049

3048:                                             ; preds = %2977
  br label %3049

3049:                                             ; preds = %3048, %3039
  %3050 = phi float [ %3047, %3039 ], [ 0.000000e+00, %3048 ]
  br label %3051

3051:                                             ; preds = %3049, %2965
  %3052 = phi float [ %2976, %2965 ], [ %3050, %3049 ]
  %3053 = fpext float %3052 to double
  br label %3054

3054:                                             ; preds = %3051, %2944
  %3055 = phi double [ %2957, %2944 ], [ %3053, %3051 ]
  %3056 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3057 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3056, i32 0, i32 8
  %3058 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3057, i64 0, i64 2
  %3059 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3058, i32 0, i32 1
  %3060 = load i32, ptr %3059, align 4, !tbaa !15
  %3061 = icmp eq i32 %3060, 0
  br i1 %3061, label %3062, label %3076

3062:                                             ; preds = %3054
  %3063 = load ptr, ptr %16, align 8, !tbaa !9
  %3064 = load i32, ptr %28, align 4, !tbaa !5
  %3065 = sext i32 %3064 to i64
  %3066 = getelementptr inbounds float, ptr %3063, i64 %3065
  %3067 = load float, ptr %3066, align 4, !tbaa !16
  %3068 = load ptr, ptr %13, align 8, !tbaa !9
  %3069 = load i32, ptr %28, align 4, !tbaa !5
  %3070 = sext i32 %3069 to i64
  %3071 = getelementptr inbounds float, ptr %3068, i64 %3070
  %3072 = load float, ptr %3071, align 4, !tbaa !16
  %3073 = fsub float %3067, %3072
  %3074 = fpext float %3073 to double
  %3075 = call double @llvm.fabs.f64(double %3074)
  br label %3172

3076:                                             ; preds = %3054
  %3077 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3078 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3077, i32 0, i32 8
  %3079 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3078, i64 0, i64 2
  %3080 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3079, i32 0, i32 1
  %3081 = load i32, ptr %3080, align 4, !tbaa !15
  %3082 = icmp eq i32 %3081, 1
  br i1 %3082, label %3083, label %3095

3083:                                             ; preds = %3076
  %3084 = load ptr, ptr %14, align 8, !tbaa !9
  %3085 = load i32, ptr %28, align 4, !tbaa !5
  %3086 = sext i32 %3085 to i64
  %3087 = getelementptr inbounds float, ptr %3084, i64 %3086
  %3088 = load float, ptr %3087, align 4, !tbaa !16
  %3089 = load ptr, ptr %15, align 8, !tbaa !9
  %3090 = load i32, ptr %28, align 4, !tbaa !5
  %3091 = sext i32 %3090 to i64
  %3092 = getelementptr inbounds float, ptr %3089, i64 %3091
  %3093 = load float, ptr %3092, align 4, !tbaa !16
  %3094 = fsub float %3088, %3093
  br label %3169

3095:                                             ; preds = %3076
  %3096 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3097 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3096, i32 0, i32 8
  %3098 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3097, i64 0, i64 2
  %3099 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3098, i32 0, i32 1
  %3100 = load i32, ptr %3099, align 4, !tbaa !15
  %3101 = icmp eq i32 %3100, 2
  br i1 %3101, label %3102, label %3166

3102:                                             ; preds = %3095
  %3103 = load ptr, ptr %14, align 8, !tbaa !9
  %3104 = load i32, ptr %28, align 4, !tbaa !5
  %3105 = sext i32 %3104 to i64
  %3106 = getelementptr inbounds float, ptr %3103, i64 %3105
  %3107 = load float, ptr %3106, align 4, !tbaa !16
  %3108 = load ptr, ptr %16, align 8, !tbaa !9
  %3109 = load i32, ptr %28, align 4, !tbaa !5
  %3110 = sext i32 %3109 to i64
  %3111 = getelementptr inbounds float, ptr %3108, i64 %3110
  %3112 = load float, ptr %3111, align 4, !tbaa !16
  %3113 = load ptr, ptr %13, align 8, !tbaa !9
  %3114 = load i32, ptr %28, align 4, !tbaa !5
  %3115 = sext i32 %3114 to i64
  %3116 = getelementptr inbounds float, ptr %3113, i64 %3115
  %3117 = load float, ptr %3116, align 4, !tbaa !16
  %3118 = fcmp oge float %3112, %3117
  br i1 %3118, label %3119, label %3125

3119:                                             ; preds = %3102
  %3120 = load ptr, ptr %16, align 8, !tbaa !9
  %3121 = load i32, ptr %28, align 4, !tbaa !5
  %3122 = sext i32 %3121 to i64
  %3123 = getelementptr inbounds float, ptr %3120, i64 %3122
  %3124 = load float, ptr %3123, align 4, !tbaa !16
  br label %3131

3125:                                             ; preds = %3102
  %3126 = load ptr, ptr %13, align 8, !tbaa !9
  %3127 = load i32, ptr %28, align 4, !tbaa !5
  %3128 = sext i32 %3127 to i64
  %3129 = getelementptr inbounds float, ptr %3126, i64 %3128
  %3130 = load float, ptr %3129, align 4, !tbaa !16
  br label %3131

3131:                                             ; preds = %3125, %3119
  %3132 = phi float [ %3124, %3119 ], [ %3130, %3125 ]
  %3133 = fsub float %3107, %3132
  %3134 = load ptr, ptr %16, align 8, !tbaa !9
  %3135 = load i32, ptr %28, align 4, !tbaa !5
  %3136 = sext i32 %3135 to i64
  %3137 = getelementptr inbounds float, ptr %3134, i64 %3136
  %3138 = load float, ptr %3137, align 4, !tbaa !16
  %3139 = load ptr, ptr %13, align 8, !tbaa !9
  %3140 = load i32, ptr %28, align 4, !tbaa !5
  %3141 = sext i32 %3140 to i64
  %3142 = getelementptr inbounds float, ptr %3139, i64 %3141
  %3143 = load float, ptr %3142, align 4, !tbaa !16
  %3144 = fcmp oge float %3138, %3143
  br i1 %3144, label %3145, label %3151

3145:                                             ; preds = %3131
  %3146 = load ptr, ptr %13, align 8, !tbaa !9
  %3147 = load i32, ptr %28, align 4, !tbaa !5
  %3148 = sext i32 %3147 to i64
  %3149 = getelementptr inbounds float, ptr %3146, i64 %3148
  %3150 = load float, ptr %3149, align 4, !tbaa !16
  br label %3157

3151:                                             ; preds = %3131
  %3152 = load ptr, ptr %16, align 8, !tbaa !9
  %3153 = load i32, ptr %28, align 4, !tbaa !5
  %3154 = sext i32 %3153 to i64
  %3155 = getelementptr inbounds float, ptr %3152, i64 %3154
  %3156 = load float, ptr %3155, align 4, !tbaa !16
  br label %3157

3157:                                             ; preds = %3151, %3145
  %3158 = phi float [ %3150, %3145 ], [ %3156, %3151 ]
  %3159 = load ptr, ptr %15, align 8, !tbaa !9
  %3160 = load i32, ptr %28, align 4, !tbaa !5
  %3161 = sext i32 %3160 to i64
  %3162 = getelementptr inbounds float, ptr %3159, i64 %3161
  %3163 = load float, ptr %3162, align 4, !tbaa !16
  %3164 = fsub float %3158, %3163
  %3165 = fadd float %3133, %3164
  br label %3167

3166:                                             ; preds = %3095
  br label %3167

3167:                                             ; preds = %3166, %3157
  %3168 = phi float [ %3165, %3157 ], [ 0.000000e+00, %3166 ]
  br label %3169

3169:                                             ; preds = %3167, %3083
  %3170 = phi float [ %3094, %3083 ], [ %3168, %3167 ]
  %3171 = fpext float %3170 to double
  br label %3172

3172:                                             ; preds = %3169, %3062
  %3173 = phi double [ %3075, %3062 ], [ %3171, %3169 ]
  %3174 = fsub double %3055, %3173
  %3175 = load double, ptr %21, align 8, !tbaa !11
  %3176 = fadd double %3175, %3174
  store double %3176, ptr %21, align 8, !tbaa !11
  %3177 = load i32, ptr %24, align 4, !tbaa !5
  %3178 = add nsw i32 %3177, 1
  store i32 %3178, ptr %24, align 4, !tbaa !5
  %3179 = load i32, ptr %27, align 4, !tbaa !5
  %3180 = add nsw i32 %3179, 1
  store i32 %3180, ptr %27, align 4, !tbaa !5
  %3181 = load i32, ptr %29, align 4, !tbaa !5
  %3182 = add nsw i32 %3181, 1
  store i32 %3182, ptr %29, align 4, !tbaa !5
  %3183 = load i32, ptr %30, align 4, !tbaa !5
  %3184 = add nsw i32 %3183, 1
  store i32 %3184, ptr %30, align 4, !tbaa !5
  %3185 = load i32, ptr %28, align 4, !tbaa !5
  %3186 = add nsw i32 %3185, 1
  store i32 %3186, ptr %28, align 4, !tbaa !5
  br label %3187

3187:                                             ; preds = %3172
  %3188 = load i32, ptr %24, align 4, !tbaa !5
  %3189 = load i32, ptr %12, align 4, !tbaa !5
  %3190 = icmp sle i32 %3188, %3189
  br i1 %3190, label %787, label %3191, !llvm.loop !25

3191:                                             ; preds = %3187
  %3192 = load i32, ptr %25, align 4, !tbaa !5
  %3193 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %3192, ptr %3193, align 4, !tbaa !5
  %3194 = load i32, ptr %11, align 4, !tbaa !5
  %3195 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %3194, ptr %3195, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %32, align 4
  br label %3196

3196:                                             ; preds = %3191, %72, %60, %56, %43, %35
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  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 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #3
  %3197 = load i32, ptr %10, align 4
  ret i32 %3197
}

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 = distinct !{!22, !19}
!23 = !{!14, !12, i64 16}
!24 = distinct !{!24, !19}
!25 = distinct !{!25, !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_CDL3STARSINSOUTH_Lookback() local_unnamed_addr #0

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

11:                                               ; preds = %9
  %12 = icmp slt i32 %1, %0
  br i1 %12, label %707, label %13

13:                                               ; preds = %11
  %14 = insertelement <4 x ptr> poison, ptr %2, i64 0
  %15 = insertelement <4 x ptr> %14, ptr %3, i64 1
  %16 = insertelement <4 x ptr> %15, ptr %4, i64 2
  %17 = insertelement <4 x ptr> %16, ptr %5, i64 3
  %18 = icmp eq <4 x ptr> %17, zeroinitializer
  %.not = icmp eq ptr %8, null
  %19 = bitcast <4 x i1> %18 to i4
  %20 = icmp ne i4 %19, 0
  %op.rdx = or i1 %20, %.not
  br i1 %op.rdx, label %707, label %21

21:                                               ; preds = %13
  %22 = tail call i32 @TA_CDL3STARSINSOUTH_Lookback()
  %spec.select = tail call i32 @llvm.smax.i32(i32 %22, i32 %0)
  %23 = icmp ugt i32 %spec.select, %1
  br i1 %23, label %24, label %25

24:                                               ; preds = %21
  store i32 0, ptr %6, align 4, !tbaa !5
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %707

25:                                               ; preds = %21
  %26 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %27 = getelementptr inbounds i8, ptr %26, i64 216
  %28 = load i32, ptr %27, align 8, !tbaa !11
  %29 = sub i32 %spec.select, %28
  %30 = getelementptr inbounds i8, ptr %26, i64 312
  %31 = load i32, ptr %30, align 8, !tbaa !11
  %32 = sub i32 %spec.select, %31
  %33 = getelementptr inbounds i8, ptr %26, i64 384
  %34 = load i32, ptr %33, align 8, !tbaa !11
  %35 = sub i32 %spec.select, %34
  %36 = getelementptr inbounds i8, ptr %26, i64 264
  %37 = load i32, ptr %36, align 8, !tbaa !11
  %38 = sub i32 %spec.select, %37
  %39 = icmp sgt i32 %28, 0
  br i1 %39, label %.lr.ph, label %.preheader942

.lr.ph:                                           ; preds = %25
  %40 = getelementptr inbounds i8, ptr %26, i64 212
  %41 = load i32, ptr %40, align 4, !tbaa !14
  switch i32 %41, label %.preheader942 [
    i32 0, label %.lr.ph.split.us.preheader
    i32 1, label %.lr.ph.split.us945.preheader
    i32 2, label %.lr.ph.split.us951.preheader
  ]

.lr.ph.split.us951.preheader:                     ; preds = %.lr.ph
  %42 = sext i32 %29 to i64
  %43 = zext nneg i32 %spec.select to i64
  br label %.lr.ph.split.us951

.lr.ph.split.us945.preheader:                     ; preds = %.lr.ph
  %44 = sext i32 %29 to i64
  %45 = zext nneg i32 %spec.select to i64
  br label %.lr.ph.split.us945

.lr.ph.split.us.preheader:                        ; preds = %.lr.ph
  %46 = sext i32 %29 to i64
  %47 = zext nneg i32 %spec.select to i64
  br label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.preheader, %.lr.ph.split.us
  %indvars.iv997 = phi i64 [ %46, %.lr.ph.split.us.preheader ], [ %indvars.iv.next998, %.lr.ph.split.us ]
  %.0733943.us = phi double [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %56, %.lr.ph.split.us ]
  %48 = add nsw i64 %indvars.iv997, -2
  %49 = getelementptr inbounds float, ptr %5, i64 %48
  %50 = load float, ptr %49, align 4, !tbaa !15
  %51 = getelementptr inbounds float, ptr %2, i64 %48
  %52 = load float, ptr %51, align 4, !tbaa !15
  %53 = fsub float %50, %52
  %54 = tail call float @llvm.fabs.f32(float %53)
  %55 = fpext float %54 to double
  %56 = fadd double %.0733943.us, %55
  %indvars.iv.next998 = add nsw i64 %indvars.iv997, 1
  %57 = icmp slt i64 %indvars.iv.next998, %47
  br i1 %57, label %.lr.ph.split.us, label %.preheader942, !llvm.loop !17

.lr.ph.split.us945:                               ; preds = %.lr.ph.split.us945.preheader, %.lr.ph.split.us945
  %indvars.iv994 = phi i64 [ %44, %.lr.ph.split.us945.preheader ], [ %indvars.iv.next995, %.lr.ph.split.us945 ]
  %.0733943.us947 = phi double [ 0.000000e+00, %.lr.ph.split.us945.preheader ], [ %65, %.lr.ph.split.us945 ]
  %58 = add nsw i64 %indvars.iv994, -2
  %59 = getelementptr inbounds float, ptr %3, i64 %58
  %60 = load float, ptr %59, align 4, !tbaa !15
  %61 = getelementptr inbounds float, ptr %4, i64 %58
  %62 = load float, ptr %61, align 4, !tbaa !15
  %63 = fsub float %60, %62
  %64 = fpext float %63 to double
  %65 = fadd double %.0733943.us947, %64
  %indvars.iv.next995 = add nsw i64 %indvars.iv994, 1
  %66 = icmp slt i64 %indvars.iv.next995, %45
  br i1 %66, label %.lr.ph.split.us945, label %.preheader942, !llvm.loop !17

.lr.ph.split.us951:                               ; preds = %.lr.ph.split.us951.preheader, %.lr.ph.split.us951
  %indvars.iv = phi i64 [ %42, %.lr.ph.split.us951.preheader ], [ %indvars.iv.next, %.lr.ph.split.us951 ]
  %.0733943.us953 = phi double [ 0.000000e+00, %.lr.ph.split.us951.preheader ], [ %82, %.lr.ph.split.us951 ]
  %67 = add nsw i64 %indvars.iv, -2
  %68 = getelementptr inbounds float, ptr %3, i64 %67
  %69 = load float, ptr %68, align 4, !tbaa !15
  %70 = getelementptr inbounds float, ptr %5, i64 %67
  %71 = load float, ptr %70, align 4, !tbaa !15
  %72 = getelementptr inbounds float, ptr %2, i64 %67
  %73 = load float, ptr %72, align 4, !tbaa !15
  %74 = fcmp ult float %71, %73
  %..us = select i1 %74, float %73, float %71
  %75 = fsub float %69, %..us
  %76 = select i1 %74, float %71, float %73
  %77 = getelementptr inbounds float, ptr %4, i64 %67
  %78 = load float, ptr %77, align 4, !tbaa !15
  %79 = fsub float %76, %78
  %80 = fadd float %75, %79
  %81 = fpext float %80 to double
  %82 = fadd double %.0733943.us953, %81
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %83 = icmp slt i64 %indvars.iv.next, %43
  br i1 %83, label %.lr.ph.split.us951, label %.preheader942, !llvm.loop !17

.preheader942:                                    ; preds = %.lr.ph.split.us951, %.lr.ph.split.us945, %.lr.ph.split.us, %.lr.ph, %25
  %.0733.lcssa = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %.lr.ph ], [ %56, %.lr.ph.split.us ], [ %65, %.lr.ph.split.us945 ], [ %82, %.lr.ph.split.us951 ]
  %84 = icmp sgt i32 %31, 0
  br i1 %84, label %.lr.ph959, label %.preheader941

.lr.ph959:                                        ; preds = %.preheader942
  %85 = getelementptr inbounds i8, ptr %26, i64 308
  %86 = load i32, ptr %85, align 4, !tbaa !14
  %87 = sext i32 %32 to i64
  %88 = zext nneg i32 %spec.select to i64
  br label %94

.preheader941:                                    ; preds = %125, %.preheader942
  %.0729.lcssa = phi double [ 0.000000e+00, %.preheader942 ], [ %127, %125 ]
  %89 = icmp sgt i32 %34, 0
  br i1 %89, label %.lr.ph964, label %.preheader940

.lr.ph964:                                        ; preds = %.preheader941
  %90 = getelementptr inbounds i8, ptr %26, i64 380
  %91 = load i32, ptr %90, align 4, !tbaa !14
  %92 = sext i32 %35 to i64
  %93 = zext nneg i32 %spec.select to i64
  br label %135

94:                                               ; preds = %.lr.ph959, %125
  %indvars.iv1000 = phi i64 [ %87, %.lr.ph959 ], [ %indvars.iv.next1001, %125 ]
  %.0729957 = phi double [ 0.000000e+00, %.lr.ph959 ], [ %127, %125 ]
  switch i32 %86, label %125 [
    i32 0, label %95
    i32 1, label %103
    i32 2, label %110
  ]

95:                                               ; preds = %94
  %96 = add nsw i64 %indvars.iv1000, -2
  %97 = getelementptr inbounds float, ptr %5, i64 %96
  %98 = load float, ptr %97, align 4, !tbaa !15
  %99 = getelementptr inbounds float, ptr %2, i64 %96
  %100 = load float, ptr %99, align 4, !tbaa !15
  %101 = fsub float %98, %100
  %102 = tail call float @llvm.fabs.f32(float %101)
  br label %125

103:                                              ; preds = %94
  %104 = add nsw i64 %indvars.iv1000, -2
  %105 = getelementptr inbounds float, ptr %3, i64 %104
  %106 = load float, ptr %105, align 4, !tbaa !15
  %107 = getelementptr inbounds float, ptr %4, i64 %104
  %108 = load float, ptr %107, align 4, !tbaa !15
  %109 = fsub float %106, %108
  br label %125

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

125:                                              ; preds = %103, %110, %94, %95
  %.in873 = phi float [ %102, %95 ], [ %109, %103 ], [ %124, %110 ], [ 0.000000e+00, %94 ]
  %126 = fpext float %.in873 to double
  %127 = fadd double %.0729957, %126
  %indvars.iv.next1001 = add nsw i64 %indvars.iv1000, 1
  %128 = icmp slt i64 %indvars.iv.next1001, %88
  br i1 %128, label %94, label %.preheader941, !llvm.loop !19

.preheader940:                                    ; preds = %191, %.preheader941
  %129 = phi <2 x double> [ zeroinitializer, %.preheader941 ], [ %195, %191 ]
  %130 = icmp sgt i32 %37, 0
  br i1 %130, label %.lr.ph969, label %.preheader940..preheader_crit_edge

.preheader940..preheader_crit_edge:               ; preds = %.preheader940
  %.pre1054 = sext i32 %38 to i64
  br label %.preheader

.lr.ph969:                                        ; preds = %.preheader940
  %131 = getelementptr inbounds i8, ptr %26, i64 260
  %132 = load i32, ptr %131, align 4, !tbaa !14
  %133 = sext i32 %38 to i64
  %134 = zext nneg i32 %spec.select to i64
  br label %211

135:                                              ; preds = %.lr.ph964, %191
  %indvars.iv1003 = phi i64 [ %92, %.lr.ph964 ], [ %indvars.iv.next1004, %191 ]
  %136 = phi <2 x double> [ zeroinitializer, %.lr.ph964 ], [ %195, %191 ]
  switch i32 %91, label %191 [
    i32 0, label %.thread
    i32 1, label %.thread901
    i32 2, label %.thread903
  ]

.thread:                                          ; preds = %135
  %137 = add nsw i64 %indvars.iv1003, -1
  %138 = getelementptr inbounds float, ptr %5, i64 %137
  %139 = load float, ptr %138, align 4, !tbaa !15
  %140 = getelementptr inbounds float, ptr %2, i64 %137
  %141 = load float, ptr %140, align 4, !tbaa !15
  %142 = fsub float %139, %141
  %143 = tail call float @llvm.fabs.f32(float %142)
  %144 = fpext float %143 to double
  %145 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1003
  %146 = load float, ptr %145, align 4, !tbaa !15
  %147 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1003
  %148 = load float, ptr %147, align 4, !tbaa !15
  %149 = fsub float %146, %148
  %150 = tail call float @llvm.fabs.f32(float %149)
  br label %191

.thread901:                                       ; preds = %135
  %151 = add nsw i64 %indvars.iv1003, -1
  %152 = getelementptr inbounds float, ptr %3, i64 %151
  %153 = load float, ptr %152, align 4, !tbaa !15
  %154 = getelementptr inbounds float, ptr %4, i64 %151
  %155 = load float, ptr %154, align 4, !tbaa !15
  %156 = fsub float %153, %155
  %157 = fpext float %156 to double
  %158 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1003
  %159 = load float, ptr %158, align 4, !tbaa !15
  %160 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1003
  %161 = load float, ptr %160, align 4, !tbaa !15
  %162 = fsub float %159, %161
  br label %191

.thread903:                                       ; preds = %135
  %163 = add nsw i64 %indvars.iv1003, -1
  %164 = getelementptr inbounds float, ptr %3, i64 %163
  %165 = load float, ptr %164, align 4, !tbaa !15
  %166 = getelementptr inbounds float, ptr %5, i64 %163
  %167 = load float, ptr %166, align 4, !tbaa !15
  %168 = getelementptr inbounds float, ptr %2, i64 %163
  %169 = load float, ptr %168, align 4, !tbaa !15
  %170 = fcmp ult float %167, %169
  %.877 = select i1 %170, float %169, float %167
  %171 = fsub float %165, %.877
  %172 = select i1 %170, float %167, float %169
  %173 = getelementptr inbounds float, ptr %4, i64 %163
  %174 = load float, ptr %173, align 4, !tbaa !15
  %175 = fsub float %172, %174
  %176 = fadd float %171, %175
  %177 = fpext float %176 to double
  %178 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1003
  %179 = load float, ptr %178, align 4, !tbaa !15
  %180 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1003
  %181 = load float, ptr %180, align 4, !tbaa !15
  %182 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1003
  %183 = load float, ptr %182, align 4, !tbaa !15
  %184 = fcmp ult float %181, %183
  %.878 = select i1 %184, float %183, float %181
  %185 = fsub float %179, %.878
  %186 = select i1 %184, float %181, float %183
  %187 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1003
  %188 = load float, ptr %187, align 4, !tbaa !15
  %189 = fsub float %186, %188
  %190 = fadd float %185, %189
  br label %191

191:                                              ; preds = %135, %.thread901, %.thread903, %.thread
  %.pn = phi double [ %144, %.thread ], [ %157, %.thread901 ], [ %177, %.thread903 ], [ 0.000000e+00, %135 ]
  %.in872 = phi float [ %150, %.thread ], [ %162, %.thread901 ], [ %190, %.thread903 ], [ 0.000000e+00, %135 ]
  %192 = fpext float %.in872 to double
  %193 = insertelement <2 x double> poison, double %.pn, i64 0
  %194 = insertelement <2 x double> %193, double %192, i64 1
  %195 = fadd <2 x double> %136, %194
  %indvars.iv.next1004 = add nsw i64 %indvars.iv1003, 1
  %196 = icmp slt i64 %indvars.iv.next1004, %93
  br i1 %196, label %135, label %.preheader940, !llvm.loop !20

.preheader:                                       ; preds = %239, %.preheader940..preheader_crit_edge
  %.pre-phi = phi i64 [ %.pre1054, %.preheader940..preheader_crit_edge ], [ %133, %239 ]
  %.0731.lcssa = phi double [ 0.000000e+00, %.preheader940..preheader_crit_edge ], [ %241, %239 ]
  %197 = getelementptr inbounds i8, ptr %26, i64 212
  %198 = getelementptr inbounds i8, ptr %26, i64 308
  %199 = getelementptr inbounds i8, ptr %26, i64 380
  %200 = getelementptr inbounds i8, ptr %26, i64 260
  %201 = getelementptr inbounds i8, ptr %26, i64 224
  %202 = getelementptr inbounds i8, ptr %26, i64 320
  %203 = getelementptr inbounds i8, ptr %26, i64 392
  %204 = getelementptr inbounds i8, ptr %26, i64 272
  %205 = sext i32 %22 to i64
  %206 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %205, i64 %206)
  %207 = sext i32 %1 to i64
  %208 = sext i32 %29 to i64
  %209 = sext i32 %32 to i64
  %210 = sext i32 %35 to i64
  br label %243

211:                                              ; preds = %.lr.ph969, %239
  %indvars.iv1006 = phi i64 [ %133, %.lr.ph969 ], [ %indvars.iv.next1007, %239 ]
  %.0731967 = phi double [ 0.000000e+00, %.lr.ph969 ], [ %241, %239 ]
  switch i32 %132, label %239 [
    i32 0, label %212
    i32 1, label %219
    i32 2, label %225
  ]

212:                                              ; preds = %211
  %213 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1006
  %214 = load float, ptr %213, align 4, !tbaa !15
  %215 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1006
  %216 = load float, ptr %215, align 4, !tbaa !15
  %217 = fsub float %214, %216
  %218 = tail call float @llvm.fabs.f32(float %217)
  br label %239

219:                                              ; preds = %211
  %220 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1006
  %221 = load float, ptr %220, align 4, !tbaa !15
  %222 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1006
  %223 = load float, ptr %222, align 4, !tbaa !15
  %224 = fsub float %221, %223
  br label %239

225:                                              ; preds = %211
  %226 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1006
  %227 = load float, ptr %226, align 4, !tbaa !15
  %228 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1006
  %229 = load float, ptr %228, align 4, !tbaa !15
  %230 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1006
  %231 = load float, ptr %230, align 4, !tbaa !15
  %232 = fcmp ult float %229, %231
  %.879 = select i1 %232, float %231, float %229
  %233 = fsub float %227, %.879
  %234 = select i1 %232, float %229, float %231
  %235 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1006
  %236 = load float, ptr %235, align 4, !tbaa !15
  %237 = fsub float %234, %236
  %238 = fadd float %233, %237
  br label %239

239:                                              ; preds = %219, %225, %211, %212
  %.in870 = phi float [ %218, %212 ], [ %224, %219 ], [ %238, %225 ], [ 0.000000e+00, %211 ]
  %240 = fpext float %.in870 to double
  %241 = fadd double %.0731967, %240
  %indvars.iv.next1007 = add nsw i64 %indvars.iv1006, 1
  %242 = icmp slt i64 %indvars.iv.next1007, %134
  br i1 %242, label %211, label %.preheader, !llvm.loop !21

243:                                              ; preds = %.preheader, %700
  %indvars.iv1031 = phi i64 [ %210, %.preheader ], [ %indvars.iv.next1032, %700 ]
  %indvars.iv1029 = phi i64 [ %209, %.preheader ], [ %indvars.iv.next1030, %700 ]
  %indvars.iv1027 = phi i64 [ %.pre-phi, %.preheader ], [ %indvars.iv.next1028, %700 ]
  %indvars.iv1025 = phi i64 [ %208, %.preheader ], [ %indvars.iv.next1026, %700 ]
  %indvars.iv1023 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next1024, %700 ]
  %indvars.iv1021 = phi i64 [ %smax, %.preheader ], [ %indvars.iv.next1022, %700 ]
  %.1734 = phi double [ %.0733.lcssa, %.preheader ], [ %528, %700 ]
  %.1732 = phi double [ %.0731.lcssa, %.preheader ], [ %704, %700 ]
  %.1730 = phi double [ %.0729.lcssa, %.preheader ], [ %579, %700 ]
  %244 = phi <2 x double> [ %129, %.preheader ], [ %647, %700 ]
  %245 = add nsw i64 %indvars.iv1021, -2
  %246 = getelementptr inbounds float, ptr %5, i64 %245
  %247 = load float, ptr %246, align 4, !tbaa !15
  %248 = getelementptr inbounds float, ptr %2, i64 %245
  %249 = load float, ptr %248, align 4, !tbaa !15
  %250 = fcmp ult float %247, %249
  br i1 %250, label %251, label %475

251:                                              ; preds = %243
  %252 = add nsw i64 %indvars.iv1021, -1
  %253 = getelementptr inbounds float, ptr %5, i64 %252
  %254 = load float, ptr %253, align 4, !tbaa !15
  %255 = getelementptr inbounds float, ptr %2, i64 %252
  %256 = load float, ptr %255, align 4, !tbaa !15
  %257 = fcmp ult float %254, %256
  br i1 %257, label %258, label %475

258:                                              ; preds = %251
  %259 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1021
  %260 = load float, ptr %259, align 4, !tbaa !15
  %261 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1021
  %262 = load float, ptr %261, align 4, !tbaa !15
  %263 = fcmp ult float %260, %262
  br i1 %263, label %264, label %475

264:                                              ; preds = %258
  %265 = fsub float %247, %249
  %266 = tail call float @llvm.fabs.f32(float %265)
  %267 = fpext float %266 to double
  %268 = load double, ptr %201, align 8, !tbaa !22
  %269 = load i32, ptr %27, align 8, !tbaa !11
  %.not856 = icmp eq i32 %269, 0
  br i1 %.not856, label %273, label %270

270:                                              ; preds = %264
  %271 = sitofp i32 %269 to double
  %272 = fdiv double %.1734, %271
  %.pre = load i32, ptr %197, align 4, !tbaa !14
  br label %292

273:                                              ; preds = %264
  %274 = load i32, ptr %197, align 4, !tbaa !14
  switch i32 %274, label %289 [
    i32 0, label %.thread1055
    i32 1, label %275
    i32 2, label %281
  ]

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

281:                                              ; preds = %273
  %282 = getelementptr inbounds float, ptr %3, i64 %245
  %283 = load float, ptr %282, align 4, !tbaa !15
  %284 = fsub float %283, %249
  %285 = getelementptr inbounds float, ptr %4, i64 %245
  %286 = load float, ptr %285, align 4, !tbaa !15
  %287 = fsub float %247, %286
  %288 = fadd float %284, %287
  br label %289

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

292:                                              ; preds = %289, %270
  %293 = phi i32 [ %.pre, %270 ], [ %274, %289 ]
  %294 = phi double [ %272, %270 ], [ %291, %289 ]
  %.fr = freeze i32 %293
  %295 = icmp eq i32 %.fr, 2
  br i1 %295, label %296, label %.thread1055

296:                                              ; preds = %292
  br label %.thread1055

.thread1055:                                      ; preds = %273, %292, %296
  %.pn1077 = phi double [ %294, %296 ], [ %294, %292 ], [ %267, %273 ]
  %297 = phi double [ 2.000000e+00, %296 ], [ 1.000000e+00, %292 ], [ 1.000000e+00, %273 ]
  %298 = fmul double %268, %.pn1077
  %299 = fdiv double %298, %297
  %300 = fcmp olt double %299, %267
  br i1 %300, label %301, label %475

301:                                              ; preds = %.thread1055
  %302 = getelementptr inbounds float, ptr %4, i64 %245
  %303 = load float, ptr %302, align 4, !tbaa !15
  %304 = fsub float %247, %303
  %305 = fpext float %304 to double
  %306 = load double, ptr %202, align 8, !tbaa !22
  %307 = load i32, ptr %30, align 8, !tbaa !11
  %.not857 = icmp eq i32 %307, 0
  br i1 %.not857, label %311, label %308

308:                                              ; preds = %301
  %309 = sitofp i32 %307 to double
  %310 = fdiv double %.1730, %309
  %.pre1051 = load i32, ptr %198, align 4, !tbaa !14
  br label %325

311:                                              ; preds = %301
  %312 = load i32, ptr %198, align 4, !tbaa !14
  switch i32 %312, label %322 [
    i32 0, label %.thread1058
    i32 1, label %313
    i32 2, label %317
  ]

313:                                              ; preds = %311
  %314 = getelementptr inbounds float, ptr %3, i64 %245
  %315 = load float, ptr %314, align 4, !tbaa !15
  %316 = fsub float %315, %303
  br label %322

317:                                              ; preds = %311
  %318 = getelementptr inbounds float, ptr %3, i64 %245
  %319 = load float, ptr %318, align 4, !tbaa !15
  %320 = fsub float %319, %249
  %321 = fadd float %304, %320
  br label %322

322:                                              ; preds = %311, %317, %313
  %323 = phi float [ %316, %313 ], [ %321, %317 ], [ 0.000000e+00, %311 ]
  %324 = fpext float %323 to double
  br label %325

325:                                              ; preds = %322, %308
  %326 = phi i32 [ %.pre1051, %308 ], [ %312, %322 ]
  %327 = phi double [ %310, %308 ], [ %324, %322 ]
  %.fr1078 = freeze i32 %326
  %328 = icmp eq i32 %.fr1078, 2
  br i1 %328, label %329, label %.thread1058

329:                                              ; preds = %325
  br label %.thread1058

.thread1058:                                      ; preds = %311, %325, %329
  %.pn1079 = phi double [ %327, %329 ], [ %327, %325 ], [ %267, %311 ]
  %330 = phi double [ 2.000000e+00, %329 ], [ 1.000000e+00, %325 ], [ 1.000000e+00, %311 ]
  %331 = fmul double %306, %.pn1079
  %332 = fdiv double %331, %330
  %333 = fcmp olt double %332, %305
  br i1 %333, label %334, label %475

334:                                              ; preds = %.thread1058
  %335 = fsub float %254, %256
  %336 = tail call float @llvm.fabs.f32(float %335)
  %337 = fcmp olt float %336, %266
  %338 = fcmp ogt float %256, %247
  %or.cond883 = and i1 %338, %337
  br i1 %or.cond883, label %339, label %475

339:                                              ; preds = %334
  %340 = getelementptr inbounds float, ptr %3, i64 %245
  %341 = load float, ptr %340, align 4, !tbaa !15
  %342 = fcmp ugt float %256, %341
  br i1 %342, label %475, label %343

343:                                              ; preds = %339
  %344 = getelementptr inbounds float, ptr %4, i64 %252
  %345 = load float, ptr %344, align 4, !tbaa !15
  %346 = fcmp uge float %345, %247
  %347 = fcmp ult float %345, %303
  %or.cond931 = select i1 %346, i1 true, i1 %347
  br i1 %or.cond931, label %475, label %348

348:                                              ; preds = %343
  %349 = fsub float %254, %345
  %350 = fpext float %349 to double
  %351 = load double, ptr %203, align 8, !tbaa !22
  %352 = load i32, ptr %33, align 8, !tbaa !11
  %.not858 = icmp eq i32 %352, 0
  br i1 %.not858, label %357, label %353

353:                                              ; preds = %348
  %354 = sitofp i32 %352 to double
  %355 = extractelement <2 x double> %244, i64 0
  %356 = fdiv double %355, %354
  %.pre1052 = load i32, ptr %199, align 4, !tbaa !14
  br label %372

357:                                              ; preds = %348
  %358 = load i32, ptr %199, align 4, !tbaa !14
  switch i32 %358, label %369 [
    i32 0, label %.thread1061
    i32 1, label %360
    i32 2, label %364
  ]

.thread1061:                                      ; preds = %357
  %359 = fpext float %336 to double
  br label %377

360:                                              ; preds = %357
  %361 = getelementptr inbounds float, ptr %3, i64 %252
  %362 = load float, ptr %361, align 4, !tbaa !15
  %363 = fsub float %362, %345
  br label %369

364:                                              ; preds = %357
  %365 = getelementptr inbounds float, ptr %3, i64 %252
  %366 = load float, ptr %365, align 4, !tbaa !15
  %367 = fsub float %366, %256
  %368 = fadd float %349, %367
  br label %369

369:                                              ; preds = %357, %364, %360
  %370 = phi float [ %363, %360 ], [ %368, %364 ], [ 0.000000e+00, %357 ]
  %371 = fpext float %370 to double
  br label %372

372:                                              ; preds = %369, %353
  %373 = phi i32 [ %.pre1052, %353 ], [ %358, %369 ]
  %374 = phi double [ %356, %353 ], [ %371, %369 ]
  %.fr1080 = freeze i32 %373
  %375 = icmp eq i32 %.fr1080, 2
  br i1 %375, label %376, label %377

376:                                              ; preds = %372
  br label %377

377:                                              ; preds = %.thread1061, %372, %376
  %.pn1081 = phi double [ %374, %376 ], [ %374, %372 ], [ %359, %.thread1061 ]
  %378 = phi i32 [ %.fr1080, %376 ], [ %.fr1080, %372 ], [ 0, %.thread1061 ]
  %379 = phi double [ 2.000000e+00, %376 ], [ 1.000000e+00, %372 ], [ 1.000000e+00, %.thread1061 ]
  %380 = fmul double %351, %.pn1081
  %381 = fdiv double %380, %379
  %382 = fcmp olt double %381, %350
  br i1 %382, label %383, label %475

383:                                              ; preds = %377
  %384 = fsub float %260, %262
  %385 = tail call float @llvm.fabs.f32(float %384)
  %386 = fpext float %385 to double
  %387 = load double, ptr %204, align 8, !tbaa !22
  %388 = load i32, ptr %36, align 8, !tbaa !11
  %.not859 = icmp eq i32 %388, 0
  br i1 %.not859, label %392, label %389

389:                                              ; preds = %383
  %390 = sitofp i32 %388 to double
  %391 = fdiv double %.1732, %390
  %.pre1053 = load i32, ptr %200, align 4, !tbaa !14
  br label %411

392:                                              ; preds = %383
  %393 = load i32, ptr %200, align 4, !tbaa !14
  switch i32 %393, label %408 [
    i32 0, label %.thread1064
    i32 1, label %394
    i32 2, label %400
  ]

394:                                              ; preds = %392
  %395 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %396 = load float, ptr %395, align 4, !tbaa !15
  %397 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1021
  %398 = load float, ptr %397, align 4, !tbaa !15
  %399 = fsub float %396, %398
  br label %408

400:                                              ; preds = %392
  %401 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %402 = load float, ptr %401, align 4, !tbaa !15
  %403 = fsub float %402, %262
  %404 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1021
  %405 = load float, ptr %404, align 4, !tbaa !15
  %406 = fsub float %260, %405
  %407 = fadd float %403, %406
  br label %408

408:                                              ; preds = %392, %400, %394
  %409 = phi float [ %399, %394 ], [ %407, %400 ], [ 0.000000e+00, %392 ]
  %410 = fpext float %409 to double
  br label %411

411:                                              ; preds = %408, %389
  %412 = phi i32 [ %.pre1053, %389 ], [ %393, %408 ]
  %413 = phi double [ %391, %389 ], [ %410, %408 ]
  %.fr1082 = freeze i32 %412
  %414 = icmp eq i32 %.fr1082, 2
  br i1 %414, label %415, label %.thread1064

415:                                              ; preds = %411
  br label %.thread1064

.thread1064:                                      ; preds = %392, %411, %415
  %.pn1083 = phi double [ %413, %415 ], [ %413, %411 ], [ %386, %392 ]
  %416 = phi double [ 2.000000e+00, %415 ], [ 1.000000e+00, %411 ], [ 1.000000e+00, %392 ]
  %417 = fmul double %387, %.pn1083
  %418 = fdiv double %417, %416
  %419 = fcmp ogt double %418, %386
  br i1 %419, label %420, label %475

420:                                              ; preds = %.thread1064
  %421 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1021
  %422 = load float, ptr %421, align 4, !tbaa !15
  %423 = fsub float %260, %422
  %424 = fpext float %423 to double
  br i1 %.not858, label %425, label %.thread905

425:                                              ; preds = %420
  switch i32 %378, label %435 [
    i32 0, label %438
    i32 1, label %426
    i32 2, label %430
  ]

426:                                              ; preds = %425
  %427 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %428 = load float, ptr %427, align 4, !tbaa !15
  %429 = fsub float %428, %422
  br label %435

430:                                              ; preds = %425
  %431 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %432 = load float, ptr %431, align 4, !tbaa !15
  %433 = fsub float %432, %262
  %434 = fadd float %423, %433
  br label %435

435:                                              ; preds = %425, %430, %426
  %436 = phi float [ %429, %426 ], [ %434, %430 ], [ 0.000000e+00, %425 ]
  %437 = fpext float %436 to double
  br label %438

438:                                              ; preds = %425, %435
  %439 = phi double [ %437, %435 ], [ %386, %425 ]
  %440 = fmul double %351, %439
  %441 = fdiv double %440, %379
  %442 = fcmp ogt double %441, %424
  br i1 %442, label %452, label %475

.thread905:                                       ; preds = %420
  %443 = sitofp i32 %352 to double
  %444 = extractelement <2 x double> %244, i64 1
  %445 = fdiv double %444, %443
  %446 = fmul double %351, %445
  %447 = fdiv double %446, %379
  %448 = fcmp ogt double %447, %424
  br i1 %448, label %.thread906, label %475

.thread906:                                       ; preds = %.thread905
  %449 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %450 = load float, ptr %449, align 4, !tbaa !15
  %451 = fsub float %450, %262
  br label %463

452:                                              ; preds = %438
  %453 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %454 = load float, ptr %453, align 4, !tbaa !15
  %455 = fsub float %454, %262
  switch i32 %378, label %460 [
    i32 0, label %463
    i32 1, label %456
    i32 2, label %458
  ]

456:                                              ; preds = %452
  %457 = fsub float %454, %422
  br label %460

458:                                              ; preds = %452
  %459 = fadd float %423, %455
  br label %460

460:                                              ; preds = %452, %458, %456
  %461 = phi float [ %457, %456 ], [ %459, %458 ], [ 0.000000e+00, %452 ]
  %462 = fpext float %461 to double
  br label %463

463:                                              ; preds = %452, %460, %.thread906
  %.in = phi float [ %451, %.thread906 ], [ %455, %460 ], [ %455, %452 ]
  %464 = phi float [ %450, %.thread906 ], [ %454, %460 ], [ %454, %452 ]
  %465 = phi double [ %445, %.thread906 ], [ %462, %460 ], [ %386, %452 ]
  %466 = fpext float %.in to double
  %467 = fmul double %351, %465
  %468 = fdiv double %467, %379
  %469 = fcmp ogt double %468, %466
  %470 = fcmp ogt float %422, %345
  %or.cond932 = select i1 %469, i1 %470, i1 false
  br i1 %or.cond932, label %471, label %475

471:                                              ; preds = %463
  %472 = getelementptr inbounds float, ptr %3, i64 %252
  %473 = load float, ptr %472, align 4, !tbaa !15
  %474 = fcmp olt float %464, %473
  br i1 %474, label %476, label %475

475:                                              ; preds = %.thread905, %471, %463, %438, %.thread1064, %377, %343, %339, %334, %.thread1058, %.thread1055, %258, %251, %243
  br label %476

476:                                              ; preds = %471, %475
  %.sink = phi i32 [ 0, %475 ], [ 100, %471 ]
  %477 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv1023
  store i32 %.sink, ptr %477, align 4, !tbaa !5
  %indvars.iv.next1024 = add nuw nsw i64 %indvars.iv1023, 1
  %478 = load i32, ptr %197, align 4, !tbaa !14
  switch i32 %478, label %524 [
    i32 0, label %.thread907
    i32 1, label %.thread909
    i32 2, label %.thread911
  ]

.thread907:                                       ; preds = %476
  %479 = fsub float %247, %249
  %480 = tail call float @llvm.fabs.f32(float %479)
  %481 = fpext float %480 to double
  %482 = add nsw i64 %indvars.iv1025, -2
  %483 = getelementptr inbounds float, ptr %5, i64 %482
  %484 = load float, ptr %483, align 4, !tbaa !15
  %485 = getelementptr inbounds float, ptr %2, i64 %482
  %486 = load float, ptr %485, align 4, !tbaa !15
  %487 = fsub float %484, %486
  %488 = tail call float @llvm.fabs.f32(float %487)
  br label %524

.thread909:                                       ; preds = %476
  %489 = getelementptr inbounds float, ptr %3, i64 %245
  %490 = load float, ptr %489, align 4, !tbaa !15
  %491 = getelementptr inbounds float, ptr %4, i64 %245
  %492 = load float, ptr %491, align 4, !tbaa !15
  %493 = fsub float %490, %492
  %494 = fpext float %493 to double
  %495 = add nsw i64 %indvars.iv1025, -2
  %496 = getelementptr inbounds float, ptr %3, i64 %495
  %497 = load float, ptr %496, align 4, !tbaa !15
  %498 = getelementptr inbounds float, ptr %4, i64 %495
  %499 = load float, ptr %498, align 4, !tbaa !15
  %500 = fsub float %497, %499
  br label %524

.thread911:                                       ; preds = %476
  %501 = getelementptr inbounds float, ptr %3, i64 %245
  %502 = load float, ptr %501, align 4, !tbaa !15
  %.891 = select i1 %250, float %249, float %247
  %503 = fsub float %502, %.891
  %504 = select i1 %250, float %247, float %249
  %505 = getelementptr inbounds float, ptr %4, i64 %245
  %506 = load float, ptr %505, align 4, !tbaa !15
  %507 = fsub float %504, %506
  %508 = fadd float %503, %507
  %509 = fpext float %508 to double
  %510 = add nsw i64 %indvars.iv1025, -2
  %511 = getelementptr inbounds float, ptr %3, i64 %510
  %512 = load float, ptr %511, align 4, !tbaa !15
  %513 = getelementptr inbounds float, ptr %5, i64 %510
  %514 = load float, ptr %513, align 4, !tbaa !15
  %515 = getelementptr inbounds float, ptr %2, i64 %510
  %516 = load float, ptr %515, align 4, !tbaa !15
  %517 = fcmp ult float %514, %516
  %.892 = select i1 %517, float %516, float %514
  %518 = fsub float %512, %.892
  %519 = select i1 %517, float %514, float %516
  %520 = getelementptr inbounds float, ptr %4, i64 %510
  %521 = load float, ptr %520, align 4, !tbaa !15
  %522 = fsub float %519, %521
  %523 = fadd float %518, %522
  br label %524

524:                                              ; preds = %476, %.thread909, %.thread911, %.thread907
  %525 = phi double [ %481, %.thread907 ], [ %494, %.thread909 ], [ %509, %.thread911 ], [ 0.000000e+00, %476 ]
  %.in862 = phi float [ %488, %.thread907 ], [ %500, %.thread909 ], [ %523, %.thread911 ], [ 0.000000e+00, %476 ]
  %526 = fpext float %.in862 to double
  %527 = fsub double %525, %526
  %528 = fadd double %.1734, %527
  %529 = load i32, ptr %198, align 4, !tbaa !14
  switch i32 %529, label %575 [
    i32 0, label %.thread913
    i32 1, label %.thread915
    i32 2, label %.thread917
  ]

.thread913:                                       ; preds = %524
  %530 = fsub float %247, %249
  %531 = tail call float @llvm.fabs.f32(float %530)
  %532 = fpext float %531 to double
  %533 = add nsw i64 %indvars.iv1029, -2
  %534 = getelementptr inbounds float, ptr %5, i64 %533
  %535 = load float, ptr %534, align 4, !tbaa !15
  %536 = getelementptr inbounds float, ptr %2, i64 %533
  %537 = load float, ptr %536, align 4, !tbaa !15
  %538 = fsub float %535, %537
  %539 = tail call float @llvm.fabs.f32(float %538)
  br label %575

.thread915:                                       ; preds = %524
  %540 = getelementptr inbounds float, ptr %3, i64 %245
  %541 = load float, ptr %540, align 4, !tbaa !15
  %542 = getelementptr inbounds float, ptr %4, i64 %245
  %543 = load float, ptr %542, align 4, !tbaa !15
  %544 = fsub float %541, %543
  %545 = fpext float %544 to double
  %546 = add nsw i64 %indvars.iv1029, -2
  %547 = getelementptr inbounds float, ptr %3, i64 %546
  %548 = load float, ptr %547, align 4, !tbaa !15
  %549 = getelementptr inbounds float, ptr %4, i64 %546
  %550 = load float, ptr %549, align 4, !tbaa !15
  %551 = fsub float %548, %550
  br label %575

.thread917:                                       ; preds = %524
  %552 = getelementptr inbounds float, ptr %3, i64 %245
  %553 = load float, ptr %552, align 4, !tbaa !15
  %.893 = select i1 %250, float %249, float %247
  %554 = fsub float %553, %.893
  %555 = select i1 %250, float %247, float %249
  %556 = getelementptr inbounds float, ptr %4, i64 %245
  %557 = load float, ptr %556, align 4, !tbaa !15
  %558 = fsub float %555, %557
  %559 = fadd float %554, %558
  %560 = fpext float %559 to double
  %561 = add nsw i64 %indvars.iv1029, -2
  %562 = getelementptr inbounds float, ptr %3, i64 %561
  %563 = load float, ptr %562, align 4, !tbaa !15
  %564 = getelementptr inbounds float, ptr %5, i64 %561
  %565 = load float, ptr %564, align 4, !tbaa !15
  %566 = getelementptr inbounds float, ptr %2, i64 %561
  %567 = load float, ptr %566, align 4, !tbaa !15
  %568 = fcmp ult float %565, %567
  %.894 = select i1 %568, float %567, float %565
  %569 = fsub float %563, %.894
  %570 = select i1 %568, float %565, float %567
  %571 = getelementptr inbounds float, ptr %4, i64 %561
  %572 = load float, ptr %571, align 4, !tbaa !15
  %573 = fsub float %570, %572
  %574 = fadd float %569, %573
  br label %575

575:                                              ; preds = %524, %.thread915, %.thread917, %.thread913
  %576 = phi double [ %532, %.thread913 ], [ %545, %.thread915 ], [ %560, %.thread917 ], [ 0.000000e+00, %524 ]
  %.in864 = phi float [ %539, %.thread913 ], [ %551, %.thread915 ], [ %574, %.thread917 ], [ 0.000000e+00, %524 ]
  %577 = fpext float %.in864 to double
  %578 = fsub double %576, %577
  %579 = fadd double %.1730, %578
  %580 = load i32, ptr %199, align 4, !tbaa !14
  switch i32 %580, label %.split973.us [
    i32 0, label %.thread919.us.preheader
    i32 1, label %.thread921.us.preheader
    i32 2, label %.thread923.us.preheader
  ]

.thread923.us.preheader:                          ; preds = %575
  %581 = add nsw i64 %indvars.iv1021, -1
  %582 = getelementptr inbounds float, ptr %3, i64 %581
  %583 = getelementptr inbounds float, ptr %5, i64 %581
  %584 = getelementptr inbounds float, ptr %2, i64 %581
  %585 = getelementptr inbounds float, ptr %4, i64 %581
  %586 = add nsw i64 %indvars.iv1031, -1
  %587 = getelementptr inbounds float, ptr %3, i64 %586
  %588 = getelementptr inbounds float, ptr %5, i64 %586
  %589 = getelementptr inbounds float, ptr %2, i64 %586
  %590 = getelementptr inbounds float, ptr %4, i64 %586
  %591 = load <2 x float>, ptr %582, align 4, !tbaa !15
  %592 = load <2 x float>, ptr %583, align 4, !tbaa !15
  %593 = load <2 x float>, ptr %584, align 4, !tbaa !15
  %594 = fcmp ult <2 x float> %592, %593
  %595 = select <2 x i1> %594, <2 x float> %593, <2 x float> %592
  %596 = fsub <2 x float> %591, %595
  %597 = select <2 x i1> %594, <2 x float> %592, <2 x float> %593
  %598 = load <2 x float>, ptr %585, align 4, !tbaa !15
  %599 = fsub <2 x float> %597, %598
  %600 = fadd <2 x float> %596, %599
  %601 = fpext <2 x float> %600 to <2 x double>
  %602 = load <2 x float>, ptr %587, align 4, !tbaa !15
  %603 = load <2 x float>, ptr %588, align 4, !tbaa !15
  %604 = load <2 x float>, ptr %589, align 4, !tbaa !15
  %605 = fcmp ult <2 x float> %603, %604
  %606 = select <2 x i1> %605, <2 x float> %604, <2 x float> %603
  %607 = fsub <2 x float> %602, %606
  %608 = select <2 x i1> %605, <2 x float> %603, <2 x float> %604
  %609 = load <2 x float>, ptr %590, align 4, !tbaa !15
  %610 = fsub <2 x float> %608, %609
  %611 = fadd <2 x float> %607, %610
  %612 = fpext <2 x float> %611 to <2 x double>
  %613 = fsub <2 x double> %601, %612
  br label %.split973.us

.thread921.us.preheader:                          ; preds = %575
  %614 = add nsw i64 %indvars.iv1021, -1
  %615 = getelementptr inbounds float, ptr %3, i64 %614
  %616 = getelementptr inbounds float, ptr %4, i64 %614
  %617 = add nsw i64 %indvars.iv1031, -1
  %618 = getelementptr inbounds float, ptr %3, i64 %617
  %619 = getelementptr inbounds float, ptr %4, i64 %617
  %620 = load <2 x float>, ptr %615, align 4, !tbaa !15
  %621 = load <2 x float>, ptr %616, align 4, !tbaa !15
  %622 = fsub <2 x float> %620, %621
  %623 = fpext <2 x float> %622 to <2 x double>
  %624 = load <2 x float>, ptr %618, align 4, !tbaa !15
  %625 = load <2 x float>, ptr %619, align 4, !tbaa !15
  %626 = fsub <2 x float> %624, %625
  %627 = fpext <2 x float> %626 to <2 x double>
  %628 = fsub <2 x double> %623, %627
  br label %.split973.us

.thread919.us.preheader:                          ; preds = %575
  %629 = add nsw i64 %indvars.iv1021, -1
  %630 = getelementptr inbounds float, ptr %5, i64 %629
  %631 = getelementptr inbounds float, ptr %2, i64 %629
  %632 = add nsw i64 %indvars.iv1031, -1
  %633 = getelementptr inbounds float, ptr %5, i64 %632
  %634 = getelementptr inbounds float, ptr %2, i64 %632
  %635 = load <2 x float>, ptr %630, align 4, !tbaa !15
  %636 = load <2 x float>, ptr %631, align 4, !tbaa !15
  %637 = fsub <2 x float> %635, %636
  %638 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %637)
  %639 = fpext <2 x float> %638 to <2 x double>
  %640 = load <2 x float>, ptr %633, align 4, !tbaa !15
  %641 = load <2 x float>, ptr %634, align 4, !tbaa !15
  %642 = fsub <2 x float> %640, %641
  %643 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %642)
  %644 = fpext <2 x float> %643 to <2 x double>
  %645 = fsub <2 x double> %639, %644
  br label %.split973.us

.split973.us:                                     ; preds = %575, %.thread923.us.preheader, %.thread921.us.preheader, %.thread919.us.preheader
  %646 = phi <2 x double> [ %613, %.thread923.us.preheader ], [ %628, %.thread921.us.preheader ], [ %645, %.thread919.us.preheader ], [ zeroinitializer, %575 ]
  %647 = fadd <2 x double> %244, %646
  %648 = load i32, ptr %200, align 4, !tbaa !14
  switch i32 %648, label %700 [
    i32 0, label %.thread925
    i32 1, label %.thread927
    i32 2, label %.thread929
  ]

.thread925:                                       ; preds = %.split973.us
  %649 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1021
  %650 = load float, ptr %649, align 4, !tbaa !15
  %651 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1021
  %652 = load float, ptr %651, align 4, !tbaa !15
  %653 = fsub float %650, %652
  %654 = tail call float @llvm.fabs.f32(float %653)
  %655 = fpext float %654 to double
  %656 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1027
  %657 = load float, ptr %656, align 4, !tbaa !15
  %658 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1027
  %659 = load float, ptr %658, align 4, !tbaa !15
  %660 = fsub float %657, %659
  %661 = tail call float @llvm.fabs.f32(float %660)
  br label %700

.thread927:                                       ; preds = %.split973.us
  %662 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %663 = load float, ptr %662, align 4, !tbaa !15
  %664 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1021
  %665 = load float, ptr %664, align 4, !tbaa !15
  %666 = fsub float %663, %665
  %667 = fpext float %666 to double
  %668 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1027
  %669 = load float, ptr %668, align 4, !tbaa !15
  %670 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1027
  %671 = load float, ptr %670, align 4, !tbaa !15
  %672 = fsub float %669, %671
  br label %700

.thread929:                                       ; preds = %.split973.us
  %673 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %674 = load float, ptr %673, align 4, !tbaa !15
  %675 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1021
  %676 = load float, ptr %675, align 4, !tbaa !15
  %677 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1021
  %678 = load float, ptr %677, align 4, !tbaa !15
  %679 = fcmp ult float %676, %678
  %.897 = select i1 %679, float %678, float %676
  %680 = fsub float %674, %.897
  %681 = select i1 %679, float %676, float %678
  %682 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1021
  %683 = load float, ptr %682, align 4, !tbaa !15
  %684 = fsub float %681, %683
  %685 = fadd float %680, %684
  %686 = fpext float %685 to double
  %687 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1027
  %688 = load float, ptr %687, align 4, !tbaa !15
  %689 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1027
  %690 = load float, ptr %689, align 4, !tbaa !15
  %691 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1027
  %692 = load float, ptr %691, align 4, !tbaa !15
  %693 = fcmp ult float %690, %692
  %.898 = select i1 %693, float %692, float %690
  %694 = fsub float %688, %.898
  %695 = select i1 %693, float %690, float %692
  %696 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1027
  %697 = load float, ptr %696, align 4, !tbaa !15
  %698 = fsub float %695, %697
  %699 = fadd float %694, %698
  br label %700

700:                                              ; preds = %.split973.us, %.thread927, %.thread929, %.thread925
  %701 = phi double [ %655, %.thread925 ], [ %667, %.thread927 ], [ %686, %.thread929 ], [ 0.000000e+00, %.split973.us ]
  %.in866 = phi float [ %661, %.thread925 ], [ %672, %.thread927 ], [ %699, %.thread929 ], [ 0.000000e+00, %.split973.us ]
  %702 = fpext float %.in866 to double
  %703 = fsub double %701, %702
  %704 = fadd double %.1732, %703
  %indvars.iv.next1022 = add nuw nsw i64 %indvars.iv1021, 1
  %indvars.iv.next1026 = add nsw i64 %indvars.iv1025, 1
  %indvars.iv.next1030 = add nsw i64 %indvars.iv1029, 1
  %indvars.iv.next1032 = add nsw i64 %indvars.iv1031, 1
  %indvars.iv.next1028 = add nsw i64 %indvars.iv1027, 1
  %.not867.not = icmp slt i64 %indvars.iv1021, %207
  br i1 %.not867.not, label %243, label %705, !llvm.loop !23

705:                                              ; preds = %700
  %706 = trunc nuw i64 %indvars.iv.next1024 to i32
  store i32 %706, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %707

707:                                              ; preds = %13, %11, %9, %705, %24
  %.0 = phi i32 [ 0, %24 ], [ 0, %705 ], [ 12, %9 ], [ 13, %11 ], [ 2, %13 ]
  ret i32 %.0
}

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fabs.v2f32(<2 x float>) #1

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 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 = distinct !{!20, !18}
!21 = distinct !{!21, !18}
!22 = !{!12, !13, i64 16}
!23 = distinct !{!23, !18}


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