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

; 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_CDLKICKINGBYLENGTH_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_CDLKICKINGBYLENGTH(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 %2566

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 %2566

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 %2566

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 %2566

57:                                               ; preds = %53
  %58 = call i32 @TA_CDLKICKINGBYLENGTH_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 %2566

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 = %2557, %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 %1940

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 %1940

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 %1940

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 %1940

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 %1940

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 %1940

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 %1940

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 %1940

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 %1940

1850:                                             ; preds = %1837, %1807
  %1851 = load ptr, ptr %16, align 8, !tbaa !9
  %1852 = load ptr, ptr %16, align 8, !tbaa !9
  %1853 = load i32, ptr %22, align 4, !tbaa !5
  %1854 = sext i32 %1853 to i64
  %1855 = getelementptr inbounds float, ptr %1852, i64 %1854
  %1856 = load float, ptr %1855, align 4, !tbaa !16
  %1857 = load ptr, ptr %13, align 8, !tbaa !9
  %1858 = load i32, ptr %22, align 4, !tbaa !5
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds float, ptr %1857, i64 %1859
  %1861 = load float, ptr %1860, align 4, !tbaa !16
  %1862 = fsub float %1856, %1861
  %1863 = fpext float %1862 to double
  %1864 = call double @llvm.fabs.f64(double %1863)
  %1865 = load ptr, ptr %16, align 8, !tbaa !9
  %1866 = load i32, ptr %22, align 4, !tbaa !5
  %1867 = sub nsw i32 %1866, 1
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds float, ptr %1865, i64 %1868
  %1870 = load float, ptr %1869, align 4, !tbaa !16
  %1871 = load ptr, ptr %13, align 8, !tbaa !9
  %1872 = load i32, ptr %22, align 4, !tbaa !5
  %1873 = sub nsw i32 %1872, 1
  %1874 = sext i32 %1873 to i64
  %1875 = getelementptr inbounds float, ptr %1871, i64 %1874
  %1876 = load float, ptr %1875, align 4, !tbaa !16
  %1877 = fsub float %1870, %1876
  %1878 = fpext float %1877 to double
  %1879 = call double @llvm.fabs.f64(double %1878)
  %1880 = fcmp ogt double %1864, %1879
  br i1 %1880, label %1881, label %1883

1881:                                             ; preds = %1850
  %1882 = load i32, ptr %22, align 4, !tbaa !5
  br label %1886

1883:                                             ; preds = %1850
  %1884 = load i32, ptr %22, align 4, !tbaa !5
  %1885 = sub nsw i32 %1884, 1
  br label %1886

1886:                                             ; preds = %1883, %1881
  %1887 = phi i32 [ %1882, %1881 ], [ %1885, %1883 ]
  %1888 = sext i32 %1887 to i64
  %1889 = getelementptr inbounds float, ptr %1851, i64 %1888
  %1890 = load float, ptr %1889, align 4, !tbaa !16
  %1891 = load ptr, ptr %13, align 8, !tbaa !9
  %1892 = load ptr, ptr %16, align 8, !tbaa !9
  %1893 = load i32, ptr %22, align 4, !tbaa !5
  %1894 = sext i32 %1893 to i64
  %1895 = getelementptr inbounds float, ptr %1892, i64 %1894
  %1896 = load float, ptr %1895, align 4, !tbaa !16
  %1897 = load ptr, ptr %13, align 8, !tbaa !9
  %1898 = load i32, ptr %22, align 4, !tbaa !5
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds float, ptr %1897, i64 %1899
  %1901 = load float, ptr %1900, align 4, !tbaa !16
  %1902 = fsub float %1896, %1901
  %1903 = fpext float %1902 to double
  %1904 = call double @llvm.fabs.f64(double %1903)
  %1905 = load ptr, ptr %16, align 8, !tbaa !9
  %1906 = load i32, ptr %22, align 4, !tbaa !5
  %1907 = sub nsw i32 %1906, 1
  %1908 = sext i32 %1907 to i64
  %1909 = getelementptr inbounds float, ptr %1905, i64 %1908
  %1910 = load float, ptr %1909, align 4, !tbaa !16
  %1911 = load ptr, ptr %13, align 8, !tbaa !9
  %1912 = load i32, ptr %22, align 4, !tbaa !5
  %1913 = sub nsw i32 %1912, 1
  %1914 = sext i32 %1913 to i64
  %1915 = getelementptr inbounds float, ptr %1911, i64 %1914
  %1916 = load float, ptr %1915, align 4, !tbaa !16
  %1917 = fsub float %1910, %1916
  %1918 = fpext float %1917 to double
  %1919 = call double @llvm.fabs.f64(double %1918)
  %1920 = fcmp ogt double %1904, %1919
  br i1 %1920, label %1921, label %1923

1921:                                             ; preds = %1886
  %1922 = load i32, ptr %22, align 4, !tbaa !5
  br label %1926

1923:                                             ; preds = %1886
  %1924 = load i32, ptr %22, align 4, !tbaa !5
  %1925 = sub nsw i32 %1924, 1
  br label %1926

1926:                                             ; preds = %1923, %1921
  %1927 = phi i32 [ %1922, %1921 ], [ %1925, %1923 ]
  %1928 = sext i32 %1927 to i64
  %1929 = getelementptr inbounds float, ptr %1891, i64 %1928
  %1930 = load float, ptr %1929, align 4, !tbaa !16
  %1931 = fcmp oge float %1890, %1930
  %1932 = zext i1 %1931 to i64
  %1933 = select i1 %1931, i32 1, i32 -1
  %1934 = mul nsw i32 %1933, 100
  %1935 = load ptr, ptr %19, align 8, !tbaa !9
  %1936 = load i32, ptr %23, align 4, !tbaa !5
  %1937 = add nsw i32 %1936, 1
  store i32 %1937, ptr %23, align 4, !tbaa !5
  %1938 = sext i32 %1936 to i64
  %1939 = getelementptr inbounds i32, ptr %1935, i64 %1938
  store i32 %1934, ptr %1939, align 4, !tbaa !5
  br label %1946

1940:                                             ; preds = %1837, %1820, %1777, %1590, %1403, %1235, %1029, %823, %621
  %1941 = load ptr, ptr %19, align 8, !tbaa !9
  %1942 = load i32, ptr %23, align 4, !tbaa !5
  %1943 = add nsw i32 %1942, 1
  store i32 %1943, ptr %23, align 4, !tbaa !5
  %1944 = sext i32 %1942 to i64
  %1945 = getelementptr inbounds i32, ptr %1941, i64 %1944
  store i32 0, ptr %1945, align 4, !tbaa !5
  br label %1946

1946:                                             ; preds = %1940, %1926
  store i32 1, ptr %24, align 4, !tbaa !5
  br label %1947

1947:                                             ; preds = %2547, %1946
  %1948 = load i32, ptr %24, align 4, !tbaa !5
  %1949 = icmp sge i32 %1948, 0
  br i1 %1949, label %1950, label %2550

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

1957:                                             ; preds = %1950
  %1958 = load ptr, ptr %16, align 8, !tbaa !9
  %1959 = load i32, ptr %22, align 4, !tbaa !5
  %1960 = load i32, ptr %24, align 4, !tbaa !5
  %1961 = sub nsw i32 %1959, %1960
  %1962 = sext i32 %1961 to i64
  %1963 = getelementptr inbounds float, ptr %1958, i64 %1962
  %1964 = load float, ptr %1963, align 4, !tbaa !16
  %1965 = load ptr, ptr %13, align 8, !tbaa !9
  %1966 = load i32, ptr %22, align 4, !tbaa !5
  %1967 = load i32, ptr %24, align 4, !tbaa !5
  %1968 = sub nsw i32 %1966, %1967
  %1969 = sext i32 %1968 to i64
  %1970 = getelementptr inbounds float, ptr %1965, i64 %1969
  %1971 = load float, ptr %1970, align 4, !tbaa !16
  %1972 = fsub float %1964, %1971
  %1973 = fpext float %1972 to double
  %1974 = call double @llvm.fabs.f64(double %1973)
  br label %2095

1975:                                             ; preds = %1950
  %1976 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1977 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1976, i32 0, i32 8
  %1978 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1977, i64 0, i64 0
  %1979 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1978, i32 0, i32 1
  %1980 = load i32, ptr %1979, align 4, !tbaa !15
  %1981 = icmp eq i32 %1980, 1
  br i1 %1981, label %1982, label %1998

1982:                                             ; preds = %1975
  %1983 = load ptr, ptr %14, align 8, !tbaa !9
  %1984 = load i32, ptr %22, align 4, !tbaa !5
  %1985 = load i32, ptr %24, align 4, !tbaa !5
  %1986 = sub nsw i32 %1984, %1985
  %1987 = sext i32 %1986 to i64
  %1988 = getelementptr inbounds float, ptr %1983, i64 %1987
  %1989 = load float, ptr %1988, align 4, !tbaa !16
  %1990 = load ptr, ptr %15, align 8, !tbaa !9
  %1991 = load i32, ptr %22, align 4, !tbaa !5
  %1992 = load i32, ptr %24, align 4, !tbaa !5
  %1993 = sub nsw i32 %1991, %1992
  %1994 = sext i32 %1993 to i64
  %1995 = getelementptr inbounds float, ptr %1990, i64 %1994
  %1996 = load float, ptr %1995, align 4, !tbaa !16
  %1997 = fsub float %1989, %1996
  br label %2092

1998:                                             ; preds = %1975
  %1999 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2000 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1999, i32 0, i32 8
  %2001 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2000, i64 0, i64 0
  %2002 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2001, i32 0, i32 1
  %2003 = load i32, ptr %2002, align 4, !tbaa !15
  %2004 = icmp eq i32 %2003, 2
  br i1 %2004, label %2005, label %2089

2005:                                             ; preds = %1998
  %2006 = load ptr, ptr %14, align 8, !tbaa !9
  %2007 = load i32, ptr %22, align 4, !tbaa !5
  %2008 = load i32, ptr %24, align 4, !tbaa !5
  %2009 = sub nsw i32 %2007, %2008
  %2010 = sext i32 %2009 to i64
  %2011 = getelementptr inbounds float, ptr %2006, i64 %2010
  %2012 = load float, ptr %2011, align 4, !tbaa !16
  %2013 = load ptr, ptr %16, align 8, !tbaa !9
  %2014 = load i32, ptr %22, align 4, !tbaa !5
  %2015 = load i32, ptr %24, align 4, !tbaa !5
  %2016 = sub nsw i32 %2014, %2015
  %2017 = sext i32 %2016 to i64
  %2018 = getelementptr inbounds float, ptr %2013, i64 %2017
  %2019 = load float, ptr %2018, align 4, !tbaa !16
  %2020 = load ptr, ptr %13, align 8, !tbaa !9
  %2021 = load i32, ptr %22, align 4, !tbaa !5
  %2022 = load i32, ptr %24, align 4, !tbaa !5
  %2023 = sub nsw i32 %2021, %2022
  %2024 = sext i32 %2023 to i64
  %2025 = getelementptr inbounds float, ptr %2020, i64 %2024
  %2026 = load float, ptr %2025, align 4, !tbaa !16
  %2027 = fcmp oge float %2019, %2026
  br i1 %2027, label %2028, label %2036

2028:                                             ; preds = %2005
  %2029 = load ptr, ptr %16, align 8, !tbaa !9
  %2030 = load i32, ptr %22, align 4, !tbaa !5
  %2031 = load i32, ptr %24, align 4, !tbaa !5
  %2032 = sub nsw i32 %2030, %2031
  %2033 = sext i32 %2032 to i64
  %2034 = getelementptr inbounds float, ptr %2029, i64 %2033
  %2035 = load float, ptr %2034, align 4, !tbaa !16
  br label %2044

2036:                                             ; preds = %2005
  %2037 = load ptr, ptr %13, align 8, !tbaa !9
  %2038 = load i32, ptr %22, align 4, !tbaa !5
  %2039 = load i32, ptr %24, align 4, !tbaa !5
  %2040 = sub nsw i32 %2038, %2039
  %2041 = sext i32 %2040 to i64
  %2042 = getelementptr inbounds float, ptr %2037, i64 %2041
  %2043 = load float, ptr %2042, align 4, !tbaa !16
  br label %2044

2044:                                             ; preds = %2036, %2028
  %2045 = phi float [ %2035, %2028 ], [ %2043, %2036 ]
  %2046 = fsub float %2012, %2045
  %2047 = load ptr, ptr %16, align 8, !tbaa !9
  %2048 = load i32, ptr %22, align 4, !tbaa !5
  %2049 = load i32, ptr %24, align 4, !tbaa !5
  %2050 = sub nsw i32 %2048, %2049
  %2051 = sext i32 %2050 to i64
  %2052 = getelementptr inbounds float, ptr %2047, i64 %2051
  %2053 = load float, ptr %2052, align 4, !tbaa !16
  %2054 = load ptr, ptr %13, align 8, !tbaa !9
  %2055 = load i32, ptr %22, align 4, !tbaa !5
  %2056 = load i32, ptr %24, align 4, !tbaa !5
  %2057 = sub nsw i32 %2055, %2056
  %2058 = sext i32 %2057 to i64
  %2059 = getelementptr inbounds float, ptr %2054, i64 %2058
  %2060 = load float, ptr %2059, align 4, !tbaa !16
  %2061 = fcmp oge float %2053, %2060
  br i1 %2061, label %2062, label %2070

2062:                                             ; preds = %2044
  %2063 = load ptr, ptr %13, align 8, !tbaa !9
  %2064 = load i32, ptr %22, align 4, !tbaa !5
  %2065 = load i32, ptr %24, align 4, !tbaa !5
  %2066 = sub nsw i32 %2064, %2065
  %2067 = sext i32 %2066 to i64
  %2068 = getelementptr inbounds float, ptr %2063, i64 %2067
  %2069 = load float, ptr %2068, align 4, !tbaa !16
  br label %2078

2070:                                             ; preds = %2044
  %2071 = load ptr, ptr %16, align 8, !tbaa !9
  %2072 = load i32, ptr %22, align 4, !tbaa !5
  %2073 = load i32, ptr %24, align 4, !tbaa !5
  %2074 = sub nsw i32 %2072, %2073
  %2075 = sext i32 %2074 to i64
  %2076 = getelementptr inbounds float, ptr %2071, i64 %2075
  %2077 = load float, ptr %2076, align 4, !tbaa !16
  br label %2078

2078:                                             ; preds = %2070, %2062
  %2079 = phi float [ %2069, %2062 ], [ %2077, %2070 ]
  %2080 = load ptr, ptr %15, align 8, !tbaa !9
  %2081 = load i32, ptr %22, align 4, !tbaa !5
  %2082 = load i32, ptr %24, align 4, !tbaa !5
  %2083 = sub nsw i32 %2081, %2082
  %2084 = sext i32 %2083 to i64
  %2085 = getelementptr inbounds float, ptr %2080, i64 %2084
  %2086 = load float, ptr %2085, align 4, !tbaa !16
  %2087 = fsub float %2079, %2086
  %2088 = fadd float %2046, %2087
  br label %2090

2089:                                             ; preds = %1998
  br label %2090

2090:                                             ; preds = %2089, %2078
  %2091 = phi float [ %2088, %2078 ], [ 0.000000e+00, %2089 ]
  br label %2092

2092:                                             ; preds = %2090, %1982
  %2093 = phi float [ %1997, %1982 ], [ %2091, %2090 ]
  %2094 = fpext float %2093 to double
  br label %2095

2095:                                             ; preds = %2092, %1957
  %2096 = phi double [ %1974, %1957 ], [ %2094, %2092 ]
  %2097 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2098 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2097, i32 0, i32 8
  %2099 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2098, i64 0, i64 0
  %2100 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2099, i32 0, i32 1
  %2101 = load i32, ptr %2100, align 4, !tbaa !15
  %2102 = icmp eq i32 %2101, 0
  br i1 %2102, label %2103, label %2121

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

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

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

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

2151:                                             ; preds = %2144
  %2152 = load ptr, ptr %14, align 8, !tbaa !9
  %2153 = load i32, ptr %26, align 4, !tbaa !5
  %2154 = load i32, ptr %24, align 4, !tbaa !5
  %2155 = sub nsw i32 %2153, %2154
  %2156 = sext i32 %2155 to i64
  %2157 = getelementptr inbounds float, ptr %2152, i64 %2156
  %2158 = load float, ptr %2157, align 4, !tbaa !16
  %2159 = load ptr, ptr %16, align 8, !tbaa !9
  %2160 = load i32, ptr %26, align 4, !tbaa !5
  %2161 = load i32, ptr %24, align 4, !tbaa !5
  %2162 = sub nsw i32 %2160, %2161
  %2163 = sext i32 %2162 to i64
  %2164 = getelementptr inbounds float, ptr %2159, i64 %2163
  %2165 = load float, ptr %2164, align 4, !tbaa !16
  %2166 = load ptr, ptr %13, align 8, !tbaa !9
  %2167 = load i32, ptr %26, align 4, !tbaa !5
  %2168 = load i32, ptr %24, align 4, !tbaa !5
  %2169 = sub nsw i32 %2167, %2168
  %2170 = sext i32 %2169 to i64
  %2171 = getelementptr inbounds float, ptr %2166, i64 %2170
  %2172 = load float, ptr %2171, align 4, !tbaa !16
  %2173 = fcmp oge float %2165, %2172
  br i1 %2173, label %2174, label %2182

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

2182:                                             ; preds = %2151
  %2183 = load ptr, ptr %13, align 8, !tbaa !9
  %2184 = load i32, ptr %26, align 4, !tbaa !5
  %2185 = load i32, ptr %24, align 4, !tbaa !5
  %2186 = sub nsw i32 %2184, %2185
  %2187 = sext i32 %2186 to i64
  %2188 = getelementptr inbounds float, ptr %2183, i64 %2187
  %2189 = load float, ptr %2188, align 4, !tbaa !16
  br label %2190

2190:                                             ; preds = %2182, %2174
  %2191 = phi float [ %2181, %2174 ], [ %2189, %2182 ]
  %2192 = fsub float %2158, %2191
  %2193 = load ptr, ptr %16, align 8, !tbaa !9
  %2194 = load i32, ptr %26, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %2201 = load i32, ptr %26, align 4, !tbaa !5
  %2202 = load i32, ptr %24, align 4, !tbaa !5
  %2203 = sub nsw i32 %2201, %2202
  %2204 = sext i32 %2203 to i64
  %2205 = getelementptr inbounds float, ptr %2200, i64 %2204
  %2206 = load float, ptr %2205, align 4, !tbaa !16
  %2207 = fcmp oge float %2199, %2206
  br i1 %2207, label %2208, label %2216

2208:                                             ; preds = %2190
  %2209 = load ptr, ptr %13, align 8, !tbaa !9
  %2210 = load i32, ptr %26, align 4, !tbaa !5
  %2211 = load i32, ptr %24, align 4, !tbaa !5
  %2212 = sub nsw i32 %2210, %2211
  %2213 = sext i32 %2212 to i64
  %2214 = getelementptr inbounds float, ptr %2209, i64 %2213
  %2215 = load float, ptr %2214, align 4, !tbaa !16
  br label %2224

2216:                                             ; preds = %2190
  %2217 = load ptr, ptr %16, align 8, !tbaa !9
  %2218 = load i32, ptr %26, align 4, !tbaa !5
  %2219 = load i32, ptr %24, align 4, !tbaa !5
  %2220 = sub nsw i32 %2218, %2219
  %2221 = sext i32 %2220 to i64
  %2222 = getelementptr inbounds float, ptr %2217, i64 %2221
  %2223 = load float, ptr %2222, align 4, !tbaa !16
  br label %2224

2224:                                             ; preds = %2216, %2208
  %2225 = phi float [ %2215, %2208 ], [ %2223, %2216 ]
  %2226 = load ptr, ptr %15, align 8, !tbaa !9
  %2227 = load i32, ptr %26, align 4, !tbaa !5
  %2228 = load i32, ptr %24, align 4, !tbaa !5
  %2229 = sub nsw i32 %2227, %2228
  %2230 = sext i32 %2229 to i64
  %2231 = getelementptr inbounds float, ptr %2226, i64 %2230
  %2232 = load float, ptr %2231, align 4, !tbaa !16
  %2233 = fsub float %2225, %2232
  %2234 = fadd float %2192, %2233
  br label %2236

2235:                                             ; preds = %2144
  br label %2236

2236:                                             ; preds = %2235, %2224
  %2237 = phi float [ %2234, %2224 ], [ 0.000000e+00, %2235 ]
  br label %2238

2238:                                             ; preds = %2236, %2128
  %2239 = phi float [ %2143, %2128 ], [ %2237, %2236 ]
  %2240 = fpext float %2239 to double
  br label %2241

2241:                                             ; preds = %2238, %2103
  %2242 = phi double [ %2120, %2103 ], [ %2240, %2238 ]
  %2243 = fsub double %2096, %2242
  %2244 = load i32, ptr %24, align 4, !tbaa !5
  %2245 = sext i32 %2244 to i64
  %2246 = getelementptr inbounds [2 x double], ptr %21, i64 0, i64 %2245
  %2247 = load double, ptr %2246, align 8, !tbaa !11
  %2248 = fadd double %2247, %2243
  store double %2248, ptr %2246, align 8, !tbaa !11
  %2249 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2250 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2249, i32 0, i32 8
  %2251 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2250, i64 0, i64 7
  %2252 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2251, i32 0, i32 1
  %2253 = load i32, ptr %2252, align 4, !tbaa !15
  %2254 = icmp eq i32 %2253, 0
  br i1 %2254, label %2255, label %2273

2255:                                             ; preds = %2241
  %2256 = load ptr, ptr %16, align 8, !tbaa !9
  %2257 = load i32, ptr %22, align 4, !tbaa !5
  %2258 = load i32, ptr %24, align 4, !tbaa !5
  %2259 = sub nsw i32 %2257, %2258
  %2260 = sext i32 %2259 to i64
  %2261 = getelementptr inbounds float, ptr %2256, i64 %2260
  %2262 = load float, ptr %2261, align 4, !tbaa !16
  %2263 = load ptr, ptr %13, align 8, !tbaa !9
  %2264 = load i32, ptr %22, align 4, !tbaa !5
  %2265 = load i32, ptr %24, align 4, !tbaa !5
  %2266 = sub nsw i32 %2264, %2265
  %2267 = sext i32 %2266 to i64
  %2268 = getelementptr inbounds float, ptr %2263, i64 %2267
  %2269 = load float, ptr %2268, align 4, !tbaa !16
  %2270 = fsub float %2262, %2269
  %2271 = fpext float %2270 to double
  %2272 = call double @llvm.fabs.f64(double %2271)
  br label %2393

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

2280:                                             ; preds = %2273
  %2281 = load ptr, ptr %14, align 8, !tbaa !9
  %2282 = load i32, ptr %22, align 4, !tbaa !5
  %2283 = load i32, ptr %24, align 4, !tbaa !5
  %2284 = sub nsw i32 %2282, %2283
  %2285 = sext i32 %2284 to i64
  %2286 = getelementptr inbounds float, ptr %2281, i64 %2285
  %2287 = load float, ptr %2286, align 4, !tbaa !16
  %2288 = load ptr, ptr %15, align 8, !tbaa !9
  %2289 = load i32, ptr %22, align 4, !tbaa !5
  %2290 = load i32, ptr %24, align 4, !tbaa !5
  %2291 = sub nsw i32 %2289, %2290
  %2292 = sext i32 %2291 to i64
  %2293 = getelementptr inbounds float, ptr %2288, i64 %2292
  %2294 = load float, ptr %2293, align 4, !tbaa !16
  %2295 = fsub float %2287, %2294
  br label %2390

2296:                                             ; preds = %2273
  %2297 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2298 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2297, i32 0, i32 8
  %2299 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2298, i64 0, i64 7
  %2300 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2299, i32 0, i32 1
  %2301 = load i32, ptr %2300, align 4, !tbaa !15
  %2302 = icmp eq i32 %2301, 2
  br i1 %2302, label %2303, label %2387

2303:                                             ; preds = %2296
  %2304 = load ptr, ptr %14, align 8, !tbaa !9
  %2305 = load i32, ptr %22, align 4, !tbaa !5
  %2306 = load i32, ptr %24, align 4, !tbaa !5
  %2307 = sub nsw i32 %2305, %2306
  %2308 = sext i32 %2307 to i64
  %2309 = getelementptr inbounds float, ptr %2304, i64 %2308
  %2310 = load float, ptr %2309, align 4, !tbaa !16
  %2311 = load ptr, ptr %16, align 8, !tbaa !9
  %2312 = load i32, ptr %22, align 4, !tbaa !5
  %2313 = load i32, ptr %24, align 4, !tbaa !5
  %2314 = sub nsw i32 %2312, %2313
  %2315 = sext i32 %2314 to i64
  %2316 = getelementptr inbounds float, ptr %2311, i64 %2315
  %2317 = load float, ptr %2316, align 4, !tbaa !16
  %2318 = load ptr, ptr %13, align 8, !tbaa !9
  %2319 = load i32, ptr %22, align 4, !tbaa !5
  %2320 = load i32, ptr %24, align 4, !tbaa !5
  %2321 = sub nsw i32 %2319, %2320
  %2322 = sext i32 %2321 to i64
  %2323 = getelementptr inbounds float, ptr %2318, i64 %2322
  %2324 = load float, ptr %2323, align 4, !tbaa !16
  %2325 = fcmp oge float %2317, %2324
  br i1 %2325, label %2326, label %2334

2326:                                             ; preds = %2303
  %2327 = load ptr, ptr %16, align 8, !tbaa !9
  %2328 = load i32, ptr %22, align 4, !tbaa !5
  %2329 = load i32, ptr %24, align 4, !tbaa !5
  %2330 = sub nsw i32 %2328, %2329
  %2331 = sext i32 %2330 to i64
  %2332 = getelementptr inbounds float, ptr %2327, i64 %2331
  %2333 = load float, ptr %2332, align 4, !tbaa !16
  br label %2342

2334:                                             ; preds = %2303
  %2335 = load ptr, ptr %13, align 8, !tbaa !9
  %2336 = load i32, ptr %22, align 4, !tbaa !5
  %2337 = load i32, ptr %24, align 4, !tbaa !5
  %2338 = sub nsw i32 %2336, %2337
  %2339 = sext i32 %2338 to i64
  %2340 = getelementptr inbounds float, ptr %2335, i64 %2339
  %2341 = load float, ptr %2340, align 4, !tbaa !16
  br label %2342

2342:                                             ; preds = %2334, %2326
  %2343 = phi float [ %2333, %2326 ], [ %2341, %2334 ]
  %2344 = fsub float %2310, %2343
  %2345 = load ptr, ptr %16, align 8, !tbaa !9
  %2346 = load i32, ptr %22, align 4, !tbaa !5
  %2347 = load i32, ptr %24, align 4, !tbaa !5
  %2348 = sub nsw i32 %2346, %2347
  %2349 = sext i32 %2348 to i64
  %2350 = getelementptr inbounds float, ptr %2345, i64 %2349
  %2351 = load float, ptr %2350, align 4, !tbaa !16
  %2352 = load ptr, ptr %13, align 8, !tbaa !9
  %2353 = load i32, ptr %22, align 4, !tbaa !5
  %2354 = load i32, ptr %24, align 4, !tbaa !5
  %2355 = sub nsw i32 %2353, %2354
  %2356 = sext i32 %2355 to i64
  %2357 = getelementptr inbounds float, ptr %2352, i64 %2356
  %2358 = load float, ptr %2357, align 4, !tbaa !16
  %2359 = fcmp oge float %2351, %2358
  br i1 %2359, label %2360, label %2368

2360:                                             ; preds = %2342
  %2361 = load ptr, ptr %13, align 8, !tbaa !9
  %2362 = load i32, ptr %22, align 4, !tbaa !5
  %2363 = load i32, ptr %24, align 4, !tbaa !5
  %2364 = sub nsw i32 %2362, %2363
  %2365 = sext i32 %2364 to i64
  %2366 = getelementptr inbounds float, ptr %2361, i64 %2365
  %2367 = load float, ptr %2366, align 4, !tbaa !16
  br label %2376

2368:                                             ; preds = %2342
  %2369 = load ptr, ptr %16, align 8, !tbaa !9
  %2370 = load i32, ptr %22, align 4, !tbaa !5
  %2371 = load i32, ptr %24, align 4, !tbaa !5
  %2372 = sub nsw i32 %2370, %2371
  %2373 = sext i32 %2372 to i64
  %2374 = getelementptr inbounds float, ptr %2369, i64 %2373
  %2375 = load float, ptr %2374, align 4, !tbaa !16
  br label %2376

2376:                                             ; preds = %2368, %2360
  %2377 = phi float [ %2367, %2360 ], [ %2375, %2368 ]
  %2378 = load ptr, ptr %15, align 8, !tbaa !9
  %2379 = load i32, ptr %22, align 4, !tbaa !5
  %2380 = load i32, ptr %24, align 4, !tbaa !5
  %2381 = sub nsw i32 %2379, %2380
  %2382 = sext i32 %2381 to i64
  %2383 = getelementptr inbounds float, ptr %2378, i64 %2382
  %2384 = load float, ptr %2383, align 4, !tbaa !16
  %2385 = fsub float %2377, %2384
  %2386 = fadd float %2344, %2385
  br label %2388

2387:                                             ; preds = %2296
  br label %2388

2388:                                             ; preds = %2387, %2376
  %2389 = phi float [ %2386, %2376 ], [ 0.000000e+00, %2387 ]
  br label %2390

2390:                                             ; preds = %2388, %2280
  %2391 = phi float [ %2295, %2280 ], [ %2389, %2388 ]
  %2392 = fpext float %2391 to double
  br label %2393

2393:                                             ; preds = %2390, %2255
  %2394 = phi double [ %2272, %2255 ], [ %2392, %2390 ]
  %2395 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2396 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2395, i32 0, i32 8
  %2397 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2396, i64 0, i64 7
  %2398 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2397, i32 0, i32 1
  %2399 = load i32, ptr %2398, align 4, !tbaa !15
  %2400 = icmp eq i32 %2399, 0
  br i1 %2400, label %2401, label %2419

2401:                                             ; preds = %2393
  %2402 = load ptr, ptr %16, align 8, !tbaa !9
  %2403 = load i32, ptr %25, align 4, !tbaa !5
  %2404 = load i32, ptr %24, align 4, !tbaa !5
  %2405 = sub nsw i32 %2403, %2404
  %2406 = sext i32 %2405 to i64
  %2407 = getelementptr inbounds float, ptr %2402, i64 %2406
  %2408 = load float, ptr %2407, align 4, !tbaa !16
  %2409 = load ptr, ptr %13, align 8, !tbaa !9
  %2410 = load i32, ptr %25, align 4, !tbaa !5
  %2411 = load i32, ptr %24, align 4, !tbaa !5
  %2412 = sub nsw i32 %2410, %2411
  %2413 = sext i32 %2412 to i64
  %2414 = getelementptr inbounds float, ptr %2409, i64 %2413
  %2415 = load float, ptr %2414, align 4, !tbaa !16
  %2416 = fsub float %2408, %2415
  %2417 = fpext float %2416 to double
  %2418 = call double @llvm.fabs.f64(double %2417)
  br label %2539

2419:                                             ; preds = %2393
  %2420 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2421 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2420, i32 0, i32 8
  %2422 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2421, i64 0, i64 7
  %2423 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2422, i32 0, i32 1
  %2424 = load i32, ptr %2423, align 4, !tbaa !15
  %2425 = icmp eq i32 %2424, 1
  br i1 %2425, label %2426, label %2442

2426:                                             ; preds = %2419
  %2427 = load ptr, ptr %14, align 8, !tbaa !9
  %2428 = load i32, ptr %25, align 4, !tbaa !5
  %2429 = load i32, ptr %24, align 4, !tbaa !5
  %2430 = sub nsw i32 %2428, %2429
  %2431 = sext i32 %2430 to i64
  %2432 = getelementptr inbounds float, ptr %2427, i64 %2431
  %2433 = load float, ptr %2432, align 4, !tbaa !16
  %2434 = load ptr, ptr %15, align 8, !tbaa !9
  %2435 = load i32, ptr %25, align 4, !tbaa !5
  %2436 = load i32, ptr %24, align 4, !tbaa !5
  %2437 = sub nsw i32 %2435, %2436
  %2438 = sext i32 %2437 to i64
  %2439 = getelementptr inbounds float, ptr %2434, i64 %2438
  %2440 = load float, ptr %2439, align 4, !tbaa !16
  %2441 = fsub float %2433, %2440
  br label %2536

2442:                                             ; preds = %2419
  %2443 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2444 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2443, i32 0, i32 8
  %2445 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2444, i64 0, i64 7
  %2446 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2445, i32 0, i32 1
  %2447 = load i32, ptr %2446, align 4, !tbaa !15
  %2448 = icmp eq i32 %2447, 2
  br i1 %2448, label %2449, label %2533

2449:                                             ; preds = %2442
  %2450 = load ptr, ptr %14, align 8, !tbaa !9
  %2451 = load i32, ptr %25, align 4, !tbaa !5
  %2452 = load i32, ptr %24, align 4, !tbaa !5
  %2453 = sub nsw i32 %2451, %2452
  %2454 = sext i32 %2453 to i64
  %2455 = getelementptr inbounds float, ptr %2450, i64 %2454
  %2456 = load float, ptr %2455, align 4, !tbaa !16
  %2457 = load ptr, ptr %16, align 8, !tbaa !9
  %2458 = load i32, ptr %25, align 4, !tbaa !5
  %2459 = load i32, ptr %24, align 4, !tbaa !5
  %2460 = sub nsw i32 %2458, %2459
  %2461 = sext i32 %2460 to i64
  %2462 = getelementptr inbounds float, ptr %2457, i64 %2461
  %2463 = load float, ptr %2462, align 4, !tbaa !16
  %2464 = load ptr, ptr %13, align 8, !tbaa !9
  %2465 = load i32, ptr %25, align 4, !tbaa !5
  %2466 = load i32, ptr %24, align 4, !tbaa !5
  %2467 = sub nsw i32 %2465, %2466
  %2468 = sext i32 %2467 to i64
  %2469 = getelementptr inbounds float, ptr %2464, i64 %2468
  %2470 = load float, ptr %2469, align 4, !tbaa !16
  %2471 = fcmp oge float %2463, %2470
  br i1 %2471, label %2472, label %2480

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

2480:                                             ; preds = %2449
  %2481 = load ptr, ptr %13, align 8, !tbaa !9
  %2482 = load i32, ptr %25, align 4, !tbaa !5
  %2483 = load i32, ptr %24, align 4, !tbaa !5
  %2484 = sub nsw i32 %2482, %2483
  %2485 = sext i32 %2484 to i64
  %2486 = getelementptr inbounds float, ptr %2481, i64 %2485
  %2487 = load float, ptr %2486, align 4, !tbaa !16
  br label %2488

2488:                                             ; preds = %2480, %2472
  %2489 = phi float [ %2479, %2472 ], [ %2487, %2480 ]
  %2490 = fsub float %2456, %2489
  %2491 = load ptr, ptr %16, align 8, !tbaa !9
  %2492 = load i32, ptr %25, align 4, !tbaa !5
  %2493 = load i32, ptr %24, align 4, !tbaa !5
  %2494 = sub nsw i32 %2492, %2493
  %2495 = sext i32 %2494 to i64
  %2496 = getelementptr inbounds float, ptr %2491, i64 %2495
  %2497 = load float, ptr %2496, align 4, !tbaa !16
  %2498 = load ptr, ptr %13, align 8, !tbaa !9
  %2499 = load i32, ptr %25, align 4, !tbaa !5
  %2500 = load i32, ptr %24, align 4, !tbaa !5
  %2501 = sub nsw i32 %2499, %2500
  %2502 = sext i32 %2501 to i64
  %2503 = getelementptr inbounds float, ptr %2498, i64 %2502
  %2504 = load float, ptr %2503, align 4, !tbaa !16
  %2505 = fcmp oge float %2497, %2504
  br i1 %2505, label %2506, label %2514

2506:                                             ; preds = %2488
  %2507 = load ptr, ptr %13, align 8, !tbaa !9
  %2508 = load i32, ptr %25, align 4, !tbaa !5
  %2509 = load i32, ptr %24, align 4, !tbaa !5
  %2510 = sub nsw i32 %2508, %2509
  %2511 = sext i32 %2510 to i64
  %2512 = getelementptr inbounds float, ptr %2507, i64 %2511
  %2513 = load float, ptr %2512, align 4, !tbaa !16
  br label %2522

2514:                                             ; preds = %2488
  %2515 = load ptr, ptr %16, align 8, !tbaa !9
  %2516 = load i32, ptr %25, align 4, !tbaa !5
  %2517 = load i32, ptr %24, align 4, !tbaa !5
  %2518 = sub nsw i32 %2516, %2517
  %2519 = sext i32 %2518 to i64
  %2520 = getelementptr inbounds float, ptr %2515, i64 %2519
  %2521 = load float, ptr %2520, align 4, !tbaa !16
  br label %2522

2522:                                             ; preds = %2514, %2506
  %2523 = phi float [ %2513, %2506 ], [ %2521, %2514 ]
  %2524 = load ptr, ptr %15, align 8, !tbaa !9
  %2525 = load i32, ptr %25, align 4, !tbaa !5
  %2526 = load i32, ptr %24, align 4, !tbaa !5
  %2527 = sub nsw i32 %2525, %2526
  %2528 = sext i32 %2527 to i64
  %2529 = getelementptr inbounds float, ptr %2524, i64 %2528
  %2530 = load float, ptr %2529, align 4, !tbaa !16
  %2531 = fsub float %2523, %2530
  %2532 = fadd float %2490, %2531
  br label %2534

2533:                                             ; preds = %2442
  br label %2534

2534:                                             ; preds = %2533, %2522
  %2535 = phi float [ %2532, %2522 ], [ 0.000000e+00, %2533 ]
  br label %2536

2536:                                             ; preds = %2534, %2426
  %2537 = phi float [ %2441, %2426 ], [ %2535, %2534 ]
  %2538 = fpext float %2537 to double
  br label %2539

2539:                                             ; preds = %2536, %2401
  %2540 = phi double [ %2418, %2401 ], [ %2538, %2536 ]
  %2541 = fsub double %2394, %2540
  %2542 = load i32, ptr %24, align 4, !tbaa !5
  %2543 = sext i32 %2542 to i64
  %2544 = getelementptr inbounds [2 x double], ptr %20, i64 0, i64 %2543
  %2545 = load double, ptr %2544, align 8, !tbaa !11
  %2546 = fadd double %2545, %2541
  store double %2546, ptr %2544, align 8, !tbaa !11
  br label %2547

2547:                                             ; preds = %2539
  %2548 = load i32, ptr %24, align 4, !tbaa !5
  %2549 = add nsw i32 %2548, -1
  store i32 %2549, ptr %24, align 4, !tbaa !5
  br label %1947, !llvm.loop !22

2550:                                             ; preds = %1947
  %2551 = load i32, ptr %22, align 4, !tbaa !5
  %2552 = add nsw i32 %2551, 1
  store i32 %2552, ptr %22, align 4, !tbaa !5
  %2553 = load i32, ptr %25, align 4, !tbaa !5
  %2554 = add nsw i32 %2553, 1
  store i32 %2554, ptr %25, align 4, !tbaa !5
  %2555 = load i32, ptr %26, align 4, !tbaa !5
  %2556 = add nsw i32 %2555, 1
  store i32 %2556, ptr %26, align 4, !tbaa !5
  br label %2557

2557:                                             ; preds = %2550
  %2558 = load i32, ptr %22, align 4, !tbaa !5
  %2559 = load i32, ptr %12, align 4, !tbaa !5
  %2560 = icmp sle i32 %2558, %2559
  br i1 %2560, label %621, label %2561, !llvm.loop !23

2561:                                             ; preds = %2557
  %2562 = load i32, ptr %23, align 4, !tbaa !5
  %2563 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %2562, ptr %2563, align 4, !tbaa !5
  %2564 = load i32, ptr %11, align 4, !tbaa !5
  %2565 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %2564, ptr %2565, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2566

2566:                                             ; preds = %2561, %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
  %2567 = load i32, ptr %10, align 4
  ret i32 %2567
}

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_CDLKICKINGBYLENGTH_Lookback() local_unnamed_addr #0

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

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

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

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 %.preheader755

.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 %.preheader755 [
    i32 0, label %.thread.us.preheader
    i32 1, label %.thread725.us.preheader
    i32 2, label %.thread727.us.preheader
  ]

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

.thread725.us.preheader:                          ; preds = %.lr.ph
  %38 = sext i32 %29 to i64
  %39 = zext nneg i32 %spec.select to i64
  br label %.thread725.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.iv801 = phi i64 [ %40, %.thread.us.preheader ], [ %indvars.iv.next802, %.thread.us ]
  %42 = phi <2 x double> [ zeroinitializer, %.thread.us.preheader ], [ %51, %.thread.us ]
  %43 = add nsw i64 %indvars.iv801, -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.next802 = add nsw i64 %indvars.iv801, 1
  %52 = icmp slt i64 %indvars.iv.next802, %41
  br i1 %52, label %.thread.us, label %.preheader755, !llvm.loop !17

.thread725.us:                                    ; preds = %.thread725.us.preheader, %.thread725.us
  %indvars.iv798 = phi i64 [ %38, %.thread725.us.preheader ], [ %indvars.iv.next799, %.thread725.us ]
  %53 = phi <2 x double> [ zeroinitializer, %.thread725.us.preheader ], [ %61, %.thread725.us ]
  %54 = add nsw i64 %indvars.iv798, -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.next799 = add nsw i64 %indvars.iv798, 1
  %62 = icmp slt i64 %indvars.iv.next799, %39
  br i1 %62, label %.thread725.us, label %.preheader755, !llvm.loop !17

.thread727.us:                                    ; preds = %.thread727.us.preheader, %.thread727.us
  %indvars.iv = phi i64 [ %36, %.thread727.us.preheader ], [ %indvars.iv.next, %.thread727.us ]
  %63 = phi <2 x double> [ zeroinitializer, %.thread727.us.preheader ], [ %80, %.thread727.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 %.thread727.us, label %.preheader755, !llvm.loop !17

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

.preheader755..preheader_crit_edge:               ; preds = %.preheader755
  %.pre831 = sext i32 %32 to i64
  br label %.preheader

.lr.ph780:                                        ; preds = %.preheader755
  %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, %.preheader755..preheader_crit_edge
  %.pre-phi = phi i64 [ %.pre831, %.preheader755..preheader_crit_edge ], [ %86, %153 ]
  %.lcssa778 = phi double [ 0.000000e+00, %.preheader755..preheader_crit_edge ], [ %156, %153 ]
  %.lcssa776 = phi double [ 0.000000e+00, %.preheader755..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.ph780, %153
  %indvars.iv804 = phi i64 [ %86, %.lr.ph780 ], [ %indvars.iv.next805, %153 ]
  %97 = phi double [ 0.000000e+00, %.lr.ph780 ], [ %154, %153 ]
  %98 = phi double [ 0.000000e+00, %.lr.ph780 ], [ %156, %153 ]
  switch i32 %85, label %153 [
    i32 0, label %.thread729
    i32 1, label %.thread731
    i32 2, label %.thread733
  ]

.thread729:                                       ; preds = %96
  %99 = add nsw i64 %indvars.iv804, -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.iv804
  %108 = load float, ptr %107, align 4, !tbaa !15
  %109 = getelementptr inbounds float, ptr %2, i64 %indvars.iv804
  %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

.thread731:                                       ; preds = %96
  %113 = add nsw i64 %indvars.iv804, -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.iv804
  %121 = load float, ptr %120, align 4, !tbaa !15
  %122 = getelementptr inbounds float, ptr %4, i64 %indvars.iv804
  %123 = load float, ptr %122, align 4, !tbaa !15
  %124 = fsub float %121, %123
  br label %153

.thread733:                                       ; preds = %96
  %125 = add nsw i64 %indvars.iv804, -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
  %.707 = select i1 %132, float %131, float %129
  %133 = fsub float %127, %.707
  %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.iv804
  %141 = load float, ptr %140, align 4, !tbaa !15
  %142 = getelementptr inbounds float, ptr %5, i64 %indvars.iv804
  %143 = load float, ptr %142, align 4, !tbaa !15
  %144 = getelementptr inbounds float, ptr %2, i64 %indvars.iv804
  %145 = load float, ptr %144, align 4, !tbaa !15
  %146 = fcmp ult float %143, %145
  %.708 = select i1 %146, float %145, float %143
  %147 = fsub float %141, %.708
  %148 = select i1 %146, float %143, float %145
  %149 = getelementptr inbounds float, ptr %4, i64 %indvars.iv804
  %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, %.thread731, %.thread733, %.thread729
  %.pn = phi double [ %106, %.thread729 ], [ %119, %.thread731 ], [ %139, %.thread733 ], [ 0.000000e+00, %96 ]
  %.in702 = phi float [ %112, %.thread729 ], [ %124, %.thread731 ], [ %152, %.thread733 ], [ 0.000000e+00, %96 ]
  %154 = fadd double %97, %.pn
  %155 = fpext float %.in702 to double
  %156 = fadd double %98, %155
  %indvars.iv.next805 = add nsw i64 %indvars.iv804, 1
  %157 = icmp slt i64 %indvars.iv.next805, %87
  br i1 %157, label %96, label %.preheader, !llvm.loop !19

158:                                              ; preds = %.preheader, %595
  %.sroa.8.0 = phi double [ %.lcssa776, %.preheader ], [ %440, %595 ]
  %.sroa.0.0 = phi double [ %.lcssa778, %.preheader ], [ %551, %595 ]
  %indvars.iv816 = phi i64 [ %.pre-phi, %.preheader ], [ %indvars.iv.next817, %595 ]
  %indvars.iv814 = phi i64 [ %95, %.preheader ], [ %indvars.iv.next815, %595 ]
  %indvars.iv812 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next813, %595 ]
  %indvars.iv810 = phi i64 [ %smax, %.preheader ], [ %indvars.iv.next811, %595 ]
  %.2 = phi i32 [ %spec.select, %.preheader ], [ %601, %595 ]
  %159 = phi <2 x double> [ %82, %.preheader ], [ %603, %595 ]
  %160 = add nsw i64 %indvars.iv810, -1
  %161 = add nsw i32 %.2, -1
  %162 = getelementptr inbounds float, ptr %5, i64 %160
  %163 = load float, ptr %162, align 4, !tbaa !15
  %164 = getelementptr inbounds float, ptr %2, i64 %160
  %165 = load float, ptr %164, align 4, !tbaa !15
  %166 = fcmp oge float %163, %165
  %167 = getelementptr inbounds float, ptr %5, i64 %indvars.iv810
  %168 = load float, ptr %167, align 4, !tbaa !15
  %169 = getelementptr inbounds float, ptr %2, i64 %indvars.iv810
  %170 = load float, ptr %169, align 4, !tbaa !15
  %171 = fcmp oge float %168, %170
  %172 = xor i1 %166, %171
  br i1 %172, label %173, label %.thread735

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

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

182:                                              ; preds = %173
  %183 = load i32, ptr %88, align 4, !tbaa !14
  switch i32 %183, label %199 [
    i32 0, label %.thread
    i32 1, label %184
    i32 2, label %190
  ]

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

190:                                              ; preds = %182
  %191 = getelementptr inbounds float, ptr %3, i64 %160
  %192 = load float, ptr %191, align 4, !tbaa !15
  %.709 = select i1 %166, float %163, float %165
  %193 = fsub float %192, %.709
  %194 = select i1 %166, float %165, float %163
  %195 = getelementptr inbounds float, ptr %4, i64 %160
  %196 = load float, ptr %195, align 4, !tbaa !15
  %197 = fsub float %194, %196
  %198 = fadd float %193, %197
  br label %199

199:                                              ; preds = %182, %190, %184
  %200 = phi float [ %189, %184 ], [ %198, %190 ], [ 0.000000e+00, %182 ]
  %201 = fpext float %200 to double
  br label %202

202:                                              ; preds = %199, %179
  %203 = phi i32 [ %.pre, %179 ], [ %183, %199 ]
  %204 = phi double [ %181, %179 ], [ %201, %199 ]
  %.fr = freeze i32 %203
  %205 = icmp eq i32 %.fr, 2
  br i1 %205, label %206, label %.thread

206:                                              ; preds = %202
  br label %.thread

.thread:                                          ; preds = %182, %202, %206
  %.pn852 = phi double [ %204, %206 ], [ %204, %202 ], [ %176, %182 ]
  %207 = phi i32 [ %.fr, %206 ], [ %.fr, %202 ], [ %183, %182 ]
  %208 = phi double [ 2.000000e+00, %206 ], [ 1.000000e+00, %202 ], [ 1.000000e+00, %182 ]
  %209 = fmul double %177, %.pn852
  %210 = fdiv double %209, %208
  %211 = fcmp olt double %210, %176
  br i1 %211, label %212, label %.thread735

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

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

224:                                              ; preds = %212
  %225 = load i32, ptr %89, align 4, !tbaa !14
  switch i32 %225, label %236 [
    i32 0, label %.thread836
    i32 1, label %226
    i32 2, label %230
  ]

226:                                              ; preds = %224
  %227 = getelementptr inbounds float, ptr %4, i64 %160
  %228 = load float, ptr %227, align 4, !tbaa !15
  %229 = fsub float %214, %228
  br label %236

230:                                              ; preds = %224
  %231 = select i1 %215, float %163, float %165
  %232 = getelementptr inbounds float, ptr %4, i64 %160
  %233 = load float, ptr %232, align 4, !tbaa !15
  %234 = fsub float %231, %233
  %235 = fadd float %216, %234
  br label %236

236:                                              ; preds = %224, %230, %226
  %237 = phi float [ %229, %226 ], [ %235, %230 ], [ 0.000000e+00, %224 ]
  %238 = fpext float %237 to double
  br label %239

239:                                              ; preds = %236, %220
  %240 = phi i32 [ %.pre830, %220 ], [ %225, %236 ]
  %241 = phi double [ %223, %220 ], [ %238, %236 ]
  %.fr853 = freeze i32 %240
  %242 = fmul double %218, %241
  %243 = icmp eq i32 %.fr853, 2
  %244 = select i1 %243, double 2.000000e+00, double 1.000000e+00
  %245 = fdiv double %242, %244
  %246 = fcmp ogt double %245, %217
  br i1 %246, label %252, label %.thread735

.thread836:                                       ; preds = %224
  %247 = fmul double %218, %176
  %248 = fcmp ogt double %247, %217
  br i1 %248, label %.thread839, label %.thread735

.thread839:                                       ; preds = %.thread836
  %.712838 = select i1 %215, float %163, float %165
  %249 = getelementptr inbounds float, ptr %4, i64 %160
  %250 = load float, ptr %249, align 4, !tbaa !15
  %251 = fsub float %.712838, %250
  br label %268

252:                                              ; preds = %239
  %.712 = select i1 %215, float %163, float %165
  %253 = getelementptr inbounds float, ptr %4, i64 %160
  %254 = load float, ptr %253, align 4, !tbaa !15
  %255 = fsub float %.712, %254
  br i1 %.not692, label %260, label %256

256:                                              ; preds = %252
  %257 = sitofp i32 %219 to double
  %258 = extractelement <2 x double> %159, i64 0
  %259 = fdiv double %258, %257
  br label %268

260:                                              ; preds = %252
  switch i32 %.fr853, label %265 [
    i32 0, label %268
    i32 1, label %261
    i32 2, label %263
  ]

261:                                              ; preds = %260
  %262 = fsub float %214, %254
  br label %265

263:                                              ; preds = %260
  %264 = fadd float %216, %255
  br label %265

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

268:                                              ; preds = %.thread839, %260, %265, %256
  %.in = phi float [ %255, %256 ], [ %255, %265 ], [ %255, %260 ], [ %251, %.thread839 ]
  %269 = phi float [ %254, %256 ], [ %254, %265 ], [ %254, %260 ], [ %250, %.thread839 ]
  %270 = phi i32 [ %.fr853, %256 ], [ %.fr853, %265 ], [ %.fr853, %260 ], [ 0, %.thread839 ]
  %271 = phi double [ %244, %256 ], [ %244, %265 ], [ %244, %260 ], [ 1.000000e+00, %.thread839 ]
  %272 = phi double [ %259, %256 ], [ %267, %265 ], [ %176, %260 ], [ %176, %.thread839 ]
  %273 = fpext float %.in to double
  %274 = fmul double %218, %272
  %275 = fdiv double %274, %271
  %276 = fcmp ogt double %275, %273
  br i1 %276, label %277, label %.thread735

277:                                              ; preds = %268
  %278 = fsub float %168, %170
  %279 = tail call float @llvm.fabs.f32(float %278)
  %280 = fpext float %279 to double
  br i1 %.not691, label %284, label %281

281:                                              ; preds = %277
  %282 = sitofp i32 %178 to double
  %283 = fdiv double %.sroa.0.0, %282
  br label %304

284:                                              ; preds = %277
  switch i32 %207, label %301 [
    i32 0, label %304
    i32 1, label %285
    i32 2, label %291
  ]

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

291:                                              ; preds = %284
  %292 = getelementptr inbounds float, ptr %3, i64 %indvars.iv810
  %293 = load float, ptr %292, align 4, !tbaa !15
  %294 = fcmp ult float %168, %170
  %.714 = select i1 %294, float %170, float %168
  %295 = fsub float %293, %.714
  %296 = select i1 %294, float %168, float %170
  %297 = getelementptr inbounds float, ptr %4, i64 %indvars.iv810
  %298 = load float, ptr %297, align 4, !tbaa !15
  %299 = fsub float %296, %298
  %300 = fadd float %295, %299
  br label %301

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

304:                                              ; preds = %284, %301, %281
  %305 = phi double [ %283, %281 ], [ %303, %301 ], [ %280, %284 ]
  %306 = fmul double %177, %305
  %307 = fdiv double %306, %208
  %308 = fcmp olt double %307, %280
  br i1 %308, label %309, label %.thread735

309:                                              ; preds = %304
  %310 = getelementptr inbounds float, ptr %3, i64 %indvars.iv810
  %311 = load float, ptr %310, align 4, !tbaa !15
  %312 = fcmp ult float %168, %170
  %.715 = select i1 %312, float %170, float %168
  %313 = fsub float %311, %.715
  %314 = fpext float %313 to double
  br i1 %.not692, label %319, label %315

315:                                              ; preds = %309
  %316 = sitofp i32 %219 to double
  %317 = extractelement <2 x double> %159, i64 1
  %318 = fdiv double %317, %316
  br label %333

319:                                              ; preds = %309
  switch i32 %270, label %330 [
    i32 0, label %333
    i32 1, label %320
    i32 2, label %324
  ]

320:                                              ; preds = %319
  %321 = getelementptr inbounds float, ptr %4, i64 %indvars.iv810
  %322 = load float, ptr %321, align 4, !tbaa !15
  %323 = fsub float %311, %322
  br label %330

324:                                              ; preds = %319
  %325 = select i1 %312, float %168, float %170
  %326 = getelementptr inbounds float, ptr %4, i64 %indvars.iv810
  %327 = load float, ptr %326, align 4, !tbaa !15
  %328 = fsub float %325, %327
  %329 = fadd float %313, %328
  br label %330

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

333:                                              ; preds = %319, %330, %315
  %334 = phi double [ %318, %315 ], [ %332, %330 ], [ %280, %319 ]
  %335 = fmul double %218, %334
  %336 = fdiv double %335, %271
  %337 = fcmp ogt double %336, %314
  br i1 %337, label %338, label %.thread735

338:                                              ; preds = %333
  %.717 = select i1 %312, float %168, float %170
  %339 = getelementptr inbounds float, ptr %4, i64 %indvars.iv810
  %340 = load float, ptr %339, align 4, !tbaa !15
  %341 = fsub float %.717, %340
  %342 = fpext float %341 to double
  br i1 %.not692, label %347, label %343

343:                                              ; preds = %338
  %344 = sitofp i32 %219 to double
  %345 = extractelement <2 x double> %159, i64 1
  %346 = fdiv double %345, %344
  br label %355

347:                                              ; preds = %338
  switch i32 %270, label %352 [
    i32 0, label %355
    i32 1, label %348
    i32 2, label %350
  ]

348:                                              ; preds = %347
  %349 = fsub float %311, %340
  br label %352

350:                                              ; preds = %347
  %351 = fadd float %313, %341
  br label %352

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

355:                                              ; preds = %347, %352, %343
  %356 = phi double [ %346, %343 ], [ %354, %352 ], [ %280, %347 ]
  %357 = fmul double %218, %356
  %358 = fdiv double %357, %271
  %359 = fcmp ogt double %358, %342
  br i1 %359, label %360, label %.thread735

360:                                              ; preds = %355
  br i1 %215, label %361, label %363

361:                                              ; preds = %360
  %362 = fcmp ogt float %340, %214
  br i1 %362, label %365, label %.thread735

363:                                              ; preds = %360
  %364 = fcmp olt float %311, %269
  br i1 %364, label %365, label %.thread735

365:                                              ; preds = %363, %361
  %366 = fcmp ogt float %279, %175
  %367 = trunc nsw i64 %indvars.iv810 to i32
  %368 = select i1 %366, i32 %367, i32 %161
  %369 = sext i32 %368 to i64
  %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 = fcmp oge float %371, %373
  %375 = select i1 %374, i32 100, i32 -100
  br label %.thread735

.thread735:                                       ; preds = %158, %.thread, %239, %268, %304, %333, %355, %363, %361, %.thread836, %365
  %.sink = phi i32 [ %375, %365 ], [ 0, %.thread836 ], [ 0, %361 ], [ 0, %363 ], [ 0, %355 ], [ 0, %333 ], [ 0, %304 ], [ 0, %268 ], [ 0, %239 ], [ 0, %.thread ], [ 0, %158 ]
  %376 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv812
  store i32 %.sink, ptr %376, align 4, !tbaa !5
  %377 = load i32, ptr %88, align 4, !tbaa !14
  %378 = load i32, ptr %89, align 4, !tbaa !14
  switch i32 %377, label %436 [
    i32 0, label %.thread736
    i32 1, label %.thread738
    i32 2, label %.thread740
  ]

.thread736:                                       ; preds = %.thread735
  %379 = add nsw i64 %indvars.iv810, -1
  %380 = getelementptr inbounds float, ptr %5, i64 %379
  %381 = load float, ptr %380, align 4, !tbaa !15
  %382 = getelementptr inbounds float, ptr %2, i64 %379
  %383 = load float, ptr %382, align 4, !tbaa !15
  %384 = fsub float %381, %383
  %385 = tail call float @llvm.fabs.f32(float %384)
  %386 = fpext float %385 to double
  %387 = add nsw i64 %indvars.iv816, -1
  %388 = getelementptr inbounds float, ptr %5, i64 %387
  %389 = load float, ptr %388, align 4, !tbaa !15
  %390 = getelementptr inbounds float, ptr %2, i64 %387
  %391 = load float, ptr %390, align 4, !tbaa !15
  %392 = fsub float %389, %391
  %393 = tail call float @llvm.fabs.f32(float %392)
  br label %436

.thread738:                                       ; preds = %.thread735
  %394 = add nsw i64 %indvars.iv810, -1
  %395 = getelementptr inbounds float, ptr %3, i64 %394
  %396 = load float, ptr %395, align 4, !tbaa !15
  %397 = getelementptr inbounds float, ptr %4, i64 %394
  %398 = load float, ptr %397, align 4, !tbaa !15
  %399 = fsub float %396, %398
  %400 = fpext float %399 to double
  %401 = add nsw i64 %indvars.iv816, -1
  %402 = getelementptr inbounds float, ptr %3, i64 %401
  %403 = load float, ptr %402, align 4, !tbaa !15
  %404 = getelementptr inbounds float, ptr %4, i64 %401
  %405 = load float, ptr %404, align 4, !tbaa !15
  %406 = fsub float %403, %405
  br label %436

.thread740:                                       ; preds = %.thread735
  %407 = add nsw i64 %indvars.iv810, -1
  %408 = getelementptr inbounds float, ptr %3, i64 %407
  %409 = load float, ptr %408, align 4, !tbaa !15
  %410 = getelementptr inbounds float, ptr %5, i64 %407
  %411 = load float, ptr %410, align 4, !tbaa !15
  %412 = getelementptr inbounds float, ptr %2, i64 %407
  %413 = load float, ptr %412, align 4, !tbaa !15
  %414 = fcmp ult float %411, %413
  %.719 = select i1 %414, float %413, float %411
  %415 = fsub float %409, %.719
  %416 = select i1 %414, float %411, float %413
  %417 = getelementptr inbounds float, ptr %4, i64 %407
  %418 = load float, ptr %417, align 4, !tbaa !15
  %419 = fsub float %416, %418
  %420 = fadd float %415, %419
  %421 = fpext float %420 to double
  %422 = add nsw i64 %indvars.iv816, -1
  %423 = getelementptr inbounds float, ptr %3, i64 %422
  %424 = load float, ptr %423, align 4, !tbaa !15
  %425 = getelementptr inbounds float, ptr %5, i64 %422
  %426 = load float, ptr %425, align 4, !tbaa !15
  %427 = getelementptr inbounds float, ptr %2, i64 %422
  %428 = load float, ptr %427, align 4, !tbaa !15
  %429 = fcmp ult float %426, %428
  %.720 = select i1 %429, float %428, float %426
  %430 = fsub float %424, %.720
  %431 = select i1 %429, float %426, float %428
  %432 = getelementptr inbounds float, ptr %4, i64 %422
  %433 = load float, ptr %432, align 4, !tbaa !15
  %434 = fsub float %431, %433
  %435 = fadd float %430, %434
  br label %436

436:                                              ; preds = %.thread735, %.thread738, %.thread740, %.thread736
  %437 = phi double [ %386, %.thread736 ], [ %400, %.thread738 ], [ %421, %.thread740 ], [ 0.000000e+00, %.thread735 ]
  %.in698 = phi float [ %393, %.thread736 ], [ %406, %.thread738 ], [ %435, %.thread740 ], [ 0.000000e+00, %.thread735 ]
  %438 = fpext float %.in698 to double
  %439 = fsub double %437, %438
  %440 = fadd double %.sroa.8.0, %439
  switch i32 %378, label %498 [
    i32 0, label %.thread742
    i32 1, label %.thread744
    i32 2, label %.thread746
  ]

.thread742:                                       ; preds = %436
  %441 = add nsw i64 %indvars.iv810, -1
  %442 = getelementptr inbounds float, ptr %5, i64 %441
  %443 = load float, ptr %442, align 4, !tbaa !15
  %444 = getelementptr inbounds float, ptr %2, i64 %441
  %445 = load float, ptr %444, align 4, !tbaa !15
  %446 = fsub float %443, %445
  %447 = tail call float @llvm.fabs.f32(float %446)
  %448 = fpext float %447 to double
  %449 = add nsw i64 %indvars.iv814, -1
  %450 = getelementptr inbounds float, ptr %5, i64 %449
  %451 = load float, ptr %450, align 4, !tbaa !15
  %452 = getelementptr inbounds float, ptr %2, i64 %449
  %453 = load float, ptr %452, align 4, !tbaa !15
  %454 = fsub float %451, %453
  %455 = tail call float @llvm.fabs.f32(float %454)
  br label %498

.thread744:                                       ; preds = %436
  %456 = add nsw i64 %indvars.iv810, -1
  %457 = getelementptr inbounds float, ptr %3, i64 %456
  %458 = load float, ptr %457, align 4, !tbaa !15
  %459 = getelementptr inbounds float, ptr %4, i64 %456
  %460 = load float, ptr %459, align 4, !tbaa !15
  %461 = fsub float %458, %460
  %462 = fpext float %461 to double
  %463 = add nsw i64 %indvars.iv814, -1
  %464 = getelementptr inbounds float, ptr %3, i64 %463
  %465 = load float, ptr %464, align 4, !tbaa !15
  %466 = getelementptr inbounds float, ptr %4, i64 %463
  %467 = load float, ptr %466, align 4, !tbaa !15
  %468 = fsub float %465, %467
  br label %498

.thread746:                                       ; preds = %436
  %469 = add nsw i64 %indvars.iv810, -1
  %470 = getelementptr inbounds float, ptr %3, i64 %469
  %471 = load float, ptr %470, align 4, !tbaa !15
  %472 = getelementptr inbounds float, ptr %5, i64 %469
  %473 = load float, ptr %472, align 4, !tbaa !15
  %474 = getelementptr inbounds float, ptr %2, i64 %469
  %475 = load float, ptr %474, align 4, !tbaa !15
  %476 = fcmp ult float %473, %475
  %.721 = select i1 %476, float %475, float %473
  %477 = fsub float %471, %.721
  %478 = select i1 %476, float %473, float %475
  %479 = getelementptr inbounds float, ptr %4, i64 %469
  %480 = load float, ptr %479, align 4, !tbaa !15
  %481 = fsub float %478, %480
  %482 = fadd float %477, %481
  %483 = fpext float %482 to double
  %484 = add nsw i64 %indvars.iv814, -1
  %485 = getelementptr inbounds float, ptr %3, i64 %484
  %486 = load float, ptr %485, align 4, !tbaa !15
  %487 = getelementptr inbounds float, ptr %5, i64 %484
  %488 = load float, ptr %487, align 4, !tbaa !15
  %489 = getelementptr inbounds float, ptr %2, i64 %484
  %490 = load float, ptr %489, align 4, !tbaa !15
  %491 = fcmp ult float %488, %490
  %.722 = select i1 %491, float %490, float %488
  %492 = fsub float %486, %.722
  %493 = select i1 %491, float %488, float %490
  %494 = getelementptr inbounds float, ptr %4, i64 %484
  %495 = load float, ptr %494, align 4, !tbaa !15
  %496 = fsub float %493, %495
  %497 = fadd float %492, %496
  br label %498

498:                                              ; preds = %436, %.thread744, %.thread746, %.thread742
  %499 = phi double [ %448, %.thread742 ], [ %462, %.thread744 ], [ %483, %.thread746 ], [ 0.000000e+00, %436 ]
  %.in700 = phi float [ %455, %.thread742 ], [ %468, %.thread744 ], [ %497, %.thread746 ], [ 0.000000e+00, %436 ]
  %500 = fpext float %.in700 to double
  %501 = fsub double %499, %500
  %502 = extractelement <2 x double> %159, i64 0
  %503 = fadd double %502, %501
  switch i32 %377, label %547 [
    i32 0, label %.thread736.1
    i32 1, label %.thread738.1
    i32 2, label %.thread740.1
  ]

.thread740.1:                                     ; preds = %498
  %504 = getelementptr inbounds float, ptr %3, i64 %indvars.iv810
  %505 = load float, ptr %504, align 4, !tbaa !15
  %506 = fcmp ult float %168, %170
  %.719.1 = select i1 %506, float %170, float %168
  %507 = fsub float %505, %.719.1
  %508 = select i1 %506, float %168, float %170
  %509 = getelementptr inbounds float, ptr %4, i64 %indvars.iv810
  %510 = load float, ptr %509, align 4, !tbaa !15
  %511 = fsub float %508, %510
  %512 = fadd float %507, %511
  %513 = fpext float %512 to double
  %514 = getelementptr inbounds float, ptr %3, i64 %indvars.iv816
  %515 = load float, ptr %514, align 4, !tbaa !15
  %516 = getelementptr inbounds float, ptr %5, i64 %indvars.iv816
  %517 = load float, ptr %516, align 4, !tbaa !15
  %518 = getelementptr inbounds float, ptr %2, i64 %indvars.iv816
  %519 = load float, ptr %518, align 4, !tbaa !15
  %520 = fcmp ult float %517, %519
  %.720.1 = select i1 %520, float %519, float %517
  %521 = fsub float %515, %.720.1
  %522 = select i1 %520, float %517, float %519
  %523 = getelementptr inbounds float, ptr %4, i64 %indvars.iv816
  %524 = load float, ptr %523, align 4, !tbaa !15
  %525 = fsub float %522, %524
  %526 = fadd float %521, %525
  br label %547

.thread738.1:                                     ; preds = %498
  %527 = getelementptr inbounds float, ptr %3, i64 %indvars.iv810
  %528 = load float, ptr %527, align 4, !tbaa !15
  %529 = getelementptr inbounds float, ptr %4, i64 %indvars.iv810
  %530 = load float, ptr %529, align 4, !tbaa !15
  %531 = fsub float %528, %530
  %532 = fpext float %531 to double
  %533 = getelementptr inbounds float, ptr %3, i64 %indvars.iv816
  %534 = load float, ptr %533, align 4, !tbaa !15
  %535 = getelementptr inbounds float, ptr %4, i64 %indvars.iv816
  %536 = load float, ptr %535, align 4, !tbaa !15
  %537 = fsub float %534, %536
  br label %547

.thread736.1:                                     ; preds = %498
  %538 = fsub float %168, %170
  %539 = tail call float @llvm.fabs.f32(float %538)
  %540 = fpext float %539 to double
  %541 = getelementptr inbounds float, ptr %5, i64 %indvars.iv816
  %542 = load float, ptr %541, align 4, !tbaa !15
  %543 = getelementptr inbounds float, ptr %2, i64 %indvars.iv816
  %544 = load float, ptr %543, align 4, !tbaa !15
  %545 = fsub float %542, %544
  %546 = tail call float @llvm.fabs.f32(float %545)
  br label %547

547:                                              ; preds = %.thread736.1, %.thread738.1, %.thread740.1, %498
  %548 = phi double [ %540, %.thread736.1 ], [ %532, %.thread738.1 ], [ %513, %.thread740.1 ], [ 0.000000e+00, %498 ]
  %.in698.1 = phi float [ %546, %.thread736.1 ], [ %537, %.thread738.1 ], [ %526, %.thread740.1 ], [ 0.000000e+00, %498 ]
  %549 = fpext float %.in698.1 to double
  %550 = fsub double %548, %549
  %551 = fadd double %.sroa.0.0, %550
  switch i32 %378, label %595 [
    i32 0, label %.thread742.1
    i32 1, label %.thread744.1
    i32 2, label %.thread746.1
  ]

.thread746.1:                                     ; preds = %547
  %552 = getelementptr inbounds float, ptr %3, i64 %indvars.iv810
  %553 = load float, ptr %552, align 4, !tbaa !15
  %554 = fcmp ult float %168, %170
  %.721.1 = select i1 %554, float %170, float %168
  %555 = fsub float %553, %.721.1
  %556 = select i1 %554, float %168, float %170
  %557 = getelementptr inbounds float, ptr %4, i64 %indvars.iv810
  %558 = load float, ptr %557, align 4, !tbaa !15
  %559 = fsub float %556, %558
  %560 = fadd float %555, %559
  %561 = fpext float %560 to double
  %562 = getelementptr inbounds float, ptr %3, i64 %indvars.iv814
  %563 = load float, ptr %562, align 4, !tbaa !15
  %564 = getelementptr inbounds float, ptr %5, i64 %indvars.iv814
  %565 = load float, ptr %564, align 4, !tbaa !15
  %566 = getelementptr inbounds float, ptr %2, i64 %indvars.iv814
  %567 = load float, ptr %566, align 4, !tbaa !15
  %568 = fcmp ult float %565, %567
  %.722.1 = select i1 %568, float %567, float %565
  %569 = fsub float %563, %.722.1
  %570 = select i1 %568, float %565, float %567
  %571 = getelementptr inbounds float, ptr %4, i64 %indvars.iv814
  %572 = load float, ptr %571, align 4, !tbaa !15
  %573 = fsub float %570, %572
  %574 = fadd float %569, %573
  br label %595

.thread744.1:                                     ; preds = %547
  %575 = getelementptr inbounds float, ptr %3, i64 %indvars.iv810
  %576 = load float, ptr %575, align 4, !tbaa !15
  %577 = getelementptr inbounds float, ptr %4, i64 %indvars.iv810
  %578 = load float, ptr %577, align 4, !tbaa !15
  %579 = fsub float %576, %578
  %580 = fpext float %579 to double
  %581 = getelementptr inbounds float, ptr %3, i64 %indvars.iv814
  %582 = load float, ptr %581, align 4, !tbaa !15
  %583 = getelementptr inbounds float, ptr %4, i64 %indvars.iv814
  %584 = load float, ptr %583, align 4, !tbaa !15
  %585 = fsub float %582, %584
  br label %595

.thread742.1:                                     ; preds = %547
  %586 = fsub float %168, %170
  %587 = tail call float @llvm.fabs.f32(float %586)
  %588 = fpext float %587 to double
  %589 = getelementptr inbounds float, ptr %5, i64 %indvars.iv814
  %590 = load float, ptr %589, align 4, !tbaa !15
  %591 = getelementptr inbounds float, ptr %2, i64 %indvars.iv814
  %592 = load float, ptr %591, align 4, !tbaa !15
  %593 = fsub float %590, %592
  %594 = tail call float @llvm.fabs.f32(float %593)
  br label %595

595:                                              ; preds = %.thread742.1, %.thread744.1, %.thread746.1, %547
  %596 = phi double [ %588, %.thread742.1 ], [ %580, %.thread744.1 ], [ %561, %.thread746.1 ], [ 0.000000e+00, %547 ]
  %.in700.1 = phi float [ %594, %.thread742.1 ], [ %585, %.thread744.1 ], [ %574, %.thread746.1 ], [ 0.000000e+00, %547 ]
  %597 = fpext float %.in700.1 to double
  %598 = fsub double %596, %597
  %599 = extractelement <2 x double> %159, i64 1
  %600 = fadd double %599, %598
  %indvars.iv.next813 = add nuw nsw i64 %indvars.iv812, 1
  %indvars.iv.next811 = add nuw nsw i64 %indvars.iv810, 1
  %601 = add nuw nsw i32 %.2, 1
  %indvars.iv.next815 = add nsw i64 %indvars.iv814, 1
  %indvars.iv.next817 = add nsw i64 %indvars.iv816, 1
  %.not697.not = icmp slt i64 %indvars.iv810, %94
  %602 = insertelement <2 x double> poison, double %503, i64 0
  %603 = insertelement <2 x double> %602, double %600, i64 1
  br i1 %.not697.not, label %158, label %604, !llvm.loop !21

604:                                              ; preds = %595
  %605 = trunc nuw i64 %indvars.iv.next813 to i32
  store i32 %605, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %606

606:                                              ; preds = %13, %11, %9, %604, %24
  %.0 = phi i32 [ 0, %24 ], [ 0, %604 ], [ 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