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

; 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_CDLKICKING_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_CDLKICKING(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 [2 x double], align 16
  %21 = alloca [2 x double], align 16
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %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
  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 16, ptr %20) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 4, 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
  %29 = load i32, ptr %11, align 4, !tbaa !5
  %30 = icmp slt i32 %29, 0
  br i1 %30, label %31, label %32

31:                                               ; preds = %9
  store i32 12, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2496

32:                                               ; preds = %9
  %33 = load i32, ptr %12, align 4, !tbaa !5
  %34 = icmp slt i32 %33, 0
  br i1 %34, label %39, label %35

35:                                               ; preds = %32
  %36 = load i32, ptr %12, align 4, !tbaa !5
  %37 = load i32, ptr %11, align 4, !tbaa !5
  %38 = icmp slt i32 %36, %37
  br i1 %38, label %39, label %40

39:                                               ; preds = %35, %32
  store i32 13, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2496

40:                                               ; preds = %35
  %41 = load ptr, ptr %13, align 8, !tbaa !9
  %42 = icmp ne ptr %41, null
  br i1 %42, label %43, label %52

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

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

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

52:                                               ; preds = %49, %46, %43, %40
  store i32 2, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2496

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

56:                                               ; preds = %53
  store i32 2, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2496

57:                                               ; preds = %53
  %58 = call i32 @TA_CDLKICKING_Lookback()
  store i32 %58, ptr %27, align 4, !tbaa !5
  %59 = load i32, ptr %11, align 4, !tbaa !5
  %60 = load i32, ptr %27, align 4, !tbaa !5
  %61 = icmp slt i32 %59, %60
  br i1 %61, label %62, label %64

62:                                               ; preds = %57
  %63 = load i32, ptr %27, align 4, !tbaa !5
  store i32 %63, ptr %11, align 4, !tbaa !5
  br label %64

64:                                               ; preds = %62, %57
  %65 = load i32, ptr %11, align 4, !tbaa !5
  %66 = load i32, ptr %12, align 4, !tbaa !5
  %67 = icmp sgt i32 %65, %66
  br i1 %67, label %68, label %71

68:                                               ; preds = %64
  %69 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 0, ptr %69, align 4, !tbaa !5
  %70 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 0, ptr %70, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2496

71:                                               ; preds = %64
  %72 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 1
  store double 0.000000e+00, ptr %72, align 8, !tbaa !11
  %73 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 0
  store double 0.000000e+00, ptr %73, align 16, !tbaa !11
  %74 = load i32, ptr %11, align 4, !tbaa !5
  %75 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %76 = getelementptr inbounds %struct.TA_LibcPriv, ptr %75, i32 0, i32 8
  %77 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %76, i64 0, i64 7
  %78 = getelementptr inbounds %struct.TA_CandleSetting, ptr %77, i32 0, i32 2
  %79 = load i32, ptr %78, align 8, !tbaa !13
  %80 = sub nsw i32 %74, %79
  store i32 %80, ptr %25, align 4, !tbaa !5
  %81 = getelementptr inbounds [2 x double], ptr %21, i64 0, i64 1
  store double 0.000000e+00, ptr %81, align 8, !tbaa !11
  %82 = getelementptr inbounds [2 x double], ptr %21, i64 0, i64 0
  store double 0.000000e+00, ptr %82, align 16, !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 0
  %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 %26, align 4, !tbaa !5
  %90 = load i32, ptr %25, align 4, !tbaa !5
  store i32 %90, ptr %22, align 4, !tbaa !5
  br label %91

91:                                               ; preds = %347, %71
  %92 = load i32, ptr %22, align 4, !tbaa !5
  %93 = load i32, ptr %11, align 4, !tbaa !5
  %94 = icmp slt i32 %92, %93
  br i1 %94, label %95, label %354

95:                                               ; preds = %91
  %96 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %97 = getelementptr inbounds %struct.TA_LibcPriv, ptr %96, i32 0, i32 8
  %98 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %97, i64 0, i64 7
  %99 = getelementptr inbounds %struct.TA_CandleSetting, ptr %98, i32 0, i32 1
  %100 = load i32, ptr %99, align 4, !tbaa !15
  %101 = icmp eq i32 %100, 0
  br i1 %101, label %102, label %118

102:                                              ; preds = %95
  %103 = load ptr, ptr %16, align 8, !tbaa !9
  %104 = load i32, ptr %22, align 4, !tbaa !5
  %105 = sub nsw i32 %104, 1
  %106 = sext i32 %105 to i64
  %107 = getelementptr inbounds float, ptr %103, i64 %106
  %108 = load float, ptr %107, align 4, !tbaa !16
  %109 = load ptr, ptr %13, align 8, !tbaa !9
  %110 = load i32, ptr %22, align 4, !tbaa !5
  %111 = sub nsw i32 %110, 1
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds float, ptr %109, i64 %112
  %114 = load float, ptr %113, align 4, !tbaa !16
  %115 = fsub float %108, %114
  %116 = fpext float %115 to double
  %117 = call double @llvm.fabs.f64(double %116)
  br label %226

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

125:                                              ; preds = %118
  %126 = load ptr, ptr %14, align 8, !tbaa !9
  %127 = load i32, ptr %22, align 4, !tbaa !5
  %128 = sub nsw i32 %127, 1
  %129 = sext i32 %128 to i64
  %130 = getelementptr inbounds float, ptr %126, i64 %129
  %131 = load float, ptr %130, align 4, !tbaa !16
  %132 = load ptr, ptr %15, align 8, !tbaa !9
  %133 = load i32, ptr %22, align 4, !tbaa !5
  %134 = sub nsw i32 %133, 1
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds float, ptr %132, i64 %135
  %137 = load float, ptr %136, align 4, !tbaa !16
  %138 = fsub float %131, %137
  br label %223

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

146:                                              ; preds = %139
  %147 = load ptr, ptr %14, align 8, !tbaa !9
  %148 = load i32, ptr %22, align 4, !tbaa !5
  %149 = sub nsw i32 %148, 1
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds float, ptr %147, i64 %150
  %152 = load float, ptr %151, align 4, !tbaa !16
  %153 = load ptr, ptr %16, align 8, !tbaa !9
  %154 = load i32, ptr %22, align 4, !tbaa !5
  %155 = sub nsw i32 %154, 1
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds float, ptr %153, i64 %156
  %158 = load float, ptr %157, align 4, !tbaa !16
  %159 = load ptr, ptr %13, align 8, !tbaa !9
  %160 = load i32, ptr %22, align 4, !tbaa !5
  %161 = sub nsw i32 %160, 1
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds float, ptr %159, i64 %162
  %164 = load float, ptr %163, align 4, !tbaa !16
  %165 = fcmp oge float %158, %164
  br i1 %165, label %166, label %173

166:                                              ; preds = %146
  %167 = load ptr, ptr %16, align 8, !tbaa !9
  %168 = load i32, ptr %22, align 4, !tbaa !5
  %169 = sub nsw i32 %168, 1
  %170 = sext i32 %169 to i64
  %171 = getelementptr inbounds float, ptr %167, i64 %170
  %172 = load float, ptr %171, align 4, !tbaa !16
  br label %180

173:                                              ; preds = %146
  %174 = load ptr, ptr %13, align 8, !tbaa !9
  %175 = load i32, ptr %22, align 4, !tbaa !5
  %176 = sub nsw i32 %175, 1
  %177 = sext i32 %176 to i64
  %178 = getelementptr inbounds float, ptr %174, i64 %177
  %179 = load float, ptr %178, align 4, !tbaa !16
  br label %180

180:                                              ; preds = %173, %166
  %181 = phi float [ %172, %166 ], [ %179, %173 ]
  %182 = fsub float %152, %181
  %183 = load ptr, ptr %16, align 8, !tbaa !9
  %184 = load i32, ptr %22, align 4, !tbaa !5
  %185 = sub nsw i32 %184, 1
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds float, ptr %183, i64 %186
  %188 = load float, ptr %187, align 4, !tbaa !16
  %189 = load ptr, ptr %13, align 8, !tbaa !9
  %190 = load i32, ptr %22, align 4, !tbaa !5
  %191 = sub nsw i32 %190, 1
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds float, ptr %189, i64 %192
  %194 = load float, ptr %193, align 4, !tbaa !16
  %195 = fcmp oge float %188, %194
  br i1 %195, label %196, label %203

196:                                              ; preds = %180
  %197 = load ptr, ptr %13, align 8, !tbaa !9
  %198 = load i32, ptr %22, align 4, !tbaa !5
  %199 = sub nsw i32 %198, 1
  %200 = sext i32 %199 to i64
  %201 = getelementptr inbounds float, ptr %197, i64 %200
  %202 = load float, ptr %201, align 4, !tbaa !16
  br label %210

203:                                              ; preds = %180
  %204 = load ptr, ptr %16, align 8, !tbaa !9
  %205 = load i32, ptr %22, align 4, !tbaa !5
  %206 = sub nsw i32 %205, 1
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds float, ptr %204, i64 %207
  %209 = load float, ptr %208, align 4, !tbaa !16
  br label %210

210:                                              ; preds = %203, %196
  %211 = phi float [ %202, %196 ], [ %209, %203 ]
  %212 = load ptr, ptr %15, align 8, !tbaa !9
  %213 = load i32, ptr %22, align 4, !tbaa !5
  %214 = sub nsw i32 %213, 1
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds float, ptr %212, i64 %215
  %217 = load float, ptr %216, align 4, !tbaa !16
  %218 = fsub float %211, %217
  %219 = fadd float %182, %218
  br label %221

220:                                              ; preds = %139
  br label %221

221:                                              ; preds = %220, %210
  %222 = phi float [ %219, %210 ], [ 0.000000e+00, %220 ]
  br label %223

223:                                              ; preds = %221, %125
  %224 = phi float [ %138, %125 ], [ %222, %221 ]
  %225 = fpext float %224 to double
  br label %226

226:                                              ; preds = %223, %102
  %227 = phi double [ %117, %102 ], [ %225, %223 ]
  %228 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 1
  %229 = load double, ptr %228, align 8, !tbaa !11
  %230 = fadd double %229, %227
  store double %230, ptr %228, align 8, !tbaa !11
  %231 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %232 = getelementptr inbounds %struct.TA_LibcPriv, ptr %231, i32 0, i32 8
  %233 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %232, i64 0, i64 7
  %234 = getelementptr inbounds %struct.TA_CandleSetting, ptr %233, i32 0, i32 1
  %235 = load i32, ptr %234, align 4, !tbaa !15
  %236 = icmp eq i32 %235, 0
  br i1 %236, label %237, label %251

237:                                              ; preds = %226
  %238 = load ptr, ptr %16, align 8, !tbaa !9
  %239 = load i32, ptr %22, align 4, !tbaa !5
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds float, ptr %238, i64 %240
  %242 = load float, ptr %241, align 4, !tbaa !16
  %243 = load ptr, ptr %13, align 8, !tbaa !9
  %244 = load i32, ptr %22, align 4, !tbaa !5
  %245 = sext i32 %244 to i64
  %246 = getelementptr inbounds float, ptr %243, i64 %245
  %247 = load float, ptr %246, align 4, !tbaa !16
  %248 = fsub float %242, %247
  %249 = fpext float %248 to double
  %250 = call double @llvm.fabs.f64(double %249)
  br label %347

251:                                              ; preds = %226
  %252 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %253 = getelementptr inbounds %struct.TA_LibcPriv, ptr %252, i32 0, i32 8
  %254 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %253, i64 0, i64 7
  %255 = getelementptr inbounds %struct.TA_CandleSetting, ptr %254, i32 0, i32 1
  %256 = load i32, ptr %255, align 4, !tbaa !15
  %257 = icmp eq i32 %256, 1
  br i1 %257, label %258, label %270

258:                                              ; preds = %251
  %259 = load ptr, ptr %14, align 8, !tbaa !9
  %260 = load i32, ptr %22, align 4, !tbaa !5
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds float, ptr %259, i64 %261
  %263 = load float, ptr %262, align 4, !tbaa !16
  %264 = load ptr, ptr %15, align 8, !tbaa !9
  %265 = load i32, ptr %22, align 4, !tbaa !5
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds float, ptr %264, i64 %266
  %268 = load float, ptr %267, align 4, !tbaa !16
  %269 = fsub float %263, %268
  br label %344

270:                                              ; preds = %251
  %271 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %272 = getelementptr inbounds %struct.TA_LibcPriv, ptr %271, i32 0, i32 8
  %273 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %272, i64 0, i64 7
  %274 = getelementptr inbounds %struct.TA_CandleSetting, ptr %273, i32 0, i32 1
  %275 = load i32, ptr %274, align 4, !tbaa !15
  %276 = icmp eq i32 %275, 2
  br i1 %276, label %277, label %341

277:                                              ; preds = %270
  %278 = load ptr, ptr %14, align 8, !tbaa !9
  %279 = load i32, ptr %22, align 4, !tbaa !5
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds float, ptr %278, i64 %280
  %282 = load float, ptr %281, align 4, !tbaa !16
  %283 = load ptr, ptr %16, align 8, !tbaa !9
  %284 = load i32, ptr %22, align 4, !tbaa !5
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds float, ptr %283, i64 %285
  %287 = load float, ptr %286, align 4, !tbaa !16
  %288 = load ptr, ptr %13, align 8, !tbaa !9
  %289 = load i32, ptr %22, align 4, !tbaa !5
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds float, ptr %288, i64 %290
  %292 = load float, ptr %291, align 4, !tbaa !16
  %293 = fcmp oge float %287, %292
  br i1 %293, label %294, label %300

294:                                              ; preds = %277
  %295 = load ptr, ptr %16, align 8, !tbaa !9
  %296 = load i32, ptr %22, align 4, !tbaa !5
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds float, ptr %295, i64 %297
  %299 = load float, ptr %298, align 4, !tbaa !16
  br label %306

300:                                              ; preds = %277
  %301 = load ptr, ptr %13, align 8, !tbaa !9
  %302 = load i32, ptr %22, align 4, !tbaa !5
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds float, ptr %301, i64 %303
  %305 = load float, ptr %304, align 4, !tbaa !16
  br label %306

306:                                              ; preds = %300, %294
  %307 = phi float [ %299, %294 ], [ %305, %300 ]
  %308 = fsub float %282, %307
  %309 = load ptr, ptr %16, align 8, !tbaa !9
  %310 = load i32, ptr %22, align 4, !tbaa !5
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds float, ptr %309, i64 %311
  %313 = load float, ptr %312, align 4, !tbaa !16
  %314 = load ptr, ptr %13, align 8, !tbaa !9
  %315 = load i32, ptr %22, align 4, !tbaa !5
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds float, ptr %314, i64 %316
  %318 = load float, ptr %317, align 4, !tbaa !16
  %319 = fcmp oge float %313, %318
  br i1 %319, label %320, label %326

320:                                              ; preds = %306
  %321 = load ptr, ptr %13, align 8, !tbaa !9
  %322 = load i32, ptr %22, align 4, !tbaa !5
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds float, ptr %321, i64 %323
  %325 = load float, ptr %324, align 4, !tbaa !16
  br label %332

326:                                              ; preds = %306
  %327 = load ptr, ptr %16, align 8, !tbaa !9
  %328 = load i32, ptr %22, align 4, !tbaa !5
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds float, ptr %327, i64 %329
  %331 = load float, ptr %330, align 4, !tbaa !16
  br label %332

332:                                              ; preds = %326, %320
  %333 = phi float [ %325, %320 ], [ %331, %326 ]
  %334 = load ptr, ptr %15, align 8, !tbaa !9
  %335 = load i32, ptr %22, align 4, !tbaa !5
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds float, ptr %334, i64 %336
  %338 = load float, ptr %337, align 4, !tbaa !16
  %339 = fsub float %333, %338
  %340 = fadd float %308, %339
  br label %342

341:                                              ; preds = %270
  br label %342

342:                                              ; preds = %341, %332
  %343 = phi float [ %340, %332 ], [ 0.000000e+00, %341 ]
  br label %344

344:                                              ; preds = %342, %258
  %345 = phi float [ %269, %258 ], [ %343, %342 ]
  %346 = fpext float %345 to double
  br label %347

347:                                              ; preds = %344, %237
  %348 = phi double [ %250, %237 ], [ %346, %344 ]
  %349 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 0
  %350 = load double, ptr %349, align 16, !tbaa !11
  %351 = fadd double %350, %348
  store double %351, ptr %349, align 16, !tbaa !11
  %352 = load i32, ptr %22, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr %22, align 4, !tbaa !5
  br label %91, !llvm.loop !18

354:                                              ; preds = %91
  %355 = load i32, ptr %26, align 4, !tbaa !5
  store i32 %355, ptr %22, align 4, !tbaa !5
  br label %356

356:                                              ; preds = %612, %354
  %357 = load i32, ptr %22, align 4, !tbaa !5
  %358 = load i32, ptr %11, align 4, !tbaa !5
  %359 = icmp slt i32 %357, %358
  br i1 %359, label %360, label %619

360:                                              ; preds = %356
  %361 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %362 = getelementptr inbounds %struct.TA_LibcPriv, ptr %361, i32 0, i32 8
  %363 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %362, i64 0, i64 0
  %364 = getelementptr inbounds %struct.TA_CandleSetting, ptr %363, i32 0, i32 1
  %365 = load i32, ptr %364, align 4, !tbaa !15
  %366 = icmp eq i32 %365, 0
  br i1 %366, label %367, label %383

367:                                              ; preds = %360
  %368 = load ptr, ptr %16, align 8, !tbaa !9
  %369 = load i32, ptr %22, align 4, !tbaa !5
  %370 = sub nsw i32 %369, 1
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds float, ptr %368, i64 %371
  %373 = load float, ptr %372, align 4, !tbaa !16
  %374 = load ptr, ptr %13, align 8, !tbaa !9
  %375 = load i32, ptr %22, align 4, !tbaa !5
  %376 = sub nsw i32 %375, 1
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds float, ptr %374, i64 %377
  %379 = load float, ptr %378, align 4, !tbaa !16
  %380 = fsub float %373, %379
  %381 = fpext float %380 to double
  %382 = call double @llvm.fabs.f64(double %381)
  br label %491

383:                                              ; preds = %360
  %384 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %385 = getelementptr inbounds %struct.TA_LibcPriv, ptr %384, i32 0, i32 8
  %386 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %385, i64 0, i64 0
  %387 = getelementptr inbounds %struct.TA_CandleSetting, ptr %386, i32 0, i32 1
  %388 = load i32, ptr %387, align 4, !tbaa !15
  %389 = icmp eq i32 %388, 1
  br i1 %389, label %390, label %404

390:                                              ; preds = %383
  %391 = load ptr, ptr %14, align 8, !tbaa !9
  %392 = load i32, ptr %22, align 4, !tbaa !5
  %393 = sub nsw i32 %392, 1
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds float, ptr %391, i64 %394
  %396 = load float, ptr %395, align 4, !tbaa !16
  %397 = load ptr, ptr %15, align 8, !tbaa !9
  %398 = load i32, ptr %22, align 4, !tbaa !5
  %399 = sub nsw i32 %398, 1
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds float, ptr %397, i64 %400
  %402 = load float, ptr %401, align 4, !tbaa !16
  %403 = fsub float %396, %402
  br label %488

404:                                              ; preds = %383
  %405 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %406 = getelementptr inbounds %struct.TA_LibcPriv, ptr %405, i32 0, i32 8
  %407 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %406, i64 0, i64 0
  %408 = getelementptr inbounds %struct.TA_CandleSetting, ptr %407, i32 0, i32 1
  %409 = load i32, ptr %408, align 4, !tbaa !15
  %410 = icmp eq i32 %409, 2
  br i1 %410, label %411, label %485

411:                                              ; preds = %404
  %412 = load ptr, ptr %14, align 8, !tbaa !9
  %413 = load i32, ptr %22, align 4, !tbaa !5
  %414 = sub nsw i32 %413, 1
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds float, ptr %412, i64 %415
  %417 = load float, ptr %416, align 4, !tbaa !16
  %418 = load ptr, ptr %16, align 8, !tbaa !9
  %419 = load i32, ptr %22, align 4, !tbaa !5
  %420 = sub nsw i32 %419, 1
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds float, ptr %418, i64 %421
  %423 = load float, ptr %422, align 4, !tbaa !16
  %424 = load ptr, ptr %13, align 8, !tbaa !9
  %425 = load i32, ptr %22, align 4, !tbaa !5
  %426 = sub nsw i32 %425, 1
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds float, ptr %424, i64 %427
  %429 = load float, ptr %428, align 4, !tbaa !16
  %430 = fcmp oge float %423, %429
  br i1 %430, label %431, label %438

431:                                              ; preds = %411
  %432 = load ptr, ptr %16, align 8, !tbaa !9
  %433 = load i32, ptr %22, align 4, !tbaa !5
  %434 = sub nsw i32 %433, 1
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds float, ptr %432, i64 %435
  %437 = load float, ptr %436, align 4, !tbaa !16
  br label %445

438:                                              ; preds = %411
  %439 = load ptr, ptr %13, align 8, !tbaa !9
  %440 = load i32, ptr %22, align 4, !tbaa !5
  %441 = sub nsw i32 %440, 1
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds float, ptr %439, i64 %442
  %444 = load float, ptr %443, align 4, !tbaa !16
  br label %445

445:                                              ; preds = %438, %431
  %446 = phi float [ %437, %431 ], [ %444, %438 ]
  %447 = fsub float %417, %446
  %448 = load ptr, ptr %16, align 8, !tbaa !9
  %449 = load i32, ptr %22, align 4, !tbaa !5
  %450 = sub nsw i32 %449, 1
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds float, ptr %448, i64 %451
  %453 = load float, ptr %452, align 4, !tbaa !16
  %454 = load ptr, ptr %13, align 8, !tbaa !9
  %455 = load i32, ptr %22, align 4, !tbaa !5
  %456 = sub nsw i32 %455, 1
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds float, ptr %454, i64 %457
  %459 = load float, ptr %458, align 4, !tbaa !16
  %460 = fcmp oge float %453, %459
  br i1 %460, label %461, label %468

461:                                              ; preds = %445
  %462 = load ptr, ptr %13, align 8, !tbaa !9
  %463 = load i32, ptr %22, align 4, !tbaa !5
  %464 = sub nsw i32 %463, 1
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds float, ptr %462, i64 %465
  %467 = load float, ptr %466, align 4, !tbaa !16
  br label %475

468:                                              ; preds = %445
  %469 = load ptr, ptr %16, align 8, !tbaa !9
  %470 = load i32, ptr %22, 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 %475

475:                                              ; preds = %468, %461
  %476 = phi float [ %467, %461 ], [ %474, %468 ]
  %477 = load ptr, ptr %15, align 8, !tbaa !9
  %478 = load i32, ptr %22, align 4, !tbaa !5
  %479 = sub nsw i32 %478, 1
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds float, ptr %477, i64 %480
  %482 = load float, ptr %481, align 4, !tbaa !16
  %483 = fsub float %476, %482
  %484 = fadd float %447, %483
  br label %486

485:                                              ; preds = %404
  br label %486

486:                                              ; preds = %485, %475
  %487 = phi float [ %484, %475 ], [ 0.000000e+00, %485 ]
  br label %488

488:                                              ; preds = %486, %390
  %489 = phi float [ %403, %390 ], [ %487, %486 ]
  %490 = fpext float %489 to double
  br label %491

491:                                              ; preds = %488, %367
  %492 = phi double [ %382, %367 ], [ %490, %488 ]
  %493 = getelementptr inbounds [2 x double], ptr %21, i64 0, i64 1
  %494 = load double, ptr %493, align 8, !tbaa !11
  %495 = fadd double %494, %492
  store double %495, ptr %493, align 8, !tbaa !11
  %496 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %497 = getelementptr inbounds %struct.TA_LibcPriv, ptr %496, i32 0, i32 8
  %498 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %497, i64 0, i64 0
  %499 = getelementptr inbounds %struct.TA_CandleSetting, ptr %498, i32 0, i32 1
  %500 = load i32, ptr %499, align 4, !tbaa !15
  %501 = icmp eq i32 %500, 0
  br i1 %501, label %502, label %516

502:                                              ; preds = %491
  %503 = load ptr, ptr %16, align 8, !tbaa !9
  %504 = load i32, ptr %22, align 4, !tbaa !5
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %503, i64 %505
  %507 = load float, ptr %506, align 4, !tbaa !16
  %508 = load ptr, ptr %13, align 8, !tbaa !9
  %509 = load i32, ptr %22, align 4, !tbaa !5
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds float, ptr %508, i64 %510
  %512 = load float, ptr %511, align 4, !tbaa !16
  %513 = fsub float %507, %512
  %514 = fpext float %513 to double
  %515 = call double @llvm.fabs.f64(double %514)
  br label %612

516:                                              ; preds = %491
  %517 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %518 = getelementptr inbounds %struct.TA_LibcPriv, ptr %517, i32 0, i32 8
  %519 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %518, i64 0, i64 0
  %520 = getelementptr inbounds %struct.TA_CandleSetting, ptr %519, i32 0, i32 1
  %521 = load i32, ptr %520, align 4, !tbaa !15
  %522 = icmp eq i32 %521, 1
  br i1 %522, label %523, label %535

523:                                              ; preds = %516
  %524 = load ptr, ptr %14, align 8, !tbaa !9
  %525 = load i32, ptr %22, align 4, !tbaa !5
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds float, ptr %524, i64 %526
  %528 = load float, ptr %527, align 4, !tbaa !16
  %529 = load ptr, ptr %15, align 8, !tbaa !9
  %530 = load i32, ptr %22, align 4, !tbaa !5
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds float, ptr %529, i64 %531
  %533 = load float, ptr %532, align 4, !tbaa !16
  %534 = fsub float %528, %533
  br label %609

535:                                              ; preds = %516
  %536 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %537 = getelementptr inbounds %struct.TA_LibcPriv, ptr %536, i32 0, i32 8
  %538 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %537, i64 0, i64 0
  %539 = getelementptr inbounds %struct.TA_CandleSetting, ptr %538, i32 0, i32 1
  %540 = load i32, ptr %539, align 4, !tbaa !15
  %541 = icmp eq i32 %540, 2
  br i1 %541, label %542, label %606

542:                                              ; preds = %535
  %543 = load ptr, ptr %14, align 8, !tbaa !9
  %544 = load i32, ptr %22, align 4, !tbaa !5
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds float, ptr %543, i64 %545
  %547 = load float, ptr %546, align 4, !tbaa !16
  %548 = load ptr, ptr %16, align 8, !tbaa !9
  %549 = load i32, ptr %22, align 4, !tbaa !5
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds float, ptr %548, i64 %550
  %552 = load float, ptr %551, align 4, !tbaa !16
  %553 = load ptr, ptr %13, align 8, !tbaa !9
  %554 = load i32, ptr %22, align 4, !tbaa !5
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds float, ptr %553, i64 %555
  %557 = load float, ptr %556, align 4, !tbaa !16
  %558 = fcmp oge float %552, %557
  br i1 %558, label %559, label %565

559:                                              ; preds = %542
  %560 = load ptr, ptr %16, align 8, !tbaa !9
  %561 = load i32, ptr %22, align 4, !tbaa !5
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds float, ptr %560, i64 %562
  %564 = load float, ptr %563, align 4, !tbaa !16
  br label %571

565:                                              ; preds = %542
  %566 = load ptr, ptr %13, align 8, !tbaa !9
  %567 = load i32, ptr %22, 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
  br label %571

571:                                              ; preds = %565, %559
  %572 = phi float [ %564, %559 ], [ %570, %565 ]
  %573 = fsub float %547, %572
  %574 = load ptr, ptr %16, align 8, !tbaa !9
  %575 = load i32, ptr %22, align 4, !tbaa !5
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds float, ptr %574, i64 %576
  %578 = load float, ptr %577, align 4, !tbaa !16
  %579 = load ptr, ptr %13, align 8, !tbaa !9
  %580 = load i32, ptr %22, align 4, !tbaa !5
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds float, ptr %579, i64 %581
  %583 = load float, ptr %582, align 4, !tbaa !16
  %584 = fcmp oge float %578, %583
  br i1 %584, label %585, label %591

585:                                              ; preds = %571
  %586 = load ptr, ptr %13, align 8, !tbaa !9
  %587 = load i32, ptr %22, align 4, !tbaa !5
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds float, ptr %586, i64 %588
  %590 = load float, ptr %589, align 4, !tbaa !16
  br label %597

591:                                              ; preds = %571
  %592 = load ptr, ptr %16, align 8, !tbaa !9
  %593 = load i32, ptr %22, align 4, !tbaa !5
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  %596 = load float, ptr %595, align 4, !tbaa !16
  br label %597

597:                                              ; preds = %591, %585
  %598 = phi float [ %590, %585 ], [ %596, %591 ]
  %599 = load ptr, ptr %15, align 8, !tbaa !9
  %600 = load i32, ptr %22, align 4, !tbaa !5
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds float, ptr %599, i64 %601
  %603 = load float, ptr %602, align 4, !tbaa !16
  %604 = fsub float %598, %603
  %605 = fadd float %573, %604
  br label %607

606:                                              ; preds = %535
  br label %607

607:                                              ; preds = %606, %597
  %608 = phi float [ %605, %597 ], [ 0.000000e+00, %606 ]
  br label %609

609:                                              ; preds = %607, %523
  %610 = phi float [ %534, %523 ], [ %608, %607 ]
  %611 = fpext float %610 to double
  br label %612

612:                                              ; preds = %609, %502
  %613 = phi double [ %515, %502 ], [ %611, %609 ]
  %614 = getelementptr inbounds [2 x double], ptr %21, i64 0, i64 0
  %615 = load double, ptr %614, align 16, !tbaa !11
  %616 = fadd double %615, %613
  store double %616, ptr %614, align 16, !tbaa !11
  %617 = load i32, ptr %22, align 4, !tbaa !5
  %618 = add nsw i32 %617, 1
  store i32 %618, ptr %22, align 4, !tbaa !5
  br label %356, !llvm.loop !20

619:                                              ; preds = %356
  %620 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %620, ptr %22, align 4, !tbaa !5
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %621

621:                                              ; preds = %2487, %619
  %622 = load ptr, ptr %16, align 8, !tbaa !9
  %623 = load i32, ptr %22, align 4, !tbaa !5
  %624 = sub nsw i32 %623, 1
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds float, ptr %622, i64 %625
  %627 = load float, ptr %626, align 4, !tbaa !16
  %628 = load ptr, ptr %13, align 8, !tbaa !9
  %629 = load i32, ptr %22, align 4, !tbaa !5
  %630 = sub nsw i32 %629, 1
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds float, ptr %628, i64 %631
  %633 = load float, ptr %632, align 4, !tbaa !16
  %634 = fcmp oge float %627, %633
  %635 = zext i1 %634 to i64
  %636 = select i1 %634, i32 1, i32 -1
  %637 = load ptr, ptr %16, align 8, !tbaa !9
  %638 = load i32, ptr %22, align 4, !tbaa !5
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds float, ptr %637, i64 %639
  %641 = load float, ptr %640, align 4, !tbaa !16
  %642 = load ptr, ptr %13, align 8, !tbaa !9
  %643 = load i32, ptr %22, align 4, !tbaa !5
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds float, ptr %642, i64 %644
  %646 = load float, ptr %645, align 4, !tbaa !16
  %647 = fcmp oge float %641, %646
  %648 = zext i1 %647 to i64
  %649 = select i1 %647, i32 1, i32 -1
  %650 = sub nsw i32 0, %649
  %651 = icmp eq i32 %636, %650
  br i1 %651, label %652, label %1870

652:                                              ; preds = %621
  %653 = load ptr, ptr %16, align 8, !tbaa !9
  %654 = load i32, ptr %22, align 4, !tbaa !5
  %655 = sub nsw i32 %654, 1
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds float, ptr %653, i64 %656
  %658 = load float, ptr %657, align 4, !tbaa !16
  %659 = load ptr, ptr %13, align 8, !tbaa !9
  %660 = load i32, ptr %22, align 4, !tbaa !5
  %661 = sub nsw i32 %660, 1
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds float, ptr %659, i64 %662
  %664 = load float, ptr %663, align 4, !tbaa !16
  %665 = fsub float %658, %664
  %666 = fpext float %665 to double
  %667 = call double @llvm.fabs.f64(double %666)
  %668 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %669 = getelementptr inbounds %struct.TA_LibcPriv, ptr %668, i32 0, i32 8
  %670 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %669, i64 0, i64 0
  %671 = getelementptr inbounds %struct.TA_CandleSetting, ptr %670, i32 0, i32 3
  %672 = load double, ptr %671, align 8, !tbaa !21
  %673 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %674 = getelementptr inbounds %struct.TA_LibcPriv, ptr %673, i32 0, i32 8
  %675 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %674, i64 0, i64 0
  %676 = getelementptr inbounds %struct.TA_CandleSetting, ptr %675, i32 0, i32 2
  %677 = load i32, ptr %676, align 8, !tbaa !13
  %678 = sitofp i32 %677 to double
  %679 = fcmp une double %678, 0.000000e+00
  br i1 %679, label %680, label %690

680:                                              ; preds = %652
  %681 = getelementptr inbounds [2 x double], ptr %21, i64 0, i64 1
  %682 = load double, ptr %681, align 8, !tbaa !11
  %683 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %684 = getelementptr inbounds %struct.TA_LibcPriv, ptr %683, i32 0, i32 8
  %685 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %684, i64 0, i64 0
  %686 = getelementptr inbounds %struct.TA_CandleSetting, ptr %685, i32 0, i32 2
  %687 = load i32, ptr %686, align 8, !tbaa !13
  %688 = sitofp i32 %687 to double
  %689 = fdiv double %682, %688
  br label %823

690:                                              ; preds = %652
  %691 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %692 = getelementptr inbounds %struct.TA_LibcPriv, ptr %691, i32 0, i32 8
  %693 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %692, i64 0, i64 0
  %694 = getelementptr inbounds %struct.TA_CandleSetting, ptr %693, i32 0, i32 1
  %695 = load i32, ptr %694, align 4, !tbaa !15
  %696 = icmp eq i32 %695, 0
  br i1 %696, label %697, label %713

697:                                              ; preds = %690
  %698 = load ptr, ptr %16, align 8, !tbaa !9
  %699 = load i32, ptr %22, align 4, !tbaa !5
  %700 = sub nsw i32 %699, 1
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds float, ptr %698, i64 %701
  %703 = load float, ptr %702, align 4, !tbaa !16
  %704 = load ptr, ptr %13, align 8, !tbaa !9
  %705 = load i32, ptr %22, align 4, !tbaa !5
  %706 = sub nsw i32 %705, 1
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds float, ptr %704, i64 %707
  %709 = load float, ptr %708, align 4, !tbaa !16
  %710 = fsub float %703, %709
  %711 = fpext float %710 to double
  %712 = call double @llvm.fabs.f64(double %711)
  br label %821

713:                                              ; preds = %690
  %714 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %715 = getelementptr inbounds %struct.TA_LibcPriv, ptr %714, i32 0, i32 8
  %716 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %715, i64 0, i64 0
  %717 = getelementptr inbounds %struct.TA_CandleSetting, ptr %716, i32 0, i32 1
  %718 = load i32, ptr %717, align 4, !tbaa !15
  %719 = icmp eq i32 %718, 1
  br i1 %719, label %720, label %734

720:                                              ; preds = %713
  %721 = load ptr, ptr %14, align 8, !tbaa !9
  %722 = load i32, ptr %22, align 4, !tbaa !5
  %723 = sub nsw i32 %722, 1
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds float, ptr %721, i64 %724
  %726 = load float, ptr %725, align 4, !tbaa !16
  %727 = load ptr, ptr %15, align 8, !tbaa !9
  %728 = load i32, ptr %22, align 4, !tbaa !5
  %729 = sub nsw i32 %728, 1
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds float, ptr %727, i64 %730
  %732 = load float, ptr %731, align 4, !tbaa !16
  %733 = fsub float %726, %732
  br label %818

734:                                              ; preds = %713
  %735 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %736 = getelementptr inbounds %struct.TA_LibcPriv, ptr %735, i32 0, i32 8
  %737 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %736, i64 0, i64 0
  %738 = getelementptr inbounds %struct.TA_CandleSetting, ptr %737, i32 0, i32 1
  %739 = load i32, ptr %738, align 4, !tbaa !15
  %740 = icmp eq i32 %739, 2
  br i1 %740, label %741, label %815

741:                                              ; preds = %734
  %742 = load ptr, ptr %14, align 8, !tbaa !9
  %743 = load i32, ptr %22, align 4, !tbaa !5
  %744 = sub nsw i32 %743, 1
  %745 = sext i32 %744 to i64
  %746 = getelementptr inbounds float, ptr %742, i64 %745
  %747 = load float, ptr %746, align 4, !tbaa !16
  %748 = load ptr, ptr %16, align 8, !tbaa !9
  %749 = load i32, ptr %22, align 4, !tbaa !5
  %750 = sub nsw i32 %749, 1
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds float, ptr %748, i64 %751
  %753 = load float, ptr %752, align 4, !tbaa !16
  %754 = load ptr, ptr %13, align 8, !tbaa !9
  %755 = load i32, ptr %22, align 4, !tbaa !5
  %756 = sub nsw i32 %755, 1
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds float, ptr %754, i64 %757
  %759 = load float, ptr %758, align 4, !tbaa !16
  %760 = fcmp oge float %753, %759
  br i1 %760, label %761, label %768

761:                                              ; preds = %741
  %762 = load ptr, ptr %16, align 8, !tbaa !9
  %763 = load i32, ptr %22, align 4, !tbaa !5
  %764 = sub nsw i32 %763, 1
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds float, ptr %762, i64 %765
  %767 = load float, ptr %766, align 4, !tbaa !16
  br label %775

768:                                              ; preds = %741
  %769 = load ptr, ptr %13, align 8, !tbaa !9
  %770 = load i32, ptr %22, align 4, !tbaa !5
  %771 = sub nsw i32 %770, 1
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds float, ptr %769, i64 %772
  %774 = load float, ptr %773, align 4, !tbaa !16
  br label %775

775:                                              ; preds = %768, %761
  %776 = phi float [ %767, %761 ], [ %774, %768 ]
  %777 = fsub float %747, %776
  %778 = load ptr, ptr %16, align 8, !tbaa !9
  %779 = load i32, ptr %22, align 4, !tbaa !5
  %780 = sub nsw i32 %779, 1
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds float, ptr %778, i64 %781
  %783 = load float, ptr %782, align 4, !tbaa !16
  %784 = load ptr, ptr %13, align 8, !tbaa !9
  %785 = load i32, ptr %22, align 4, !tbaa !5
  %786 = sub nsw i32 %785, 1
  %787 = sext i32 %786 to i64
  %788 = getelementptr inbounds float, ptr %784, i64 %787
  %789 = load float, ptr %788, align 4, !tbaa !16
  %790 = fcmp oge float %783, %789
  br i1 %790, label %791, label %798

791:                                              ; preds = %775
  %792 = load ptr, ptr %13, align 8, !tbaa !9
  %793 = load i32, ptr %22, align 4, !tbaa !5
  %794 = sub nsw i32 %793, 1
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds float, ptr %792, i64 %795
  %797 = load float, ptr %796, align 4, !tbaa !16
  br label %805

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

805:                                              ; preds = %798, %791
  %806 = phi float [ %797, %791 ], [ %804, %798 ]
  %807 = load ptr, ptr %15, align 8, !tbaa !9
  %808 = load i32, ptr %22, align 4, !tbaa !5
  %809 = sub nsw i32 %808, 1
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds float, ptr %807, i64 %810
  %812 = load float, ptr %811, align 4, !tbaa !16
  %813 = fsub float %806, %812
  %814 = fadd float %777, %813
  br label %816

815:                                              ; preds = %734
  br label %816

816:                                              ; preds = %815, %805
  %817 = phi float [ %814, %805 ], [ 0.000000e+00, %815 ]
  br label %818

818:                                              ; preds = %816, %720
  %819 = phi float [ %733, %720 ], [ %817, %816 ]
  %820 = fpext float %819 to double
  br label %821

821:                                              ; preds = %818, %697
  %822 = phi double [ %712, %697 ], [ %820, %818 ]
  br label %823

823:                                              ; preds = %821, %680
  %824 = phi double [ %689, %680 ], [ %822, %821 ]
  %825 = fmul double %672, %824
  %826 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %827 = getelementptr inbounds %struct.TA_LibcPriv, ptr %826, i32 0, i32 8
  %828 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %827, i64 0, i64 0
  %829 = getelementptr inbounds %struct.TA_CandleSetting, ptr %828, i32 0, i32 1
  %830 = load i32, ptr %829, align 4, !tbaa !15
  %831 = icmp eq i32 %830, 2
  %832 = zext i1 %831 to i64
  %833 = select i1 %831, double 2.000000e+00, double 1.000000e+00
  %834 = fdiv double %825, %833
  %835 = fcmp ogt double %667, %834
  br i1 %835, label %836, label %1870

836:                                              ; preds = %823
  %837 = load ptr, ptr %14, align 8, !tbaa !9
  %838 = load i32, ptr %22, align 4, !tbaa !5
  %839 = sub nsw i32 %838, 1
  %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 %16, align 8, !tbaa !9
  %844 = load i32, ptr %22, align 4, !tbaa !5
  %845 = sub nsw i32 %844, 1
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds float, ptr %843, i64 %846
  %848 = load float, ptr %847, align 4, !tbaa !16
  %849 = load ptr, ptr %13, align 8, !tbaa !9
  %850 = load i32, ptr %22, align 4, !tbaa !5
  %851 = sub nsw i32 %850, 1
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds float, ptr %849, i64 %852
  %854 = load float, ptr %853, align 4, !tbaa !16
  %855 = fcmp oge float %848, %854
  br i1 %855, label %856, label %863

856:                                              ; preds = %836
  %857 = load ptr, ptr %16, align 8, !tbaa !9
  %858 = load i32, ptr %22, align 4, !tbaa !5
  %859 = sub nsw i32 %858, 1
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds float, ptr %857, i64 %860
  %862 = load float, ptr %861, align 4, !tbaa !16
  br label %870

863:                                              ; preds = %836
  %864 = load ptr, ptr %13, align 8, !tbaa !9
  %865 = load i32, ptr %22, align 4, !tbaa !5
  %866 = sub nsw i32 %865, 1
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds float, ptr %864, i64 %867
  %869 = load float, ptr %868, align 4, !tbaa !16
  br label %870

870:                                              ; preds = %863, %856
  %871 = phi float [ %862, %856 ], [ %869, %863 ]
  %872 = fsub float %842, %871
  %873 = fpext float %872 to double
  %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 7
  %877 = getelementptr inbounds %struct.TA_CandleSetting, ptr %876, i32 0, i32 3
  %878 = load double, ptr %877, align 8, !tbaa !21
  %879 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %880 = getelementptr inbounds %struct.TA_LibcPriv, ptr %879, i32 0, i32 8
  %881 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %880, i64 0, i64 7
  %882 = getelementptr inbounds %struct.TA_CandleSetting, ptr %881, i32 0, i32 2
  %883 = load i32, ptr %882, align 8, !tbaa !13
  %884 = sitofp i32 %883 to double
  %885 = fcmp une double %884, 0.000000e+00
  br i1 %885, label %886, label %896

886:                                              ; preds = %870
  %887 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 1
  %888 = load double, ptr %887, align 8, !tbaa !11
  %889 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %890 = getelementptr inbounds %struct.TA_LibcPriv, ptr %889, i32 0, i32 8
  %891 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %890, i64 0, i64 7
  %892 = getelementptr inbounds %struct.TA_CandleSetting, ptr %891, i32 0, i32 2
  %893 = load i32, ptr %892, align 8, !tbaa !13
  %894 = sitofp i32 %893 to double
  %895 = fdiv double %888, %894
  br label %1029

896:                                              ; preds = %870
  %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 7
  %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, 0
  br i1 %902, label %903, label %919

903:                                              ; preds = %896
  %904 = load ptr, ptr %16, align 8, !tbaa !9
  %905 = load i32, ptr %22, align 4, !tbaa !5
  %906 = sub nsw i32 %905, 1
  %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 %13, align 8, !tbaa !9
  %911 = load i32, ptr %22, align 4, !tbaa !5
  %912 = sub nsw i32 %911, 1
  %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
  %917 = fpext float %916 to double
  %918 = call double @llvm.fabs.f64(double %917)
  br label %1027

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

926:                                              ; preds = %919
  %927 = load ptr, ptr %14, align 8, !tbaa !9
  %928 = load i32, ptr %22, align 4, !tbaa !5
  %929 = sub nsw i32 %928, 1
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds float, ptr %927, i64 %930
  %932 = load float, ptr %931, align 4, !tbaa !16
  %933 = load ptr, ptr %15, align 8, !tbaa !9
  %934 = load i32, ptr %22, align 4, !tbaa !5
  %935 = sub nsw i32 %934, 1
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds float, ptr %933, i64 %936
  %938 = load float, ptr %937, align 4, !tbaa !16
  %939 = fsub float %932, %938
  br label %1024

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

947:                                              ; preds = %940
  %948 = load ptr, ptr %14, align 8, !tbaa !9
  %949 = load i32, ptr %22, align 4, !tbaa !5
  %950 = sub nsw i32 %949, 1
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds float, ptr %948, i64 %951
  %953 = load float, ptr %952, align 4, !tbaa !16
  %954 = load ptr, ptr %16, align 8, !tbaa !9
  %955 = load i32, ptr %22, align 4, !tbaa !5
  %956 = sub nsw i32 %955, 1
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds float, ptr %954, i64 %957
  %959 = load float, ptr %958, align 4, !tbaa !16
  %960 = load ptr, ptr %13, align 8, !tbaa !9
  %961 = load i32, ptr %22, align 4, !tbaa !5
  %962 = sub nsw i32 %961, 1
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds float, ptr %960, i64 %963
  %965 = load float, ptr %964, align 4, !tbaa !16
  %966 = fcmp oge float %959, %965
  br i1 %966, label %967, label %974

967:                                              ; preds = %947
  %968 = load ptr, ptr %16, align 8, !tbaa !9
  %969 = load i32, ptr %22, align 4, !tbaa !5
  %970 = sub nsw i32 %969, 1
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds float, ptr %968, i64 %971
  %973 = load float, ptr %972, align 4, !tbaa !16
  br label %981

974:                                              ; preds = %947
  %975 = load ptr, ptr %13, align 8, !tbaa !9
  %976 = load i32, ptr %22, align 4, !tbaa !5
  %977 = sub nsw i32 %976, 1
  %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 %981

981:                                              ; preds = %974, %967
  %982 = phi float [ %973, %967 ], [ %980, %974 ]
  %983 = fsub float %953, %982
  %984 = load ptr, ptr %16, align 8, !tbaa !9
  %985 = load i32, ptr %22, align 4, !tbaa !5
  %986 = sub nsw i32 %985, 1
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds float, ptr %984, i64 %987
  %989 = load float, ptr %988, align 4, !tbaa !16
  %990 = load ptr, ptr %13, align 8, !tbaa !9
  %991 = load i32, ptr %22, align 4, !tbaa !5
  %992 = sub nsw i32 %991, 1
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds float, ptr %990, i64 %993
  %995 = load float, ptr %994, align 4, !tbaa !16
  %996 = fcmp oge float %989, %995
  br i1 %996, label %997, label %1004

997:                                              ; preds = %981
  %998 = load ptr, ptr %13, align 8, !tbaa !9
  %999 = load i32, ptr %22, align 4, !tbaa !5
  %1000 = sub nsw i32 %999, 1
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds float, ptr %998, i64 %1001
  %1003 = load float, ptr %1002, align 4, !tbaa !16
  br label %1011

1004:                                             ; preds = %981
  %1005 = load ptr, ptr %16, align 8, !tbaa !9
  %1006 = load i32, ptr %22, align 4, !tbaa !5
  %1007 = sub nsw i32 %1006, 1
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds float, ptr %1005, i64 %1008
  %1010 = load float, ptr %1009, align 4, !tbaa !16
  br label %1011

1011:                                             ; preds = %1004, %997
  %1012 = phi float [ %1003, %997 ], [ %1010, %1004 ]
  %1013 = load ptr, ptr %15, align 8, !tbaa !9
  %1014 = load i32, ptr %22, align 4, !tbaa !5
  %1015 = sub nsw i32 %1014, 1
  %1016 = sext i32 %1015 to i64
  %1017 = getelementptr inbounds float, ptr %1013, i64 %1016
  %1018 = load float, ptr %1017, align 4, !tbaa !16
  %1019 = fsub float %1012, %1018
  %1020 = fadd float %983, %1019
  br label %1022

1021:                                             ; preds = %940
  br label %1022

1022:                                             ; preds = %1021, %1011
  %1023 = phi float [ %1020, %1011 ], [ 0.000000e+00, %1021 ]
  br label %1024

1024:                                             ; preds = %1022, %926
  %1025 = phi float [ %939, %926 ], [ %1023, %1022 ]
  %1026 = fpext float %1025 to double
  br label %1027

1027:                                             ; preds = %1024, %903
  %1028 = phi double [ %918, %903 ], [ %1026, %1024 ]
  br label %1029

1029:                                             ; preds = %1027, %886
  %1030 = phi double [ %895, %886 ], [ %1028, %1027 ]
  %1031 = fmul double %878, %1030
  %1032 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1033 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1032, i32 0, i32 8
  %1034 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1033, i64 0, i64 7
  %1035 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1034, i32 0, i32 1
  %1036 = load i32, ptr %1035, align 4, !tbaa !15
  %1037 = icmp eq i32 %1036, 2
  %1038 = zext i1 %1037 to i64
  %1039 = select i1 %1037, double 2.000000e+00, double 1.000000e+00
  %1040 = fdiv double %1031, %1039
  %1041 = fcmp olt double %873, %1040
  br i1 %1041, label %1042, label %1870

1042:                                             ; preds = %1029
  %1043 = load ptr, ptr %16, align 8, !tbaa !9
  %1044 = load i32, ptr %22, align 4, !tbaa !5
  %1045 = sub nsw i32 %1044, 1
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds float, ptr %1043, i64 %1046
  %1048 = load float, ptr %1047, align 4, !tbaa !16
  %1049 = load ptr, ptr %13, align 8, !tbaa !9
  %1050 = load i32, ptr %22, align 4, !tbaa !5
  %1051 = sub nsw i32 %1050, 1
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds float, ptr %1049, i64 %1052
  %1054 = load float, ptr %1053, align 4, !tbaa !16
  %1055 = fcmp oge float %1048, %1054
  br i1 %1055, label %1056, label %1063

1056:                                             ; preds = %1042
  %1057 = load ptr, ptr %13, align 8, !tbaa !9
  %1058 = load i32, ptr %22, align 4, !tbaa !5
  %1059 = sub nsw i32 %1058, 1
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds float, ptr %1057, i64 %1060
  %1062 = load float, ptr %1061, align 4, !tbaa !16
  br label %1070

1063:                                             ; preds = %1042
  %1064 = load ptr, ptr %16, align 8, !tbaa !9
  %1065 = load i32, ptr %22, align 4, !tbaa !5
  %1066 = sub nsw i32 %1065, 1
  %1067 = sext i32 %1066 to i64
  %1068 = getelementptr inbounds float, ptr %1064, i64 %1067
  %1069 = load float, ptr %1068, align 4, !tbaa !16
  br label %1070

1070:                                             ; preds = %1063, %1056
  %1071 = phi float [ %1062, %1056 ], [ %1069, %1063 ]
  %1072 = load ptr, ptr %15, align 8, !tbaa !9
  %1073 = load i32, ptr %22, align 4, !tbaa !5
  %1074 = sub nsw i32 %1073, 1
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds float, ptr %1072, i64 %1075
  %1077 = load float, ptr %1076, align 4, !tbaa !16
  %1078 = fsub float %1071, %1077
  %1079 = fpext float %1078 to double
  %1080 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1081 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1080, i32 0, i32 8
  %1082 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1081, i64 0, i64 7
  %1083 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1082, i32 0, i32 3
  %1084 = load double, ptr %1083, align 8, !tbaa !21
  %1085 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1086 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1085, i32 0, i32 8
  %1087 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1086, i64 0, i64 7
  %1088 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1087, i32 0, i32 2
  %1089 = load i32, ptr %1088, align 8, !tbaa !13
  %1090 = sitofp i32 %1089 to double
  %1091 = fcmp une double %1090, 0.000000e+00
  br i1 %1091, label %1092, label %1102

1092:                                             ; preds = %1070
  %1093 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 1
  %1094 = load double, ptr %1093, align 8, !tbaa !11
  %1095 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1096 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1095, i32 0, i32 8
  %1097 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1096, i64 0, i64 7
  %1098 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1097, i32 0, i32 2
  %1099 = load i32, ptr %1098, align 8, !tbaa !13
  %1100 = sitofp i32 %1099 to double
  %1101 = fdiv double %1094, %1100
  br label %1235

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

1109:                                             ; preds = %1102
  %1110 = load ptr, ptr %16, align 8, !tbaa !9
  %1111 = load i32, ptr %22, align 4, !tbaa !5
  %1112 = sub nsw i32 %1111, 1
  %1113 = sext i32 %1112 to i64
  %1114 = getelementptr inbounds float, ptr %1110, i64 %1113
  %1115 = load float, ptr %1114, align 4, !tbaa !16
  %1116 = load ptr, ptr %13, align 8, !tbaa !9
  %1117 = load i32, ptr %22, align 4, !tbaa !5
  %1118 = sub nsw i32 %1117, 1
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds float, ptr %1116, i64 %1119
  %1121 = load float, ptr %1120, align 4, !tbaa !16
  %1122 = fsub float %1115, %1121
  %1123 = fpext float %1122 to double
  %1124 = call double @llvm.fabs.f64(double %1123)
  br label %1233

1125:                                             ; preds = %1102
  %1126 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1127 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1126, i32 0, i32 8
  %1128 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1127, i64 0, i64 7
  %1129 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1128, i32 0, i32 1
  %1130 = load i32, ptr %1129, align 4, !tbaa !15
  %1131 = icmp eq i32 %1130, 1
  br i1 %1131, label %1132, label %1146

1132:                                             ; preds = %1125
  %1133 = load ptr, ptr %14, align 8, !tbaa !9
  %1134 = load i32, ptr %22, align 4, !tbaa !5
  %1135 = sub nsw i32 %1134, 1
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds float, ptr %1133, i64 %1136
  %1138 = load float, ptr %1137, align 4, !tbaa !16
  %1139 = load ptr, ptr %15, align 8, !tbaa !9
  %1140 = load i32, ptr %22, align 4, !tbaa !5
  %1141 = sub nsw i32 %1140, 1
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds float, ptr %1139, i64 %1142
  %1144 = load float, ptr %1143, align 4, !tbaa !16
  %1145 = fsub float %1138, %1144
  br label %1230

1146:                                             ; preds = %1125
  %1147 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1148 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1147, i32 0, i32 8
  %1149 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1148, i64 0, i64 7
  %1150 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1149, i32 0, i32 1
  %1151 = load i32, ptr %1150, align 4, !tbaa !15
  %1152 = icmp eq i32 %1151, 2
  br i1 %1152, label %1153, label %1227

1153:                                             ; preds = %1146
  %1154 = load ptr, ptr %14, align 8, !tbaa !9
  %1155 = load i32, ptr %22, align 4, !tbaa !5
  %1156 = sub nsw i32 %1155, 1
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds float, ptr %1154, i64 %1157
  %1159 = load float, ptr %1158, align 4, !tbaa !16
  %1160 = load ptr, ptr %16, align 8, !tbaa !9
  %1161 = load i32, ptr %22, align 4, !tbaa !5
  %1162 = sub nsw i32 %1161, 1
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds float, ptr %1160, i64 %1163
  %1165 = load float, ptr %1164, align 4, !tbaa !16
  %1166 = load ptr, ptr %13, align 8, !tbaa !9
  %1167 = load i32, ptr %22, align 4, !tbaa !5
  %1168 = sub nsw i32 %1167, 1
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds float, ptr %1166, i64 %1169
  %1171 = load float, ptr %1170, align 4, !tbaa !16
  %1172 = fcmp oge float %1165, %1171
  br i1 %1172, label %1173, label %1180

1173:                                             ; preds = %1153
  %1174 = load ptr, ptr %16, align 8, !tbaa !9
  %1175 = load i32, ptr %22, align 4, !tbaa !5
  %1176 = sub nsw i32 %1175, 1
  %1177 = sext i32 %1176 to i64
  %1178 = getelementptr inbounds float, ptr %1174, i64 %1177
  %1179 = load float, ptr %1178, align 4, !tbaa !16
  br label %1187

1180:                                             ; preds = %1153
  %1181 = load ptr, ptr %13, align 8, !tbaa !9
  %1182 = load i32, ptr %22, align 4, !tbaa !5
  %1183 = sub nsw i32 %1182, 1
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds float, ptr %1181, i64 %1184
  %1186 = load float, ptr %1185, align 4, !tbaa !16
  br label %1187

1187:                                             ; preds = %1180, %1173
  %1188 = phi float [ %1179, %1173 ], [ %1186, %1180 ]
  %1189 = fsub float %1159, %1188
  %1190 = load ptr, ptr %16, align 8, !tbaa !9
  %1191 = load i32, ptr %22, align 4, !tbaa !5
  %1192 = sub nsw i32 %1191, 1
  %1193 = sext i32 %1192 to i64
  %1194 = getelementptr inbounds float, ptr %1190, i64 %1193
  %1195 = load float, ptr %1194, align 4, !tbaa !16
  %1196 = load ptr, ptr %13, align 8, !tbaa !9
  %1197 = load i32, ptr %22, align 4, !tbaa !5
  %1198 = sub nsw i32 %1197, 1
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds float, ptr %1196, i64 %1199
  %1201 = load float, ptr %1200, align 4, !tbaa !16
  %1202 = fcmp oge float %1195, %1201
  br i1 %1202, label %1203, label %1210

1203:                                             ; preds = %1187
  %1204 = load ptr, ptr %13, align 8, !tbaa !9
  %1205 = load i32, ptr %22, align 4, !tbaa !5
  %1206 = sub nsw i32 %1205, 1
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds float, ptr %1204, i64 %1207
  %1209 = load float, ptr %1208, align 4, !tbaa !16
  br label %1217

1210:                                             ; preds = %1187
  %1211 = load ptr, ptr %16, align 8, !tbaa !9
  %1212 = load i32, ptr %22, align 4, !tbaa !5
  %1213 = sub nsw i32 %1212, 1
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds float, ptr %1211, i64 %1214
  %1216 = load float, ptr %1215, align 4, !tbaa !16
  br label %1217

1217:                                             ; preds = %1210, %1203
  %1218 = phi float [ %1209, %1203 ], [ %1216, %1210 ]
  %1219 = load ptr, ptr %15, align 8, !tbaa !9
  %1220 = load i32, ptr %22, align 4, !tbaa !5
  %1221 = sub nsw i32 %1220, 1
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds float, ptr %1219, i64 %1222
  %1224 = load float, ptr %1223, align 4, !tbaa !16
  %1225 = fsub float %1218, %1224
  %1226 = fadd float %1189, %1225
  br label %1228

1227:                                             ; preds = %1146
  br label %1228

1228:                                             ; preds = %1227, %1217
  %1229 = phi float [ %1226, %1217 ], [ 0.000000e+00, %1227 ]
  br label %1230

1230:                                             ; preds = %1228, %1132
  %1231 = phi float [ %1145, %1132 ], [ %1229, %1228 ]
  %1232 = fpext float %1231 to double
  br label %1233

1233:                                             ; preds = %1230, %1109
  %1234 = phi double [ %1124, %1109 ], [ %1232, %1230 ]
  br label %1235

1235:                                             ; preds = %1233, %1092
  %1236 = phi double [ %1101, %1092 ], [ %1234, %1233 ]
  %1237 = fmul double %1084, %1236
  %1238 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1239 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1238, i32 0, i32 8
  %1240 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1239, i64 0, i64 7
  %1241 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1240, i32 0, i32 1
  %1242 = load i32, ptr %1241, align 4, !tbaa !15
  %1243 = icmp eq i32 %1242, 2
  %1244 = zext i1 %1243 to i64
  %1245 = select i1 %1243, double 2.000000e+00, double 1.000000e+00
  %1246 = fdiv double %1237, %1245
  %1247 = fcmp olt double %1079, %1246
  br i1 %1247, label %1248, label %1870

1248:                                             ; preds = %1235
  %1249 = load ptr, ptr %16, align 8, !tbaa !9
  %1250 = load i32, ptr %22, align 4, !tbaa !5
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds float, ptr %1249, i64 %1251
  %1253 = load float, ptr %1252, align 4, !tbaa !16
  %1254 = load ptr, ptr %13, align 8, !tbaa !9
  %1255 = load i32, ptr %22, align 4, !tbaa !5
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds float, ptr %1254, i64 %1256
  %1258 = load float, ptr %1257, align 4, !tbaa !16
  %1259 = fsub float %1253, %1258
  %1260 = fpext float %1259 to double
  %1261 = call double @llvm.fabs.f64(double %1260)
  %1262 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1263 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1262, i32 0, i32 8
  %1264 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1263, i64 0, i64 0
  %1265 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1264, i32 0, i32 3
  %1266 = load double, ptr %1265, align 8, !tbaa !21
  %1267 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1268 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1267, i32 0, i32 8
  %1269 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1268, i64 0, i64 0
  %1270 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1269, i32 0, i32 2
  %1271 = load i32, ptr %1270, align 8, !tbaa !13
  %1272 = sitofp i32 %1271 to double
  %1273 = fcmp une double %1272, 0.000000e+00
  br i1 %1273, label %1274, label %1284

1274:                                             ; preds = %1248
  %1275 = getelementptr inbounds [2 x double], ptr %21, i64 0, i64 0
  %1276 = load double, ptr %1275, align 16, !tbaa !11
  %1277 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1278 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1277, i32 0, i32 8
  %1279 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1278, i64 0, i64 0
  %1280 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1279, i32 0, i32 2
  %1281 = load i32, ptr %1280, align 8, !tbaa !13
  %1282 = sitofp i32 %1281 to double
  %1283 = fdiv double %1276, %1282
  br label %1403

1284:                                             ; preds = %1248
  %1285 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1286 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1285, i32 0, i32 8
  %1287 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1286, i64 0, i64 0
  %1288 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1287, i32 0, i32 1
  %1289 = load i32, ptr %1288, align 4, !tbaa !15
  %1290 = icmp eq i32 %1289, 0
  br i1 %1290, label %1291, label %1305

1291:                                             ; preds = %1284
  %1292 = load ptr, ptr %16, align 8, !tbaa !9
  %1293 = load i32, ptr %22, align 4, !tbaa !5
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds float, ptr %1292, i64 %1294
  %1296 = load float, ptr %1295, align 4, !tbaa !16
  %1297 = load ptr, ptr %13, align 8, !tbaa !9
  %1298 = load i32, ptr %22, align 4, !tbaa !5
  %1299 = sext i32 %1298 to i64
  %1300 = getelementptr inbounds float, ptr %1297, i64 %1299
  %1301 = load float, ptr %1300, align 4, !tbaa !16
  %1302 = fsub float %1296, %1301
  %1303 = fpext float %1302 to double
  %1304 = call double @llvm.fabs.f64(double %1303)
  br label %1401

1305:                                             ; preds = %1284
  %1306 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1307 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1306, i32 0, i32 8
  %1308 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1307, i64 0, i64 0
  %1309 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1308, i32 0, i32 1
  %1310 = load i32, ptr %1309, align 4, !tbaa !15
  %1311 = icmp eq i32 %1310, 1
  br i1 %1311, label %1312, label %1324

1312:                                             ; preds = %1305
  %1313 = load ptr, ptr %14, align 8, !tbaa !9
  %1314 = load i32, ptr %22, align 4, !tbaa !5
  %1315 = sext i32 %1314 to i64
  %1316 = getelementptr inbounds float, ptr %1313, i64 %1315
  %1317 = load float, ptr %1316, align 4, !tbaa !16
  %1318 = load ptr, ptr %15, align 8, !tbaa !9
  %1319 = load i32, ptr %22, align 4, !tbaa !5
  %1320 = sext i32 %1319 to i64
  %1321 = getelementptr inbounds float, ptr %1318, i64 %1320
  %1322 = load float, ptr %1321, align 4, !tbaa !16
  %1323 = fsub float %1317, %1322
  br label %1398

1324:                                             ; preds = %1305
  %1325 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1326 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1325, i32 0, i32 8
  %1327 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1326, i64 0, i64 0
  %1328 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1327, i32 0, i32 1
  %1329 = load i32, ptr %1328, align 4, !tbaa !15
  %1330 = icmp eq i32 %1329, 2
  br i1 %1330, label %1331, label %1395

1331:                                             ; preds = %1324
  %1332 = load ptr, ptr %14, align 8, !tbaa !9
  %1333 = load i32, ptr %22, align 4, !tbaa !5
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds float, ptr %1332, i64 %1334
  %1336 = load float, ptr %1335, align 4, !tbaa !16
  %1337 = load ptr, ptr %16, align 8, !tbaa !9
  %1338 = load i32, ptr %22, align 4, !tbaa !5
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds float, ptr %1337, i64 %1339
  %1341 = load float, ptr %1340, align 4, !tbaa !16
  %1342 = load ptr, ptr %13, align 8, !tbaa !9
  %1343 = load i32, ptr %22, align 4, !tbaa !5
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds float, ptr %1342, i64 %1344
  %1346 = load float, ptr %1345, align 4, !tbaa !16
  %1347 = fcmp oge float %1341, %1346
  br i1 %1347, label %1348, label %1354

1348:                                             ; preds = %1331
  %1349 = load ptr, ptr %16, align 8, !tbaa !9
  %1350 = load i32, ptr %22, align 4, !tbaa !5
  %1351 = sext i32 %1350 to i64
  %1352 = getelementptr inbounds float, ptr %1349, i64 %1351
  %1353 = load float, ptr %1352, align 4, !tbaa !16
  br label %1360

1354:                                             ; preds = %1331
  %1355 = load ptr, ptr %13, align 8, !tbaa !9
  %1356 = load i32, ptr %22, align 4, !tbaa !5
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds float, ptr %1355, i64 %1357
  %1359 = load float, ptr %1358, align 4, !tbaa !16
  br label %1360

1360:                                             ; preds = %1354, %1348
  %1361 = phi float [ %1353, %1348 ], [ %1359, %1354 ]
  %1362 = fsub float %1336, %1361
  %1363 = load ptr, ptr %16, align 8, !tbaa !9
  %1364 = load i32, ptr %22, align 4, !tbaa !5
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds float, ptr %1363, i64 %1365
  %1367 = load float, ptr %1366, align 4, !tbaa !16
  %1368 = load ptr, ptr %13, align 8, !tbaa !9
  %1369 = load i32, ptr %22, align 4, !tbaa !5
  %1370 = sext i32 %1369 to i64
  %1371 = getelementptr inbounds float, ptr %1368, i64 %1370
  %1372 = load float, ptr %1371, align 4, !tbaa !16
  %1373 = fcmp oge float %1367, %1372
  br i1 %1373, label %1374, label %1380

1374:                                             ; preds = %1360
  %1375 = load ptr, ptr %13, align 8, !tbaa !9
  %1376 = load i32, ptr %22, align 4, !tbaa !5
  %1377 = sext i32 %1376 to i64
  %1378 = getelementptr inbounds float, ptr %1375, i64 %1377
  %1379 = load float, ptr %1378, align 4, !tbaa !16
  br label %1386

1380:                                             ; preds = %1360
  %1381 = load ptr, ptr %16, align 8, !tbaa !9
  %1382 = load i32, ptr %22, align 4, !tbaa !5
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds float, ptr %1381, i64 %1383
  %1385 = load float, ptr %1384, align 4, !tbaa !16
  br label %1386

1386:                                             ; preds = %1380, %1374
  %1387 = phi float [ %1379, %1374 ], [ %1385, %1380 ]
  %1388 = load ptr, ptr %15, align 8, !tbaa !9
  %1389 = load i32, ptr %22, align 4, !tbaa !5
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds float, ptr %1388, i64 %1390
  %1392 = load float, ptr %1391, align 4, !tbaa !16
  %1393 = fsub float %1387, %1392
  %1394 = fadd float %1362, %1393
  br label %1396

1395:                                             ; preds = %1324
  br label %1396

1396:                                             ; preds = %1395, %1386
  %1397 = phi float [ %1394, %1386 ], [ 0.000000e+00, %1395 ]
  br label %1398

1398:                                             ; preds = %1396, %1312
  %1399 = phi float [ %1323, %1312 ], [ %1397, %1396 ]
  %1400 = fpext float %1399 to double
  br label %1401

1401:                                             ; preds = %1398, %1291
  %1402 = phi double [ %1304, %1291 ], [ %1400, %1398 ]
  br label %1403

1403:                                             ; preds = %1401, %1274
  %1404 = phi double [ %1283, %1274 ], [ %1402, %1401 ]
  %1405 = fmul double %1266, %1404
  %1406 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1407 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1406, i32 0, i32 8
  %1408 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1407, i64 0, i64 0
  %1409 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1408, i32 0, i32 1
  %1410 = load i32, ptr %1409, align 4, !tbaa !15
  %1411 = icmp eq i32 %1410, 2
  %1412 = zext i1 %1411 to i64
  %1413 = select i1 %1411, double 2.000000e+00, double 1.000000e+00
  %1414 = fdiv double %1405, %1413
  %1415 = fcmp ogt double %1261, %1414
  br i1 %1415, label %1416, label %1870

1416:                                             ; preds = %1403
  %1417 = load ptr, ptr %14, align 8, !tbaa !9
  %1418 = load i32, ptr %22, align 4, !tbaa !5
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds float, ptr %1417, i64 %1419
  %1421 = load float, ptr %1420, align 4, !tbaa !16
  %1422 = load ptr, ptr %16, align 8, !tbaa !9
  %1423 = load i32, ptr %22, align 4, !tbaa !5
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds float, ptr %1422, i64 %1424
  %1426 = load float, ptr %1425, align 4, !tbaa !16
  %1427 = load ptr, ptr %13, align 8, !tbaa !9
  %1428 = load i32, ptr %22, align 4, !tbaa !5
  %1429 = sext i32 %1428 to i64
  %1430 = getelementptr inbounds float, ptr %1427, i64 %1429
  %1431 = load float, ptr %1430, align 4, !tbaa !16
  %1432 = fcmp oge float %1426, %1431
  br i1 %1432, label %1433, label %1439

1433:                                             ; preds = %1416
  %1434 = load ptr, ptr %16, align 8, !tbaa !9
  %1435 = load i32, ptr %22, align 4, !tbaa !5
  %1436 = sext i32 %1435 to i64
  %1437 = getelementptr inbounds float, ptr %1434, i64 %1436
  %1438 = load float, ptr %1437, align 4, !tbaa !16
  br label %1445

1439:                                             ; preds = %1416
  %1440 = load ptr, ptr %13, align 8, !tbaa !9
  %1441 = load i32, ptr %22, align 4, !tbaa !5
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds float, ptr %1440, i64 %1442
  %1444 = load float, ptr %1443, align 4, !tbaa !16
  br label %1445

1445:                                             ; preds = %1439, %1433
  %1446 = phi float [ %1438, %1433 ], [ %1444, %1439 ]
  %1447 = fsub float %1421, %1446
  %1448 = fpext float %1447 to double
  %1449 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1450 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1449, i32 0, i32 8
  %1451 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1450, i64 0, i64 7
  %1452 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1451, i32 0, i32 3
  %1453 = load double, ptr %1452, align 8, !tbaa !21
  %1454 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1455 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1454, i32 0, i32 8
  %1456 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1455, i64 0, i64 7
  %1457 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1456, i32 0, i32 2
  %1458 = load i32, ptr %1457, align 8, !tbaa !13
  %1459 = sitofp i32 %1458 to double
  %1460 = fcmp une double %1459, 0.000000e+00
  br i1 %1460, label %1461, label %1471

1461:                                             ; preds = %1445
  %1462 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 0
  %1463 = load double, ptr %1462, align 16, !tbaa !11
  %1464 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1465 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1464, i32 0, i32 8
  %1466 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1465, i64 0, i64 7
  %1467 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1466, i32 0, i32 2
  %1468 = load i32, ptr %1467, align 8, !tbaa !13
  %1469 = sitofp i32 %1468 to double
  %1470 = fdiv double %1463, %1469
  br label %1590

1471:                                             ; preds = %1445
  %1472 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1473 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1472, i32 0, i32 8
  %1474 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1473, i64 0, i64 7
  %1475 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1474, i32 0, i32 1
  %1476 = load i32, ptr %1475, align 4, !tbaa !15
  %1477 = icmp eq i32 %1476, 0
  br i1 %1477, label %1478, label %1492

1478:                                             ; preds = %1471
  %1479 = load ptr, ptr %16, align 8, !tbaa !9
  %1480 = load i32, ptr %22, align 4, !tbaa !5
  %1481 = sext i32 %1480 to i64
  %1482 = getelementptr inbounds float, ptr %1479, i64 %1481
  %1483 = load float, ptr %1482, align 4, !tbaa !16
  %1484 = load ptr, ptr %13, align 8, !tbaa !9
  %1485 = load i32, ptr %22, align 4, !tbaa !5
  %1486 = sext i32 %1485 to i64
  %1487 = getelementptr inbounds float, ptr %1484, i64 %1486
  %1488 = load float, ptr %1487, align 4, !tbaa !16
  %1489 = fsub float %1483, %1488
  %1490 = fpext float %1489 to double
  %1491 = call double @llvm.fabs.f64(double %1490)
  br label %1588

1492:                                             ; preds = %1471
  %1493 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1494 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1493, i32 0, i32 8
  %1495 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1494, i64 0, i64 7
  %1496 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1495, i32 0, i32 1
  %1497 = load i32, ptr %1496, align 4, !tbaa !15
  %1498 = icmp eq i32 %1497, 1
  br i1 %1498, label %1499, label %1511

1499:                                             ; preds = %1492
  %1500 = load ptr, ptr %14, align 8, !tbaa !9
  %1501 = load i32, ptr %22, align 4, !tbaa !5
  %1502 = sext i32 %1501 to i64
  %1503 = getelementptr inbounds float, ptr %1500, i64 %1502
  %1504 = load float, ptr %1503, align 4, !tbaa !16
  %1505 = load ptr, ptr %15, align 8, !tbaa !9
  %1506 = load i32, ptr %22, align 4, !tbaa !5
  %1507 = sext i32 %1506 to i64
  %1508 = getelementptr inbounds float, ptr %1505, i64 %1507
  %1509 = load float, ptr %1508, align 4, !tbaa !16
  %1510 = fsub float %1504, %1509
  br label %1585

1511:                                             ; preds = %1492
  %1512 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1513 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1512, i32 0, i32 8
  %1514 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1513, i64 0, i64 7
  %1515 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1514, i32 0, i32 1
  %1516 = load i32, ptr %1515, align 4, !tbaa !15
  %1517 = icmp eq i32 %1516, 2
  br i1 %1517, label %1518, label %1582

1518:                                             ; preds = %1511
  %1519 = load ptr, ptr %14, align 8, !tbaa !9
  %1520 = load i32, ptr %22, 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 %16, align 8, !tbaa !9
  %1525 = load i32, ptr %22, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %1530 = load i32, ptr %22, align 4, !tbaa !5
  %1531 = sext i32 %1530 to i64
  %1532 = getelementptr inbounds float, ptr %1529, i64 %1531
  %1533 = load float, ptr %1532, align 4, !tbaa !16
  %1534 = fcmp oge float %1528, %1533
  br i1 %1534, label %1535, label %1541

1535:                                             ; preds = %1518
  %1536 = load ptr, ptr %16, align 8, !tbaa !9
  %1537 = load i32, ptr %22, align 4, !tbaa !5
  %1538 = sext i32 %1537 to i64
  %1539 = getelementptr inbounds float, ptr %1536, i64 %1538
  %1540 = load float, ptr %1539, align 4, !tbaa !16
  br label %1547

1541:                                             ; preds = %1518
  %1542 = load ptr, ptr %13, align 8, !tbaa !9
  %1543 = load i32, ptr %22, align 4, !tbaa !5
  %1544 = sext i32 %1543 to i64
  %1545 = getelementptr inbounds float, ptr %1542, i64 %1544
  %1546 = load float, ptr %1545, align 4, !tbaa !16
  br label %1547

1547:                                             ; preds = %1541, %1535
  %1548 = phi float [ %1540, %1535 ], [ %1546, %1541 ]
  %1549 = fsub float %1523, %1548
  %1550 = load ptr, ptr %16, align 8, !tbaa !9
  %1551 = load i32, ptr %22, align 4, !tbaa !5
  %1552 = sext i32 %1551 to i64
  %1553 = getelementptr inbounds float, ptr %1550, i64 %1552
  %1554 = load float, ptr %1553, align 4, !tbaa !16
  %1555 = load ptr, ptr %13, align 8, !tbaa !9
  %1556 = load i32, ptr %22, align 4, !tbaa !5
  %1557 = sext i32 %1556 to i64
  %1558 = getelementptr inbounds float, ptr %1555, i64 %1557
  %1559 = load float, ptr %1558, align 4, !tbaa !16
  %1560 = fcmp oge float %1554, %1559
  br i1 %1560, label %1561, label %1567

1561:                                             ; preds = %1547
  %1562 = load ptr, ptr %13, align 8, !tbaa !9
  %1563 = load i32, ptr %22, align 4, !tbaa !5
  %1564 = sext i32 %1563 to i64
  %1565 = getelementptr inbounds float, ptr %1562, i64 %1564
  %1566 = load float, ptr %1565, align 4, !tbaa !16
  br label %1573

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

1573:                                             ; preds = %1567, %1561
  %1574 = phi float [ %1566, %1561 ], [ %1572, %1567 ]
  %1575 = load ptr, ptr %15, align 8, !tbaa !9
  %1576 = load i32, ptr %22, align 4, !tbaa !5
  %1577 = sext i32 %1576 to i64
  %1578 = getelementptr inbounds float, ptr %1575, i64 %1577
  %1579 = load float, ptr %1578, align 4, !tbaa !16
  %1580 = fsub float %1574, %1579
  %1581 = fadd float %1549, %1580
  br label %1583

1582:                                             ; preds = %1511
  br label %1583

1583:                                             ; preds = %1582, %1573
  %1584 = phi float [ %1581, %1573 ], [ 0.000000e+00, %1582 ]
  br label %1585

1585:                                             ; preds = %1583, %1499
  %1586 = phi float [ %1510, %1499 ], [ %1584, %1583 ]
  %1587 = fpext float %1586 to double
  br label %1588

1588:                                             ; preds = %1585, %1478
  %1589 = phi double [ %1491, %1478 ], [ %1587, %1585 ]
  br label %1590

1590:                                             ; preds = %1588, %1461
  %1591 = phi double [ %1470, %1461 ], [ %1589, %1588 ]
  %1592 = fmul double %1453, %1591
  %1593 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1594 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1593, i32 0, i32 8
  %1595 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1594, i64 0, i64 7
  %1596 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1595, i32 0, i32 1
  %1597 = load i32, ptr %1596, align 4, !tbaa !15
  %1598 = icmp eq i32 %1597, 2
  %1599 = zext i1 %1598 to i64
  %1600 = select i1 %1598, double 2.000000e+00, double 1.000000e+00
  %1601 = fdiv double %1592, %1600
  %1602 = fcmp olt double %1448, %1601
  br i1 %1602, label %1603, label %1870

1603:                                             ; preds = %1590
  %1604 = load ptr, ptr %16, align 8, !tbaa !9
  %1605 = load i32, ptr %22, align 4, !tbaa !5
  %1606 = sext i32 %1605 to i64
  %1607 = getelementptr inbounds float, ptr %1604, i64 %1606
  %1608 = load float, ptr %1607, align 4, !tbaa !16
  %1609 = load ptr, ptr %13, align 8, !tbaa !9
  %1610 = load i32, ptr %22, align 4, !tbaa !5
  %1611 = sext i32 %1610 to i64
  %1612 = getelementptr inbounds float, ptr %1609, i64 %1611
  %1613 = load float, ptr %1612, align 4, !tbaa !16
  %1614 = fcmp oge float %1608, %1613
  br i1 %1614, label %1615, label %1621

1615:                                             ; preds = %1603
  %1616 = load ptr, ptr %13, align 8, !tbaa !9
  %1617 = load i32, ptr %22, align 4, !tbaa !5
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds float, ptr %1616, i64 %1618
  %1620 = load float, ptr %1619, align 4, !tbaa !16
  br label %1627

1621:                                             ; preds = %1603
  %1622 = load ptr, ptr %16, align 8, !tbaa !9
  %1623 = load i32, ptr %22, align 4, !tbaa !5
  %1624 = sext i32 %1623 to i64
  %1625 = getelementptr inbounds float, ptr %1622, i64 %1624
  %1626 = load float, ptr %1625, align 4, !tbaa !16
  br label %1627

1627:                                             ; preds = %1621, %1615
  %1628 = phi float [ %1620, %1615 ], [ %1626, %1621 ]
  %1629 = load ptr, ptr %15, align 8, !tbaa !9
  %1630 = load i32, ptr %22, align 4, !tbaa !5
  %1631 = sext i32 %1630 to i64
  %1632 = getelementptr inbounds float, ptr %1629, i64 %1631
  %1633 = load float, ptr %1632, align 4, !tbaa !16
  %1634 = fsub float %1628, %1633
  %1635 = fpext float %1634 to double
  %1636 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1637 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1636, i32 0, i32 8
  %1638 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1637, i64 0, i64 7
  %1639 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1638, i32 0, i32 3
  %1640 = load double, ptr %1639, align 8, !tbaa !21
  %1641 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1642 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1641, i32 0, i32 8
  %1643 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1642, i64 0, i64 7
  %1644 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1643, i32 0, i32 2
  %1645 = load i32, ptr %1644, align 8, !tbaa !13
  %1646 = sitofp i32 %1645 to double
  %1647 = fcmp une double %1646, 0.000000e+00
  br i1 %1647, label %1648, label %1658

1648:                                             ; preds = %1627
  %1649 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 0
  %1650 = load double, ptr %1649, align 16, !tbaa !11
  %1651 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1652 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1651, i32 0, i32 8
  %1653 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1652, i64 0, i64 7
  %1654 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1653, i32 0, i32 2
  %1655 = load i32, ptr %1654, align 8, !tbaa !13
  %1656 = sitofp i32 %1655 to double
  %1657 = fdiv double %1650, %1656
  br label %1777

1658:                                             ; preds = %1627
  %1659 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1660 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1659, i32 0, i32 8
  %1661 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1660, i64 0, i64 7
  %1662 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1661, i32 0, i32 1
  %1663 = load i32, ptr %1662, align 4, !tbaa !15
  %1664 = icmp eq i32 %1663, 0
  br i1 %1664, label %1665, label %1679

1665:                                             ; preds = %1658
  %1666 = load ptr, ptr %16, align 8, !tbaa !9
  %1667 = load i32, ptr %22, align 4, !tbaa !5
  %1668 = sext i32 %1667 to i64
  %1669 = getelementptr inbounds float, ptr %1666, i64 %1668
  %1670 = load float, ptr %1669, align 4, !tbaa !16
  %1671 = load ptr, ptr %13, align 8, !tbaa !9
  %1672 = load i32, ptr %22, align 4, !tbaa !5
  %1673 = sext i32 %1672 to i64
  %1674 = getelementptr inbounds float, ptr %1671, i64 %1673
  %1675 = load float, ptr %1674, align 4, !tbaa !16
  %1676 = fsub float %1670, %1675
  %1677 = fpext float %1676 to double
  %1678 = call double @llvm.fabs.f64(double %1677)
  br label %1775

1679:                                             ; preds = %1658
  %1680 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1681 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1680, i32 0, i32 8
  %1682 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1681, i64 0, i64 7
  %1683 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1682, i32 0, i32 1
  %1684 = load i32, ptr %1683, align 4, !tbaa !15
  %1685 = icmp eq i32 %1684, 1
  br i1 %1685, label %1686, label %1698

1686:                                             ; preds = %1679
  %1687 = load ptr, ptr %14, align 8, !tbaa !9
  %1688 = load i32, ptr %22, align 4, !tbaa !5
  %1689 = sext i32 %1688 to i64
  %1690 = getelementptr inbounds float, ptr %1687, i64 %1689
  %1691 = load float, ptr %1690, align 4, !tbaa !16
  %1692 = load ptr, ptr %15, align 8, !tbaa !9
  %1693 = load i32, ptr %22, align 4, !tbaa !5
  %1694 = sext i32 %1693 to i64
  %1695 = getelementptr inbounds float, ptr %1692, i64 %1694
  %1696 = load float, ptr %1695, align 4, !tbaa !16
  %1697 = fsub float %1691, %1696
  br label %1772

1698:                                             ; preds = %1679
  %1699 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1700 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1699, i32 0, i32 8
  %1701 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1700, i64 0, i64 7
  %1702 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1701, i32 0, i32 1
  %1703 = load i32, ptr %1702, align 4, !tbaa !15
  %1704 = icmp eq i32 %1703, 2
  br i1 %1704, label %1705, label %1769

1705:                                             ; preds = %1698
  %1706 = load ptr, ptr %14, align 8, !tbaa !9
  %1707 = load i32, ptr %22, align 4, !tbaa !5
  %1708 = sext i32 %1707 to i64
  %1709 = getelementptr inbounds float, ptr %1706, i64 %1708
  %1710 = load float, ptr %1709, align 4, !tbaa !16
  %1711 = load ptr, ptr %16, align 8, !tbaa !9
  %1712 = load i32, ptr %22, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %1717 = load i32, ptr %22, align 4, !tbaa !5
  %1718 = sext i32 %1717 to i64
  %1719 = getelementptr inbounds float, ptr %1716, i64 %1718
  %1720 = load float, ptr %1719, align 4, !tbaa !16
  %1721 = fcmp oge float %1715, %1720
  br i1 %1721, label %1722, label %1728

1722:                                             ; preds = %1705
  %1723 = load ptr, ptr %16, align 8, !tbaa !9
  %1724 = load i32, ptr %22, align 4, !tbaa !5
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds float, ptr %1723, i64 %1725
  %1727 = load float, ptr %1726, align 4, !tbaa !16
  br label %1734

1728:                                             ; preds = %1705
  %1729 = load ptr, ptr %13, align 8, !tbaa !9
  %1730 = load i32, ptr %22, align 4, !tbaa !5
  %1731 = sext i32 %1730 to i64
  %1732 = getelementptr inbounds float, ptr %1729, i64 %1731
  %1733 = load float, ptr %1732, align 4, !tbaa !16
  br label %1734

1734:                                             ; preds = %1728, %1722
  %1735 = phi float [ %1727, %1722 ], [ %1733, %1728 ]
  %1736 = fsub float %1710, %1735
  %1737 = load ptr, ptr %16, align 8, !tbaa !9
  %1738 = load i32, ptr %22, align 4, !tbaa !5
  %1739 = sext i32 %1738 to i64
  %1740 = getelementptr inbounds float, ptr %1737, i64 %1739
  %1741 = load float, ptr %1740, align 4, !tbaa !16
  %1742 = load ptr, ptr %13, align 8, !tbaa !9
  %1743 = load i32, ptr %22, align 4, !tbaa !5
  %1744 = sext i32 %1743 to i64
  %1745 = getelementptr inbounds float, ptr %1742, i64 %1744
  %1746 = load float, ptr %1745, align 4, !tbaa !16
  %1747 = fcmp oge float %1741, %1746
  br i1 %1747, label %1748, label %1754

1748:                                             ; preds = %1734
  %1749 = load ptr, ptr %13, align 8, !tbaa !9
  %1750 = load i32, ptr %22, align 4, !tbaa !5
  %1751 = sext i32 %1750 to i64
  %1752 = getelementptr inbounds float, ptr %1749, i64 %1751
  %1753 = load float, ptr %1752, align 4, !tbaa !16
  br label %1760

1754:                                             ; preds = %1734
  %1755 = load ptr, ptr %16, align 8, !tbaa !9
  %1756 = load i32, ptr %22, align 4, !tbaa !5
  %1757 = sext i32 %1756 to i64
  %1758 = getelementptr inbounds float, ptr %1755, i64 %1757
  %1759 = load float, ptr %1758, align 4, !tbaa !16
  br label %1760

1760:                                             ; preds = %1754, %1748
  %1761 = phi float [ %1753, %1748 ], [ %1759, %1754 ]
  %1762 = load ptr, ptr %15, align 8, !tbaa !9
  %1763 = load i32, ptr %22, align 4, !tbaa !5
  %1764 = sext i32 %1763 to i64
  %1765 = getelementptr inbounds float, ptr %1762, i64 %1764
  %1766 = load float, ptr %1765, align 4, !tbaa !16
  %1767 = fsub float %1761, %1766
  %1768 = fadd float %1736, %1767
  br label %1770

1769:                                             ; preds = %1698
  br label %1770

1770:                                             ; preds = %1769, %1760
  %1771 = phi float [ %1768, %1760 ], [ 0.000000e+00, %1769 ]
  br label %1772

1772:                                             ; preds = %1770, %1686
  %1773 = phi float [ %1697, %1686 ], [ %1771, %1770 ]
  %1774 = fpext float %1773 to double
  br label %1775

1775:                                             ; preds = %1772, %1665
  %1776 = phi double [ %1678, %1665 ], [ %1774, %1772 ]
  br label %1777

1777:                                             ; preds = %1775, %1648
  %1778 = phi double [ %1657, %1648 ], [ %1776, %1775 ]
  %1779 = fmul double %1640, %1778
  %1780 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1781 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1780, i32 0, i32 8
  %1782 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1781, i64 0, i64 7
  %1783 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1782, i32 0, i32 1
  %1784 = load i32, ptr %1783, align 4, !tbaa !15
  %1785 = icmp eq i32 %1784, 2
  %1786 = zext i1 %1785 to i64
  %1787 = select i1 %1785, double 2.000000e+00, double 1.000000e+00
  %1788 = fdiv double %1779, %1787
  %1789 = fcmp olt double %1635, %1788
  br i1 %1789, label %1790, label %1870

1790:                                             ; preds = %1777
  %1791 = load ptr, ptr %16, align 8, !tbaa !9
  %1792 = load i32, ptr %22, align 4, !tbaa !5
  %1793 = sub nsw i32 %1792, 1
  %1794 = sext i32 %1793 to i64
  %1795 = getelementptr inbounds float, ptr %1791, i64 %1794
  %1796 = load float, ptr %1795, align 4, !tbaa !16
  %1797 = load ptr, ptr %13, align 8, !tbaa !9
  %1798 = load i32, ptr %22, align 4, !tbaa !5
  %1799 = sub nsw i32 %1798, 1
  %1800 = sext i32 %1799 to i64
  %1801 = getelementptr inbounds float, ptr %1797, i64 %1800
  %1802 = load float, ptr %1801, align 4, !tbaa !16
  %1803 = fcmp oge float %1796, %1802
  %1804 = zext i1 %1803 to i64
  %1805 = select i1 %1803, i32 1, i32 -1
  %1806 = icmp eq i32 %1805, -1
  br i1 %1806, label %1807, label %1820

1807:                                             ; preds = %1790
  %1808 = load ptr, ptr %15, align 8, !tbaa !9
  %1809 = load i32, ptr %22, align 4, !tbaa !5
  %1810 = sext i32 %1809 to i64
  %1811 = getelementptr inbounds float, ptr %1808, i64 %1810
  %1812 = load float, ptr %1811, align 4, !tbaa !16
  %1813 = load ptr, ptr %14, align 8, !tbaa !9
  %1814 = load i32, ptr %22, align 4, !tbaa !5
  %1815 = sub nsw i32 %1814, 1
  %1816 = sext i32 %1815 to i64
  %1817 = getelementptr inbounds float, ptr %1813, i64 %1816
  %1818 = load float, ptr %1817, align 4, !tbaa !16
  %1819 = fcmp ogt float %1812, %1818
  br i1 %1819, label %1850, label %1820

1820:                                             ; preds = %1807, %1790
  %1821 = load ptr, ptr %16, align 8, !tbaa !9
  %1822 = load i32, ptr %22, align 4, !tbaa !5
  %1823 = sub nsw i32 %1822, 1
  %1824 = sext i32 %1823 to i64
  %1825 = getelementptr inbounds float, ptr %1821, i64 %1824
  %1826 = load float, ptr %1825, align 4, !tbaa !16
  %1827 = load ptr, ptr %13, align 8, !tbaa !9
  %1828 = load i32, ptr %22, align 4, !tbaa !5
  %1829 = sub nsw i32 %1828, 1
  %1830 = sext i32 %1829 to i64
  %1831 = getelementptr inbounds float, ptr %1827, i64 %1830
  %1832 = load float, ptr %1831, align 4, !tbaa !16
  %1833 = fcmp oge float %1826, %1832
  %1834 = zext i1 %1833 to i64
  %1835 = select i1 %1833, i32 1, i32 -1
  %1836 = icmp eq i32 %1835, 1
  br i1 %1836, label %1837, label %1870

1837:                                             ; preds = %1820
  %1838 = load ptr, ptr %14, align 8, !tbaa !9
  %1839 = load i32, ptr %22, align 4, !tbaa !5
  %1840 = sext i32 %1839 to i64
  %1841 = getelementptr inbounds float, ptr %1838, i64 %1840
  %1842 = load float, ptr %1841, align 4, !tbaa !16
  %1843 = load ptr, ptr %15, align 8, !tbaa !9
  %1844 = load i32, ptr %22, align 4, !tbaa !5
  %1845 = sub nsw i32 %1844, 1
  %1846 = sext i32 %1845 to i64
  %1847 = getelementptr inbounds float, ptr %1843, i64 %1846
  %1848 = load float, ptr %1847, align 4, !tbaa !16
  %1849 = fcmp olt float %1842, %1848
  br i1 %1849, label %1850, label %1870

1850:                                             ; preds = %1837, %1807
  %1851 = load ptr, ptr %16, align 8, !tbaa !9
  %1852 = load i32, ptr %22, align 4, !tbaa !5
  %1853 = sext i32 %1852 to i64
  %1854 = getelementptr inbounds float, ptr %1851, i64 %1853
  %1855 = load float, ptr %1854, align 4, !tbaa !16
  %1856 = load ptr, ptr %13, align 8, !tbaa !9
  %1857 = load i32, ptr %22, align 4, !tbaa !5
  %1858 = sext i32 %1857 to i64
  %1859 = getelementptr inbounds float, ptr %1856, i64 %1858
  %1860 = load float, ptr %1859, align 4, !tbaa !16
  %1861 = fcmp oge float %1855, %1860
  %1862 = zext i1 %1861 to i64
  %1863 = select i1 %1861, i32 1, i32 -1
  %1864 = mul nsw i32 %1863, 100
  %1865 = load ptr, ptr %19, align 8, !tbaa !9
  %1866 = load i32, ptr %23, align 4, !tbaa !5
  %1867 = add nsw i32 %1866, 1
  store i32 %1867, ptr %23, align 4, !tbaa !5
  %1868 = sext i32 %1866 to i64
  %1869 = getelementptr inbounds i32, ptr %1865, i64 %1868
  store i32 %1864, ptr %1869, align 4, !tbaa !5
  br label %1876

1870:                                             ; preds = %1837, %1820, %1777, %1590, %1403, %1235, %1029, %823, %621
  %1871 = load ptr, ptr %19, align 8, !tbaa !9
  %1872 = load i32, ptr %23, align 4, !tbaa !5
  %1873 = add nsw i32 %1872, 1
  store i32 %1873, ptr %23, align 4, !tbaa !5
  %1874 = sext i32 %1872 to i64
  %1875 = getelementptr inbounds i32, ptr %1871, i64 %1874
  store i32 0, ptr %1875, align 4, !tbaa !5
  br label %1876

1876:                                             ; preds = %1870, %1850
  store i32 1, ptr %24, align 4, !tbaa !5
  br label %1877

1877:                                             ; preds = %2477, %1876
  %1878 = load i32, ptr %24, align 4, !tbaa !5
  %1879 = icmp sge i32 %1878, 0
  br i1 %1879, label %1880, label %2480

1880:                                             ; preds = %1877
  %1881 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1882 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1881, i32 0, i32 8
  %1883 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1882, i64 0, i64 0
  %1884 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1883, i32 0, i32 1
  %1885 = load i32, ptr %1884, align 4, !tbaa !15
  %1886 = icmp eq i32 %1885, 0
  br i1 %1886, label %1887, label %1905

1887:                                             ; preds = %1880
  %1888 = load ptr, ptr %16, align 8, !tbaa !9
  %1889 = load i32, ptr %22, align 4, !tbaa !5
  %1890 = load i32, ptr %24, align 4, !tbaa !5
  %1891 = sub nsw i32 %1889, %1890
  %1892 = sext i32 %1891 to i64
  %1893 = getelementptr inbounds float, ptr %1888, i64 %1892
  %1894 = load float, ptr %1893, align 4, !tbaa !16
  %1895 = load ptr, ptr %13, align 8, !tbaa !9
  %1896 = load i32, ptr %22, align 4, !tbaa !5
  %1897 = load i32, ptr %24, align 4, !tbaa !5
  %1898 = sub nsw i32 %1896, %1897
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds float, ptr %1895, i64 %1899
  %1901 = load float, ptr %1900, align 4, !tbaa !16
  %1902 = fsub float %1894, %1901
  %1903 = fpext float %1902 to double
  %1904 = call double @llvm.fabs.f64(double %1903)
  br label %2025

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

1912:                                             ; preds = %1905
  %1913 = load ptr, ptr %14, align 8, !tbaa !9
  %1914 = load i32, ptr %22, align 4, !tbaa !5
  %1915 = load i32, ptr %24, align 4, !tbaa !5
  %1916 = sub nsw i32 %1914, %1915
  %1917 = sext i32 %1916 to i64
  %1918 = getelementptr inbounds float, ptr %1913, i64 %1917
  %1919 = load float, ptr %1918, align 4, !tbaa !16
  %1920 = load ptr, ptr %15, align 8, !tbaa !9
  %1921 = load i32, ptr %22, align 4, !tbaa !5
  %1922 = load i32, ptr %24, align 4, !tbaa !5
  %1923 = sub nsw i32 %1921, %1922
  %1924 = sext i32 %1923 to i64
  %1925 = getelementptr inbounds float, ptr %1920, i64 %1924
  %1926 = load float, ptr %1925, align 4, !tbaa !16
  %1927 = fsub float %1919, %1926
  br label %2022

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

1935:                                             ; preds = %1928
  %1936 = load ptr, ptr %14, align 8, !tbaa !9
  %1937 = load i32, ptr %22, align 4, !tbaa !5
  %1938 = load i32, ptr %24, align 4, !tbaa !5
  %1939 = sub nsw i32 %1937, %1938
  %1940 = sext i32 %1939 to i64
  %1941 = getelementptr inbounds float, ptr %1936, i64 %1940
  %1942 = load float, ptr %1941, align 4, !tbaa !16
  %1943 = load ptr, ptr %16, align 8, !tbaa !9
  %1944 = load i32, ptr %22, align 4, !tbaa !5
  %1945 = load i32, ptr %24, align 4, !tbaa !5
  %1946 = sub nsw i32 %1944, %1945
  %1947 = sext i32 %1946 to i64
  %1948 = getelementptr inbounds float, ptr %1943, i64 %1947
  %1949 = load float, ptr %1948, align 4, !tbaa !16
  %1950 = load ptr, ptr %13, align 8, !tbaa !9
  %1951 = load i32, ptr %22, align 4, !tbaa !5
  %1952 = load i32, ptr %24, align 4, !tbaa !5
  %1953 = sub nsw i32 %1951, %1952
  %1954 = sext i32 %1953 to i64
  %1955 = getelementptr inbounds float, ptr %1950, i64 %1954
  %1956 = load float, ptr %1955, align 4, !tbaa !16
  %1957 = fcmp oge float %1949, %1956
  br i1 %1957, label %1958, label %1966

1958:                                             ; preds = %1935
  %1959 = load ptr, ptr %16, align 8, !tbaa !9
  %1960 = load i32, ptr %22, align 4, !tbaa !5
  %1961 = load i32, ptr %24, align 4, !tbaa !5
  %1962 = sub nsw i32 %1960, %1961
  %1963 = sext i32 %1962 to i64
  %1964 = getelementptr inbounds float, ptr %1959, i64 %1963
  %1965 = load float, ptr %1964, align 4, !tbaa !16
  br label %1974

1966:                                             ; preds = %1935
  %1967 = load ptr, ptr %13, align 8, !tbaa !9
  %1968 = load i32, ptr %22, align 4, !tbaa !5
  %1969 = load i32, ptr %24, align 4, !tbaa !5
  %1970 = sub nsw i32 %1968, %1969
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds float, ptr %1967, i64 %1971
  %1973 = load float, ptr %1972, align 4, !tbaa !16
  br label %1974

1974:                                             ; preds = %1966, %1958
  %1975 = phi float [ %1965, %1958 ], [ %1973, %1966 ]
  %1976 = fsub float %1942, %1975
  %1977 = load ptr, ptr %16, align 8, !tbaa !9
  %1978 = load i32, ptr %22, align 4, !tbaa !5
  %1979 = load i32, ptr %24, align 4, !tbaa !5
  %1980 = sub nsw i32 %1978, %1979
  %1981 = sext i32 %1980 to i64
  %1982 = getelementptr inbounds float, ptr %1977, i64 %1981
  %1983 = load float, ptr %1982, align 4, !tbaa !16
  %1984 = load ptr, ptr %13, align 8, !tbaa !9
  %1985 = load i32, ptr %22, align 4, !tbaa !5
  %1986 = load i32, ptr %24, align 4, !tbaa !5
  %1987 = sub nsw i32 %1985, %1986
  %1988 = sext i32 %1987 to i64
  %1989 = getelementptr inbounds float, ptr %1984, i64 %1988
  %1990 = load float, ptr %1989, align 4, !tbaa !16
  %1991 = fcmp oge float %1983, %1990
  br i1 %1991, label %1992, label %2000

1992:                                             ; preds = %1974
  %1993 = load ptr, ptr %13, align 8, !tbaa !9
  %1994 = load i32, ptr %22, align 4, !tbaa !5
  %1995 = load i32, ptr %24, align 4, !tbaa !5
  %1996 = sub nsw i32 %1994, %1995
  %1997 = sext i32 %1996 to i64
  %1998 = getelementptr inbounds float, ptr %1993, i64 %1997
  %1999 = load float, ptr %1998, align 4, !tbaa !16
  br label %2008

2000:                                             ; preds = %1974
  %2001 = load ptr, ptr %16, align 8, !tbaa !9
  %2002 = load i32, ptr %22, align 4, !tbaa !5
  %2003 = load i32, ptr %24, align 4, !tbaa !5
  %2004 = sub nsw i32 %2002, %2003
  %2005 = sext i32 %2004 to i64
  %2006 = getelementptr inbounds float, ptr %2001, i64 %2005
  %2007 = load float, ptr %2006, align 4, !tbaa !16
  br label %2008

2008:                                             ; preds = %2000, %1992
  %2009 = phi float [ %1999, %1992 ], [ %2007, %2000 ]
  %2010 = load ptr, ptr %15, align 8, !tbaa !9
  %2011 = load i32, ptr %22, align 4, !tbaa !5
  %2012 = load i32, ptr %24, align 4, !tbaa !5
  %2013 = sub nsw i32 %2011, %2012
  %2014 = sext i32 %2013 to i64
  %2015 = getelementptr inbounds float, ptr %2010, i64 %2014
  %2016 = load float, ptr %2015, align 4, !tbaa !16
  %2017 = fsub float %2009, %2016
  %2018 = fadd float %1976, %2017
  br label %2020

2019:                                             ; preds = %1928
  br label %2020

2020:                                             ; preds = %2019, %2008
  %2021 = phi float [ %2018, %2008 ], [ 0.000000e+00, %2019 ]
  br label %2022

2022:                                             ; preds = %2020, %1912
  %2023 = phi float [ %1927, %1912 ], [ %2021, %2020 ]
  %2024 = fpext float %2023 to double
  br label %2025

2025:                                             ; preds = %2022, %1887
  %2026 = phi double [ %1904, %1887 ], [ %2024, %2022 ]
  %2027 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2028 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2027, i32 0, i32 8
  %2029 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2028, i64 0, i64 0
  %2030 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2029, i32 0, i32 1
  %2031 = load i32, ptr %2030, align 4, !tbaa !15
  %2032 = icmp eq i32 %2031, 0
  br i1 %2032, label %2033, label %2051

2033:                                             ; preds = %2025
  %2034 = load ptr, ptr %16, align 8, !tbaa !9
  %2035 = load i32, ptr %26, align 4, !tbaa !5
  %2036 = load i32, ptr %24, align 4, !tbaa !5
  %2037 = sub nsw i32 %2035, %2036
  %2038 = sext i32 %2037 to i64
  %2039 = getelementptr inbounds float, ptr %2034, i64 %2038
  %2040 = load float, ptr %2039, align 4, !tbaa !16
  %2041 = load ptr, ptr %13, align 8, !tbaa !9
  %2042 = load i32, ptr %26, align 4, !tbaa !5
  %2043 = load i32, ptr %24, align 4, !tbaa !5
  %2044 = sub nsw i32 %2042, %2043
  %2045 = sext i32 %2044 to i64
  %2046 = getelementptr inbounds float, ptr %2041, i64 %2045
  %2047 = load float, ptr %2046, align 4, !tbaa !16
  %2048 = fsub float %2040, %2047
  %2049 = fpext float %2048 to double
  %2050 = call double @llvm.fabs.f64(double %2049)
  br label %2171

2051:                                             ; preds = %2025
  %2052 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2053 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2052, i32 0, i32 8
  %2054 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2053, i64 0, i64 0
  %2055 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2054, i32 0, i32 1
  %2056 = load i32, ptr %2055, align 4, !tbaa !15
  %2057 = icmp eq i32 %2056, 1
  br i1 %2057, label %2058, label %2074

2058:                                             ; preds = %2051
  %2059 = load ptr, ptr %14, align 8, !tbaa !9
  %2060 = load i32, ptr %26, align 4, !tbaa !5
  %2061 = load i32, ptr %24, align 4, !tbaa !5
  %2062 = sub nsw i32 %2060, %2061
  %2063 = sext i32 %2062 to i64
  %2064 = getelementptr inbounds float, ptr %2059, i64 %2063
  %2065 = load float, ptr %2064, align 4, !tbaa !16
  %2066 = load ptr, ptr %15, align 8, !tbaa !9
  %2067 = load i32, ptr %26, align 4, !tbaa !5
  %2068 = load i32, ptr %24, align 4, !tbaa !5
  %2069 = sub nsw i32 %2067, %2068
  %2070 = sext i32 %2069 to i64
  %2071 = getelementptr inbounds float, ptr %2066, i64 %2070
  %2072 = load float, ptr %2071, align 4, !tbaa !16
  %2073 = fsub float %2065, %2072
  br label %2168

2074:                                             ; preds = %2051
  %2075 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2076 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2075, i32 0, i32 8
  %2077 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2076, i64 0, i64 0
  %2078 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2077, i32 0, i32 1
  %2079 = load i32, ptr %2078, align 4, !tbaa !15
  %2080 = icmp eq i32 %2079, 2
  br i1 %2080, label %2081, label %2165

2081:                                             ; preds = %2074
  %2082 = load ptr, ptr %14, align 8, !tbaa !9
  %2083 = load i32, ptr %26, align 4, !tbaa !5
  %2084 = load i32, ptr %24, align 4, !tbaa !5
  %2085 = sub nsw i32 %2083, %2084
  %2086 = sext i32 %2085 to i64
  %2087 = getelementptr inbounds float, ptr %2082, i64 %2086
  %2088 = load float, ptr %2087, align 4, !tbaa !16
  %2089 = load ptr, ptr %16, align 8, !tbaa !9
  %2090 = load i32, ptr %26, align 4, !tbaa !5
  %2091 = load i32, ptr %24, align 4, !tbaa !5
  %2092 = sub nsw i32 %2090, %2091
  %2093 = sext i32 %2092 to i64
  %2094 = getelementptr inbounds float, ptr %2089, i64 %2093
  %2095 = load float, ptr %2094, align 4, !tbaa !16
  %2096 = load ptr, ptr %13, align 8, !tbaa !9
  %2097 = load i32, ptr %26, align 4, !tbaa !5
  %2098 = load i32, ptr %24, align 4, !tbaa !5
  %2099 = sub nsw i32 %2097, %2098
  %2100 = sext i32 %2099 to i64
  %2101 = getelementptr inbounds float, ptr %2096, i64 %2100
  %2102 = load float, ptr %2101, align 4, !tbaa !16
  %2103 = fcmp oge float %2095, %2102
  br i1 %2103, label %2104, label %2112

2104:                                             ; preds = %2081
  %2105 = load ptr, ptr %16, align 8, !tbaa !9
  %2106 = load i32, ptr %26, align 4, !tbaa !5
  %2107 = load i32, ptr %24, align 4, !tbaa !5
  %2108 = sub nsw i32 %2106, %2107
  %2109 = sext i32 %2108 to i64
  %2110 = getelementptr inbounds float, ptr %2105, i64 %2109
  %2111 = load float, ptr %2110, align 4, !tbaa !16
  br label %2120

2112:                                             ; preds = %2081
  %2113 = load ptr, ptr %13, align 8, !tbaa !9
  %2114 = load i32, ptr %26, align 4, !tbaa !5
  %2115 = load i32, ptr %24, align 4, !tbaa !5
  %2116 = sub nsw i32 %2114, %2115
  %2117 = sext i32 %2116 to i64
  %2118 = getelementptr inbounds float, ptr %2113, i64 %2117
  %2119 = load float, ptr %2118, align 4, !tbaa !16
  br label %2120

2120:                                             ; preds = %2112, %2104
  %2121 = phi float [ %2111, %2104 ], [ %2119, %2112 ]
  %2122 = fsub float %2088, %2121
  %2123 = load ptr, ptr %16, align 8, !tbaa !9
  %2124 = load i32, ptr %26, align 4, !tbaa !5
  %2125 = load i32, ptr %24, align 4, !tbaa !5
  %2126 = sub nsw i32 %2124, %2125
  %2127 = sext i32 %2126 to i64
  %2128 = getelementptr inbounds float, ptr %2123, i64 %2127
  %2129 = load float, ptr %2128, align 4, !tbaa !16
  %2130 = load ptr, ptr %13, align 8, !tbaa !9
  %2131 = load i32, ptr %26, align 4, !tbaa !5
  %2132 = load i32, ptr %24, align 4, !tbaa !5
  %2133 = sub nsw i32 %2131, %2132
  %2134 = sext i32 %2133 to i64
  %2135 = getelementptr inbounds float, ptr %2130, i64 %2134
  %2136 = load float, ptr %2135, align 4, !tbaa !16
  %2137 = fcmp oge float %2129, %2136
  br i1 %2137, label %2138, label %2146

2138:                                             ; preds = %2120
  %2139 = load ptr, ptr %13, align 8, !tbaa !9
  %2140 = load i32, ptr %26, align 4, !tbaa !5
  %2141 = load i32, ptr %24, align 4, !tbaa !5
  %2142 = sub nsw i32 %2140, %2141
  %2143 = sext i32 %2142 to i64
  %2144 = getelementptr inbounds float, ptr %2139, i64 %2143
  %2145 = load float, ptr %2144, align 4, !tbaa !16
  br label %2154

2146:                                             ; preds = %2120
  %2147 = load ptr, ptr %16, align 8, !tbaa !9
  %2148 = load i32, ptr %26, align 4, !tbaa !5
  %2149 = load i32, ptr %24, align 4, !tbaa !5
  %2150 = sub nsw i32 %2148, %2149
  %2151 = sext i32 %2150 to i64
  %2152 = getelementptr inbounds float, ptr %2147, i64 %2151
  %2153 = load float, ptr %2152, align 4, !tbaa !16
  br label %2154

2154:                                             ; preds = %2146, %2138
  %2155 = phi float [ %2145, %2138 ], [ %2153, %2146 ]
  %2156 = load ptr, ptr %15, align 8, !tbaa !9
  %2157 = load i32, ptr %26, align 4, !tbaa !5
  %2158 = load i32, ptr %24, align 4, !tbaa !5
  %2159 = sub nsw i32 %2157, %2158
  %2160 = sext i32 %2159 to i64
  %2161 = getelementptr inbounds float, ptr %2156, i64 %2160
  %2162 = load float, ptr %2161, align 4, !tbaa !16
  %2163 = fsub float %2155, %2162
  %2164 = fadd float %2122, %2163
  br label %2166

2165:                                             ; preds = %2074
  br label %2166

2166:                                             ; preds = %2165, %2154
  %2167 = phi float [ %2164, %2154 ], [ 0.000000e+00, %2165 ]
  br label %2168

2168:                                             ; preds = %2166, %2058
  %2169 = phi float [ %2073, %2058 ], [ %2167, %2166 ]
  %2170 = fpext float %2169 to double
  br label %2171

2171:                                             ; preds = %2168, %2033
  %2172 = phi double [ %2050, %2033 ], [ %2170, %2168 ]
  %2173 = fsub double %2026, %2172
  %2174 = load i32, ptr %24, align 4, !tbaa !5
  %2175 = sext i32 %2174 to i64
  %2176 = getelementptr inbounds [2 x double], ptr %21, i64 0, i64 %2175
  %2177 = load double, ptr %2176, align 8, !tbaa !11
  %2178 = fadd double %2177, %2173
  store double %2178, ptr %2176, align 8, !tbaa !11
  %2179 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2180 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2179, i32 0, i32 8
  %2181 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2180, i64 0, i64 7
  %2182 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2181, i32 0, i32 1
  %2183 = load i32, ptr %2182, align 4, !tbaa !15
  %2184 = icmp eq i32 %2183, 0
  br i1 %2184, label %2185, label %2203

2185:                                             ; preds = %2171
  %2186 = load ptr, ptr %16, align 8, !tbaa !9
  %2187 = load i32, ptr %22, align 4, !tbaa !5
  %2188 = load i32, ptr %24, align 4, !tbaa !5
  %2189 = sub nsw i32 %2187, %2188
  %2190 = sext i32 %2189 to i64
  %2191 = getelementptr inbounds float, ptr %2186, i64 %2190
  %2192 = load float, ptr %2191, align 4, !tbaa !16
  %2193 = load ptr, ptr %13, align 8, !tbaa !9
  %2194 = load i32, ptr %22, align 4, !tbaa !5
  %2195 = load i32, ptr %24, align 4, !tbaa !5
  %2196 = sub nsw i32 %2194, %2195
  %2197 = sext i32 %2196 to i64
  %2198 = getelementptr inbounds float, ptr %2193, i64 %2197
  %2199 = load float, ptr %2198, align 4, !tbaa !16
  %2200 = fsub float %2192, %2199
  %2201 = fpext float %2200 to double
  %2202 = call double @llvm.fabs.f64(double %2201)
  br label %2323

2203:                                             ; preds = %2171
  %2204 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2205 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2204, i32 0, i32 8
  %2206 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2205, i64 0, i64 7
  %2207 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2206, i32 0, i32 1
  %2208 = load i32, ptr %2207, align 4, !tbaa !15
  %2209 = icmp eq i32 %2208, 1
  br i1 %2209, label %2210, label %2226

2210:                                             ; preds = %2203
  %2211 = load ptr, ptr %14, align 8, !tbaa !9
  %2212 = load i32, ptr %22, align 4, !tbaa !5
  %2213 = load i32, ptr %24, align 4, !tbaa !5
  %2214 = sub nsw i32 %2212, %2213
  %2215 = sext i32 %2214 to i64
  %2216 = getelementptr inbounds float, ptr %2211, i64 %2215
  %2217 = load float, ptr %2216, align 4, !tbaa !16
  %2218 = load ptr, ptr %15, align 8, !tbaa !9
  %2219 = load i32, ptr %22, align 4, !tbaa !5
  %2220 = load i32, ptr %24, align 4, !tbaa !5
  %2221 = sub nsw i32 %2219, %2220
  %2222 = sext i32 %2221 to i64
  %2223 = getelementptr inbounds float, ptr %2218, i64 %2222
  %2224 = load float, ptr %2223, align 4, !tbaa !16
  %2225 = fsub float %2217, %2224
  br label %2320

2226:                                             ; preds = %2203
  %2227 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2228 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2227, i32 0, i32 8
  %2229 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2228, i64 0, i64 7
  %2230 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2229, i32 0, i32 1
  %2231 = load i32, ptr %2230, align 4, !tbaa !15
  %2232 = icmp eq i32 %2231, 2
  br i1 %2232, label %2233, label %2317

2233:                                             ; preds = %2226
  %2234 = load ptr, ptr %14, align 8, !tbaa !9
  %2235 = load i32, ptr %22, align 4, !tbaa !5
  %2236 = load i32, ptr %24, align 4, !tbaa !5
  %2237 = sub nsw i32 %2235, %2236
  %2238 = sext i32 %2237 to i64
  %2239 = getelementptr inbounds float, ptr %2234, i64 %2238
  %2240 = load float, ptr %2239, align 4, !tbaa !16
  %2241 = load ptr, ptr %16, align 8, !tbaa !9
  %2242 = load i32, ptr %22, align 4, !tbaa !5
  %2243 = load i32, ptr %24, align 4, !tbaa !5
  %2244 = sub nsw i32 %2242, %2243
  %2245 = sext i32 %2244 to i64
  %2246 = getelementptr inbounds float, ptr %2241, i64 %2245
  %2247 = load float, ptr %2246, align 4, !tbaa !16
  %2248 = load ptr, ptr %13, align 8, !tbaa !9
  %2249 = load i32, ptr %22, align 4, !tbaa !5
  %2250 = load i32, ptr %24, align 4, !tbaa !5
  %2251 = sub nsw i32 %2249, %2250
  %2252 = sext i32 %2251 to i64
  %2253 = getelementptr inbounds float, ptr %2248, i64 %2252
  %2254 = load float, ptr %2253, align 4, !tbaa !16
  %2255 = fcmp oge float %2247, %2254
  br i1 %2255, label %2256, label %2264

2256:                                             ; preds = %2233
  %2257 = load ptr, ptr %16, align 8, !tbaa !9
  %2258 = load i32, ptr %22, align 4, !tbaa !5
  %2259 = load i32, ptr %24, align 4, !tbaa !5
  %2260 = sub nsw i32 %2258, %2259
  %2261 = sext i32 %2260 to i64
  %2262 = getelementptr inbounds float, ptr %2257, i64 %2261
  %2263 = load float, ptr %2262, align 4, !tbaa !16
  br label %2272

2264:                                             ; preds = %2233
  %2265 = load ptr, ptr %13, align 8, !tbaa !9
  %2266 = load i32, ptr %22, align 4, !tbaa !5
  %2267 = load i32, ptr %24, align 4, !tbaa !5
  %2268 = sub nsw i32 %2266, %2267
  %2269 = sext i32 %2268 to i64
  %2270 = getelementptr inbounds float, ptr %2265, i64 %2269
  %2271 = load float, ptr %2270, align 4, !tbaa !16
  br label %2272

2272:                                             ; preds = %2264, %2256
  %2273 = phi float [ %2263, %2256 ], [ %2271, %2264 ]
  %2274 = fsub float %2240, %2273
  %2275 = load ptr, ptr %16, align 8, !tbaa !9
  %2276 = load i32, ptr %22, align 4, !tbaa !5
  %2277 = load i32, ptr %24, align 4, !tbaa !5
  %2278 = sub nsw i32 %2276, %2277
  %2279 = sext i32 %2278 to i64
  %2280 = getelementptr inbounds float, ptr %2275, i64 %2279
  %2281 = load float, ptr %2280, align 4, !tbaa !16
  %2282 = load ptr, ptr %13, align 8, !tbaa !9
  %2283 = load i32, ptr %22, align 4, !tbaa !5
  %2284 = load i32, ptr %24, align 4, !tbaa !5
  %2285 = sub nsw i32 %2283, %2284
  %2286 = sext i32 %2285 to i64
  %2287 = getelementptr inbounds float, ptr %2282, i64 %2286
  %2288 = load float, ptr %2287, align 4, !tbaa !16
  %2289 = fcmp oge float %2281, %2288
  br i1 %2289, label %2290, label %2298

2290:                                             ; preds = %2272
  %2291 = load ptr, ptr %13, align 8, !tbaa !9
  %2292 = load i32, ptr %22, align 4, !tbaa !5
  %2293 = load i32, ptr %24, align 4, !tbaa !5
  %2294 = sub nsw i32 %2292, %2293
  %2295 = sext i32 %2294 to i64
  %2296 = getelementptr inbounds float, ptr %2291, i64 %2295
  %2297 = load float, ptr %2296, align 4, !tbaa !16
  br label %2306

2298:                                             ; preds = %2272
  %2299 = load ptr, ptr %16, align 8, !tbaa !9
  %2300 = load i32, ptr %22, align 4, !tbaa !5
  %2301 = load i32, ptr %24, align 4, !tbaa !5
  %2302 = sub nsw i32 %2300, %2301
  %2303 = sext i32 %2302 to i64
  %2304 = getelementptr inbounds float, ptr %2299, i64 %2303
  %2305 = load float, ptr %2304, align 4, !tbaa !16
  br label %2306

2306:                                             ; preds = %2298, %2290
  %2307 = phi float [ %2297, %2290 ], [ %2305, %2298 ]
  %2308 = load ptr, ptr %15, align 8, !tbaa !9
  %2309 = load i32, ptr %22, align 4, !tbaa !5
  %2310 = load i32, ptr %24, align 4, !tbaa !5
  %2311 = sub nsw i32 %2309, %2310
  %2312 = sext i32 %2311 to i64
  %2313 = getelementptr inbounds float, ptr %2308, i64 %2312
  %2314 = load float, ptr %2313, align 4, !tbaa !16
  %2315 = fsub float %2307, %2314
  %2316 = fadd float %2274, %2315
  br label %2318

2317:                                             ; preds = %2226
  br label %2318

2318:                                             ; preds = %2317, %2306
  %2319 = phi float [ %2316, %2306 ], [ 0.000000e+00, %2317 ]
  br label %2320

2320:                                             ; preds = %2318, %2210
  %2321 = phi float [ %2225, %2210 ], [ %2319, %2318 ]
  %2322 = fpext float %2321 to double
  br label %2323

2323:                                             ; preds = %2320, %2185
  %2324 = phi double [ %2202, %2185 ], [ %2322, %2320 ]
  %2325 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2326 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2325, i32 0, i32 8
  %2327 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2326, i64 0, i64 7
  %2328 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2327, i32 0, i32 1
  %2329 = load i32, ptr %2328, align 4, !tbaa !15
  %2330 = icmp eq i32 %2329, 0
  br i1 %2330, label %2331, label %2349

2331:                                             ; preds = %2323
  %2332 = load ptr, ptr %16, align 8, !tbaa !9
  %2333 = load i32, ptr %25, align 4, !tbaa !5
  %2334 = load i32, ptr %24, align 4, !tbaa !5
  %2335 = sub nsw i32 %2333, %2334
  %2336 = sext i32 %2335 to i64
  %2337 = getelementptr inbounds float, ptr %2332, i64 %2336
  %2338 = load float, ptr %2337, align 4, !tbaa !16
  %2339 = load ptr, ptr %13, align 8, !tbaa !9
  %2340 = load i32, ptr %25, align 4, !tbaa !5
  %2341 = load i32, ptr %24, align 4, !tbaa !5
  %2342 = sub nsw i32 %2340, %2341
  %2343 = sext i32 %2342 to i64
  %2344 = getelementptr inbounds float, ptr %2339, i64 %2343
  %2345 = load float, ptr %2344, align 4, !tbaa !16
  %2346 = fsub float %2338, %2345
  %2347 = fpext float %2346 to double
  %2348 = call double @llvm.fabs.f64(double %2347)
  br label %2469

2349:                                             ; preds = %2323
  %2350 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2351 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2350, i32 0, i32 8
  %2352 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2351, i64 0, i64 7
  %2353 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2352, i32 0, i32 1
  %2354 = load i32, ptr %2353, align 4, !tbaa !15
  %2355 = icmp eq i32 %2354, 1
  br i1 %2355, label %2356, label %2372

2356:                                             ; preds = %2349
  %2357 = load ptr, ptr %14, align 8, !tbaa !9
  %2358 = load i32, ptr %25, align 4, !tbaa !5
  %2359 = load i32, ptr %24, align 4, !tbaa !5
  %2360 = sub nsw i32 %2358, %2359
  %2361 = sext i32 %2360 to i64
  %2362 = getelementptr inbounds float, ptr %2357, i64 %2361
  %2363 = load float, ptr %2362, align 4, !tbaa !16
  %2364 = load ptr, ptr %15, align 8, !tbaa !9
  %2365 = load i32, ptr %25, align 4, !tbaa !5
  %2366 = load i32, ptr %24, align 4, !tbaa !5
  %2367 = sub nsw i32 %2365, %2366
  %2368 = sext i32 %2367 to i64
  %2369 = getelementptr inbounds float, ptr %2364, i64 %2368
  %2370 = load float, ptr %2369, align 4, !tbaa !16
  %2371 = fsub float %2363, %2370
  br label %2466

2372:                                             ; preds = %2349
  %2373 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2374 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2373, i32 0, i32 8
  %2375 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2374, i64 0, i64 7
  %2376 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2375, i32 0, i32 1
  %2377 = load i32, ptr %2376, align 4, !tbaa !15
  %2378 = icmp eq i32 %2377, 2
  br i1 %2378, label %2379, label %2463

2379:                                             ; preds = %2372
  %2380 = load ptr, ptr %14, align 8, !tbaa !9
  %2381 = load i32, ptr %25, align 4, !tbaa !5
  %2382 = load i32, ptr %24, align 4, !tbaa !5
  %2383 = sub nsw i32 %2381, %2382
  %2384 = sext i32 %2383 to i64
  %2385 = getelementptr inbounds float, ptr %2380, i64 %2384
  %2386 = load float, ptr %2385, align 4, !tbaa !16
  %2387 = load ptr, ptr %16, align 8, !tbaa !9
  %2388 = load i32, ptr %25, align 4, !tbaa !5
  %2389 = load i32, ptr %24, align 4, !tbaa !5
  %2390 = sub nsw i32 %2388, %2389
  %2391 = sext i32 %2390 to i64
  %2392 = getelementptr inbounds float, ptr %2387, i64 %2391
  %2393 = load float, ptr %2392, align 4, !tbaa !16
  %2394 = load ptr, ptr %13, align 8, !tbaa !9
  %2395 = load i32, ptr %25, align 4, !tbaa !5
  %2396 = load i32, ptr %24, align 4, !tbaa !5
  %2397 = sub nsw i32 %2395, %2396
  %2398 = sext i32 %2397 to i64
  %2399 = getelementptr inbounds float, ptr %2394, i64 %2398
  %2400 = load float, ptr %2399, align 4, !tbaa !16
  %2401 = fcmp oge float %2393, %2400
  br i1 %2401, label %2402, label %2410

2402:                                             ; preds = %2379
  %2403 = load ptr, ptr %16, align 8, !tbaa !9
  %2404 = load i32, ptr %25, align 4, !tbaa !5
  %2405 = load i32, ptr %24, align 4, !tbaa !5
  %2406 = sub nsw i32 %2404, %2405
  %2407 = sext i32 %2406 to i64
  %2408 = getelementptr inbounds float, ptr %2403, i64 %2407
  %2409 = load float, ptr %2408, align 4, !tbaa !16
  br label %2418

2410:                                             ; preds = %2379
  %2411 = load ptr, ptr %13, align 8, !tbaa !9
  %2412 = load i32, ptr %25, align 4, !tbaa !5
  %2413 = load i32, ptr %24, align 4, !tbaa !5
  %2414 = sub nsw i32 %2412, %2413
  %2415 = sext i32 %2414 to i64
  %2416 = getelementptr inbounds float, ptr %2411, i64 %2415
  %2417 = load float, ptr %2416, align 4, !tbaa !16
  br label %2418

2418:                                             ; preds = %2410, %2402
  %2419 = phi float [ %2409, %2402 ], [ %2417, %2410 ]
  %2420 = fsub float %2386, %2419
  %2421 = load ptr, ptr %16, align 8, !tbaa !9
  %2422 = load i32, ptr %25, align 4, !tbaa !5
  %2423 = load i32, ptr %24, align 4, !tbaa !5
  %2424 = sub nsw i32 %2422, %2423
  %2425 = sext i32 %2424 to i64
  %2426 = getelementptr inbounds float, ptr %2421, i64 %2425
  %2427 = load float, ptr %2426, align 4, !tbaa !16
  %2428 = load ptr, ptr %13, align 8, !tbaa !9
  %2429 = load i32, ptr %25, align 4, !tbaa !5
  %2430 = load i32, ptr %24, align 4, !tbaa !5
  %2431 = sub nsw i32 %2429, %2430
  %2432 = sext i32 %2431 to i64
  %2433 = getelementptr inbounds float, ptr %2428, i64 %2432
  %2434 = load float, ptr %2433, align 4, !tbaa !16
  %2435 = fcmp oge float %2427, %2434
  br i1 %2435, label %2436, label %2444

2436:                                             ; preds = %2418
  %2437 = load ptr, ptr %13, align 8, !tbaa !9
  %2438 = load i32, ptr %25, align 4, !tbaa !5
  %2439 = load i32, ptr %24, align 4, !tbaa !5
  %2440 = sub nsw i32 %2438, %2439
  %2441 = sext i32 %2440 to i64
  %2442 = getelementptr inbounds float, ptr %2437, i64 %2441
  %2443 = load float, ptr %2442, align 4, !tbaa !16
  br label %2452

2444:                                             ; preds = %2418
  %2445 = load ptr, ptr %16, align 8, !tbaa !9
  %2446 = load i32, ptr %25, align 4, !tbaa !5
  %2447 = load i32, ptr %24, align 4, !tbaa !5
  %2448 = sub nsw i32 %2446, %2447
  %2449 = sext i32 %2448 to i64
  %2450 = getelementptr inbounds float, ptr %2445, i64 %2449
  %2451 = load float, ptr %2450, align 4, !tbaa !16
  br label %2452

2452:                                             ; preds = %2444, %2436
  %2453 = phi float [ %2443, %2436 ], [ %2451, %2444 ]
  %2454 = load ptr, ptr %15, align 8, !tbaa !9
  %2455 = load i32, ptr %25, align 4, !tbaa !5
  %2456 = load i32, ptr %24, align 4, !tbaa !5
  %2457 = sub nsw i32 %2455, %2456
  %2458 = sext i32 %2457 to i64
  %2459 = getelementptr inbounds float, ptr %2454, i64 %2458
  %2460 = load float, ptr %2459, align 4, !tbaa !16
  %2461 = fsub float %2453, %2460
  %2462 = fadd float %2420, %2461
  br label %2464

2463:                                             ; preds = %2372
  br label %2464

2464:                                             ; preds = %2463, %2452
  %2465 = phi float [ %2462, %2452 ], [ 0.000000e+00, %2463 ]
  br label %2466

2466:                                             ; preds = %2464, %2356
  %2467 = phi float [ %2371, %2356 ], [ %2465, %2464 ]
  %2468 = fpext float %2467 to double
  br label %2469

2469:                                             ; preds = %2466, %2331
  %2470 = phi double [ %2348, %2331 ], [ %2468, %2466 ]
  %2471 = fsub double %2324, %2470
  %2472 = load i32, ptr %24, align 4, !tbaa !5
  %2473 = sext i32 %2472 to i64
  %2474 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 %2473
  %2475 = load double, ptr %2474, align 8, !tbaa !11
  %2476 = fadd double %2475, %2471
  store double %2476, ptr %2474, align 8, !tbaa !11
  br label %2477

2477:                                             ; preds = %2469
  %2478 = load i32, ptr %24, align 4, !tbaa !5
  %2479 = add nsw i32 %2478, -1
  store i32 %2479, ptr %24, align 4, !tbaa !5
  br label %1877, !llvm.loop !22

2480:                                             ; preds = %1877
  %2481 = load i32, ptr %22, align 4, !tbaa !5
  %2482 = add nsw i32 %2481, 1
  store i32 %2482, ptr %22, align 4, !tbaa !5
  %2483 = load i32, ptr %25, align 4, !tbaa !5
  %2484 = add nsw i32 %2483, 1
  store i32 %2484, ptr %25, align 4, !tbaa !5
  %2485 = load i32, ptr %26, align 4, !tbaa !5
  %2486 = add nsw i32 %2485, 1
  store i32 %2486, ptr %26, align 4, !tbaa !5
  br label %2487

2487:                                             ; preds = %2480
  %2488 = load i32, ptr %22, align 4, !tbaa !5
  %2489 = load i32, ptr %12, align 4, !tbaa !5
  %2490 = icmp sle i32 %2488, %2489
  br i1 %2490, label %621, label %2491, !llvm.loop !23

2491:                                             ; preds = %2487
  %2492 = load i32, ptr %23, align 4, !tbaa !5
  %2493 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %2492, ptr %2493, align 4, !tbaa !5
  %2494 = load i32, ptr %11, align 4, !tbaa !5
  %2495 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %2494, ptr %2495, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2496

2496:                                             ; preds = %2491, %68, %56, %52, %39, %31
  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 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #3
  %2497 = load i32, ptr %10, align 4
  ret i32 %2497
}

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 = !{!14, !12, i64 16}
!22 = distinct !{!22, !19}
!23 = distinct !{!23, !19}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@TA_Globals = external local_unnamed_addr global ptr, align 8

; Function Attrs: nounwind uwtable
declare dso_local i32 @TA_CDLKICKING_Lookback() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local range(i32 0, 14) i32 @TA_S_CDLKICKING(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 %595, label %11

11:                                               ; preds = %9
  %12 = icmp slt i32 %1, %0
  br i1 %12, label %595, 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 %595, label %21

21:                                               ; preds = %13
  %22 = tail call i32 @TA_CDLKICKING_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 %595

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

.lr.ph:                                           ; preds = %25
  %34 = getelementptr inbounds i8, ptr %26, i64 380
  %35 = load i32, ptr %34, align 4, !tbaa !14
  switch i32 %35, label %.preheader737 [
    i32 0, label %.thread.us.preheader
    i32 1, label %.thread707.us.preheader
    i32 2, label %.thread709.us.preheader
  ]

.thread709.us.preheader:                          ; preds = %.lr.ph
  %36 = sext i32 %29 to i64
  %37 = zext nneg i32 %spec.select to i64
  br label %.thread709.us

.thread707.us.preheader:                          ; preds = %.lr.ph
  %38 = sext i32 %29 to i64
  %39 = zext nneg i32 %spec.select to i64
  br label %.thread707.us

.thread.us.preheader:                             ; preds = %.lr.ph
  %40 = sext i32 %29 to i64
  %41 = zext nneg i32 %spec.select to i64
  br label %.thread.us

.thread.us:                                       ; preds = %.thread.us.preheader, %.thread.us
  %indvars.iv783 = phi i64 [ %40, %.thread.us.preheader ], [ %indvars.iv.next784, %.thread.us ]
  %42 = phi <2 x double> [ zeroinitializer, %.thread.us.preheader ], [ %51, %.thread.us ]
  %43 = add nsw i64 %indvars.iv783, -1
  %44 = getelementptr inbounds float, ptr %5, i64 %43
  %45 = getelementptr inbounds float, ptr %2, i64 %43
  %46 = load <2 x float>, ptr %44, align 4, !tbaa !15
  %47 = load <2 x float>, ptr %45, align 4, !tbaa !15
  %48 = fsub <2 x float> %46, %47
  %49 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %48)
  %50 = fpext <2 x float> %49 to <2 x double>
  %51 = fadd <2 x double> %42, %50
  %indvars.iv.next784 = add nsw i64 %indvars.iv783, 1
  %52 = icmp slt i64 %indvars.iv.next784, %41
  br i1 %52, label %.thread.us, label %.preheader737, !llvm.loop !17

.thread707.us:                                    ; preds = %.thread707.us.preheader, %.thread707.us
  %indvars.iv780 = phi i64 [ %38, %.thread707.us.preheader ], [ %indvars.iv.next781, %.thread707.us ]
  %53 = phi <2 x double> [ zeroinitializer, %.thread707.us.preheader ], [ %61, %.thread707.us ]
  %54 = add nsw i64 %indvars.iv780, -1
  %55 = getelementptr inbounds float, ptr %3, i64 %54
  %56 = getelementptr inbounds float, ptr %4, i64 %54
  %57 = load <2 x float>, ptr %55, align 4, !tbaa !15
  %58 = load <2 x float>, ptr %56, align 4, !tbaa !15
  %59 = fsub <2 x float> %57, %58
  %60 = fpext <2 x float> %59 to <2 x double>
  %61 = fadd <2 x double> %53, %60
  %indvars.iv.next781 = add nsw i64 %indvars.iv780, 1
  %62 = icmp slt i64 %indvars.iv.next781, %39
  br i1 %62, label %.thread707.us, label %.preheader737, !llvm.loop !17

.thread709.us:                                    ; preds = %.thread709.us.preheader, %.thread709.us
  %indvars.iv = phi i64 [ %36, %.thread709.us.preheader ], [ %indvars.iv.next, %.thread709.us ]
  %63 = phi <2 x double> [ zeroinitializer, %.thread709.us.preheader ], [ %80, %.thread709.us ]
  %64 = add nsw i64 %indvars.iv, -1
  %65 = getelementptr inbounds float, ptr %3, i64 %64
  %66 = getelementptr inbounds float, ptr %5, i64 %64
  %67 = getelementptr inbounds float, ptr %2, i64 %64
  %68 = getelementptr inbounds float, ptr %4, i64 %64
  %69 = load <2 x float>, ptr %65, align 4, !tbaa !15
  %70 = load <2 x float>, ptr %66, align 4, !tbaa !15
  %71 = load <2 x float>, ptr %67, align 4, !tbaa !15
  %72 = fcmp ult <2 x float> %70, %71
  %73 = select <2 x i1> %72, <2 x float> %71, <2 x float> %70
  %74 = fsub <2 x float> %69, %73
  %75 = select <2 x i1> %72, <2 x float> %70, <2 x float> %71
  %76 = load <2 x float>, ptr %68, align 4, !tbaa !15
  %77 = fsub <2 x float> %75, %76
  %78 = fadd <2 x float> %74, %77
  %79 = fpext <2 x float> %78 to <2 x double>
  %80 = fadd <2 x double> %63, %79
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %81 = icmp slt i64 %indvars.iv.next, %37
  br i1 %81, label %.thread709.us, label %.preheader737, !llvm.loop !17

.preheader737:                                    ; preds = %.thread709.us, %.thread707.us, %.thread.us, %.lr.ph, %25
  %82 = phi <2 x double> [ zeroinitializer, %25 ], [ zeroinitializer, %.lr.ph ], [ %51, %.thread.us ], [ %61, %.thread707.us ], [ %80, %.thread709.us ]
  %83 = icmp sgt i32 %31, 0
  br i1 %83, label %.lr.ph762, label %.preheader737..preheader_crit_edge

.preheader737..preheader_crit_edge:               ; preds = %.preheader737
  %.pre813 = sext i32 %32 to i64
  br label %.preheader

.lr.ph762:                                        ; preds = %.preheader737
  %84 = getelementptr inbounds i8, ptr %26, i64 212
  %85 = load i32, ptr %84, align 4, !tbaa !14
  %86 = sext i32 %32 to i64
  %87 = zext nneg i32 %spec.select to i64
  br label %96

.preheader:                                       ; preds = %153, %.preheader737..preheader_crit_edge
  %.pre-phi = phi i64 [ %.pre813, %.preheader737..preheader_crit_edge ], [ %86, %153 ]
  %.lcssa760 = phi double [ 0.000000e+00, %.preheader737..preheader_crit_edge ], [ %156, %153 ]
  %.lcssa758 = phi double [ 0.000000e+00, %.preheader737..preheader_crit_edge ], [ %154, %153 ]
  %88 = getelementptr inbounds i8, ptr %26, i64 212
  %89 = getelementptr inbounds i8, ptr %26, i64 380
  %90 = getelementptr inbounds i8, ptr %26, i64 224
  %91 = getelementptr inbounds i8, ptr %26, i64 392
  %92 = sext i32 %22 to i64
  %93 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %92, i64 %93)
  %94 = sext i32 %1 to i64
  %95 = sext i32 %29 to i64
  br label %158

96:                                               ; preds = %.lr.ph762, %153
  %indvars.iv786 = phi i64 [ %86, %.lr.ph762 ], [ %indvars.iv.next787, %153 ]
  %97 = phi double [ 0.000000e+00, %.lr.ph762 ], [ %154, %153 ]
  %98 = phi double [ 0.000000e+00, %.lr.ph762 ], [ %156, %153 ]
  switch i32 %85, label %153 [
    i32 0, label %.thread711
    i32 1, label %.thread713
    i32 2, label %.thread715
  ]

.thread711:                                       ; preds = %96
  %99 = add nsw i64 %indvars.iv786, -1
  %100 = getelementptr inbounds float, ptr %5, i64 %99
  %101 = load float, ptr %100, align 4, !tbaa !15
  %102 = getelementptr inbounds float, ptr %2, i64 %99
  %103 = load float, ptr %102, align 4, !tbaa !15
  %104 = fsub float %101, %103
  %105 = tail call float @llvm.fabs.f32(float %104)
  %106 = fpext float %105 to double
  %107 = getelementptr inbounds float, ptr %5, i64 %indvars.iv786
  %108 = load float, ptr %107, align 4, !tbaa !15
  %109 = getelementptr inbounds float, ptr %2, i64 %indvars.iv786
  %110 = load float, ptr %109, align 4, !tbaa !15
  %111 = fsub float %108, %110
  %112 = tail call float @llvm.fabs.f32(float %111)
  br label %153

.thread713:                                       ; preds = %96
  %113 = add nsw i64 %indvars.iv786, -1
  %114 = getelementptr inbounds float, ptr %3, i64 %113
  %115 = load float, ptr %114, align 4, !tbaa !15
  %116 = getelementptr inbounds float, ptr %4, i64 %113
  %117 = load float, ptr %116, align 4, !tbaa !15
  %118 = fsub float %115, %117
  %119 = fpext float %118 to double
  %120 = getelementptr inbounds float, ptr %3, i64 %indvars.iv786
  %121 = load float, ptr %120, align 4, !tbaa !15
  %122 = getelementptr inbounds float, ptr %4, i64 %indvars.iv786
  %123 = load float, ptr %122, align 4, !tbaa !15
  %124 = fsub float %121, %123
  br label %153

.thread715:                                       ; preds = %96
  %125 = add nsw i64 %indvars.iv786, -1
  %126 = getelementptr inbounds float, ptr %3, i64 %125
  %127 = load float, ptr %126, align 4, !tbaa !15
  %128 = getelementptr inbounds float, ptr %5, i64 %125
  %129 = load float, ptr %128, align 4, !tbaa !15
  %130 = getelementptr inbounds float, ptr %2, i64 %125
  %131 = load float, ptr %130, align 4, !tbaa !15
  %132 = fcmp ult float %129, %131
  %.689 = select i1 %132, float %131, float %129
  %133 = fsub float %127, %.689
  %134 = select i1 %132, float %129, float %131
  %135 = getelementptr inbounds float, ptr %4, i64 %125
  %136 = load float, ptr %135, align 4, !tbaa !15
  %137 = fsub float %134, %136
  %138 = fadd float %133, %137
  %139 = fpext float %138 to double
  %140 = getelementptr inbounds float, ptr %3, i64 %indvars.iv786
  %141 = load float, ptr %140, align 4, !tbaa !15
  %142 = getelementptr inbounds float, ptr %5, i64 %indvars.iv786
  %143 = load float, ptr %142, align 4, !tbaa !15
  %144 = getelementptr inbounds float, ptr %2, i64 %indvars.iv786
  %145 = load float, ptr %144, align 4, !tbaa !15
  %146 = fcmp ult float %143, %145
  %.690 = select i1 %146, float %145, float %143
  %147 = fsub float %141, %.690
  %148 = select i1 %146, float %143, float %145
  %149 = getelementptr inbounds float, ptr %4, i64 %indvars.iv786
  %150 = load float, ptr %149, align 4, !tbaa !15
  %151 = fsub float %148, %150
  %152 = fadd float %147, %151
  br label %153

153:                                              ; preds = %96, %.thread713, %.thread715, %.thread711
  %.pn = phi double [ %106, %.thread711 ], [ %119, %.thread713 ], [ %139, %.thread715 ], [ 0.000000e+00, %96 ]
  %.in684 = phi float [ %112, %.thread711 ], [ %124, %.thread713 ], [ %152, %.thread715 ], [ 0.000000e+00, %96 ]
  %154 = fadd double %97, %.pn
  %155 = fpext float %.in684 to double
  %156 = fadd double %98, %155
  %indvars.iv.next787 = add nsw i64 %indvars.iv786, 1
  %157 = icmp slt i64 %indvars.iv.next787, %87
  br i1 %157, label %96, label %.preheader, !llvm.loop !19

158:                                              ; preds = %.preheader, %585
  %.sroa.8.0 = phi double [ %.lcssa758, %.preheader ], [ %430, %585 ]
  %.sroa.0.0 = phi double [ %.lcssa760, %.preheader ], [ %541, %585 ]
  %indvars.iv798 = phi i64 [ %.pre-phi, %.preheader ], [ %indvars.iv.next799, %585 ]
  %indvars.iv796 = phi i64 [ %95, %.preheader ], [ %indvars.iv.next797, %585 ]
  %indvars.iv794 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next795, %585 ]
  %indvars.iv792 = phi i64 [ %smax, %.preheader ], [ %indvars.iv.next793, %585 ]
  %159 = phi <2 x double> [ %82, %.preheader ], [ %592, %585 ]
  %160 = add nsw i64 %indvars.iv792, -1
  %161 = getelementptr inbounds float, ptr %5, i64 %160
  %162 = load float, ptr %161, align 4, !tbaa !15
  %163 = getelementptr inbounds float, ptr %2, i64 %160
  %164 = load float, ptr %163, align 4, !tbaa !15
  %165 = fcmp oge float %162, %164
  %166 = getelementptr inbounds float, ptr %5, i64 %indvars.iv792
  %167 = load float, ptr %166, align 4, !tbaa !15
  %168 = getelementptr inbounds float, ptr %2, i64 %indvars.iv792
  %169 = load float, ptr %168, align 4, !tbaa !15
  %170 = fcmp oge float %167, %169
  %171 = xor i1 %165, %170
  br i1 %171, label %172, label %.thread717

172:                                              ; preds = %158
  %173 = fsub float %162, %164
  %174 = tail call float @llvm.fabs.f32(float %173)
  %175 = fpext float %174 to double
  %176 = load double, ptr %90, align 8, !tbaa !20
  %177 = load i32, ptr %30, align 8, !tbaa !11
  %.not673 = icmp eq i32 %177, 0
  br i1 %.not673, label %181, label %178

178:                                              ; preds = %172
  %179 = sitofp i32 %177 to double
  %180 = fdiv double %.sroa.8.0, %179
  %.pre = load i32, ptr %88, align 4, !tbaa !14
  br label %201

181:                                              ; preds = %172
  %182 = load i32, ptr %88, align 4, !tbaa !14
  switch i32 %182, label %198 [
    i32 0, label %.thread
    i32 1, label %183
    i32 2, label %189
  ]

183:                                              ; preds = %181
  %184 = getelementptr inbounds float, ptr %3, i64 %160
  %185 = load float, ptr %184, align 4, !tbaa !15
  %186 = getelementptr inbounds float, ptr %4, i64 %160
  %187 = load float, ptr %186, align 4, !tbaa !15
  %188 = fsub float %185, %187
  br label %198

189:                                              ; preds = %181
  %190 = getelementptr inbounds float, ptr %3, i64 %160
  %191 = load float, ptr %190, align 4, !tbaa !15
  %.691 = select i1 %165, float %162, float %164
  %192 = fsub float %191, %.691
  %193 = select i1 %165, float %164, float %162
  %194 = getelementptr inbounds float, ptr %4, i64 %160
  %195 = load float, ptr %194, align 4, !tbaa !15
  %196 = fsub float %193, %195
  %197 = fadd float %192, %196
  br label %198

198:                                              ; preds = %181, %189, %183
  %199 = phi float [ %188, %183 ], [ %197, %189 ], [ 0.000000e+00, %181 ]
  %200 = fpext float %199 to double
  br label %201

201:                                              ; preds = %198, %178
  %202 = phi i32 [ %.pre, %178 ], [ %182, %198 ]
  %203 = phi double [ %180, %178 ], [ %200, %198 ]
  %.fr = freeze i32 %202
  %204 = icmp eq i32 %.fr, 2
  br i1 %204, label %205, label %.thread

205:                                              ; preds = %201
  br label %.thread

.thread:                                          ; preds = %181, %201, %205
  %.pn834 = phi double [ %203, %205 ], [ %203, %201 ], [ %175, %181 ]
  %206 = phi i32 [ %.fr, %205 ], [ %.fr, %201 ], [ %182, %181 ]
  %207 = phi double [ 2.000000e+00, %205 ], [ 1.000000e+00, %201 ], [ 1.000000e+00, %181 ]
  %208 = fmul double %176, %.pn834
  %209 = fdiv double %208, %207
  %210 = fcmp olt double %209, %175
  br i1 %210, label %211, label %.thread717

211:                                              ; preds = %.thread
  %212 = getelementptr inbounds float, ptr %3, i64 %160
  %213 = load float, ptr %212, align 4, !tbaa !15
  %214 = fcmp ult float %162, %164
  %.692 = select i1 %214, float %164, float %162
  %215 = fsub float %213, %.692
  %216 = fpext float %215 to double
  %217 = load double, ptr %91, align 8, !tbaa !20
  %218 = load i32, ptr %27, align 8, !tbaa !11
  %.not674 = icmp eq i32 %218, 0
  br i1 %.not674, label %223, label %219

219:                                              ; preds = %211
  %220 = sitofp i32 %218 to double
  %221 = extractelement <2 x double> %159, i64 0
  %222 = fdiv double %221, %220
  %.pre812 = load i32, ptr %89, align 4, !tbaa !14
  br label %238

223:                                              ; preds = %211
  %224 = load i32, ptr %89, align 4, !tbaa !14
  switch i32 %224, label %235 [
    i32 0, label %.thread818
    i32 1, label %225
    i32 2, label %229
  ]

225:                                              ; preds = %223
  %226 = getelementptr inbounds float, ptr %4, i64 %160
  %227 = load float, ptr %226, align 4, !tbaa !15
  %228 = fsub float %213, %227
  br label %235

229:                                              ; preds = %223
  %230 = select i1 %214, float %162, float %164
  %231 = getelementptr inbounds float, ptr %4, i64 %160
  %232 = load float, ptr %231, align 4, !tbaa !15
  %233 = fsub float %230, %232
  %234 = fadd float %215, %233
  br label %235

235:                                              ; preds = %223, %229, %225
  %236 = phi float [ %228, %225 ], [ %234, %229 ], [ 0.000000e+00, %223 ]
  %237 = fpext float %236 to double
  br label %238

238:                                              ; preds = %235, %219
  %239 = phi i32 [ %.pre812, %219 ], [ %224, %235 ]
  %240 = phi double [ %222, %219 ], [ %237, %235 ]
  %.fr835 = freeze i32 %239
  %241 = fmul double %217, %240
  %242 = icmp eq i32 %.fr835, 2
  %243 = select i1 %242, double 2.000000e+00, double 1.000000e+00
  %244 = fdiv double %241, %243
  %245 = fcmp ogt double %244, %216
  br i1 %245, label %251, label %.thread717

.thread818:                                       ; preds = %223
  %246 = fmul double %217, %175
  %247 = fcmp ogt double %246, %216
  br i1 %247, label %.thread821, label %.thread717

.thread821:                                       ; preds = %.thread818
  %.694820 = select i1 %214, float %162, float %164
  %248 = getelementptr inbounds float, ptr %4, i64 %160
  %249 = load float, ptr %248, align 4, !tbaa !15
  %250 = fsub float %.694820, %249
  br label %267

251:                                              ; preds = %238
  %.694 = select i1 %214, float %162, float %164
  %252 = getelementptr inbounds float, ptr %4, i64 %160
  %253 = load float, ptr %252, align 4, !tbaa !15
  %254 = fsub float %.694, %253
  br i1 %.not674, label %259, label %255

255:                                              ; preds = %251
  %256 = sitofp i32 %218 to double
  %257 = extractelement <2 x double> %159, i64 0
  %258 = fdiv double %257, %256
  br label %267

259:                                              ; preds = %251
  switch i32 %.fr835, label %264 [
    i32 0, label %267
    i32 1, label %260
    i32 2, label %262
  ]

260:                                              ; preds = %259
  %261 = fsub float %213, %253
  br label %264

262:                                              ; preds = %259
  %263 = fadd float %215, %254
  br label %264

264:                                              ; preds = %259, %262, %260
  %265 = phi float [ %261, %260 ], [ %263, %262 ], [ 0.000000e+00, %259 ]
  %266 = fpext float %265 to double
  br label %267

267:                                              ; preds = %.thread821, %259, %264, %255
  %.in = phi float [ %254, %255 ], [ %254, %264 ], [ %254, %259 ], [ %250, %.thread821 ]
  %268 = phi float [ %253, %255 ], [ %253, %264 ], [ %253, %259 ], [ %249, %.thread821 ]
  %269 = phi i32 [ %.fr835, %255 ], [ %.fr835, %264 ], [ %.fr835, %259 ], [ 0, %.thread821 ]
  %270 = phi double [ %243, %255 ], [ %243, %264 ], [ %243, %259 ], [ 1.000000e+00, %.thread821 ]
  %271 = phi double [ %258, %255 ], [ %266, %264 ], [ %175, %259 ], [ %175, %.thread821 ]
  %272 = fpext float %.in to double
  %273 = fmul double %217, %271
  %274 = fdiv double %273, %270
  %275 = fcmp ogt double %274, %272
  br i1 %275, label %276, label %.thread717

276:                                              ; preds = %267
  %277 = fsub float %167, %169
  %278 = tail call float @llvm.fabs.f32(float %277)
  %279 = fpext float %278 to double
  br i1 %.not673, label %283, label %280

280:                                              ; preds = %276
  %281 = sitofp i32 %177 to double
  %282 = fdiv double %.sroa.0.0, %281
  br label %303

283:                                              ; preds = %276
  switch i32 %206, label %300 [
    i32 0, label %303
    i32 1, label %284
    i32 2, label %290
  ]

284:                                              ; preds = %283
  %285 = getelementptr inbounds float, ptr %3, i64 %indvars.iv792
  %286 = load float, ptr %285, align 4, !tbaa !15
  %287 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %288 = load float, ptr %287, align 4, !tbaa !15
  %289 = fsub float %286, %288
  br label %300

290:                                              ; preds = %283
  %291 = getelementptr inbounds float, ptr %3, i64 %indvars.iv792
  %292 = load float, ptr %291, align 4, !tbaa !15
  %293 = fcmp ult float %167, %169
  %.696 = select i1 %293, float %169, float %167
  %294 = fsub float %292, %.696
  %295 = select i1 %293, float %167, float %169
  %296 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %297 = load float, ptr %296, align 4, !tbaa !15
  %298 = fsub float %295, %297
  %299 = fadd float %294, %298
  br label %300

300:                                              ; preds = %283, %290, %284
  %301 = phi float [ %289, %284 ], [ %299, %290 ], [ 0.000000e+00, %283 ]
  %302 = fpext float %301 to double
  br label %303

303:                                              ; preds = %283, %300, %280
  %304 = phi double [ %282, %280 ], [ %302, %300 ], [ %279, %283 ]
  %305 = fmul double %176, %304
  %306 = fdiv double %305, %207
  %307 = fcmp olt double %306, %279
  br i1 %307, label %308, label %.thread717

308:                                              ; preds = %303
  %309 = getelementptr inbounds float, ptr %3, i64 %indvars.iv792
  %310 = load float, ptr %309, align 4, !tbaa !15
  %311 = fcmp ult float %167, %169
  %.697 = select i1 %311, float %169, float %167
  %312 = fsub float %310, %.697
  %313 = fpext float %312 to double
  br i1 %.not674, label %318, label %314

314:                                              ; preds = %308
  %315 = sitofp i32 %218 to double
  %316 = extractelement <2 x double> %159, i64 1
  %317 = fdiv double %316, %315
  br label %332

318:                                              ; preds = %308
  switch i32 %269, label %329 [
    i32 0, label %332
    i32 1, label %319
    i32 2, label %323
  ]

319:                                              ; preds = %318
  %320 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %321 = load float, ptr %320, align 4, !tbaa !15
  %322 = fsub float %310, %321
  br label %329

323:                                              ; preds = %318
  %324 = select i1 %311, float %167, float %169
  %325 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %326 = load float, ptr %325, align 4, !tbaa !15
  %327 = fsub float %324, %326
  %328 = fadd float %312, %327
  br label %329

329:                                              ; preds = %318, %323, %319
  %330 = phi float [ %322, %319 ], [ %328, %323 ], [ 0.000000e+00, %318 ]
  %331 = fpext float %330 to double
  br label %332

332:                                              ; preds = %318, %329, %314
  %333 = phi double [ %317, %314 ], [ %331, %329 ], [ %279, %318 ]
  %334 = fmul double %217, %333
  %335 = fdiv double %334, %270
  %336 = fcmp ogt double %335, %313
  br i1 %336, label %337, label %.thread717

337:                                              ; preds = %332
  %.699 = select i1 %311, float %167, float %169
  %338 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %339 = load float, ptr %338, align 4, !tbaa !15
  %340 = fsub float %.699, %339
  %341 = fpext float %340 to double
  br i1 %.not674, label %346, label %342

342:                                              ; preds = %337
  %343 = sitofp i32 %218 to double
  %344 = extractelement <2 x double> %159, i64 1
  %345 = fdiv double %344, %343
  br label %354

346:                                              ; preds = %337
  switch i32 %269, label %351 [
    i32 0, label %354
    i32 1, label %347
    i32 2, label %349
  ]

347:                                              ; preds = %346
  %348 = fsub float %310, %339
  br label %351

349:                                              ; preds = %346
  %350 = fadd float %312, %340
  br label %351

351:                                              ; preds = %346, %349, %347
  %352 = phi float [ %348, %347 ], [ %350, %349 ], [ 0.000000e+00, %346 ]
  %353 = fpext float %352 to double
  br label %354

354:                                              ; preds = %346, %351, %342
  %355 = phi double [ %345, %342 ], [ %353, %351 ], [ %279, %346 ]
  %356 = fmul double %217, %355
  %357 = fdiv double %356, %270
  %358 = fcmp ogt double %357, %341
  br i1 %358, label %359, label %.thread717

359:                                              ; preds = %354
  br i1 %214, label %360, label %362

360:                                              ; preds = %359
  %361 = fcmp ogt float %339, %213
  br i1 %361, label %364, label %.thread717

362:                                              ; preds = %359
  %363 = fcmp olt float %310, %268
  br i1 %363, label %364, label %.thread717

364:                                              ; preds = %362, %360
  %365 = select i1 %170, i32 100, i32 -100
  br label %.thread717

.thread717:                                       ; preds = %158, %.thread, %238, %267, %303, %332, %354, %362, %360, %.thread818, %364
  %.sink = phi i32 [ %365, %364 ], [ 0, %.thread818 ], [ 0, %360 ], [ 0, %362 ], [ 0, %354 ], [ 0, %332 ], [ 0, %303 ], [ 0, %267 ], [ 0, %238 ], [ 0, %.thread ], [ 0, %158 ]
  %366 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv794
  store i32 %.sink, ptr %366, align 4, !tbaa !5
  %367 = load i32, ptr %88, align 4, !tbaa !14
  %368 = load i32, ptr %89, align 4, !tbaa !14
  switch i32 %367, label %426 [
    i32 0, label %.thread718
    i32 1, label %.thread720
    i32 2, label %.thread722
  ]

.thread718:                                       ; preds = %.thread717
  %369 = add nsw i64 %indvars.iv792, -1
  %370 = getelementptr inbounds float, ptr %5, i64 %369
  %371 = load float, ptr %370, align 4, !tbaa !15
  %372 = getelementptr inbounds float, ptr %2, i64 %369
  %373 = load float, ptr %372, align 4, !tbaa !15
  %374 = fsub float %371, %373
  %375 = tail call float @llvm.fabs.f32(float %374)
  %376 = fpext float %375 to double
  %377 = add nsw i64 %indvars.iv798, -1
  %378 = getelementptr inbounds float, ptr %5, i64 %377
  %379 = load float, ptr %378, align 4, !tbaa !15
  %380 = getelementptr inbounds float, ptr %2, i64 %377
  %381 = load float, ptr %380, align 4, !tbaa !15
  %382 = fsub float %379, %381
  %383 = tail call float @llvm.fabs.f32(float %382)
  br label %426

.thread720:                                       ; preds = %.thread717
  %384 = add nsw i64 %indvars.iv792, -1
  %385 = getelementptr inbounds float, ptr %3, i64 %384
  %386 = load float, ptr %385, align 4, !tbaa !15
  %387 = getelementptr inbounds float, ptr %4, i64 %384
  %388 = load float, ptr %387, align 4, !tbaa !15
  %389 = fsub float %386, %388
  %390 = fpext float %389 to double
  %391 = add nsw i64 %indvars.iv798, -1
  %392 = getelementptr inbounds float, ptr %3, i64 %391
  %393 = load float, ptr %392, align 4, !tbaa !15
  %394 = getelementptr inbounds float, ptr %4, i64 %391
  %395 = load float, ptr %394, align 4, !tbaa !15
  %396 = fsub float %393, %395
  br label %426

.thread722:                                       ; preds = %.thread717
  %397 = add nsw i64 %indvars.iv792, -1
  %398 = getelementptr inbounds float, ptr %3, i64 %397
  %399 = load float, ptr %398, align 4, !tbaa !15
  %400 = getelementptr inbounds float, ptr %5, i64 %397
  %401 = load float, ptr %400, align 4, !tbaa !15
  %402 = getelementptr inbounds float, ptr %2, i64 %397
  %403 = load float, ptr %402, align 4, !tbaa !15
  %404 = fcmp ult float %401, %403
  %.701 = select i1 %404, float %403, float %401
  %405 = fsub float %399, %.701
  %406 = select i1 %404, float %401, float %403
  %407 = getelementptr inbounds float, ptr %4, i64 %397
  %408 = load float, ptr %407, align 4, !tbaa !15
  %409 = fsub float %406, %408
  %410 = fadd float %405, %409
  %411 = fpext float %410 to double
  %412 = add nsw i64 %indvars.iv798, -1
  %413 = getelementptr inbounds float, ptr %3, i64 %412
  %414 = load float, ptr %413, align 4, !tbaa !15
  %415 = getelementptr inbounds float, ptr %5, i64 %412
  %416 = load float, ptr %415, align 4, !tbaa !15
  %417 = getelementptr inbounds float, ptr %2, i64 %412
  %418 = load float, ptr %417, align 4, !tbaa !15
  %419 = fcmp ult float %416, %418
  %.702 = select i1 %419, float %418, float %416
  %420 = fsub float %414, %.702
  %421 = select i1 %419, float %416, float %418
  %422 = getelementptr inbounds float, ptr %4, i64 %412
  %423 = load float, ptr %422, align 4, !tbaa !15
  %424 = fsub float %421, %423
  %425 = fadd float %420, %424
  br label %426

426:                                              ; preds = %.thread717, %.thread720, %.thread722, %.thread718
  %427 = phi double [ %376, %.thread718 ], [ %390, %.thread720 ], [ %411, %.thread722 ], [ 0.000000e+00, %.thread717 ]
  %.in680 = phi float [ %383, %.thread718 ], [ %396, %.thread720 ], [ %425, %.thread722 ], [ 0.000000e+00, %.thread717 ]
  %428 = fpext float %.in680 to double
  %429 = fsub double %427, %428
  %430 = fadd double %.sroa.8.0, %429
  switch i32 %368, label %488 [
    i32 0, label %.thread724
    i32 1, label %.thread726
    i32 2, label %.thread728
  ]

.thread724:                                       ; preds = %426
  %431 = add nsw i64 %indvars.iv792, -1
  %432 = getelementptr inbounds float, ptr %5, i64 %431
  %433 = load float, ptr %432, align 4, !tbaa !15
  %434 = getelementptr inbounds float, ptr %2, i64 %431
  %435 = load float, ptr %434, align 4, !tbaa !15
  %436 = fsub float %433, %435
  %437 = tail call float @llvm.fabs.f32(float %436)
  %438 = fpext float %437 to double
  %439 = add nsw i64 %indvars.iv796, -1
  %440 = getelementptr inbounds float, ptr %5, i64 %439
  %441 = load float, ptr %440, align 4, !tbaa !15
  %442 = getelementptr inbounds float, ptr %2, i64 %439
  %443 = load float, ptr %442, align 4, !tbaa !15
  %444 = fsub float %441, %443
  %445 = tail call float @llvm.fabs.f32(float %444)
  br label %488

.thread726:                                       ; preds = %426
  %446 = add nsw i64 %indvars.iv792, -1
  %447 = getelementptr inbounds float, ptr %3, i64 %446
  %448 = load float, ptr %447, align 4, !tbaa !15
  %449 = getelementptr inbounds float, ptr %4, i64 %446
  %450 = load float, ptr %449, align 4, !tbaa !15
  %451 = fsub float %448, %450
  %452 = fpext float %451 to double
  %453 = add nsw i64 %indvars.iv796, -1
  %454 = getelementptr inbounds float, ptr %3, i64 %453
  %455 = load float, ptr %454, align 4, !tbaa !15
  %456 = getelementptr inbounds float, ptr %4, i64 %453
  %457 = load float, ptr %456, align 4, !tbaa !15
  %458 = fsub float %455, %457
  br label %488

.thread728:                                       ; preds = %426
  %459 = add nsw i64 %indvars.iv792, -1
  %460 = getelementptr inbounds float, ptr %3, i64 %459
  %461 = load float, ptr %460, align 4, !tbaa !15
  %462 = getelementptr inbounds float, ptr %5, i64 %459
  %463 = load float, ptr %462, align 4, !tbaa !15
  %464 = getelementptr inbounds float, ptr %2, i64 %459
  %465 = load float, ptr %464, align 4, !tbaa !15
  %466 = fcmp ult float %463, %465
  %.703 = select i1 %466, float %465, float %463
  %467 = fsub float %461, %.703
  %468 = select i1 %466, float %463, float %465
  %469 = getelementptr inbounds float, ptr %4, i64 %459
  %470 = load float, ptr %469, align 4, !tbaa !15
  %471 = fsub float %468, %470
  %472 = fadd float %467, %471
  %473 = fpext float %472 to double
  %474 = add nsw i64 %indvars.iv796, -1
  %475 = getelementptr inbounds float, ptr %3, i64 %474
  %476 = load float, ptr %475, align 4, !tbaa !15
  %477 = getelementptr inbounds float, ptr %5, i64 %474
  %478 = load float, ptr %477, align 4, !tbaa !15
  %479 = getelementptr inbounds float, ptr %2, i64 %474
  %480 = load float, ptr %479, align 4, !tbaa !15
  %481 = fcmp ult float %478, %480
  %.704 = select i1 %481, float %480, float %478
  %482 = fsub float %476, %.704
  %483 = select i1 %481, float %478, float %480
  %484 = getelementptr inbounds float, ptr %4, i64 %474
  %485 = load float, ptr %484, align 4, !tbaa !15
  %486 = fsub float %483, %485
  %487 = fadd float %482, %486
  br label %488

488:                                              ; preds = %426, %.thread726, %.thread728, %.thread724
  %489 = phi double [ %438, %.thread724 ], [ %452, %.thread726 ], [ %473, %.thread728 ], [ 0.000000e+00, %426 ]
  %.in682 = phi float [ %445, %.thread724 ], [ %458, %.thread726 ], [ %487, %.thread728 ], [ 0.000000e+00, %426 ]
  %490 = fpext float %.in682 to double
  %491 = fsub double %489, %490
  %492 = extractelement <2 x double> %159, i64 0
  %493 = fadd double %492, %491
  switch i32 %367, label %537 [
    i32 0, label %.thread718.1
    i32 1, label %.thread720.1
    i32 2, label %.thread722.1
  ]

.thread722.1:                                     ; preds = %488
  %494 = getelementptr inbounds float, ptr %3, i64 %indvars.iv792
  %495 = load float, ptr %494, align 4, !tbaa !15
  %496 = fcmp ult float %167, %169
  %.701.1 = select i1 %496, float %169, float %167
  %497 = fsub float %495, %.701.1
  %498 = select i1 %496, float %167, float %169
  %499 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %500 = load float, ptr %499, align 4, !tbaa !15
  %501 = fsub float %498, %500
  %502 = fadd float %497, %501
  %503 = fpext float %502 to double
  %504 = getelementptr inbounds float, ptr %3, i64 %indvars.iv798
  %505 = load float, ptr %504, align 4, !tbaa !15
  %506 = getelementptr inbounds float, ptr %5, i64 %indvars.iv798
  %507 = load float, ptr %506, align 4, !tbaa !15
  %508 = getelementptr inbounds float, ptr %2, i64 %indvars.iv798
  %509 = load float, ptr %508, align 4, !tbaa !15
  %510 = fcmp ult float %507, %509
  %.702.1 = select i1 %510, float %509, float %507
  %511 = fsub float %505, %.702.1
  %512 = select i1 %510, float %507, float %509
  %513 = getelementptr inbounds float, ptr %4, i64 %indvars.iv798
  %514 = load float, ptr %513, align 4, !tbaa !15
  %515 = fsub float %512, %514
  %516 = fadd float %511, %515
  br label %537

.thread720.1:                                     ; preds = %488
  %517 = getelementptr inbounds float, ptr %3, i64 %indvars.iv792
  %518 = load float, ptr %517, align 4, !tbaa !15
  %519 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %520 = load float, ptr %519, align 4, !tbaa !15
  %521 = fsub float %518, %520
  %522 = fpext float %521 to double
  %523 = getelementptr inbounds float, ptr %3, i64 %indvars.iv798
  %524 = load float, ptr %523, align 4, !tbaa !15
  %525 = getelementptr inbounds float, ptr %4, i64 %indvars.iv798
  %526 = load float, ptr %525, align 4, !tbaa !15
  %527 = fsub float %524, %526
  br label %537

.thread718.1:                                     ; preds = %488
  %528 = fsub float %167, %169
  %529 = tail call float @llvm.fabs.f32(float %528)
  %530 = fpext float %529 to double
  %531 = getelementptr inbounds float, ptr %5, i64 %indvars.iv798
  %532 = load float, ptr %531, align 4, !tbaa !15
  %533 = getelementptr inbounds float, ptr %2, i64 %indvars.iv798
  %534 = load float, ptr %533, align 4, !tbaa !15
  %535 = fsub float %532, %534
  %536 = tail call float @llvm.fabs.f32(float %535)
  br label %537

537:                                              ; preds = %.thread718.1, %.thread720.1, %.thread722.1, %488
  %538 = phi double [ %530, %.thread718.1 ], [ %522, %.thread720.1 ], [ %503, %.thread722.1 ], [ 0.000000e+00, %488 ]
  %.in680.1 = phi float [ %536, %.thread718.1 ], [ %527, %.thread720.1 ], [ %516, %.thread722.1 ], [ 0.000000e+00, %488 ]
  %539 = fpext float %.in680.1 to double
  %540 = fsub double %538, %539
  %541 = fadd double %.sroa.0.0, %540
  switch i32 %368, label %585 [
    i32 0, label %.thread724.1
    i32 1, label %.thread726.1
    i32 2, label %.thread728.1
  ]

.thread728.1:                                     ; preds = %537
  %542 = getelementptr inbounds float, ptr %3, i64 %indvars.iv792
  %543 = load float, ptr %542, align 4, !tbaa !15
  %544 = fcmp ult float %167, %169
  %.703.1 = select i1 %544, float %169, float %167
  %545 = fsub float %543, %.703.1
  %546 = select i1 %544, float %167, float %169
  %547 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %548 = load float, ptr %547, align 4, !tbaa !15
  %549 = fsub float %546, %548
  %550 = fadd float %545, %549
  %551 = fpext float %550 to double
  %552 = getelementptr inbounds float, ptr %3, i64 %indvars.iv796
  %553 = load float, ptr %552, align 4, !tbaa !15
  %554 = getelementptr inbounds float, ptr %5, i64 %indvars.iv796
  %555 = load float, ptr %554, align 4, !tbaa !15
  %556 = getelementptr inbounds float, ptr %2, i64 %indvars.iv796
  %557 = load float, ptr %556, align 4, !tbaa !15
  %558 = fcmp ult float %555, %557
  %.704.1 = select i1 %558, float %557, float %555
  %559 = fsub float %553, %.704.1
  %560 = select i1 %558, float %555, float %557
  %561 = getelementptr inbounds float, ptr %4, i64 %indvars.iv796
  %562 = load float, ptr %561, align 4, !tbaa !15
  %563 = fsub float %560, %562
  %564 = fadd float %559, %563
  br label %585

.thread726.1:                                     ; preds = %537
  %565 = getelementptr inbounds float, ptr %3, i64 %indvars.iv792
  %566 = load float, ptr %565, align 4, !tbaa !15
  %567 = getelementptr inbounds float, ptr %4, i64 %indvars.iv792
  %568 = load float, ptr %567, align 4, !tbaa !15
  %569 = fsub float %566, %568
  %570 = fpext float %569 to double
  %571 = getelementptr inbounds float, ptr %3, i64 %indvars.iv796
  %572 = load float, ptr %571, align 4, !tbaa !15
  %573 = getelementptr inbounds float, ptr %4, i64 %indvars.iv796
  %574 = load float, ptr %573, align 4, !tbaa !15
  %575 = fsub float %572, %574
  br label %585

.thread724.1:                                     ; preds = %537
  %576 = fsub float %167, %169
  %577 = tail call float @llvm.fabs.f32(float %576)
  %578 = fpext float %577 to double
  %579 = getelementptr inbounds float, ptr %5, i64 %indvars.iv796
  %580 = load float, ptr %579, align 4, !tbaa !15
  %581 = getelementptr inbounds float, ptr %2, i64 %indvars.iv796
  %582 = load float, ptr %581, align 4, !tbaa !15
  %583 = fsub float %580, %582
  %584 = tail call float @llvm.fabs.f32(float %583)
  br label %585

585:                                              ; preds = %.thread724.1, %.thread726.1, %.thread728.1, %537
  %586 = phi double [ %578, %.thread724.1 ], [ %570, %.thread726.1 ], [ %551, %.thread728.1 ], [ 0.000000e+00, %537 ]
  %.in682.1 = phi float [ %584, %.thread724.1 ], [ %575, %.thread726.1 ], [ %564, %.thread728.1 ], [ 0.000000e+00, %537 ]
  %587 = fpext float %.in682.1 to double
  %588 = fsub double %586, %587
  %589 = extractelement <2 x double> %159, i64 1
  %590 = fadd double %589, %588
  %indvars.iv.next795 = add nuw nsw i64 %indvars.iv794, 1
  %indvars.iv.next793 = add nuw nsw i64 %indvars.iv792, 1
  %indvars.iv.next797 = add nsw i64 %indvars.iv796, 1
  %indvars.iv.next799 = add nsw i64 %indvars.iv798, 1
  %.not679.not = icmp slt i64 %indvars.iv792, %94
  %591 = insertelement <2 x double> poison, double %493, i64 0
  %592 = insertelement <2 x double> %591, double %590, i64 1
  br i1 %.not679.not, label %158, label %593, !llvm.loop !21

593:                                              ; preds = %585
  %594 = trunc nuw i64 %indvars.iv.next795 to i32
  store i32 %594, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %595

595:                                              ; preds = %13, %11, %9, %593, %24
  %.0 = phi i32 [ 0, %24 ], [ 0, %593 ], [ 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 = !{!12, !13, i64 16}
!21 = distinct !{!21, !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