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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

114:                                              ; preds = %505, %75
  %115 = load i32, ptr %24, align 4, !tbaa !5
  %116 = load i32, ptr %11, align 4, !tbaa !5
  %117 = icmp slt i32 %115, %116
  br i1 %117, label %118, label %512

118:                                              ; preds = %114
  %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, 0
  br i1 %124, label %125, label %141

125:                                              ; preds = %118
  %126 = load ptr, ptr %16, align 8, !tbaa !9
  %127 = load i32, ptr %24, align 4, !tbaa !5
  %128 = sub nsw i32 %127, 2
  %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 %13, align 8, !tbaa !9
  %133 = load i32, ptr %24, align 4, !tbaa !5
  %134 = sub nsw i32 %133, 2
  %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
  %139 = fpext float %138 to double
  %140 = call double @llvm.fabs.f64(double %139)
  br label %249

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

148:                                              ; preds = %141
  %149 = load ptr, ptr %14, align 8, !tbaa !9
  %150 = load i32, ptr %24, align 4, !tbaa !5
  %151 = sub nsw i32 %150, 2
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds float, ptr %149, i64 %152
  %154 = load float, ptr %153, align 4, !tbaa !16
  %155 = load ptr, ptr %15, align 8, !tbaa !9
  %156 = load i32, ptr %24, align 4, !tbaa !5
  %157 = sub nsw i32 %156, 2
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds float, ptr %155, i64 %158
  %160 = load float, ptr %159, align 4, !tbaa !16
  %161 = fsub float %154, %160
  br label %246

162:                                              ; preds = %141
  %163 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %164 = getelementptr inbounds %struct.TA_LibcPriv, ptr %163, i32 0, i32 8
  %165 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %164, i64 0, i64 7
  %166 = getelementptr inbounds %struct.TA_CandleSetting, ptr %165, i32 0, i32 1
  %167 = load i32, ptr %166, align 4, !tbaa !15
  %168 = icmp eq i32 %167, 2
  br i1 %168, label %169, label %243

169:                                              ; preds = %162
  %170 = load ptr, ptr %14, align 8, !tbaa !9
  %171 = load i32, ptr %24, align 4, !tbaa !5
  %172 = sub nsw i32 %171, 2
  %173 = sext i32 %172 to i64
  %174 = getelementptr inbounds float, ptr %170, i64 %173
  %175 = load float, ptr %174, align 4, !tbaa !16
  %176 = load ptr, ptr %16, align 8, !tbaa !9
  %177 = load i32, ptr %24, align 4, !tbaa !5
  %178 = sub nsw i32 %177, 2
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds float, ptr %176, i64 %179
  %181 = load float, ptr %180, align 4, !tbaa !16
  %182 = load ptr, ptr %13, align 8, !tbaa !9
  %183 = load i32, ptr %24, align 4, !tbaa !5
  %184 = sub nsw i32 %183, 2
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds float, ptr %182, i64 %185
  %187 = load float, ptr %186, align 4, !tbaa !16
  %188 = fcmp oge float %181, %187
  br i1 %188, label %189, label %196

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

196:                                              ; preds = %169
  %197 = load ptr, ptr %13, align 8, !tbaa !9
  %198 = load i32, ptr %24, align 4, !tbaa !5
  %199 = sub nsw i32 %198, 2
  %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 %203

203:                                              ; preds = %196, %189
  %204 = phi float [ %195, %189 ], [ %202, %196 ]
  %205 = fsub float %175, %204
  %206 = load ptr, ptr %16, align 8, !tbaa !9
  %207 = load i32, ptr %24, align 4, !tbaa !5
  %208 = sub nsw i32 %207, 2
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds float, ptr %206, i64 %209
  %211 = load float, ptr %210, align 4, !tbaa !16
  %212 = load ptr, ptr %13, align 8, !tbaa !9
  %213 = load i32, ptr %24, align 4, !tbaa !5
  %214 = sub nsw i32 %213, 2
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds float, ptr %212, i64 %215
  %217 = load float, ptr %216, align 4, !tbaa !16
  %218 = fcmp oge float %211, %217
  br i1 %218, label %219, label %226

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

226:                                              ; preds = %203
  %227 = load ptr, ptr %16, align 8, !tbaa !9
  %228 = load i32, ptr %24, align 4, !tbaa !5
  %229 = sub nsw i32 %228, 2
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds float, ptr %227, i64 %230
  %232 = load float, ptr %231, align 4, !tbaa !16
  br label %233

233:                                              ; preds = %226, %219
  %234 = phi float [ %225, %219 ], [ %232, %226 ]
  %235 = load ptr, ptr %15, align 8, !tbaa !9
  %236 = load i32, ptr %24, align 4, !tbaa !5
  %237 = sub nsw i32 %236, 2
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds float, ptr %235, i64 %238
  %240 = load float, ptr %239, align 4, !tbaa !16
  %241 = fsub float %234, %240
  %242 = fadd float %205, %241
  br label %244

243:                                              ; preds = %162
  br label %244

244:                                              ; preds = %243, %233
  %245 = phi float [ %242, %233 ], [ 0.000000e+00, %243 ]
  br label %246

246:                                              ; preds = %244, %148
  %247 = phi float [ %161, %148 ], [ %245, %244 ]
  %248 = fpext float %247 to double
  br label %249

249:                                              ; preds = %246, %125
  %250 = phi double [ %140, %125 ], [ %248, %246 ]
  %251 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 2
  %252 = load double, ptr %251, align 16, !tbaa !11
  %253 = fadd double %252, %250
  store double %253, ptr %251, align 16, !tbaa !11
  %254 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %255 = getelementptr inbounds %struct.TA_LibcPriv, ptr %254, i32 0, i32 8
  %256 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %255, i64 0, i64 7
  %257 = getelementptr inbounds %struct.TA_CandleSetting, ptr %256, i32 0, i32 1
  %258 = load i32, ptr %257, align 4, !tbaa !15
  %259 = icmp eq i32 %258, 0
  br i1 %259, label %260, label %276

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

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

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

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

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

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

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

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

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

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

368:                                              ; preds = %361, %354
  %369 = phi float [ %360, %354 ], [ %367, %361 ]
  %370 = load ptr, ptr %15, align 8, !tbaa !9
  %371 = load i32, ptr %24, align 4, !tbaa !5
  %372 = sub nsw i32 %371, 1
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds float, ptr %370, i64 %373
  %375 = load float, ptr %374, align 4, !tbaa !16
  %376 = fsub float %369, %375
  %377 = fadd float %340, %376
  br label %379

378:                                              ; preds = %297
  br label %379

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

381:                                              ; preds = %379, %283
  %382 = phi float [ %296, %283 ], [ %380, %379 ]
  %383 = fpext float %382 to double
  br label %384

384:                                              ; preds = %381, %260
  %385 = phi double [ %275, %260 ], [ %383, %381 ]
  %386 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  %387 = load double, ptr %386, align 8, !tbaa !11
  %388 = fadd double %387, %385
  store double %388, ptr %386, align 8, !tbaa !11
  %389 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %390 = getelementptr inbounds %struct.TA_LibcPriv, ptr %389, i32 0, i32 8
  %391 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %390, i64 0, i64 7
  %392 = getelementptr inbounds %struct.TA_CandleSetting, ptr %391, i32 0, i32 1
  %393 = load i32, ptr %392, align 4, !tbaa !15
  %394 = icmp eq i32 %393, 0
  br i1 %394, label %395, label %409

395:                                              ; preds = %384
  %396 = load ptr, ptr %16, align 8, !tbaa !9
  %397 = load i32, ptr %24, align 4, !tbaa !5
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds float, ptr %396, i64 %398
  %400 = load float, ptr %399, align 4, !tbaa !16
  %401 = load ptr, ptr %13, align 8, !tbaa !9
  %402 = load i32, ptr %24, align 4, !tbaa !5
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds float, ptr %401, i64 %403
  %405 = load float, ptr %404, align 4, !tbaa !16
  %406 = fsub float %400, %405
  %407 = fpext float %406 to double
  %408 = call double @llvm.fabs.f64(double %407)
  br label %505

409:                                              ; preds = %384
  %410 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %411 = getelementptr inbounds %struct.TA_LibcPriv, ptr %410, i32 0, i32 8
  %412 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %411, i64 0, i64 7
  %413 = getelementptr inbounds %struct.TA_CandleSetting, ptr %412, i32 0, i32 1
  %414 = load i32, ptr %413, align 4, !tbaa !15
  %415 = icmp eq i32 %414, 1
  br i1 %415, label %416, label %428

416:                                              ; preds = %409
  %417 = load ptr, ptr %14, align 8, !tbaa !9
  %418 = load i32, ptr %24, align 4, !tbaa !5
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %417, i64 %419
  %421 = load float, ptr %420, align 4, !tbaa !16
  %422 = load ptr, ptr %15, align 8, !tbaa !9
  %423 = load i32, ptr %24, align 4, !tbaa !5
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds float, ptr %422, i64 %424
  %426 = load float, ptr %425, align 4, !tbaa !16
  %427 = fsub float %421, %426
  br label %502

428:                                              ; preds = %409
  %429 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %430 = getelementptr inbounds %struct.TA_LibcPriv, ptr %429, i32 0, i32 8
  %431 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %430, i64 0, i64 7
  %432 = getelementptr inbounds %struct.TA_CandleSetting, ptr %431, i32 0, i32 1
  %433 = load i32, ptr %432, align 4, !tbaa !15
  %434 = icmp eq i32 %433, 2
  br i1 %434, label %435, label %499

435:                                              ; preds = %428
  %436 = load ptr, ptr %14, align 8, !tbaa !9
  %437 = load i32, ptr %24, align 4, !tbaa !5
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds float, ptr %436, i64 %438
  %440 = load float, ptr %439, align 4, !tbaa !16
  %441 = load ptr, ptr %16, align 8, !tbaa !9
  %442 = load i32, ptr %24, align 4, !tbaa !5
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds float, ptr %441, i64 %443
  %445 = load float, ptr %444, align 4, !tbaa !16
  %446 = load ptr, ptr %13, align 8, !tbaa !9
  %447 = load i32, ptr %24, align 4, !tbaa !5
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %446, i64 %448
  %450 = load float, ptr %449, align 4, !tbaa !16
  %451 = fcmp oge float %445, %450
  br i1 %451, label %452, label %458

452:                                              ; preds = %435
  %453 = load ptr, ptr %16, align 8, !tbaa !9
  %454 = load i32, ptr %24, align 4, !tbaa !5
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds float, ptr %453, i64 %455
  %457 = load float, ptr %456, align 4, !tbaa !16
  br label %464

458:                                              ; preds = %435
  %459 = load ptr, ptr %13, align 8, !tbaa !9
  %460 = load i32, ptr %24, align 4, !tbaa !5
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds float, ptr %459, i64 %461
  %463 = load float, ptr %462, align 4, !tbaa !16
  br label %464

464:                                              ; preds = %458, %452
  %465 = phi float [ %457, %452 ], [ %463, %458 ]
  %466 = fsub float %440, %465
  %467 = load ptr, ptr %16, align 8, !tbaa !9
  %468 = load i32, ptr %24, align 4, !tbaa !5
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds float, ptr %467, i64 %469
  %471 = load float, ptr %470, align 4, !tbaa !16
  %472 = load ptr, ptr %13, align 8, !tbaa !9
  %473 = load i32, ptr %24, align 4, !tbaa !5
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds float, ptr %472, i64 %474
  %476 = load float, ptr %475, align 4, !tbaa !16
  %477 = fcmp oge float %471, %476
  br i1 %477, label %478, label %484

478:                                              ; preds = %464
  %479 = load ptr, ptr %13, align 8, !tbaa !9
  %480 = load i32, ptr %24, align 4, !tbaa !5
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds float, ptr %479, i64 %481
  %483 = load float, ptr %482, align 4, !tbaa !16
  br label %490

484:                                              ; preds = %464
  %485 = load ptr, ptr %16, align 8, !tbaa !9
  %486 = load i32, ptr %24, align 4, !tbaa !5
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds float, ptr %485, i64 %487
  %489 = load float, ptr %488, align 4, !tbaa !16
  br label %490

490:                                              ; preds = %484, %478
  %491 = phi float [ %483, %478 ], [ %489, %484 ]
  %492 = load ptr, ptr %15, align 8, !tbaa !9
  %493 = load i32, ptr %24, align 4, !tbaa !5
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds float, ptr %492, i64 %494
  %496 = load float, ptr %495, align 4, !tbaa !16
  %497 = fsub float %491, %496
  %498 = fadd float %466, %497
  br label %500

499:                                              ; preds = %428
  br label %500

500:                                              ; preds = %499, %490
  %501 = phi float [ %498, %490 ], [ 0.000000e+00, %499 ]
  br label %502

502:                                              ; preds = %500, %416
  %503 = phi float [ %427, %416 ], [ %501, %500 ]
  %504 = fpext float %503 to double
  br label %505

505:                                              ; preds = %502, %395
  %506 = phi double [ %408, %395 ], [ %504, %502 ]
  %507 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 0
  %508 = load double, ptr %507, align 16, !tbaa !11
  %509 = fadd double %508, %506
  store double %509, ptr %507, align 16, !tbaa !11
  %510 = load i32, ptr %24, align 4, !tbaa !5
  %511 = add nsw i32 %510, 1
  store i32 %511, ptr %24, align 4, !tbaa !5
  br label %114, !llvm.loop !18

512:                                              ; preds = %114
  %513 = load i32, ptr %28, align 4, !tbaa !5
  store i32 %513, ptr %24, align 4, !tbaa !5
  br label %514

514:                                              ; preds = %784, %512
  %515 = load i32, ptr %24, align 4, !tbaa !5
  %516 = load i32, ptr %11, align 4, !tbaa !5
  %517 = icmp slt i32 %515, %516
  br i1 %517, label %518, label %791

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

525:                                              ; preds = %518
  %526 = load ptr, ptr %16, align 8, !tbaa !9
  %527 = load i32, ptr %24, align 4, !tbaa !5
  %528 = sub nsw i32 %527, 2
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %526, i64 %529
  %531 = load float, ptr %530, align 4, !tbaa !16
  %532 = load ptr, ptr %13, align 8, !tbaa !9
  %533 = load i32, ptr %24, align 4, !tbaa !5
  %534 = sub nsw i32 %533, 2
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds float, ptr %532, i64 %535
  %537 = load float, ptr %536, align 4, !tbaa !16
  %538 = fsub float %531, %537
  %539 = fpext float %538 to double
  %540 = call double @llvm.fabs.f64(double %539)
  br label %649

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

548:                                              ; preds = %541
  %549 = load ptr, ptr %14, align 8, !tbaa !9
  %550 = load i32, ptr %24, align 4, !tbaa !5
  %551 = sub nsw i32 %550, 2
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds float, ptr %549, i64 %552
  %554 = load float, ptr %553, align 4, !tbaa !16
  %555 = load ptr, ptr %15, align 8, !tbaa !9
  %556 = load i32, ptr %24, align 4, !tbaa !5
  %557 = sub nsw i32 %556, 2
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds float, ptr %555, i64 %558
  %560 = load float, ptr %559, align 4, !tbaa !16
  %561 = fsub float %554, %560
  br label %646

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

569:                                              ; preds = %562
  %570 = load ptr, ptr %14, align 8, !tbaa !9
  %571 = load i32, ptr %24, align 4, !tbaa !5
  %572 = sub nsw i32 %571, 2
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds float, ptr %570, i64 %573
  %575 = load float, ptr %574, align 4, !tbaa !16
  %576 = load ptr, ptr %16, align 8, !tbaa !9
  %577 = load i32, ptr %24, align 4, !tbaa !5
  %578 = sub nsw i32 %577, 2
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %576, i64 %579
  %581 = load float, ptr %580, align 4, !tbaa !16
  %582 = load ptr, ptr %13, align 8, !tbaa !9
  %583 = load i32, ptr %24, align 4, !tbaa !5
  %584 = sub nsw i32 %583, 2
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds float, ptr %582, i64 %585
  %587 = load float, ptr %586, align 4, !tbaa !16
  %588 = fcmp oge float %581, %587
  br i1 %588, label %589, label %596

589:                                              ; preds = %569
  %590 = load ptr, ptr %16, align 8, !tbaa !9
  %591 = load i32, ptr %24, align 4, !tbaa !5
  %592 = sub nsw i32 %591, 2
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds float, ptr %590, i64 %593
  %595 = load float, ptr %594, align 4, !tbaa !16
  br label %603

596:                                              ; preds = %569
  %597 = load ptr, ptr %13, align 8, !tbaa !9
  %598 = load i32, ptr %24, align 4, !tbaa !5
  %599 = sub nsw i32 %598, 2
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %597, i64 %600
  %602 = load float, ptr %601, align 4, !tbaa !16
  br label %603

603:                                              ; preds = %596, %589
  %604 = phi float [ %595, %589 ], [ %602, %596 ]
  %605 = fsub float %575, %604
  %606 = load ptr, ptr %16, align 8, !tbaa !9
  %607 = load i32, ptr %24, align 4, !tbaa !5
  %608 = sub nsw i32 %607, 2
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds float, ptr %606, i64 %609
  %611 = load float, ptr %610, align 4, !tbaa !16
  %612 = load ptr, ptr %13, align 8, !tbaa !9
  %613 = load i32, ptr %24, align 4, !tbaa !5
  %614 = sub nsw i32 %613, 2
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds float, ptr %612, i64 %615
  %617 = load float, ptr %616, align 4, !tbaa !16
  %618 = fcmp oge float %611, %617
  br i1 %618, label %619, label %626

619:                                              ; preds = %603
  %620 = load ptr, ptr %13, align 8, !tbaa !9
  %621 = load i32, ptr %24, align 4, !tbaa !5
  %622 = sub nsw i32 %621, 2
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds float, ptr %620, i64 %623
  %625 = load float, ptr %624, align 4, !tbaa !16
  br label %633

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

633:                                              ; preds = %626, %619
  %634 = phi float [ %625, %619 ], [ %632, %626 ]
  %635 = load ptr, ptr %15, align 8, !tbaa !9
  %636 = load i32, ptr %24, align 4, !tbaa !5
  %637 = sub nsw i32 %636, 2
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds float, ptr %635, i64 %638
  %640 = load float, ptr %639, align 4, !tbaa !16
  %641 = fsub float %634, %640
  %642 = fadd float %605, %641
  br label %644

643:                                              ; preds = %562
  br label %644

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

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

649:                                              ; preds = %646, %525
  %650 = phi double [ %540, %525 ], [ %648, %646 ]
  %651 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  %652 = load double, ptr %651, align 16, !tbaa !11
  %653 = fadd double %652, %650
  store double %653, ptr %651, align 16, !tbaa !11
  %654 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %655 = getelementptr inbounds %struct.TA_LibcPriv, ptr %654, i32 0, i32 8
  %656 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %655, i64 0, i64 8
  %657 = getelementptr inbounds %struct.TA_CandleSetting, ptr %656, i32 0, i32 1
  %658 = load i32, ptr %657, align 4, !tbaa !15
  %659 = icmp eq i32 %658, 0
  br i1 %659, label %660, label %676

660:                                              ; preds = %649
  %661 = load ptr, ptr %16, align 8, !tbaa !9
  %662 = load i32, ptr %24, align 4, !tbaa !5
  %663 = sub nsw i32 %662, 1
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds float, ptr %661, i64 %664
  %666 = load float, ptr %665, align 4, !tbaa !16
  %667 = load ptr, ptr %13, align 8, !tbaa !9
  %668 = load i32, ptr %24, align 4, !tbaa !5
  %669 = sub nsw i32 %668, 1
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds float, ptr %667, i64 %670
  %672 = load float, ptr %671, align 4, !tbaa !16
  %673 = fsub float %666, %672
  %674 = fpext float %673 to double
  %675 = call double @llvm.fabs.f64(double %674)
  br label %784

676:                                              ; preds = %649
  %677 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %678 = getelementptr inbounds %struct.TA_LibcPriv, ptr %677, i32 0, i32 8
  %679 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %678, i64 0, i64 8
  %680 = getelementptr inbounds %struct.TA_CandleSetting, ptr %679, i32 0, i32 1
  %681 = load i32, ptr %680, align 4, !tbaa !15
  %682 = icmp eq i32 %681, 1
  br i1 %682, label %683, label %697

683:                                              ; preds = %676
  %684 = load ptr, ptr %14, align 8, !tbaa !9
  %685 = load i32, ptr %24, align 4, !tbaa !5
  %686 = sub nsw i32 %685, 1
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %684, i64 %687
  %689 = load float, ptr %688, align 4, !tbaa !16
  %690 = load ptr, ptr %15, align 8, !tbaa !9
  %691 = load i32, ptr %24, align 4, !tbaa !5
  %692 = sub nsw i32 %691, 1
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds float, ptr %690, i64 %693
  %695 = load float, ptr %694, align 4, !tbaa !16
  %696 = fsub float %689, %695
  br label %781

697:                                              ; preds = %676
  %698 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %699 = getelementptr inbounds %struct.TA_LibcPriv, ptr %698, i32 0, i32 8
  %700 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %699, i64 0, i64 8
  %701 = getelementptr inbounds %struct.TA_CandleSetting, ptr %700, i32 0, i32 1
  %702 = load i32, ptr %701, align 4, !tbaa !15
  %703 = icmp eq i32 %702, 2
  br i1 %703, label %704, label %778

704:                                              ; preds = %697
  %705 = load ptr, ptr %14, align 8, !tbaa !9
  %706 = load i32, ptr %24, align 4, !tbaa !5
  %707 = sub nsw i32 %706, 1
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds float, ptr %705, i64 %708
  %710 = load float, ptr %709, align 4, !tbaa !16
  %711 = load ptr, ptr %16, align 8, !tbaa !9
  %712 = load i32, ptr %24, align 4, !tbaa !5
  %713 = sub nsw i32 %712, 1
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds float, ptr %711, i64 %714
  %716 = load float, ptr %715, align 4, !tbaa !16
  %717 = load ptr, ptr %13, align 8, !tbaa !9
  %718 = load i32, ptr %24, align 4, !tbaa !5
  %719 = sub nsw i32 %718, 1
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds float, ptr %717, i64 %720
  %722 = load float, ptr %721, align 4, !tbaa !16
  %723 = fcmp oge float %716, %722
  br i1 %723, label %724, label %731

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

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

738:                                              ; preds = %731, %724
  %739 = phi float [ %730, %724 ], [ %737, %731 ]
  %740 = fsub float %710, %739
  %741 = load ptr, ptr %16, align 8, !tbaa !9
  %742 = load i32, ptr %24, align 4, !tbaa !5
  %743 = sub nsw i32 %742, 1
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds float, ptr %741, i64 %744
  %746 = load float, ptr %745, align 4, !tbaa !16
  %747 = load ptr, ptr %13, align 8, !tbaa !9
  %748 = load i32, ptr %24, align 4, !tbaa !5
  %749 = sub nsw i32 %748, 1
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds float, ptr %747, i64 %750
  %752 = load float, ptr %751, align 4, !tbaa !16
  %753 = fcmp oge float %746, %752
  br i1 %753, label %754, label %761

754:                                              ; preds = %738
  %755 = load ptr, ptr %13, align 8, !tbaa !9
  %756 = load i32, ptr %24, align 4, !tbaa !5
  %757 = sub nsw i32 %756, 1
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds float, ptr %755, i64 %758
  %760 = load float, ptr %759, align 4, !tbaa !16
  br label %768

761:                                              ; preds = %738
  %762 = load ptr, ptr %16, align 8, !tbaa !9
  %763 = load i32, ptr %24, 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 %768

768:                                              ; preds = %761, %754
  %769 = phi float [ %760, %754 ], [ %767, %761 ]
  %770 = load ptr, ptr %15, align 8, !tbaa !9
  %771 = load i32, ptr %24, align 4, !tbaa !5
  %772 = sub nsw i32 %771, 1
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds float, ptr %770, i64 %773
  %775 = load float, ptr %774, align 4, !tbaa !16
  %776 = fsub float %769, %775
  %777 = fadd float %740, %776
  br label %779

778:                                              ; preds = %697
  br label %779

779:                                              ; preds = %778, %768
  %780 = phi float [ %777, %768 ], [ 0.000000e+00, %778 ]
  br label %781

781:                                              ; preds = %779, %683
  %782 = phi float [ %696, %683 ], [ %780, %779 ]
  %783 = fpext float %782 to double
  br label %784

784:                                              ; preds = %781, %660
  %785 = phi double [ %675, %660 ], [ %783, %781 ]
  %786 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %787 = load double, ptr %786, align 8, !tbaa !11
  %788 = fadd double %787, %785
  store double %788, ptr %786, align 8, !tbaa !11
  %789 = load i32, ptr %24, align 4, !tbaa !5
  %790 = add nsw i32 %789, 1
  store i32 %790, ptr %24, align 4, !tbaa !5
  br label %514, !llvm.loop !20

791:                                              ; preds = %514
  %792 = load i32, ptr %29, align 4, !tbaa !5
  store i32 %792, ptr %24, align 4, !tbaa !5
  br label %793

793:                                              ; preds = %1063, %791
  %794 = load i32, ptr %24, align 4, !tbaa !5
  %795 = load i32, ptr %11, align 4, !tbaa !5
  %796 = icmp slt i32 %794, %795
  br i1 %796, label %797, label %1070

797:                                              ; preds = %793
  %798 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %799 = getelementptr inbounds %struct.TA_LibcPriv, ptr %798, i32 0, i32 8
  %800 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %799, i64 0, i64 9
  %801 = getelementptr inbounds %struct.TA_CandleSetting, ptr %800, i32 0, i32 1
  %802 = load i32, ptr %801, align 4, !tbaa !15
  %803 = icmp eq i32 %802, 0
  br i1 %803, label %804, label %820

804:                                              ; preds = %797
  %805 = load ptr, ptr %16, align 8, !tbaa !9
  %806 = load i32, ptr %24, align 4, !tbaa !5
  %807 = sub nsw i32 %806, 2
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds float, ptr %805, i64 %808
  %810 = load float, ptr %809, align 4, !tbaa !16
  %811 = load ptr, ptr %13, align 8, !tbaa !9
  %812 = load i32, ptr %24, align 4, !tbaa !5
  %813 = sub nsw i32 %812, 2
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds float, ptr %811, i64 %814
  %816 = load float, ptr %815, align 4, !tbaa !16
  %817 = fsub float %810, %816
  %818 = fpext float %817 to double
  %819 = call double @llvm.fabs.f64(double %818)
  br label %928

820:                                              ; preds = %797
  %821 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %822 = getelementptr inbounds %struct.TA_LibcPriv, ptr %821, i32 0, i32 8
  %823 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %822, i64 0, i64 9
  %824 = getelementptr inbounds %struct.TA_CandleSetting, ptr %823, i32 0, i32 1
  %825 = load i32, ptr %824, align 4, !tbaa !15
  %826 = icmp eq i32 %825, 1
  br i1 %826, label %827, label %841

827:                                              ; preds = %820
  %828 = load ptr, ptr %14, align 8, !tbaa !9
  %829 = load i32, ptr %24, align 4, !tbaa !5
  %830 = sub nsw i32 %829, 2
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds float, ptr %828, i64 %831
  %833 = load float, ptr %832, align 4, !tbaa !16
  %834 = load ptr, ptr %15, align 8, !tbaa !9
  %835 = load i32, ptr %24, align 4, !tbaa !5
  %836 = sub nsw i32 %835, 2
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds float, ptr %834, i64 %837
  %839 = load float, ptr %838, align 4, !tbaa !16
  %840 = fsub float %833, %839
  br label %925

841:                                              ; preds = %820
  %842 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %843 = getelementptr inbounds %struct.TA_LibcPriv, ptr %842, i32 0, i32 8
  %844 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %843, i64 0, i64 9
  %845 = getelementptr inbounds %struct.TA_CandleSetting, ptr %844, i32 0, i32 1
  %846 = load i32, ptr %845, align 4, !tbaa !15
  %847 = icmp eq i32 %846, 2
  br i1 %847, label %848, label %922

848:                                              ; preds = %841
  %849 = load ptr, ptr %14, align 8, !tbaa !9
  %850 = load i32, ptr %24, align 4, !tbaa !5
  %851 = sub nsw i32 %850, 2
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds float, ptr %849, i64 %852
  %854 = load float, ptr %853, align 4, !tbaa !16
  %855 = load ptr, ptr %16, align 8, !tbaa !9
  %856 = load i32, ptr %24, align 4, !tbaa !5
  %857 = sub nsw i32 %856, 2
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds float, ptr %855, i64 %858
  %860 = load float, ptr %859, align 4, !tbaa !16
  %861 = load ptr, ptr %13, align 8, !tbaa !9
  %862 = load i32, ptr %24, align 4, !tbaa !5
  %863 = sub nsw i32 %862, 2
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds float, ptr %861, i64 %864
  %866 = load float, ptr %865, align 4, !tbaa !16
  %867 = fcmp oge float %860, %866
  br i1 %867, label %868, label %875

868:                                              ; preds = %848
  %869 = load ptr, ptr %16, align 8, !tbaa !9
  %870 = load i32, ptr %24, align 4, !tbaa !5
  %871 = sub nsw i32 %870, 2
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds float, ptr %869, i64 %872
  %874 = load float, ptr %873, align 4, !tbaa !16
  br label %882

875:                                              ; preds = %848
  %876 = load ptr, ptr %13, align 8, !tbaa !9
  %877 = load i32, ptr %24, align 4, !tbaa !5
  %878 = sub nsw i32 %877, 2
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds float, ptr %876, i64 %879
  %881 = load float, ptr %880, align 4, !tbaa !16
  br label %882

882:                                              ; preds = %875, %868
  %883 = phi float [ %874, %868 ], [ %881, %875 ]
  %884 = fsub float %854, %883
  %885 = load ptr, ptr %16, align 8, !tbaa !9
  %886 = load i32, ptr %24, align 4, !tbaa !5
  %887 = sub nsw i32 %886, 2
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds float, ptr %885, i64 %888
  %890 = load float, ptr %889, align 4, !tbaa !16
  %891 = load ptr, ptr %13, align 8, !tbaa !9
  %892 = load i32, ptr %24, align 4, !tbaa !5
  %893 = sub nsw i32 %892, 2
  %894 = sext i32 %893 to i64
  %895 = getelementptr inbounds float, ptr %891, i64 %894
  %896 = load float, ptr %895, align 4, !tbaa !16
  %897 = fcmp oge float %890, %896
  br i1 %897, label %898, label %905

898:                                              ; preds = %882
  %899 = load ptr, ptr %13, align 8, !tbaa !9
  %900 = load i32, ptr %24, align 4, !tbaa !5
  %901 = sub nsw i32 %900, 2
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds float, ptr %899, i64 %902
  %904 = load float, ptr %903, align 4, !tbaa !16
  br label %912

905:                                              ; preds = %882
  %906 = load ptr, ptr %16, align 8, !tbaa !9
  %907 = load i32, ptr %24, align 4, !tbaa !5
  %908 = sub nsw i32 %907, 2
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds float, ptr %906, i64 %909
  %911 = load float, ptr %910, align 4, !tbaa !16
  br label %912

912:                                              ; preds = %905, %898
  %913 = phi float [ %904, %898 ], [ %911, %905 ]
  %914 = load ptr, ptr %15, align 8, !tbaa !9
  %915 = load i32, ptr %24, align 4, !tbaa !5
  %916 = sub nsw i32 %915, 2
  %917 = sext i32 %916 to i64
  %918 = getelementptr inbounds float, ptr %914, i64 %917
  %919 = load float, ptr %918, align 4, !tbaa !16
  %920 = fsub float %913, %919
  %921 = fadd float %884, %920
  br label %923

922:                                              ; preds = %841
  br label %923

923:                                              ; preds = %922, %912
  %924 = phi float [ %921, %912 ], [ 0.000000e+00, %922 ]
  br label %925

925:                                              ; preds = %923, %827
  %926 = phi float [ %840, %827 ], [ %924, %923 ]
  %927 = fpext float %926 to double
  br label %928

928:                                              ; preds = %925, %804
  %929 = phi double [ %819, %804 ], [ %927, %925 ]
  %930 = getelementptr inbounds [3 x double], ptr %22, i64 0, i64 2
  %931 = load double, ptr %930, align 16, !tbaa !11
  %932 = fadd double %931, %929
  store double %932, ptr %930, align 16, !tbaa !11
  %933 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %934 = getelementptr inbounds %struct.TA_LibcPriv, ptr %933, i32 0, i32 8
  %935 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %934, i64 0, i64 9
  %936 = getelementptr inbounds %struct.TA_CandleSetting, ptr %935, i32 0, i32 1
  %937 = load i32, ptr %936, align 4, !tbaa !15
  %938 = icmp eq i32 %937, 0
  br i1 %938, label %939, label %955

939:                                              ; preds = %928
  %940 = load ptr, ptr %16, align 8, !tbaa !9
  %941 = load i32, ptr %24, align 4, !tbaa !5
  %942 = sub nsw i32 %941, 1
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds float, ptr %940, i64 %943
  %945 = load float, ptr %944, align 4, !tbaa !16
  %946 = load ptr, ptr %13, align 8, !tbaa !9
  %947 = load i32, ptr %24, align 4, !tbaa !5
  %948 = sub nsw i32 %947, 1
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds float, ptr %946, i64 %949
  %951 = load float, ptr %950, align 4, !tbaa !16
  %952 = fsub float %945, %951
  %953 = fpext float %952 to double
  %954 = call double @llvm.fabs.f64(double %953)
  br label %1063

955:                                              ; preds = %928
  %956 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %957 = getelementptr inbounds %struct.TA_LibcPriv, ptr %956, i32 0, i32 8
  %958 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %957, i64 0, i64 9
  %959 = getelementptr inbounds %struct.TA_CandleSetting, ptr %958, i32 0, i32 1
  %960 = load i32, ptr %959, align 4, !tbaa !15
  %961 = icmp eq i32 %960, 1
  br i1 %961, label %962, label %976

962:                                              ; preds = %955
  %963 = load ptr, ptr %14, align 8, !tbaa !9
  %964 = load i32, ptr %24, align 4, !tbaa !5
  %965 = sub nsw i32 %964, 1
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds float, ptr %963, i64 %966
  %968 = load float, ptr %967, align 4, !tbaa !16
  %969 = load ptr, ptr %15, align 8, !tbaa !9
  %970 = load i32, ptr %24, align 4, !tbaa !5
  %971 = sub nsw i32 %970, 1
  %972 = sext i32 %971 to i64
  %973 = getelementptr inbounds float, ptr %969, i64 %972
  %974 = load float, ptr %973, align 4, !tbaa !16
  %975 = fsub float %968, %974
  br label %1060

976:                                              ; preds = %955
  %977 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %978 = getelementptr inbounds %struct.TA_LibcPriv, ptr %977, i32 0, i32 8
  %979 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %978, i64 0, i64 9
  %980 = getelementptr inbounds %struct.TA_CandleSetting, ptr %979, i32 0, i32 1
  %981 = load i32, ptr %980, align 4, !tbaa !15
  %982 = icmp eq i32 %981, 2
  br i1 %982, label %983, label %1057

983:                                              ; preds = %976
  %984 = load ptr, ptr %14, align 8, !tbaa !9
  %985 = load i32, ptr %24, 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 %16, align 8, !tbaa !9
  %991 = load i32, ptr %24, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %997 = load i32, ptr %24, align 4, !tbaa !5
  %998 = sub nsw i32 %997, 1
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds float, ptr %996, i64 %999
  %1001 = load float, ptr %1000, align 4, !tbaa !16
  %1002 = fcmp oge float %995, %1001
  br i1 %1002, label %1003, label %1010

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

1010:                                             ; preds = %983
  %1011 = load ptr, ptr %13, align 8, !tbaa !9
  %1012 = load i32, ptr %24, align 4, !tbaa !5
  %1013 = sub nsw i32 %1012, 1
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds float, ptr %1011, i64 %1014
  %1016 = load float, ptr %1015, align 4, !tbaa !16
  br label %1017

1017:                                             ; preds = %1010, %1003
  %1018 = phi float [ %1009, %1003 ], [ %1016, %1010 ]
  %1019 = fsub float %989, %1018
  %1020 = load ptr, ptr %16, align 8, !tbaa !9
  %1021 = load i32, ptr %24, align 4, !tbaa !5
  %1022 = sub nsw i32 %1021, 1
  %1023 = sext i32 %1022 to i64
  %1024 = getelementptr inbounds float, ptr %1020, i64 %1023
  %1025 = load float, ptr %1024, align 4, !tbaa !16
  %1026 = load ptr, ptr %13, align 8, !tbaa !9
  %1027 = load i32, ptr %24, align 4, !tbaa !5
  %1028 = sub nsw i32 %1027, 1
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds float, ptr %1026, i64 %1029
  %1031 = load float, ptr %1030, align 4, !tbaa !16
  %1032 = fcmp oge float %1025, %1031
  br i1 %1032, label %1033, label %1040

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

1040:                                             ; preds = %1017
  %1041 = load ptr, ptr %16, align 8, !tbaa !9
  %1042 = load i32, ptr %24, align 4, !tbaa !5
  %1043 = sub nsw i32 %1042, 1
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds float, ptr %1041, i64 %1044
  %1046 = load float, ptr %1045, align 4, !tbaa !16
  br label %1047

1047:                                             ; preds = %1040, %1033
  %1048 = phi float [ %1039, %1033 ], [ %1046, %1040 ]
  %1049 = load ptr, ptr %15, align 8, !tbaa !9
  %1050 = load i32, ptr %24, align 4, !tbaa !5
  %1051 = sub nsw i32 %1050, 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 = fsub float %1048, %1054
  %1056 = fadd float %1019, %1055
  br label %1058

1057:                                             ; preds = %976
  br label %1058

1058:                                             ; preds = %1057, %1047
  %1059 = phi float [ %1056, %1047 ], [ 0.000000e+00, %1057 ]
  br label %1060

1060:                                             ; preds = %1058, %962
  %1061 = phi float [ %975, %962 ], [ %1059, %1058 ]
  %1062 = fpext float %1061 to double
  br label %1063

1063:                                             ; preds = %1060, %939
  %1064 = phi double [ %954, %939 ], [ %1062, %1060 ]
  %1065 = getelementptr inbounds [3 x double], ptr %22, i64 0, i64 1
  %1066 = load double, ptr %1065, align 8, !tbaa !11
  %1067 = fadd double %1066, %1064
  store double %1067, ptr %1065, align 8, !tbaa !11
  %1068 = load i32, ptr %24, align 4, !tbaa !5
  %1069 = add nsw i32 %1068, 1
  store i32 %1069, ptr %24, align 4, !tbaa !5
  br label %793, !llvm.loop !21

1070:                                             ; preds = %793
  %1071 = load i32, ptr %30, align 4, !tbaa !5
  store i32 %1071, ptr %24, align 4, !tbaa !5
  br label %1072

1072:                                             ; preds = %1193, %1070
  %1073 = load i32, ptr %24, align 4, !tbaa !5
  %1074 = load i32, ptr %11, align 4, !tbaa !5
  %1075 = icmp slt i32 %1073, %1074
  br i1 %1075, label %1076, label %1199

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

1083:                                             ; preds = %1076
  %1084 = load ptr, ptr %16, align 8, !tbaa !9
  %1085 = load i32, ptr %24, align 4, !tbaa !5
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds float, ptr %1084, i64 %1086
  %1088 = load float, ptr %1087, align 4, !tbaa !16
  %1089 = load ptr, ptr %13, align 8, !tbaa !9
  %1090 = load i32, ptr %24, align 4, !tbaa !5
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds float, ptr %1089, i64 %1091
  %1093 = load float, ptr %1092, align 4, !tbaa !16
  %1094 = fsub float %1088, %1093
  %1095 = fpext float %1094 to double
  %1096 = call double @llvm.fabs.f64(double %1095)
  br label %1193

1097:                                             ; preds = %1076
  %1098 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1099 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1098, i32 0, i32 8
  %1100 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1099, i64 0, i64 2
  %1101 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1100, i32 0, i32 1
  %1102 = load i32, ptr %1101, align 4, !tbaa !15
  %1103 = icmp eq i32 %1102, 1
  br i1 %1103, label %1104, label %1116

1104:                                             ; preds = %1097
  %1105 = load ptr, ptr %14, align 8, !tbaa !9
  %1106 = load i32, ptr %24, align 4, !tbaa !5
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds float, ptr %1105, i64 %1107
  %1109 = load float, ptr %1108, align 4, !tbaa !16
  %1110 = load ptr, ptr %15, align 8, !tbaa !9
  %1111 = load i32, ptr %24, align 4, !tbaa !5
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds float, ptr %1110, i64 %1112
  %1114 = load float, ptr %1113, align 4, !tbaa !16
  %1115 = fsub float %1109, %1114
  br label %1190

1116:                                             ; preds = %1097
  %1117 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1118 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1117, i32 0, i32 8
  %1119 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1118, i64 0, i64 2
  %1120 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1119, i32 0, i32 1
  %1121 = load i32, ptr %1120, align 4, !tbaa !15
  %1122 = icmp eq i32 %1121, 2
  br i1 %1122, label %1123, label %1187

1123:                                             ; preds = %1116
  %1124 = load ptr, ptr %14, align 8, !tbaa !9
  %1125 = load i32, ptr %24, align 4, !tbaa !5
  %1126 = sext i32 %1125 to i64
  %1127 = getelementptr inbounds float, ptr %1124, i64 %1126
  %1128 = load float, ptr %1127, align 4, !tbaa !16
  %1129 = load ptr, ptr %16, align 8, !tbaa !9
  %1130 = load i32, ptr %24, align 4, !tbaa !5
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds float, ptr %1129, i64 %1131
  %1133 = load float, ptr %1132, align 4, !tbaa !16
  %1134 = load ptr, ptr %13, align 8, !tbaa !9
  %1135 = load i32, ptr %24, align 4, !tbaa !5
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds float, ptr %1134, i64 %1136
  %1138 = load float, ptr %1137, align 4, !tbaa !16
  %1139 = fcmp oge float %1133, %1138
  br i1 %1139, label %1140, label %1146

1140:                                             ; preds = %1123
  %1141 = load ptr, ptr %16, align 8, !tbaa !9
  %1142 = load i32, ptr %24, align 4, !tbaa !5
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds float, ptr %1141, i64 %1143
  %1145 = load float, ptr %1144, align 4, !tbaa !16
  br label %1152

1146:                                             ; preds = %1123
  %1147 = load ptr, ptr %13, align 8, !tbaa !9
  %1148 = load i32, ptr %24, align 4, !tbaa !5
  %1149 = sext i32 %1148 to i64
  %1150 = getelementptr inbounds float, ptr %1147, i64 %1149
  %1151 = load float, ptr %1150, align 4, !tbaa !16
  br label %1152

1152:                                             ; preds = %1146, %1140
  %1153 = phi float [ %1145, %1140 ], [ %1151, %1146 ]
  %1154 = fsub float %1128, %1153
  %1155 = load ptr, ptr %16, align 8, !tbaa !9
  %1156 = load i32, ptr %24, align 4, !tbaa !5
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds float, ptr %1155, i64 %1157
  %1159 = load float, ptr %1158, align 4, !tbaa !16
  %1160 = load ptr, ptr %13, align 8, !tbaa !9
  %1161 = load i32, ptr %24, align 4, !tbaa !5
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds float, ptr %1160, i64 %1162
  %1164 = load float, ptr %1163, align 4, !tbaa !16
  %1165 = fcmp oge float %1159, %1164
  br i1 %1165, label %1166, label %1172

1166:                                             ; preds = %1152
  %1167 = load ptr, ptr %13, align 8, !tbaa !9
  %1168 = load i32, ptr %24, align 4, !tbaa !5
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds float, ptr %1167, i64 %1169
  %1171 = load float, ptr %1170, align 4, !tbaa !16
  br label %1178

1172:                                             ; preds = %1152
  %1173 = load ptr, ptr %16, align 8, !tbaa !9
  %1174 = load i32, ptr %24, align 4, !tbaa !5
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds float, ptr %1173, i64 %1175
  %1177 = load float, ptr %1176, align 4, !tbaa !16
  br label %1178

1178:                                             ; preds = %1172, %1166
  %1179 = phi float [ %1171, %1166 ], [ %1177, %1172 ]
  %1180 = load ptr, ptr %15, align 8, !tbaa !9
  %1181 = load i32, ptr %24, align 4, !tbaa !5
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds float, ptr %1180, i64 %1182
  %1184 = load float, ptr %1183, align 4, !tbaa !16
  %1185 = fsub float %1179, %1184
  %1186 = fadd float %1154, %1185
  br label %1188

1187:                                             ; preds = %1116
  br label %1188

1188:                                             ; preds = %1187, %1178
  %1189 = phi float [ %1186, %1178 ], [ 0.000000e+00, %1187 ]
  br label %1190

1190:                                             ; preds = %1188, %1104
  %1191 = phi float [ %1115, %1104 ], [ %1189, %1188 ]
  %1192 = fpext float %1191 to double
  br label %1193

1193:                                             ; preds = %1190, %1083
  %1194 = phi double [ %1096, %1083 ], [ %1192, %1190 ]
  %1195 = load double, ptr %23, align 8, !tbaa !11
  %1196 = fadd double %1195, %1194
  store double %1196, ptr %23, align 8, !tbaa !11
  %1197 = load i32, ptr %24, align 4, !tbaa !5
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr %24, align 4, !tbaa !5
  br label %1072, !llvm.loop !22

1199:                                             ; preds = %1072
  %1200 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %1200, ptr %24, align 4, !tbaa !5
  store i32 0, ptr %25, align 4, !tbaa !5
  br label %1201

1201:                                             ; preds = %4007, %1199
  %1202 = load ptr, ptr %16, align 8, !tbaa !9
  %1203 = load i32, ptr %24, align 4, !tbaa !5
  %1204 = sub nsw i32 %1203, 2
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds float, ptr %1202, i64 %1205
  %1207 = load float, ptr %1206, align 4, !tbaa !16
  %1208 = load ptr, ptr %13, align 8, !tbaa !9
  %1209 = load i32, ptr %24, align 4, !tbaa !5
  %1210 = sub nsw i32 %1209, 2
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds float, ptr %1208, i64 %1211
  %1213 = load float, ptr %1212, align 4, !tbaa !16
  %1214 = fcmp oge float %1207, %1213
  %1215 = zext i1 %1214 to i64
  %1216 = select i1 %1214, i32 1, i32 -1
  %1217 = icmp eq i32 %1216, 1
  br i1 %1217, label %1218, label %2841

1218:                                             ; preds = %1201
  %1219 = load ptr, ptr %14, align 8, !tbaa !9
  %1220 = load i32, ptr %24, align 4, !tbaa !5
  %1221 = sub nsw i32 %1220, 2
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds float, ptr %1219, i64 %1222
  %1224 = load float, ptr %1223, align 4, !tbaa !16
  %1225 = load ptr, ptr %16, align 8, !tbaa !9
  %1226 = load i32, ptr %24, align 4, !tbaa !5
  %1227 = sub nsw i32 %1226, 2
  %1228 = sext i32 %1227 to i64
  %1229 = getelementptr inbounds float, ptr %1225, i64 %1228
  %1230 = load float, ptr %1229, align 4, !tbaa !16
  %1231 = load ptr, ptr %13, align 8, !tbaa !9
  %1232 = load i32, ptr %24, align 4, !tbaa !5
  %1233 = sub nsw i32 %1232, 2
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds float, ptr %1231, i64 %1234
  %1236 = load float, ptr %1235, align 4, !tbaa !16
  %1237 = fcmp oge float %1230, %1236
  br i1 %1237, label %1238, label %1245

1238:                                             ; preds = %1218
  %1239 = load ptr, ptr %16, align 8, !tbaa !9
  %1240 = load i32, ptr %24, align 4, !tbaa !5
  %1241 = sub nsw i32 %1240, 2
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds float, ptr %1239, i64 %1242
  %1244 = load float, ptr %1243, align 4, !tbaa !16
  br label %1252

1245:                                             ; preds = %1218
  %1246 = load ptr, ptr %13, align 8, !tbaa !9
  %1247 = load i32, ptr %24, align 4, !tbaa !5
  %1248 = sub nsw i32 %1247, 2
  %1249 = sext i32 %1248 to i64
  %1250 = getelementptr inbounds float, ptr %1246, i64 %1249
  %1251 = load float, ptr %1250, align 4, !tbaa !16
  br label %1252

1252:                                             ; preds = %1245, %1238
  %1253 = phi float [ %1244, %1238 ], [ %1251, %1245 ]
  %1254 = fsub float %1224, %1253
  %1255 = fpext float %1254 to double
  %1256 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1257 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1256, i32 0, i32 8
  %1258 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1257, i64 0, i64 7
  %1259 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1258, i32 0, i32 3
  %1260 = load double, ptr %1259, align 8, !tbaa !23
  %1261 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1262 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1261, i32 0, i32 8
  %1263 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1262, i64 0, i64 7
  %1264 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1263, i32 0, i32 2
  %1265 = load i32, ptr %1264, align 8, !tbaa !13
  %1266 = sitofp i32 %1265 to double
  %1267 = fcmp une double %1266, 0.000000e+00
  br i1 %1267, label %1268, label %1278

1268:                                             ; preds = %1252
  %1269 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 2
  %1270 = load double, ptr %1269, align 16, !tbaa !11
  %1271 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1272 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1271, i32 0, i32 8
  %1273 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1272, i64 0, i64 7
  %1274 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1273, i32 0, i32 2
  %1275 = load i32, ptr %1274, align 8, !tbaa !13
  %1276 = sitofp i32 %1275 to double
  %1277 = fdiv double %1270, %1276
  br label %1411

1278:                                             ; preds = %1252
  %1279 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1280 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1279, i32 0, i32 8
  %1281 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1280, i64 0, i64 7
  %1282 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1281, i32 0, i32 1
  %1283 = load i32, ptr %1282, align 4, !tbaa !15
  %1284 = icmp eq i32 %1283, 0
  br i1 %1284, label %1285, label %1301

1285:                                             ; preds = %1278
  %1286 = load ptr, ptr %16, align 8, !tbaa !9
  %1287 = load i32, ptr %24, align 4, !tbaa !5
  %1288 = sub nsw i32 %1287, 2
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds float, ptr %1286, i64 %1289
  %1291 = load float, ptr %1290, align 4, !tbaa !16
  %1292 = load ptr, ptr %13, align 8, !tbaa !9
  %1293 = load i32, ptr %24, align 4, !tbaa !5
  %1294 = sub nsw i32 %1293, 2
  %1295 = sext i32 %1294 to i64
  %1296 = getelementptr inbounds float, ptr %1292, i64 %1295
  %1297 = load float, ptr %1296, align 4, !tbaa !16
  %1298 = fsub float %1291, %1297
  %1299 = fpext float %1298 to double
  %1300 = call double @llvm.fabs.f64(double %1299)
  br label %1409

1301:                                             ; preds = %1278
  %1302 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1303 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1302, i32 0, i32 8
  %1304 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1303, i64 0, i64 7
  %1305 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1304, i32 0, i32 1
  %1306 = load i32, ptr %1305, align 4, !tbaa !15
  %1307 = icmp eq i32 %1306, 1
  br i1 %1307, label %1308, label %1322

1308:                                             ; preds = %1301
  %1309 = load ptr, ptr %14, align 8, !tbaa !9
  %1310 = load i32, ptr %24, align 4, !tbaa !5
  %1311 = sub nsw i32 %1310, 2
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds float, ptr %1309, i64 %1312
  %1314 = load float, ptr %1313, align 4, !tbaa !16
  %1315 = load ptr, ptr %15, align 8, !tbaa !9
  %1316 = load i32, ptr %24, align 4, !tbaa !5
  %1317 = sub nsw i32 %1316, 2
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds float, ptr %1315, i64 %1318
  %1320 = load float, ptr %1319, align 4, !tbaa !16
  %1321 = fsub float %1314, %1320
  br label %1406

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

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

1349:                                             ; preds = %1329
  %1350 = load ptr, ptr %16, align 8, !tbaa !9
  %1351 = load i32, ptr %24, align 4, !tbaa !5
  %1352 = sub nsw i32 %1351, 2
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds float, ptr %1350, i64 %1353
  %1355 = load float, ptr %1354, align 4, !tbaa !16
  br label %1363

1356:                                             ; preds = %1329
  %1357 = load ptr, ptr %13, align 8, !tbaa !9
  %1358 = load i32, ptr %24, align 4, !tbaa !5
  %1359 = sub nsw i32 %1358, 2
  %1360 = sext i32 %1359 to i64
  %1361 = getelementptr inbounds float, ptr %1357, i64 %1360
  %1362 = load float, ptr %1361, align 4, !tbaa !16
  br label %1363

1363:                                             ; preds = %1356, %1349
  %1364 = phi float [ %1355, %1349 ], [ %1362, %1356 ]
  %1365 = fsub float %1335, %1364
  %1366 = load ptr, ptr %16, align 8, !tbaa !9
  %1367 = load i32, ptr %24, align 4, !tbaa !5
  %1368 = sub nsw i32 %1367, 2
  %1369 = sext i32 %1368 to i64
  %1370 = getelementptr inbounds float, ptr %1366, i64 %1369
  %1371 = load float, ptr %1370, align 4, !tbaa !16
  %1372 = load ptr, ptr %13, align 8, !tbaa !9
  %1373 = load i32, ptr %24, align 4, !tbaa !5
  %1374 = sub nsw i32 %1373, 2
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds float, ptr %1372, i64 %1375
  %1377 = load float, ptr %1376, align 4, !tbaa !16
  %1378 = fcmp oge float %1371, %1377
  br i1 %1378, label %1379, label %1386

1379:                                             ; preds = %1363
  %1380 = load ptr, ptr %13, align 8, !tbaa !9
  %1381 = load i32, ptr %24, align 4, !tbaa !5
  %1382 = sub nsw i32 %1381, 2
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds float, ptr %1380, i64 %1383
  %1385 = load float, ptr %1384, align 4, !tbaa !16
  br label %1393

1386:                                             ; preds = %1363
  %1387 = load ptr, ptr %16, align 8, !tbaa !9
  %1388 = load i32, ptr %24, align 4, !tbaa !5
  %1389 = sub nsw i32 %1388, 2
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds float, ptr %1387, i64 %1390
  %1392 = load float, ptr %1391, align 4, !tbaa !16
  br label %1393

1393:                                             ; preds = %1386, %1379
  %1394 = phi float [ %1385, %1379 ], [ %1392, %1386 ]
  %1395 = load ptr, ptr %15, align 8, !tbaa !9
  %1396 = load i32, ptr %24, align 4, !tbaa !5
  %1397 = sub nsw i32 %1396, 2
  %1398 = sext i32 %1397 to i64
  %1399 = getelementptr inbounds float, ptr %1395, i64 %1398
  %1400 = load float, ptr %1399, align 4, !tbaa !16
  %1401 = fsub float %1394, %1400
  %1402 = fadd float %1365, %1401
  br label %1404

1403:                                             ; preds = %1322
  br label %1404

1404:                                             ; preds = %1403, %1393
  %1405 = phi float [ %1402, %1393 ], [ 0.000000e+00, %1403 ]
  br label %1406

1406:                                             ; preds = %1404, %1308
  %1407 = phi float [ %1321, %1308 ], [ %1405, %1404 ]
  %1408 = fpext float %1407 to double
  br label %1409

1409:                                             ; preds = %1406, %1285
  %1410 = phi double [ %1300, %1285 ], [ %1408, %1406 ]
  br label %1411

1411:                                             ; preds = %1409, %1268
  %1412 = phi double [ %1277, %1268 ], [ %1410, %1409 ]
  %1413 = fmul double %1260, %1412
  %1414 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1415 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1414, i32 0, i32 8
  %1416 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1415, i64 0, i64 7
  %1417 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1416, i32 0, i32 1
  %1418 = load i32, ptr %1417, align 4, !tbaa !15
  %1419 = icmp eq i32 %1418, 2
  %1420 = zext i1 %1419 to i64
  %1421 = select i1 %1419, double 2.000000e+00, double 1.000000e+00
  %1422 = fdiv double %1413, %1421
  %1423 = fcmp olt double %1255, %1422
  br i1 %1423, label %1424, label %2841

1424:                                             ; preds = %1411
  %1425 = load ptr, ptr %16, align 8, !tbaa !9
  %1426 = load i32, ptr %24, align 4, !tbaa !5
  %1427 = sub nsw i32 %1426, 1
  %1428 = sext i32 %1427 to i64
  %1429 = getelementptr inbounds float, ptr %1425, i64 %1428
  %1430 = load float, ptr %1429, align 4, !tbaa !16
  %1431 = load ptr, ptr %13, align 8, !tbaa !9
  %1432 = load i32, ptr %24, align 4, !tbaa !5
  %1433 = sub nsw i32 %1432, 1
  %1434 = sext i32 %1433 to i64
  %1435 = getelementptr inbounds float, ptr %1431, i64 %1434
  %1436 = load float, ptr %1435, align 4, !tbaa !16
  %1437 = fcmp oge float %1430, %1436
  %1438 = zext i1 %1437 to i64
  %1439 = select i1 %1437, i32 1, i32 -1
  %1440 = icmp eq i32 %1439, 1
  br i1 %1440, label %1441, label %2841

1441:                                             ; preds = %1424
  %1442 = load ptr, ptr %14, align 8, !tbaa !9
  %1443 = load i32, ptr %24, align 4, !tbaa !5
  %1444 = sub nsw i32 %1443, 1
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds float, ptr %1442, i64 %1445
  %1447 = load float, ptr %1446, align 4, !tbaa !16
  %1448 = load ptr, ptr %16, align 8, !tbaa !9
  %1449 = load i32, ptr %24, align 4, !tbaa !5
  %1450 = sub nsw i32 %1449, 1
  %1451 = sext i32 %1450 to i64
  %1452 = getelementptr inbounds float, ptr %1448, i64 %1451
  %1453 = load float, ptr %1452, align 4, !tbaa !16
  %1454 = load ptr, ptr %13, align 8, !tbaa !9
  %1455 = load i32, ptr %24, align 4, !tbaa !5
  %1456 = sub nsw i32 %1455, 1
  %1457 = sext i32 %1456 to i64
  %1458 = getelementptr inbounds float, ptr %1454, i64 %1457
  %1459 = load float, ptr %1458, align 4, !tbaa !16
  %1460 = fcmp oge float %1453, %1459
  br i1 %1460, label %1461, label %1468

1461:                                             ; preds = %1441
  %1462 = load ptr, ptr %16, align 8, !tbaa !9
  %1463 = load i32, ptr %24, align 4, !tbaa !5
  %1464 = sub nsw i32 %1463, 1
  %1465 = sext i32 %1464 to i64
  %1466 = getelementptr inbounds float, ptr %1462, i64 %1465
  %1467 = load float, ptr %1466, align 4, !tbaa !16
  br label %1475

1468:                                             ; preds = %1441
  %1469 = load ptr, ptr %13, align 8, !tbaa !9
  %1470 = load i32, ptr %24, align 4, !tbaa !5
  %1471 = sub nsw i32 %1470, 1
  %1472 = sext i32 %1471 to i64
  %1473 = getelementptr inbounds float, ptr %1469, i64 %1472
  %1474 = load float, ptr %1473, align 4, !tbaa !16
  br label %1475

1475:                                             ; preds = %1468, %1461
  %1476 = phi float [ %1467, %1461 ], [ %1474, %1468 ]
  %1477 = fsub float %1447, %1476
  %1478 = fpext float %1477 to double
  %1479 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1480 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1479, i32 0, i32 8
  %1481 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1480, i64 0, i64 7
  %1482 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1481, i32 0, i32 3
  %1483 = load double, ptr %1482, align 8, !tbaa !23
  %1484 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1485 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1484, i32 0, i32 8
  %1486 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1485, i64 0, i64 7
  %1487 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1486, i32 0, i32 2
  %1488 = load i32, ptr %1487, align 8, !tbaa !13
  %1489 = sitofp i32 %1488 to double
  %1490 = fcmp une double %1489, 0.000000e+00
  br i1 %1490, label %1491, label %1501

1491:                                             ; preds = %1475
  %1492 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  %1493 = load double, ptr %1492, align 8, !tbaa !11
  %1494 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1495 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1494, i32 0, i32 8
  %1496 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1495, i64 0, i64 7
  %1497 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1496, i32 0, i32 2
  %1498 = load i32, ptr %1497, align 8, !tbaa !13
  %1499 = sitofp i32 %1498 to double
  %1500 = fdiv double %1493, %1499
  br label %1634

1501:                                             ; preds = %1475
  %1502 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1503 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1502, i32 0, i32 8
  %1504 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1503, i64 0, i64 7
  %1505 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1504, i32 0, i32 1
  %1506 = load i32, ptr %1505, align 4, !tbaa !15
  %1507 = icmp eq i32 %1506, 0
  br i1 %1507, label %1508, label %1524

1508:                                             ; preds = %1501
  %1509 = load ptr, ptr %16, align 8, !tbaa !9
  %1510 = load i32, ptr %24, align 4, !tbaa !5
  %1511 = sub nsw i32 %1510, 1
  %1512 = sext i32 %1511 to i64
  %1513 = getelementptr inbounds float, ptr %1509, i64 %1512
  %1514 = load float, ptr %1513, align 4, !tbaa !16
  %1515 = load ptr, ptr %13, align 8, !tbaa !9
  %1516 = load i32, ptr %24, align 4, !tbaa !5
  %1517 = sub nsw i32 %1516, 1
  %1518 = sext i32 %1517 to i64
  %1519 = getelementptr inbounds float, ptr %1515, i64 %1518
  %1520 = load float, ptr %1519, align 4, !tbaa !16
  %1521 = fsub float %1514, %1520
  %1522 = fpext float %1521 to double
  %1523 = call double @llvm.fabs.f64(double %1522)
  br label %1632

1524:                                             ; preds = %1501
  %1525 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1526 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1525, i32 0, i32 8
  %1527 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1526, i64 0, i64 7
  %1528 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1527, i32 0, i32 1
  %1529 = load i32, ptr %1528, align 4, !tbaa !15
  %1530 = icmp eq i32 %1529, 1
  br i1 %1530, label %1531, label %1545

1531:                                             ; preds = %1524
  %1532 = load ptr, ptr %14, align 8, !tbaa !9
  %1533 = load i32, ptr %24, align 4, !tbaa !5
  %1534 = sub nsw i32 %1533, 1
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds float, ptr %1532, i64 %1535
  %1537 = load float, ptr %1536, align 4, !tbaa !16
  %1538 = load ptr, ptr %15, align 8, !tbaa !9
  %1539 = load i32, ptr %24, align 4, !tbaa !5
  %1540 = sub nsw i32 %1539, 1
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds float, ptr %1538, i64 %1541
  %1543 = load float, ptr %1542, align 4, !tbaa !16
  %1544 = fsub float %1537, %1543
  br label %1629

1545:                                             ; preds = %1524
  %1546 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1547 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1546, i32 0, i32 8
  %1548 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1547, i64 0, i64 7
  %1549 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1548, i32 0, i32 1
  %1550 = load i32, ptr %1549, align 4, !tbaa !15
  %1551 = icmp eq i32 %1550, 2
  br i1 %1551, label %1552, label %1626

1552:                                             ; preds = %1545
  %1553 = load ptr, ptr %14, align 8, !tbaa !9
  %1554 = load i32, ptr %24, align 4, !tbaa !5
  %1555 = sub nsw i32 %1554, 1
  %1556 = sext i32 %1555 to i64
  %1557 = getelementptr inbounds float, ptr %1553, i64 %1556
  %1558 = load float, ptr %1557, align 4, !tbaa !16
  %1559 = load ptr, ptr %16, align 8, !tbaa !9
  %1560 = load i32, ptr %24, align 4, !tbaa !5
  %1561 = sub nsw i32 %1560, 1
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds float, ptr %1559, i64 %1562
  %1564 = load float, ptr %1563, align 4, !tbaa !16
  %1565 = load ptr, ptr %13, align 8, !tbaa !9
  %1566 = load i32, ptr %24, align 4, !tbaa !5
  %1567 = sub nsw i32 %1566, 1
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds float, ptr %1565, i64 %1568
  %1570 = load float, ptr %1569, align 4, !tbaa !16
  %1571 = fcmp oge float %1564, %1570
  br i1 %1571, label %1572, label %1579

1572:                                             ; preds = %1552
  %1573 = load ptr, ptr %16, align 8, !tbaa !9
  %1574 = load i32, ptr %24, align 4, !tbaa !5
  %1575 = sub nsw i32 %1574, 1
  %1576 = sext i32 %1575 to i64
  %1577 = getelementptr inbounds float, ptr %1573, i64 %1576
  %1578 = load float, ptr %1577, align 4, !tbaa !16
  br label %1586

1579:                                             ; preds = %1552
  %1580 = load ptr, ptr %13, align 8, !tbaa !9
  %1581 = load i32, ptr %24, align 4, !tbaa !5
  %1582 = sub nsw i32 %1581, 1
  %1583 = sext i32 %1582 to i64
  %1584 = getelementptr inbounds float, ptr %1580, i64 %1583
  %1585 = load float, ptr %1584, align 4, !tbaa !16
  br label %1586

1586:                                             ; preds = %1579, %1572
  %1587 = phi float [ %1578, %1572 ], [ %1585, %1579 ]
  %1588 = fsub float %1558, %1587
  %1589 = load ptr, ptr %16, align 8, !tbaa !9
  %1590 = load i32, ptr %24, align 4, !tbaa !5
  %1591 = sub nsw i32 %1590, 1
  %1592 = sext i32 %1591 to i64
  %1593 = getelementptr inbounds float, ptr %1589, i64 %1592
  %1594 = load float, ptr %1593, align 4, !tbaa !16
  %1595 = load ptr, ptr %13, align 8, !tbaa !9
  %1596 = load i32, ptr %24, align 4, !tbaa !5
  %1597 = sub nsw i32 %1596, 1
  %1598 = sext i32 %1597 to i64
  %1599 = getelementptr inbounds float, ptr %1595, i64 %1598
  %1600 = load float, ptr %1599, align 4, !tbaa !16
  %1601 = fcmp oge float %1594, %1600
  br i1 %1601, label %1602, label %1609

1602:                                             ; preds = %1586
  %1603 = load ptr, ptr %13, align 8, !tbaa !9
  %1604 = load i32, ptr %24, align 4, !tbaa !5
  %1605 = sub nsw i32 %1604, 1
  %1606 = sext i32 %1605 to i64
  %1607 = getelementptr inbounds float, ptr %1603, i64 %1606
  %1608 = load float, ptr %1607, align 4, !tbaa !16
  br label %1616

1609:                                             ; preds = %1586
  %1610 = load ptr, ptr %16, align 8, !tbaa !9
  %1611 = load i32, ptr %24, align 4, !tbaa !5
  %1612 = sub nsw i32 %1611, 1
  %1613 = sext i32 %1612 to i64
  %1614 = getelementptr inbounds float, ptr %1610, i64 %1613
  %1615 = load float, ptr %1614, align 4, !tbaa !16
  br label %1616

1616:                                             ; preds = %1609, %1602
  %1617 = phi float [ %1608, %1602 ], [ %1615, %1609 ]
  %1618 = load ptr, ptr %15, align 8, !tbaa !9
  %1619 = load i32, ptr %24, align 4, !tbaa !5
  %1620 = sub nsw i32 %1619, 1
  %1621 = sext i32 %1620 to i64
  %1622 = getelementptr inbounds float, ptr %1618, i64 %1621
  %1623 = load float, ptr %1622, align 4, !tbaa !16
  %1624 = fsub float %1617, %1623
  %1625 = fadd float %1588, %1624
  br label %1627

1626:                                             ; preds = %1545
  br label %1627

1627:                                             ; preds = %1626, %1616
  %1628 = phi float [ %1625, %1616 ], [ 0.000000e+00, %1626 ]
  br label %1629

1629:                                             ; preds = %1627, %1531
  %1630 = phi float [ %1544, %1531 ], [ %1628, %1627 ]
  %1631 = fpext float %1630 to double
  br label %1632

1632:                                             ; preds = %1629, %1508
  %1633 = phi double [ %1523, %1508 ], [ %1631, %1629 ]
  br label %1634

1634:                                             ; preds = %1632, %1491
  %1635 = phi double [ %1500, %1491 ], [ %1633, %1632 ]
  %1636 = fmul double %1483, %1635
  %1637 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1638 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1637, i32 0, i32 8
  %1639 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1638, i64 0, i64 7
  %1640 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1639, i32 0, i32 1
  %1641 = load i32, ptr %1640, align 4, !tbaa !15
  %1642 = icmp eq i32 %1641, 2
  %1643 = zext i1 %1642 to i64
  %1644 = select i1 %1642, double 2.000000e+00, double 1.000000e+00
  %1645 = fdiv double %1636, %1644
  %1646 = fcmp olt double %1478, %1645
  br i1 %1646, label %1647, label %2841

1647:                                             ; preds = %1634
  %1648 = load ptr, ptr %16, align 8, !tbaa !9
  %1649 = load i32, ptr %24, align 4, !tbaa !5
  %1650 = sext i32 %1649 to i64
  %1651 = getelementptr inbounds float, ptr %1648, i64 %1650
  %1652 = load float, ptr %1651, align 4, !tbaa !16
  %1653 = load ptr, ptr %13, align 8, !tbaa !9
  %1654 = load i32, ptr %24, align 4, !tbaa !5
  %1655 = sext i32 %1654 to i64
  %1656 = getelementptr inbounds float, ptr %1653, i64 %1655
  %1657 = load float, ptr %1656, align 4, !tbaa !16
  %1658 = fcmp oge float %1652, %1657
  %1659 = zext i1 %1658 to i64
  %1660 = select i1 %1658, i32 1, i32 -1
  %1661 = icmp eq i32 %1660, 1
  br i1 %1661, label %1662, label %2841

1662:                                             ; preds = %1647
  %1663 = load ptr, ptr %14, align 8, !tbaa !9
  %1664 = load i32, ptr %24, align 4, !tbaa !5
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds float, ptr %1663, i64 %1665
  %1667 = load float, ptr %1666, align 4, !tbaa !16
  %1668 = load ptr, ptr %16, align 8, !tbaa !9
  %1669 = load i32, ptr %24, align 4, !tbaa !5
  %1670 = sext i32 %1669 to i64
  %1671 = getelementptr inbounds float, ptr %1668, i64 %1670
  %1672 = load float, ptr %1671, align 4, !tbaa !16
  %1673 = load ptr, ptr %13, align 8, !tbaa !9
  %1674 = load i32, ptr %24, align 4, !tbaa !5
  %1675 = sext i32 %1674 to i64
  %1676 = getelementptr inbounds float, ptr %1673, i64 %1675
  %1677 = load float, ptr %1676, align 4, !tbaa !16
  %1678 = fcmp oge float %1672, %1677
  br i1 %1678, label %1679, label %1685

1679:                                             ; preds = %1662
  %1680 = load ptr, ptr %16, align 8, !tbaa !9
  %1681 = load i32, ptr %24, align 4, !tbaa !5
  %1682 = sext i32 %1681 to i64
  %1683 = getelementptr inbounds float, ptr %1680, i64 %1682
  %1684 = load float, ptr %1683, align 4, !tbaa !16
  br label %1691

1685:                                             ; preds = %1662
  %1686 = load ptr, ptr %13, align 8, !tbaa !9
  %1687 = load i32, ptr %24, align 4, !tbaa !5
  %1688 = sext i32 %1687 to i64
  %1689 = getelementptr inbounds float, ptr %1686, i64 %1688
  %1690 = load float, ptr %1689, align 4, !tbaa !16
  br label %1691

1691:                                             ; preds = %1685, %1679
  %1692 = phi float [ %1684, %1679 ], [ %1690, %1685 ]
  %1693 = fsub float %1667, %1692
  %1694 = fpext float %1693 to double
  %1695 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1696 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1695, i32 0, i32 8
  %1697 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1696, i64 0, i64 7
  %1698 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1697, i32 0, i32 3
  %1699 = load double, ptr %1698, align 8, !tbaa !23
  %1700 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1701 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1700, i32 0, i32 8
  %1702 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1701, i64 0, i64 7
  %1703 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1702, i32 0, i32 2
  %1704 = load i32, ptr %1703, align 8, !tbaa !13
  %1705 = sitofp i32 %1704 to double
  %1706 = fcmp une double %1705, 0.000000e+00
  br i1 %1706, label %1707, label %1717

1707:                                             ; preds = %1691
  %1708 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 0
  %1709 = load double, ptr %1708, align 16, !tbaa !11
  %1710 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1711 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1710, i32 0, i32 8
  %1712 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1711, i64 0, i64 7
  %1713 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1712, i32 0, i32 2
  %1714 = load i32, ptr %1713, align 8, !tbaa !13
  %1715 = sitofp i32 %1714 to double
  %1716 = fdiv double %1709, %1715
  br label %1836

1717:                                             ; preds = %1691
  %1718 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1719 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1718, i32 0, i32 8
  %1720 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1719, i64 0, i64 7
  %1721 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1720, i32 0, i32 1
  %1722 = load i32, ptr %1721, align 4, !tbaa !15
  %1723 = icmp eq i32 %1722, 0
  br i1 %1723, label %1724, label %1738

1724:                                             ; preds = %1717
  %1725 = load ptr, ptr %16, align 8, !tbaa !9
  %1726 = load i32, ptr %24, align 4, !tbaa !5
  %1727 = sext i32 %1726 to i64
  %1728 = getelementptr inbounds float, ptr %1725, i64 %1727
  %1729 = load float, ptr %1728, align 4, !tbaa !16
  %1730 = load ptr, ptr %13, align 8, !tbaa !9
  %1731 = load i32, ptr %24, align 4, !tbaa !5
  %1732 = sext i32 %1731 to i64
  %1733 = getelementptr inbounds float, ptr %1730, i64 %1732
  %1734 = load float, ptr %1733, align 4, !tbaa !16
  %1735 = fsub float %1729, %1734
  %1736 = fpext float %1735 to double
  %1737 = call double @llvm.fabs.f64(double %1736)
  br label %1834

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

1745:                                             ; preds = %1738
  %1746 = load ptr, ptr %14, align 8, !tbaa !9
  %1747 = load i32, ptr %24, align 4, !tbaa !5
  %1748 = sext i32 %1747 to i64
  %1749 = getelementptr inbounds float, ptr %1746, i64 %1748
  %1750 = load float, ptr %1749, align 4, !tbaa !16
  %1751 = load ptr, ptr %15, align 8, !tbaa !9
  %1752 = load i32, ptr %24, align 4, !tbaa !5
  %1753 = sext i32 %1752 to i64
  %1754 = getelementptr inbounds float, ptr %1751, i64 %1753
  %1755 = load float, ptr %1754, align 4, !tbaa !16
  %1756 = fsub float %1750, %1755
  br label %1831

1757:                                             ; preds = %1738
  %1758 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1759 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1758, i32 0, i32 8
  %1760 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1759, i64 0, i64 7
  %1761 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1760, i32 0, i32 1
  %1762 = load i32, ptr %1761, align 4, !tbaa !15
  %1763 = icmp eq i32 %1762, 2
  br i1 %1763, label %1764, label %1828

1764:                                             ; preds = %1757
  %1765 = load ptr, ptr %14, align 8, !tbaa !9
  %1766 = load i32, ptr %24, align 4, !tbaa !5
  %1767 = sext i32 %1766 to i64
  %1768 = getelementptr inbounds float, ptr %1765, i64 %1767
  %1769 = load float, ptr %1768, align 4, !tbaa !16
  %1770 = load ptr, ptr %16, align 8, !tbaa !9
  %1771 = load i32, ptr %24, align 4, !tbaa !5
  %1772 = sext i32 %1771 to i64
  %1773 = getelementptr inbounds float, ptr %1770, i64 %1772
  %1774 = load float, ptr %1773, align 4, !tbaa !16
  %1775 = load ptr, ptr %13, align 8, !tbaa !9
  %1776 = load i32, ptr %24, align 4, !tbaa !5
  %1777 = sext i32 %1776 to i64
  %1778 = getelementptr inbounds float, ptr %1775, i64 %1777
  %1779 = load float, ptr %1778, align 4, !tbaa !16
  %1780 = fcmp oge float %1774, %1779
  br i1 %1780, label %1781, label %1787

1781:                                             ; preds = %1764
  %1782 = load ptr, ptr %16, align 8, !tbaa !9
  %1783 = load i32, ptr %24, align 4, !tbaa !5
  %1784 = sext i32 %1783 to i64
  %1785 = getelementptr inbounds float, ptr %1782, i64 %1784
  %1786 = load float, ptr %1785, align 4, !tbaa !16
  br label %1793

1787:                                             ; preds = %1764
  %1788 = load ptr, ptr %13, align 8, !tbaa !9
  %1789 = load i32, ptr %24, align 4, !tbaa !5
  %1790 = sext i32 %1789 to i64
  %1791 = getelementptr inbounds float, ptr %1788, i64 %1790
  %1792 = load float, ptr %1791, align 4, !tbaa !16
  br label %1793

1793:                                             ; preds = %1787, %1781
  %1794 = phi float [ %1786, %1781 ], [ %1792, %1787 ]
  %1795 = fsub float %1769, %1794
  %1796 = load ptr, ptr %16, align 8, !tbaa !9
  %1797 = load i32, ptr %24, align 4, !tbaa !5
  %1798 = sext i32 %1797 to i64
  %1799 = getelementptr inbounds float, ptr %1796, i64 %1798
  %1800 = load float, ptr %1799, align 4, !tbaa !16
  %1801 = load ptr, ptr %13, align 8, !tbaa !9
  %1802 = load i32, ptr %24, align 4, !tbaa !5
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds float, ptr %1801, i64 %1803
  %1805 = load float, ptr %1804, align 4, !tbaa !16
  %1806 = fcmp oge float %1800, %1805
  br i1 %1806, label %1807, label %1813

1807:                                             ; preds = %1793
  %1808 = load ptr, ptr %13, align 8, !tbaa !9
  %1809 = load i32, ptr %24, 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
  br label %1819

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

1819:                                             ; preds = %1813, %1807
  %1820 = phi float [ %1812, %1807 ], [ %1818, %1813 ]
  %1821 = load ptr, ptr %15, align 8, !tbaa !9
  %1822 = load i32, ptr %24, align 4, !tbaa !5
  %1823 = sext i32 %1822 to i64
  %1824 = getelementptr inbounds float, ptr %1821, i64 %1823
  %1825 = load float, ptr %1824, align 4, !tbaa !16
  %1826 = fsub float %1820, %1825
  %1827 = fadd float %1795, %1826
  br label %1829

1828:                                             ; preds = %1757
  br label %1829

1829:                                             ; preds = %1828, %1819
  %1830 = phi float [ %1827, %1819 ], [ 0.000000e+00, %1828 ]
  br label %1831

1831:                                             ; preds = %1829, %1745
  %1832 = phi float [ %1756, %1745 ], [ %1830, %1829 ]
  %1833 = fpext float %1832 to double
  br label %1834

1834:                                             ; preds = %1831, %1724
  %1835 = phi double [ %1737, %1724 ], [ %1833, %1831 ]
  br label %1836

1836:                                             ; preds = %1834, %1707
  %1837 = phi double [ %1716, %1707 ], [ %1835, %1834 ]
  %1838 = fmul double %1699, %1837
  %1839 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1840 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1839, i32 0, i32 8
  %1841 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1840, i64 0, i64 7
  %1842 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1841, i32 0, i32 1
  %1843 = load i32, ptr %1842, align 4, !tbaa !15
  %1844 = icmp eq i32 %1843, 2
  %1845 = zext i1 %1844 to i64
  %1846 = select i1 %1844, double 2.000000e+00, double 1.000000e+00
  %1847 = fdiv double %1838, %1846
  %1848 = fcmp olt double %1694, %1847
  br i1 %1848, label %1849, label %2841

1849:                                             ; preds = %1836
  %1850 = load ptr, ptr %16, align 8, !tbaa !9
  %1851 = load i32, ptr %24, align 4, !tbaa !5
  %1852 = sext i32 %1851 to i64
  %1853 = getelementptr inbounds float, ptr %1850, i64 %1852
  %1854 = load float, ptr %1853, align 4, !tbaa !16
  %1855 = load ptr, ptr %16, align 8, !tbaa !9
  %1856 = load i32, ptr %24, align 4, !tbaa !5
  %1857 = sub nsw i32 %1856, 1
  %1858 = sext i32 %1857 to i64
  %1859 = getelementptr inbounds float, ptr %1855, i64 %1858
  %1860 = load float, ptr %1859, align 4, !tbaa !16
  %1861 = fcmp ogt float %1854, %1860
  br i1 %1861, label %1862, label %2841

1862:                                             ; preds = %1849
  %1863 = load ptr, ptr %16, align 8, !tbaa !9
  %1864 = load i32, ptr %24, align 4, !tbaa !5
  %1865 = sub nsw i32 %1864, 1
  %1866 = sext i32 %1865 to i64
  %1867 = getelementptr inbounds float, ptr %1863, i64 %1866
  %1868 = load float, ptr %1867, align 4, !tbaa !16
  %1869 = load ptr, ptr %16, align 8, !tbaa !9
  %1870 = load i32, ptr %24, align 4, !tbaa !5
  %1871 = sub nsw i32 %1870, 2
  %1872 = sext i32 %1871 to i64
  %1873 = getelementptr inbounds float, ptr %1869, i64 %1872
  %1874 = load float, ptr %1873, align 4, !tbaa !16
  %1875 = fcmp ogt float %1868, %1874
  br i1 %1875, label %1876, label %2841

1876:                                             ; preds = %1862
  %1877 = load ptr, ptr %13, align 8, !tbaa !9
  %1878 = load i32, ptr %24, align 4, !tbaa !5
  %1879 = sub nsw i32 %1878, 1
  %1880 = sext i32 %1879 to i64
  %1881 = getelementptr inbounds float, ptr %1877, i64 %1880
  %1882 = load float, ptr %1881, align 4, !tbaa !16
  %1883 = load ptr, ptr %13, align 8, !tbaa !9
  %1884 = load i32, ptr %24, align 4, !tbaa !5
  %1885 = sub nsw i32 %1884, 2
  %1886 = sext i32 %1885 to i64
  %1887 = getelementptr inbounds float, ptr %1883, i64 %1886
  %1888 = load float, ptr %1887, align 4, !tbaa !16
  %1889 = fcmp ogt float %1882, %1888
  br i1 %1889, label %1890, label %2841

1890:                                             ; preds = %1876
  %1891 = load ptr, ptr %13, align 8, !tbaa !9
  %1892 = load i32, ptr %24, align 4, !tbaa !5
  %1893 = sub nsw i32 %1892, 1
  %1894 = sext i32 %1893 to i64
  %1895 = getelementptr inbounds float, ptr %1891, i64 %1894
  %1896 = load float, ptr %1895, align 4, !tbaa !16
  %1897 = fpext float %1896 to double
  %1898 = load ptr, ptr %16, align 8, !tbaa !9
  %1899 = load i32, ptr %24, align 4, !tbaa !5
  %1900 = sub nsw i32 %1899, 2
  %1901 = sext i32 %1900 to i64
  %1902 = getelementptr inbounds float, ptr %1898, i64 %1901
  %1903 = load float, ptr %1902, align 4, !tbaa !16
  %1904 = fpext float %1903 to double
  %1905 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1906 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1905, i32 0, i32 8
  %1907 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1906, i64 0, i64 8
  %1908 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1907, i32 0, i32 3
  %1909 = load double, ptr %1908, align 8, !tbaa !23
  %1910 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1911 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1910, i32 0, i32 8
  %1912 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1911, i64 0, i64 8
  %1913 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1912, i32 0, i32 2
  %1914 = load i32, ptr %1913, align 8, !tbaa !13
  %1915 = sitofp i32 %1914 to double
  %1916 = fcmp une double %1915, 0.000000e+00
  br i1 %1916, label %1917, label %1927

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

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

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

1950:                                             ; preds = %1927
  %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 8
  %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, 1
  br i1 %1956, label %1957, label %1971

1957:                                             ; preds = %1950
  %1958 = load ptr, ptr %14, align 8, !tbaa !9
  %1959 = load i32, ptr %24, align 4, !tbaa !5
  %1960 = sub nsw i32 %1959, 2
  %1961 = sext i32 %1960 to i64
  %1962 = getelementptr inbounds float, ptr %1958, i64 %1961
  %1963 = load float, ptr %1962, align 4, !tbaa !16
  %1964 = load ptr, ptr %15, align 8, !tbaa !9
  %1965 = load i32, ptr %24, align 4, !tbaa !5
  %1966 = sub nsw i32 %1965, 2
  %1967 = sext i32 %1966 to i64
  %1968 = getelementptr inbounds float, ptr %1964, i64 %1967
  %1969 = load float, ptr %1968, align 4, !tbaa !16
  %1970 = fsub float %1963, %1969
  br label %2055

1971:                                             ; preds = %1950
  %1972 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1973 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1972, i32 0, i32 8
  %1974 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1973, i64 0, i64 8
  %1975 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1974, i32 0, i32 1
  %1976 = load i32, ptr %1975, align 4, !tbaa !15
  %1977 = icmp eq i32 %1976, 2
  br i1 %1977, label %1978, label %2052

1978:                                             ; preds = %1971
  %1979 = load ptr, ptr %14, align 8, !tbaa !9
  %1980 = load i32, ptr %24, align 4, !tbaa !5
  %1981 = sub nsw i32 %1980, 2
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds float, ptr %1979, i64 %1982
  %1984 = load float, ptr %1983, align 4, !tbaa !16
  %1985 = load ptr, ptr %16, align 8, !tbaa !9
  %1986 = load i32, ptr %24, align 4, !tbaa !5
  %1987 = sub nsw i32 %1986, 2
  %1988 = sext i32 %1987 to i64
  %1989 = getelementptr inbounds float, ptr %1985, i64 %1988
  %1990 = load float, ptr %1989, align 4, !tbaa !16
  %1991 = load ptr, ptr %13, align 8, !tbaa !9
  %1992 = load i32, ptr %24, align 4, !tbaa !5
  %1993 = sub nsw i32 %1992, 2
  %1994 = sext i32 %1993 to i64
  %1995 = getelementptr inbounds float, ptr %1991, i64 %1994
  %1996 = load float, ptr %1995, align 4, !tbaa !16
  %1997 = fcmp oge float %1990, %1996
  br i1 %1997, label %1998, label %2005

1998:                                             ; preds = %1978
  %1999 = load ptr, ptr %16, align 8, !tbaa !9
  %2000 = load i32, ptr %24, align 4, !tbaa !5
  %2001 = sub nsw i32 %2000, 2
  %2002 = sext i32 %2001 to i64
  %2003 = getelementptr inbounds float, ptr %1999, i64 %2002
  %2004 = load float, ptr %2003, align 4, !tbaa !16
  br label %2012

2005:                                             ; preds = %1978
  %2006 = load ptr, ptr %13, align 8, !tbaa !9
  %2007 = load i32, ptr %24, align 4, !tbaa !5
  %2008 = sub nsw i32 %2007, 2
  %2009 = sext i32 %2008 to i64
  %2010 = getelementptr inbounds float, ptr %2006, i64 %2009
  %2011 = load float, ptr %2010, align 4, !tbaa !16
  br label %2012

2012:                                             ; preds = %2005, %1998
  %2013 = phi float [ %2004, %1998 ], [ %2011, %2005 ]
  %2014 = fsub float %1984, %2013
  %2015 = load ptr, ptr %16, align 8, !tbaa !9
  %2016 = load i32, ptr %24, align 4, !tbaa !5
  %2017 = sub nsw i32 %2016, 2
  %2018 = sext i32 %2017 to i64
  %2019 = getelementptr inbounds float, ptr %2015, i64 %2018
  %2020 = load float, ptr %2019, align 4, !tbaa !16
  %2021 = load ptr, ptr %13, align 8, !tbaa !9
  %2022 = load i32, ptr %24, align 4, !tbaa !5
  %2023 = sub nsw i32 %2022, 2
  %2024 = sext i32 %2023 to i64
  %2025 = getelementptr inbounds float, ptr %2021, i64 %2024
  %2026 = load float, ptr %2025, align 4, !tbaa !16
  %2027 = fcmp oge float %2020, %2026
  br i1 %2027, label %2028, label %2035

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

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

2042:                                             ; preds = %2035, %2028
  %2043 = phi float [ %2034, %2028 ], [ %2041, %2035 ]
  %2044 = load ptr, ptr %15, align 8, !tbaa !9
  %2045 = load i32, ptr %24, align 4, !tbaa !5
  %2046 = sub nsw i32 %2045, 2
  %2047 = sext i32 %2046 to i64
  %2048 = getelementptr inbounds float, ptr %2044, i64 %2047
  %2049 = load float, ptr %2048, align 4, !tbaa !16
  %2050 = fsub float %2043, %2049
  %2051 = fadd float %2014, %2050
  br label %2053

2052:                                             ; preds = %1971
  br label %2053

2053:                                             ; preds = %2052, %2042
  %2054 = phi float [ %2051, %2042 ], [ 0.000000e+00, %2052 ]
  br label %2055

2055:                                             ; preds = %2053, %1957
  %2056 = phi float [ %1970, %1957 ], [ %2054, %2053 ]
  %2057 = fpext float %2056 to double
  br label %2058

2058:                                             ; preds = %2055, %1934
  %2059 = phi double [ %1949, %1934 ], [ %2057, %2055 ]
  br label %2060

2060:                                             ; preds = %2058, %1917
  %2061 = phi double [ %1926, %1917 ], [ %2059, %2058 ]
  %2062 = fmul double %1909, %2061
  %2063 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2064 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2063, i32 0, i32 8
  %2065 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2064, i64 0, i64 8
  %2066 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2065, i32 0, i32 1
  %2067 = load i32, ptr %2066, align 4, !tbaa !15
  %2068 = icmp eq i32 %2067, 2
  %2069 = zext i1 %2068 to i64
  %2070 = select i1 %2068, double 2.000000e+00, double 1.000000e+00
  %2071 = fdiv double %2062, %2070
  %2072 = fadd double %1904, %2071
  %2073 = fcmp ole double %1897, %2072
  br i1 %2073, label %2074, label %2841

2074:                                             ; preds = %2060
  %2075 = load ptr, ptr %13, align 8, !tbaa !9
  %2076 = load i32, ptr %24, align 4, !tbaa !5
  %2077 = sext i32 %2076 to i64
  %2078 = getelementptr inbounds float, ptr %2075, i64 %2077
  %2079 = load float, ptr %2078, align 4, !tbaa !16
  %2080 = load ptr, ptr %13, align 8, !tbaa !9
  %2081 = load i32, ptr %24, align 4, !tbaa !5
  %2082 = sub nsw i32 %2081, 1
  %2083 = sext i32 %2082 to i64
  %2084 = getelementptr inbounds float, ptr %2080, i64 %2083
  %2085 = load float, ptr %2084, align 4, !tbaa !16
  %2086 = fcmp ogt float %2079, %2085
  br i1 %2086, label %2087, label %2841

2087:                                             ; preds = %2074
  %2088 = load ptr, ptr %13, align 8, !tbaa !9
  %2089 = load i32, ptr %24, align 4, !tbaa !5
  %2090 = sext i32 %2089 to i64
  %2091 = getelementptr inbounds float, ptr %2088, i64 %2090
  %2092 = load float, ptr %2091, align 4, !tbaa !16
  %2093 = fpext float %2092 to double
  %2094 = load ptr, ptr %16, align 8, !tbaa !9
  %2095 = load i32, ptr %24, align 4, !tbaa !5
  %2096 = sub nsw i32 %2095, 1
  %2097 = sext i32 %2096 to i64
  %2098 = getelementptr inbounds float, ptr %2094, i64 %2097
  %2099 = load float, ptr %2098, align 4, !tbaa !16
  %2100 = fpext float %2099 to double
  %2101 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2102 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2101, i32 0, i32 8
  %2103 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2102, i64 0, i64 8
  %2104 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2103, i32 0, i32 3
  %2105 = load double, ptr %2104, align 8, !tbaa !23
  %2106 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2107 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2106, i32 0, i32 8
  %2108 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2107, i64 0, i64 8
  %2109 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2108, i32 0, i32 2
  %2110 = load i32, ptr %2109, align 8, !tbaa !13
  %2111 = sitofp i32 %2110 to double
  %2112 = fcmp une double %2111, 0.000000e+00
  br i1 %2112, label %2113, label %2123

2113:                                             ; preds = %2087
  %2114 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %2115 = load double, ptr %2114, align 8, !tbaa !11
  %2116 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2117 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2116, i32 0, i32 8
  %2118 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2117, i64 0, i64 8
  %2119 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2118, i32 0, i32 2
  %2120 = load i32, ptr %2119, align 8, !tbaa !13
  %2121 = sitofp i32 %2120 to double
  %2122 = fdiv double %2115, %2121
  br label %2256

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

2130:                                             ; preds = %2123
  %2131 = load ptr, ptr %16, align 8, !tbaa !9
  %2132 = load i32, ptr %24, align 4, !tbaa !5
  %2133 = sub nsw i32 %2132, 1
  %2134 = sext i32 %2133 to i64
  %2135 = getelementptr inbounds float, ptr %2131, i64 %2134
  %2136 = load float, ptr %2135, align 4, !tbaa !16
  %2137 = load ptr, ptr %13, align 8, !tbaa !9
  %2138 = load i32, ptr %24, align 4, !tbaa !5
  %2139 = sub nsw i32 %2138, 1
  %2140 = sext i32 %2139 to i64
  %2141 = getelementptr inbounds float, ptr %2137, i64 %2140
  %2142 = load float, ptr %2141, align 4, !tbaa !16
  %2143 = fsub float %2136, %2142
  %2144 = fpext float %2143 to double
  %2145 = call double @llvm.fabs.f64(double %2144)
  br label %2254

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

2153:                                             ; preds = %2146
  %2154 = load ptr, ptr %14, align 8, !tbaa !9
  %2155 = load i32, ptr %24, align 4, !tbaa !5
  %2156 = sub nsw i32 %2155, 1
  %2157 = sext i32 %2156 to i64
  %2158 = getelementptr inbounds float, ptr %2154, i64 %2157
  %2159 = load float, ptr %2158, align 4, !tbaa !16
  %2160 = load ptr, ptr %15, align 8, !tbaa !9
  %2161 = load i32, ptr %24, align 4, !tbaa !5
  %2162 = sub nsw i32 %2161, 1
  %2163 = sext i32 %2162 to i64
  %2164 = getelementptr inbounds float, ptr %2160, i64 %2163
  %2165 = load float, ptr %2164, align 4, !tbaa !16
  %2166 = fsub float %2159, %2165
  br label %2251

2167:                                             ; preds = %2146
  %2168 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2169 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2168, i32 0, i32 8
  %2170 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2169, i64 0, i64 8
  %2171 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2170, i32 0, i32 1
  %2172 = load i32, ptr %2171, align 4, !tbaa !15
  %2173 = icmp eq i32 %2172, 2
  br i1 %2173, label %2174, label %2248

2174:                                             ; preds = %2167
  %2175 = load ptr, ptr %14, align 8, !tbaa !9
  %2176 = load i32, ptr %24, align 4, !tbaa !5
  %2177 = sub nsw i32 %2176, 1
  %2178 = sext i32 %2177 to i64
  %2179 = getelementptr inbounds float, ptr %2175, i64 %2178
  %2180 = load float, ptr %2179, align 4, !tbaa !16
  %2181 = load ptr, ptr %16, align 8, !tbaa !9
  %2182 = load i32, ptr %24, align 4, !tbaa !5
  %2183 = sub nsw i32 %2182, 1
  %2184 = sext i32 %2183 to i64
  %2185 = getelementptr inbounds float, ptr %2181, i64 %2184
  %2186 = load float, ptr %2185, align 4, !tbaa !16
  %2187 = load ptr, ptr %13, align 8, !tbaa !9
  %2188 = load i32, ptr %24, align 4, !tbaa !5
  %2189 = sub nsw i32 %2188, 1
  %2190 = sext i32 %2189 to i64
  %2191 = getelementptr inbounds float, ptr %2187, i64 %2190
  %2192 = load float, ptr %2191, align 4, !tbaa !16
  %2193 = fcmp oge float %2186, %2192
  br i1 %2193, label %2194, label %2201

2194:                                             ; preds = %2174
  %2195 = load ptr, ptr %16, align 8, !tbaa !9
  %2196 = load i32, ptr %24, align 4, !tbaa !5
  %2197 = sub nsw i32 %2196, 1
  %2198 = sext i32 %2197 to i64
  %2199 = getelementptr inbounds float, ptr %2195, i64 %2198
  %2200 = load float, ptr %2199, align 4, !tbaa !16
  br label %2208

2201:                                             ; preds = %2174
  %2202 = load ptr, ptr %13, align 8, !tbaa !9
  %2203 = load i32, ptr %24, align 4, !tbaa !5
  %2204 = sub nsw i32 %2203, 1
  %2205 = sext i32 %2204 to i64
  %2206 = getelementptr inbounds float, ptr %2202, i64 %2205
  %2207 = load float, ptr %2206, align 4, !tbaa !16
  br label %2208

2208:                                             ; preds = %2201, %2194
  %2209 = phi float [ %2200, %2194 ], [ %2207, %2201 ]
  %2210 = fsub float %2180, %2209
  %2211 = load ptr, ptr %16, align 8, !tbaa !9
  %2212 = load i32, ptr %24, align 4, !tbaa !5
  %2213 = sub nsw i32 %2212, 1
  %2214 = sext i32 %2213 to i64
  %2215 = getelementptr inbounds float, ptr %2211, i64 %2214
  %2216 = load float, ptr %2215, align 4, !tbaa !16
  %2217 = load ptr, ptr %13, align 8, !tbaa !9
  %2218 = load i32, ptr %24, align 4, !tbaa !5
  %2219 = sub nsw i32 %2218, 1
  %2220 = sext i32 %2219 to i64
  %2221 = getelementptr inbounds float, ptr %2217, i64 %2220
  %2222 = load float, ptr %2221, align 4, !tbaa !16
  %2223 = fcmp oge float %2216, %2222
  br i1 %2223, label %2224, label %2231

2224:                                             ; preds = %2208
  %2225 = load ptr, ptr %13, align 8, !tbaa !9
  %2226 = load i32, ptr %24, align 4, !tbaa !5
  %2227 = sub nsw i32 %2226, 1
  %2228 = sext i32 %2227 to i64
  %2229 = getelementptr inbounds float, ptr %2225, i64 %2228
  %2230 = load float, ptr %2229, align 4, !tbaa !16
  br label %2238

2231:                                             ; preds = %2208
  %2232 = load ptr, ptr %16, align 8, !tbaa !9
  %2233 = load i32, ptr %24, align 4, !tbaa !5
  %2234 = sub nsw i32 %2233, 1
  %2235 = sext i32 %2234 to i64
  %2236 = getelementptr inbounds float, ptr %2232, i64 %2235
  %2237 = load float, ptr %2236, align 4, !tbaa !16
  br label %2238

2238:                                             ; preds = %2231, %2224
  %2239 = phi float [ %2230, %2224 ], [ %2237, %2231 ]
  %2240 = load ptr, ptr %15, align 8, !tbaa !9
  %2241 = load i32, ptr %24, align 4, !tbaa !5
  %2242 = sub nsw i32 %2241, 1
  %2243 = sext i32 %2242 to i64
  %2244 = getelementptr inbounds float, ptr %2240, i64 %2243
  %2245 = load float, ptr %2244, align 4, !tbaa !16
  %2246 = fsub float %2239, %2245
  %2247 = fadd float %2210, %2246
  br label %2249

2248:                                             ; preds = %2167
  br label %2249

2249:                                             ; preds = %2248, %2238
  %2250 = phi float [ %2247, %2238 ], [ 0.000000e+00, %2248 ]
  br label %2251

2251:                                             ; preds = %2249, %2153
  %2252 = phi float [ %2166, %2153 ], [ %2250, %2249 ]
  %2253 = fpext float %2252 to double
  br label %2254

2254:                                             ; preds = %2251, %2130
  %2255 = phi double [ %2145, %2130 ], [ %2253, %2251 ]
  br label %2256

2256:                                             ; preds = %2254, %2113
  %2257 = phi double [ %2122, %2113 ], [ %2255, %2254 ]
  %2258 = fmul double %2105, %2257
  %2259 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2260 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2259, i32 0, i32 8
  %2261 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2260, i64 0, i64 8
  %2262 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2261, i32 0, i32 1
  %2263 = load i32, ptr %2262, align 4, !tbaa !15
  %2264 = icmp eq i32 %2263, 2
  %2265 = zext i1 %2264 to i64
  %2266 = select i1 %2264, double 2.000000e+00, double 1.000000e+00
  %2267 = fdiv double %2258, %2266
  %2268 = fadd double %2100, %2267
  %2269 = fcmp ole double %2093, %2268
  br i1 %2269, label %2270, label %2841

2270:                                             ; preds = %2256
  %2271 = load ptr, ptr %16, align 8, !tbaa !9
  %2272 = load i32, ptr %24, align 4, !tbaa !5
  %2273 = sub nsw i32 %2272, 1
  %2274 = sext i32 %2273 to i64
  %2275 = getelementptr inbounds float, ptr %2271, i64 %2274
  %2276 = load float, ptr %2275, align 4, !tbaa !16
  %2277 = load ptr, ptr %13, align 8, !tbaa !9
  %2278 = load i32, ptr %24, align 4, !tbaa !5
  %2279 = sub nsw i32 %2278, 1
  %2280 = sext i32 %2279 to i64
  %2281 = getelementptr inbounds float, ptr %2277, i64 %2280
  %2282 = load float, ptr %2281, align 4, !tbaa !16
  %2283 = fsub float %2276, %2282
  %2284 = fpext float %2283 to double
  %2285 = call double @llvm.fabs.f64(double %2284)
  %2286 = load ptr, ptr %16, align 8, !tbaa !9
  %2287 = load i32, ptr %24, align 4, !tbaa !5
  %2288 = sub nsw i32 %2287, 2
  %2289 = sext i32 %2288 to i64
  %2290 = getelementptr inbounds float, ptr %2286, i64 %2289
  %2291 = load float, ptr %2290, align 4, !tbaa !16
  %2292 = load ptr, ptr %13, align 8, !tbaa !9
  %2293 = load i32, ptr %24, align 4, !tbaa !5
  %2294 = sub nsw i32 %2293, 2
  %2295 = sext i32 %2294 to i64
  %2296 = getelementptr inbounds float, ptr %2292, i64 %2295
  %2297 = load float, ptr %2296, align 4, !tbaa !16
  %2298 = fsub float %2291, %2297
  %2299 = fpext float %2298 to double
  %2300 = call double @llvm.fabs.f64(double %2299)
  %2301 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2302 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2301, i32 0, i32 8
  %2303 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2302, i64 0, i64 9
  %2304 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2303, i32 0, i32 3
  %2305 = load double, ptr %2304, align 8, !tbaa !23
  %2306 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2307 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2306, i32 0, i32 8
  %2308 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2307, i64 0, i64 9
  %2309 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2308, i32 0, i32 2
  %2310 = load i32, ptr %2309, align 8, !tbaa !13
  %2311 = sitofp i32 %2310 to double
  %2312 = fcmp une double %2311, 0.000000e+00
  br i1 %2312, label %2313, label %2323

2313:                                             ; preds = %2270
  %2314 = getelementptr inbounds [3 x double], ptr %22, i64 0, i64 2
  %2315 = load double, ptr %2314, align 16, !tbaa !11
  %2316 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2317 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2316, i32 0, i32 8
  %2318 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2317, i64 0, i64 9
  %2319 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2318, i32 0, i32 2
  %2320 = load i32, ptr %2319, align 8, !tbaa !13
  %2321 = sitofp i32 %2320 to double
  %2322 = fdiv double %2315, %2321
  br label %2456

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

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

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

2353:                                             ; preds = %2346
  %2354 = load ptr, ptr %14, align 8, !tbaa !9
  %2355 = load i32, ptr %24, align 4, !tbaa !5
  %2356 = sub nsw i32 %2355, 2
  %2357 = sext i32 %2356 to i64
  %2358 = getelementptr inbounds float, ptr %2354, i64 %2357
  %2359 = load float, ptr %2358, align 4, !tbaa !16
  %2360 = load ptr, ptr %15, align 8, !tbaa !9
  %2361 = load i32, ptr %24, align 4, !tbaa !5
  %2362 = sub nsw i32 %2361, 2
  %2363 = sext i32 %2362 to i64
  %2364 = getelementptr inbounds float, ptr %2360, i64 %2363
  %2365 = load float, ptr %2364, align 4, !tbaa !16
  %2366 = fsub float %2359, %2365
  br label %2451

2367:                                             ; preds = %2346
  %2368 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2369 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2368, i32 0, i32 8
  %2370 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2369, i64 0, i64 9
  %2371 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2370, i32 0, i32 1
  %2372 = load i32, ptr %2371, align 4, !tbaa !15
  %2373 = icmp eq i32 %2372, 2
  br i1 %2373, label %2374, label %2448

2374:                                             ; preds = %2367
  %2375 = load ptr, ptr %14, align 8, !tbaa !9
  %2376 = load i32, ptr %24, align 4, !tbaa !5
  %2377 = sub nsw i32 %2376, 2
  %2378 = sext i32 %2377 to i64
  %2379 = getelementptr inbounds float, ptr %2375, i64 %2378
  %2380 = load float, ptr %2379, align 4, !tbaa !16
  %2381 = load ptr, ptr %16, align 8, !tbaa !9
  %2382 = load i32, ptr %24, align 4, !tbaa !5
  %2383 = sub nsw i32 %2382, 2
  %2384 = sext i32 %2383 to i64
  %2385 = getelementptr inbounds float, ptr %2381, i64 %2384
  %2386 = load float, ptr %2385, align 4, !tbaa !16
  %2387 = load ptr, ptr %13, align 8, !tbaa !9
  %2388 = load i32, ptr %24, align 4, !tbaa !5
  %2389 = sub nsw i32 %2388, 2
  %2390 = sext i32 %2389 to i64
  %2391 = getelementptr inbounds float, ptr %2387, i64 %2390
  %2392 = load float, ptr %2391, align 4, !tbaa !16
  %2393 = fcmp oge float %2386, %2392
  br i1 %2393, label %2394, label %2401

2394:                                             ; preds = %2374
  %2395 = load ptr, ptr %16, align 8, !tbaa !9
  %2396 = load i32, ptr %24, align 4, !tbaa !5
  %2397 = sub nsw i32 %2396, 2
  %2398 = sext i32 %2397 to i64
  %2399 = getelementptr inbounds float, ptr %2395, i64 %2398
  %2400 = load float, ptr %2399, align 4, !tbaa !16
  br label %2408

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

2408:                                             ; preds = %2401, %2394
  %2409 = phi float [ %2400, %2394 ], [ %2407, %2401 ]
  %2410 = fsub float %2380, %2409
  %2411 = load ptr, ptr %16, align 8, !tbaa !9
  %2412 = load i32, ptr %24, align 4, !tbaa !5
  %2413 = sub nsw i32 %2412, 2
  %2414 = sext i32 %2413 to i64
  %2415 = getelementptr inbounds float, ptr %2411, i64 %2414
  %2416 = load float, ptr %2415, align 4, !tbaa !16
  %2417 = load ptr, ptr %13, align 8, !tbaa !9
  %2418 = load i32, ptr %24, align 4, !tbaa !5
  %2419 = sub nsw i32 %2418, 2
  %2420 = sext i32 %2419 to i64
  %2421 = getelementptr inbounds float, ptr %2417, i64 %2420
  %2422 = load float, ptr %2421, align 4, !tbaa !16
  %2423 = fcmp oge float %2416, %2422
  br i1 %2423, label %2424, label %2431

2424:                                             ; preds = %2408
  %2425 = load ptr, ptr %13, align 8, !tbaa !9
  %2426 = load i32, ptr %24, align 4, !tbaa !5
  %2427 = sub nsw i32 %2426, 2
  %2428 = sext i32 %2427 to i64
  %2429 = getelementptr inbounds float, ptr %2425, i64 %2428
  %2430 = load float, ptr %2429, align 4, !tbaa !16
  br label %2438

2431:                                             ; preds = %2408
  %2432 = load ptr, ptr %16, align 8, !tbaa !9
  %2433 = load i32, ptr %24, align 4, !tbaa !5
  %2434 = sub nsw i32 %2433, 2
  %2435 = sext i32 %2434 to i64
  %2436 = getelementptr inbounds float, ptr %2432, i64 %2435
  %2437 = load float, ptr %2436, align 4, !tbaa !16
  br label %2438

2438:                                             ; preds = %2431, %2424
  %2439 = phi float [ %2430, %2424 ], [ %2437, %2431 ]
  %2440 = load ptr, ptr %15, align 8, !tbaa !9
  %2441 = load i32, ptr %24, align 4, !tbaa !5
  %2442 = sub nsw i32 %2441, 2
  %2443 = sext i32 %2442 to i64
  %2444 = getelementptr inbounds float, ptr %2440, i64 %2443
  %2445 = load float, ptr %2444, align 4, !tbaa !16
  %2446 = fsub float %2439, %2445
  %2447 = fadd float %2410, %2446
  br label %2449

2448:                                             ; preds = %2367
  br label %2449

2449:                                             ; preds = %2448, %2438
  %2450 = phi float [ %2447, %2438 ], [ 0.000000e+00, %2448 ]
  br label %2451

2451:                                             ; preds = %2449, %2353
  %2452 = phi float [ %2366, %2353 ], [ %2450, %2449 ]
  %2453 = fpext float %2452 to double
  br label %2454

2454:                                             ; preds = %2451, %2330
  %2455 = phi double [ %2345, %2330 ], [ %2453, %2451 ]
  br label %2456

2456:                                             ; preds = %2454, %2313
  %2457 = phi double [ %2322, %2313 ], [ %2455, %2454 ]
  %2458 = fmul double %2305, %2457
  %2459 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2460 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2459, i32 0, i32 8
  %2461 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2460, i64 0, i64 9
  %2462 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2461, i32 0, i32 1
  %2463 = load i32, ptr %2462, align 4, !tbaa !15
  %2464 = icmp eq i32 %2463, 2
  %2465 = zext i1 %2464 to i64
  %2466 = select i1 %2464, double 2.000000e+00, double 1.000000e+00
  %2467 = fdiv double %2458, %2466
  %2468 = fsub double %2300, %2467
  %2469 = fcmp ogt double %2285, %2468
  br i1 %2469, label %2470, label %2841

2470:                                             ; preds = %2456
  %2471 = load ptr, ptr %16, align 8, !tbaa !9
  %2472 = load i32, ptr %24, align 4, !tbaa !5
  %2473 = sext i32 %2472 to i64
  %2474 = getelementptr inbounds float, ptr %2471, i64 %2473
  %2475 = load float, ptr %2474, align 4, !tbaa !16
  %2476 = load ptr, ptr %13, align 8, !tbaa !9
  %2477 = load i32, ptr %24, align 4, !tbaa !5
  %2478 = sext i32 %2477 to i64
  %2479 = getelementptr inbounds float, ptr %2476, i64 %2478
  %2480 = load float, ptr %2479, align 4, !tbaa !16
  %2481 = fsub float %2475, %2480
  %2482 = fpext float %2481 to double
  %2483 = call double @llvm.fabs.f64(double %2482)
  %2484 = load ptr, ptr %16, align 8, !tbaa !9
  %2485 = load i32, ptr %24, align 4, !tbaa !5
  %2486 = sub nsw i32 %2485, 1
  %2487 = sext i32 %2486 to i64
  %2488 = getelementptr inbounds float, ptr %2484, i64 %2487
  %2489 = load float, ptr %2488, align 4, !tbaa !16
  %2490 = load ptr, ptr %13, align 8, !tbaa !9
  %2491 = load i32, ptr %24, align 4, !tbaa !5
  %2492 = sub nsw i32 %2491, 1
  %2493 = sext i32 %2492 to i64
  %2494 = getelementptr inbounds float, ptr %2490, i64 %2493
  %2495 = load float, ptr %2494, align 4, !tbaa !16
  %2496 = fsub float %2489, %2495
  %2497 = fpext float %2496 to double
  %2498 = call double @llvm.fabs.f64(double %2497)
  %2499 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2500 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2499, i32 0, i32 8
  %2501 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2500, i64 0, i64 9
  %2502 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2501, i32 0, i32 3
  %2503 = load double, ptr %2502, align 8, !tbaa !23
  %2504 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2505 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2504, i32 0, i32 8
  %2506 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2505, i64 0, i64 9
  %2507 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2506, i32 0, i32 2
  %2508 = load i32, ptr %2507, align 8, !tbaa !13
  %2509 = sitofp i32 %2508 to double
  %2510 = fcmp une double %2509, 0.000000e+00
  br i1 %2510, label %2511, label %2521

2511:                                             ; preds = %2470
  %2512 = getelementptr inbounds [3 x double], ptr %22, i64 0, i64 1
  %2513 = load double, ptr %2512, align 8, !tbaa !11
  %2514 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2515 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2514, i32 0, i32 8
  %2516 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2515, i64 0, i64 9
  %2517 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2516, i32 0, i32 2
  %2518 = load i32, ptr %2517, align 8, !tbaa !13
  %2519 = sitofp i32 %2518 to double
  %2520 = fdiv double %2513, %2519
  br label %2654

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

2528:                                             ; preds = %2521
  %2529 = load ptr, ptr %16, align 8, !tbaa !9
  %2530 = load i32, ptr %24, align 4, !tbaa !5
  %2531 = sub nsw i32 %2530, 1
  %2532 = sext i32 %2531 to i64
  %2533 = getelementptr inbounds float, ptr %2529, i64 %2532
  %2534 = load float, ptr %2533, align 4, !tbaa !16
  %2535 = load ptr, ptr %13, align 8, !tbaa !9
  %2536 = load i32, ptr %24, align 4, !tbaa !5
  %2537 = sub nsw i32 %2536, 1
  %2538 = sext i32 %2537 to i64
  %2539 = getelementptr inbounds float, ptr %2535, i64 %2538
  %2540 = load float, ptr %2539, align 4, !tbaa !16
  %2541 = fsub float %2534, %2540
  %2542 = fpext float %2541 to double
  %2543 = call double @llvm.fabs.f64(double %2542)
  br label %2652

2544:                                             ; preds = %2521
  %2545 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2546 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2545, i32 0, i32 8
  %2547 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2546, i64 0, i64 9
  %2548 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2547, i32 0, i32 1
  %2549 = load i32, ptr %2548, align 4, !tbaa !15
  %2550 = icmp eq i32 %2549, 1
  br i1 %2550, label %2551, label %2565

2551:                                             ; preds = %2544
  %2552 = load ptr, ptr %14, align 8, !tbaa !9
  %2553 = load i32, ptr %24, align 4, !tbaa !5
  %2554 = sub nsw i32 %2553, 1
  %2555 = sext i32 %2554 to i64
  %2556 = getelementptr inbounds float, ptr %2552, i64 %2555
  %2557 = load float, ptr %2556, align 4, !tbaa !16
  %2558 = load ptr, ptr %15, align 8, !tbaa !9
  %2559 = load i32, ptr %24, align 4, !tbaa !5
  %2560 = sub nsw i32 %2559, 1
  %2561 = sext i32 %2560 to i64
  %2562 = getelementptr inbounds float, ptr %2558, i64 %2561
  %2563 = load float, ptr %2562, align 4, !tbaa !16
  %2564 = fsub float %2557, %2563
  br label %2649

2565:                                             ; preds = %2544
  %2566 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2567 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2566, i32 0, i32 8
  %2568 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2567, i64 0, i64 9
  %2569 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2568, i32 0, i32 1
  %2570 = load i32, ptr %2569, align 4, !tbaa !15
  %2571 = icmp eq i32 %2570, 2
  br i1 %2571, label %2572, label %2646

2572:                                             ; preds = %2565
  %2573 = load ptr, ptr %14, align 8, !tbaa !9
  %2574 = load i32, ptr %24, align 4, !tbaa !5
  %2575 = sub nsw i32 %2574, 1
  %2576 = sext i32 %2575 to i64
  %2577 = getelementptr inbounds float, ptr %2573, i64 %2576
  %2578 = load float, ptr %2577, align 4, !tbaa !16
  %2579 = load ptr, ptr %16, align 8, !tbaa !9
  %2580 = load i32, ptr %24, align 4, !tbaa !5
  %2581 = sub nsw i32 %2580, 1
  %2582 = sext i32 %2581 to i64
  %2583 = getelementptr inbounds float, ptr %2579, i64 %2582
  %2584 = load float, ptr %2583, align 4, !tbaa !16
  %2585 = load ptr, ptr %13, align 8, !tbaa !9
  %2586 = load i32, ptr %24, align 4, !tbaa !5
  %2587 = sub nsw i32 %2586, 1
  %2588 = sext i32 %2587 to i64
  %2589 = getelementptr inbounds float, ptr %2585, i64 %2588
  %2590 = load float, ptr %2589, align 4, !tbaa !16
  %2591 = fcmp oge float %2584, %2590
  br i1 %2591, label %2592, label %2599

2592:                                             ; preds = %2572
  %2593 = load ptr, ptr %16, align 8, !tbaa !9
  %2594 = load i32, ptr %24, align 4, !tbaa !5
  %2595 = sub nsw i32 %2594, 1
  %2596 = sext i32 %2595 to i64
  %2597 = getelementptr inbounds float, ptr %2593, i64 %2596
  %2598 = load float, ptr %2597, align 4, !tbaa !16
  br label %2606

2599:                                             ; preds = %2572
  %2600 = load ptr, ptr %13, align 8, !tbaa !9
  %2601 = load i32, ptr %24, align 4, !tbaa !5
  %2602 = sub nsw i32 %2601, 1
  %2603 = sext i32 %2602 to i64
  %2604 = getelementptr inbounds float, ptr %2600, i64 %2603
  %2605 = load float, ptr %2604, align 4, !tbaa !16
  br label %2606

2606:                                             ; preds = %2599, %2592
  %2607 = phi float [ %2598, %2592 ], [ %2605, %2599 ]
  %2608 = fsub float %2578, %2607
  %2609 = load ptr, ptr %16, align 8, !tbaa !9
  %2610 = load i32, ptr %24, align 4, !tbaa !5
  %2611 = sub nsw i32 %2610, 1
  %2612 = sext i32 %2611 to i64
  %2613 = getelementptr inbounds float, ptr %2609, i64 %2612
  %2614 = load float, ptr %2613, align 4, !tbaa !16
  %2615 = load ptr, ptr %13, align 8, !tbaa !9
  %2616 = load i32, ptr %24, align 4, !tbaa !5
  %2617 = sub nsw i32 %2616, 1
  %2618 = sext i32 %2617 to i64
  %2619 = getelementptr inbounds float, ptr %2615, i64 %2618
  %2620 = load float, ptr %2619, align 4, !tbaa !16
  %2621 = fcmp oge float %2614, %2620
  br i1 %2621, label %2622, label %2629

2622:                                             ; preds = %2606
  %2623 = load ptr, ptr %13, align 8, !tbaa !9
  %2624 = load i32, ptr %24, align 4, !tbaa !5
  %2625 = sub nsw i32 %2624, 1
  %2626 = sext i32 %2625 to i64
  %2627 = getelementptr inbounds float, ptr %2623, i64 %2626
  %2628 = load float, ptr %2627, align 4, !tbaa !16
  br label %2636

2629:                                             ; preds = %2606
  %2630 = load ptr, ptr %16, align 8, !tbaa !9
  %2631 = load i32, ptr %24, align 4, !tbaa !5
  %2632 = sub nsw i32 %2631, 1
  %2633 = sext i32 %2632 to i64
  %2634 = getelementptr inbounds float, ptr %2630, i64 %2633
  %2635 = load float, ptr %2634, align 4, !tbaa !16
  br label %2636

2636:                                             ; preds = %2629, %2622
  %2637 = phi float [ %2628, %2622 ], [ %2635, %2629 ]
  %2638 = load ptr, ptr %15, align 8, !tbaa !9
  %2639 = load i32, ptr %24, align 4, !tbaa !5
  %2640 = sub nsw i32 %2639, 1
  %2641 = sext i32 %2640 to i64
  %2642 = getelementptr inbounds float, ptr %2638, i64 %2641
  %2643 = load float, ptr %2642, align 4, !tbaa !16
  %2644 = fsub float %2637, %2643
  %2645 = fadd float %2608, %2644
  br label %2647

2646:                                             ; preds = %2565
  br label %2647

2647:                                             ; preds = %2646, %2636
  %2648 = phi float [ %2645, %2636 ], [ 0.000000e+00, %2646 ]
  br label %2649

2649:                                             ; preds = %2647, %2551
  %2650 = phi float [ %2564, %2551 ], [ %2648, %2647 ]
  %2651 = fpext float %2650 to double
  br label %2652

2652:                                             ; preds = %2649, %2528
  %2653 = phi double [ %2543, %2528 ], [ %2651, %2649 ]
  br label %2654

2654:                                             ; preds = %2652, %2511
  %2655 = phi double [ %2520, %2511 ], [ %2653, %2652 ]
  %2656 = fmul double %2503, %2655
  %2657 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2658 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2657, i32 0, i32 8
  %2659 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2658, i64 0, i64 9
  %2660 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2659, i32 0, i32 1
  %2661 = load i32, ptr %2660, align 4, !tbaa !15
  %2662 = icmp eq i32 %2661, 2
  %2663 = zext i1 %2662 to i64
  %2664 = select i1 %2662, double 2.000000e+00, double 1.000000e+00
  %2665 = fdiv double %2656, %2664
  %2666 = fsub double %2498, %2665
  %2667 = fcmp ogt double %2483, %2666
  br i1 %2667, label %2668, label %2841

2668:                                             ; preds = %2654
  %2669 = load ptr, ptr %16, align 8, !tbaa !9
  %2670 = load i32, ptr %24, align 4, !tbaa !5
  %2671 = sext i32 %2670 to i64
  %2672 = getelementptr inbounds float, ptr %2669, i64 %2671
  %2673 = load float, ptr %2672, align 4, !tbaa !16
  %2674 = load ptr, ptr %13, align 8, !tbaa !9
  %2675 = load i32, ptr %24, align 4, !tbaa !5
  %2676 = sext i32 %2675 to i64
  %2677 = getelementptr inbounds float, ptr %2674, i64 %2676
  %2678 = load float, ptr %2677, align 4, !tbaa !16
  %2679 = fsub float %2673, %2678
  %2680 = fpext float %2679 to double
  %2681 = call double @llvm.fabs.f64(double %2680)
  %2682 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2683 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2682, i32 0, i32 8
  %2684 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2683, i64 0, i64 2
  %2685 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2684, i32 0, i32 3
  %2686 = load double, ptr %2685, align 8, !tbaa !23
  %2687 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2688 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2687, i32 0, i32 8
  %2689 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2688, i64 0, i64 2
  %2690 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2689, i32 0, i32 2
  %2691 = load i32, ptr %2690, align 8, !tbaa !13
  %2692 = sitofp i32 %2691 to double
  %2693 = fcmp une double %2692, 0.000000e+00
  br i1 %2693, label %2694, label %2703

2694:                                             ; preds = %2668
  %2695 = load double, ptr %23, align 8, !tbaa !11
  %2696 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2697 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2696, i32 0, i32 8
  %2698 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2697, i64 0, i64 2
  %2699 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2698, i32 0, i32 2
  %2700 = load i32, ptr %2699, align 8, !tbaa !13
  %2701 = sitofp i32 %2700 to double
  %2702 = fdiv double %2695, %2701
  br label %2822

2703:                                             ; preds = %2668
  %2704 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2705 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2704, i32 0, i32 8
  %2706 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2705, i64 0, i64 2
  %2707 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2706, i32 0, i32 1
  %2708 = load i32, ptr %2707, align 4, !tbaa !15
  %2709 = icmp eq i32 %2708, 0
  br i1 %2709, label %2710, label %2724

2710:                                             ; preds = %2703
  %2711 = load ptr, ptr %16, align 8, !tbaa !9
  %2712 = load i32, ptr %24, align 4, !tbaa !5
  %2713 = sext i32 %2712 to i64
  %2714 = getelementptr inbounds float, ptr %2711, i64 %2713
  %2715 = load float, ptr %2714, align 4, !tbaa !16
  %2716 = load ptr, ptr %13, align 8, !tbaa !9
  %2717 = load i32, ptr %24, align 4, !tbaa !5
  %2718 = sext i32 %2717 to i64
  %2719 = getelementptr inbounds float, ptr %2716, i64 %2718
  %2720 = load float, ptr %2719, align 4, !tbaa !16
  %2721 = fsub float %2715, %2720
  %2722 = fpext float %2721 to double
  %2723 = call double @llvm.fabs.f64(double %2722)
  br label %2820

2724:                                             ; preds = %2703
  %2725 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2726 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2725, i32 0, i32 8
  %2727 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2726, i64 0, i64 2
  %2728 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2727, i32 0, i32 1
  %2729 = load i32, ptr %2728, align 4, !tbaa !15
  %2730 = icmp eq i32 %2729, 1
  br i1 %2730, label %2731, label %2743

2731:                                             ; preds = %2724
  %2732 = load ptr, ptr %14, align 8, !tbaa !9
  %2733 = load i32, ptr %24, align 4, !tbaa !5
  %2734 = sext i32 %2733 to i64
  %2735 = getelementptr inbounds float, ptr %2732, i64 %2734
  %2736 = load float, ptr %2735, align 4, !tbaa !16
  %2737 = load ptr, ptr %15, align 8, !tbaa !9
  %2738 = load i32, ptr %24, align 4, !tbaa !5
  %2739 = sext i32 %2738 to i64
  %2740 = getelementptr inbounds float, ptr %2737, i64 %2739
  %2741 = load float, ptr %2740, align 4, !tbaa !16
  %2742 = fsub float %2736, %2741
  br label %2817

2743:                                             ; preds = %2724
  %2744 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2745 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2744, i32 0, i32 8
  %2746 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2745, i64 0, i64 2
  %2747 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2746, i32 0, i32 1
  %2748 = load i32, ptr %2747, align 4, !tbaa !15
  %2749 = icmp eq i32 %2748, 2
  br i1 %2749, label %2750, label %2814

2750:                                             ; preds = %2743
  %2751 = load ptr, ptr %14, align 8, !tbaa !9
  %2752 = load i32, ptr %24, align 4, !tbaa !5
  %2753 = sext i32 %2752 to i64
  %2754 = getelementptr inbounds float, ptr %2751, i64 %2753
  %2755 = load float, ptr %2754, align 4, !tbaa !16
  %2756 = load ptr, ptr %16, align 8, !tbaa !9
  %2757 = load i32, ptr %24, align 4, !tbaa !5
  %2758 = sext i32 %2757 to i64
  %2759 = getelementptr inbounds float, ptr %2756, i64 %2758
  %2760 = load float, ptr %2759, align 4, !tbaa !16
  %2761 = load ptr, ptr %13, align 8, !tbaa !9
  %2762 = load i32, ptr %24, align 4, !tbaa !5
  %2763 = sext i32 %2762 to i64
  %2764 = getelementptr inbounds float, ptr %2761, i64 %2763
  %2765 = load float, ptr %2764, align 4, !tbaa !16
  %2766 = fcmp oge float %2760, %2765
  br i1 %2766, label %2767, label %2773

2767:                                             ; preds = %2750
  %2768 = load ptr, ptr %16, align 8, !tbaa !9
  %2769 = load i32, ptr %24, align 4, !tbaa !5
  %2770 = sext i32 %2769 to i64
  %2771 = getelementptr inbounds float, ptr %2768, i64 %2770
  %2772 = load float, ptr %2771, align 4, !tbaa !16
  br label %2779

2773:                                             ; preds = %2750
  %2774 = load ptr, ptr %13, align 8, !tbaa !9
  %2775 = load i32, ptr %24, align 4, !tbaa !5
  %2776 = sext i32 %2775 to i64
  %2777 = getelementptr inbounds float, ptr %2774, i64 %2776
  %2778 = load float, ptr %2777, align 4, !tbaa !16
  br label %2779

2779:                                             ; preds = %2773, %2767
  %2780 = phi float [ %2772, %2767 ], [ %2778, %2773 ]
  %2781 = fsub float %2755, %2780
  %2782 = load ptr, ptr %16, align 8, !tbaa !9
  %2783 = load i32, ptr %24, align 4, !tbaa !5
  %2784 = sext i32 %2783 to i64
  %2785 = getelementptr inbounds float, ptr %2782, i64 %2784
  %2786 = load float, ptr %2785, align 4, !tbaa !16
  %2787 = load ptr, ptr %13, align 8, !tbaa !9
  %2788 = load i32, ptr %24, align 4, !tbaa !5
  %2789 = sext i32 %2788 to i64
  %2790 = getelementptr inbounds float, ptr %2787, i64 %2789
  %2791 = load float, ptr %2790, align 4, !tbaa !16
  %2792 = fcmp oge float %2786, %2791
  br i1 %2792, label %2793, label %2799

2793:                                             ; preds = %2779
  %2794 = load ptr, ptr %13, align 8, !tbaa !9
  %2795 = load i32, ptr %24, align 4, !tbaa !5
  %2796 = sext i32 %2795 to i64
  %2797 = getelementptr inbounds float, ptr %2794, i64 %2796
  %2798 = load float, ptr %2797, align 4, !tbaa !16
  br label %2805

2799:                                             ; preds = %2779
  %2800 = load ptr, ptr %16, align 8, !tbaa !9
  %2801 = load i32, ptr %24, align 4, !tbaa !5
  %2802 = sext i32 %2801 to i64
  %2803 = getelementptr inbounds float, ptr %2800, i64 %2802
  %2804 = load float, ptr %2803, align 4, !tbaa !16
  br label %2805

2805:                                             ; preds = %2799, %2793
  %2806 = phi float [ %2798, %2793 ], [ %2804, %2799 ]
  %2807 = load ptr, ptr %15, align 8, !tbaa !9
  %2808 = load i32, ptr %24, align 4, !tbaa !5
  %2809 = sext i32 %2808 to i64
  %2810 = getelementptr inbounds float, ptr %2807, i64 %2809
  %2811 = load float, ptr %2810, align 4, !tbaa !16
  %2812 = fsub float %2806, %2811
  %2813 = fadd float %2781, %2812
  br label %2815

2814:                                             ; preds = %2743
  br label %2815

2815:                                             ; preds = %2814, %2805
  %2816 = phi float [ %2813, %2805 ], [ 0.000000e+00, %2814 ]
  br label %2817

2817:                                             ; preds = %2815, %2731
  %2818 = phi float [ %2742, %2731 ], [ %2816, %2815 ]
  %2819 = fpext float %2818 to double
  br label %2820

2820:                                             ; preds = %2817, %2710
  %2821 = phi double [ %2723, %2710 ], [ %2819, %2817 ]
  br label %2822

2822:                                             ; preds = %2820, %2694
  %2823 = phi double [ %2702, %2694 ], [ %2821, %2820 ]
  %2824 = fmul double %2686, %2823
  %2825 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2826 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2825, i32 0, i32 8
  %2827 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2826, i64 0, i64 2
  %2828 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2827, i32 0, i32 1
  %2829 = load i32, ptr %2828, align 4, !tbaa !15
  %2830 = icmp eq i32 %2829, 2
  %2831 = zext i1 %2830 to i64
  %2832 = select i1 %2830, double 2.000000e+00, double 1.000000e+00
  %2833 = fdiv double %2824, %2832
  %2834 = fcmp ogt double %2681, %2833
  br i1 %2834, label %2835, label %2841

2835:                                             ; preds = %2822
  %2836 = load ptr, ptr %19, align 8, !tbaa !9
  %2837 = load i32, ptr %25, align 4, !tbaa !5
  %2838 = add nsw i32 %2837, 1
  store i32 %2838, ptr %25, align 4, !tbaa !5
  %2839 = sext i32 %2837 to i64
  %2840 = getelementptr inbounds i32, ptr %2836, i64 %2839
  store i32 100, ptr %2840, align 4, !tbaa !5
  br label %2847

2841:                                             ; preds = %2822, %2654, %2456, %2256, %2074, %2060, %1876, %1862, %1849, %1836, %1647, %1634, %1424, %1411, %1201
  %2842 = load ptr, ptr %19, align 8, !tbaa !9
  %2843 = load i32, ptr %25, align 4, !tbaa !5
  %2844 = add nsw i32 %2843, 1
  store i32 %2844, ptr %25, align 4, !tbaa !5
  %2845 = sext i32 %2843 to i64
  %2846 = getelementptr inbounds i32, ptr %2842, i64 %2845
  store i32 0, ptr %2846, align 4, !tbaa !5
  br label %2847

2847:                                             ; preds = %2841, %2835
  store i32 2, ptr %26, align 4, !tbaa !5
  br label %2848

2848:                                             ; preds = %3150, %2847
  %2849 = load i32, ptr %26, align 4, !tbaa !5
  %2850 = icmp sge i32 %2849, 0
  br i1 %2850, label %2851, label %3153

2851:                                             ; preds = %2848
  %2852 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2853 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2852, i32 0, i32 8
  %2854 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2853, i64 0, i64 7
  %2855 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2854, i32 0, i32 1
  %2856 = load i32, ptr %2855, align 4, !tbaa !15
  %2857 = icmp eq i32 %2856, 0
  br i1 %2857, label %2858, label %2876

2858:                                             ; preds = %2851
  %2859 = load ptr, ptr %16, align 8, !tbaa !9
  %2860 = load i32, ptr %24, align 4, !tbaa !5
  %2861 = load i32, ptr %26, align 4, !tbaa !5
  %2862 = sub nsw i32 %2860, %2861
  %2863 = sext i32 %2862 to i64
  %2864 = getelementptr inbounds float, ptr %2859, i64 %2863
  %2865 = load float, ptr %2864, align 4, !tbaa !16
  %2866 = load ptr, ptr %13, align 8, !tbaa !9
  %2867 = load i32, ptr %24, align 4, !tbaa !5
  %2868 = load i32, ptr %26, align 4, !tbaa !5
  %2869 = sub nsw i32 %2867, %2868
  %2870 = sext i32 %2869 to i64
  %2871 = getelementptr inbounds float, ptr %2866, i64 %2870
  %2872 = load float, ptr %2871, align 4, !tbaa !16
  %2873 = fsub float %2865, %2872
  %2874 = fpext float %2873 to double
  %2875 = call double @llvm.fabs.f64(double %2874)
  br label %2996

2876:                                             ; preds = %2851
  %2877 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2878 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2877, i32 0, i32 8
  %2879 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2878, i64 0, i64 7
  %2880 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2879, i32 0, i32 1
  %2881 = load i32, ptr %2880, align 4, !tbaa !15
  %2882 = icmp eq i32 %2881, 1
  br i1 %2882, label %2883, label %2899

2883:                                             ; preds = %2876
  %2884 = load ptr, ptr %14, align 8, !tbaa !9
  %2885 = load i32, ptr %24, align 4, !tbaa !5
  %2886 = load i32, ptr %26, align 4, !tbaa !5
  %2887 = sub nsw i32 %2885, %2886
  %2888 = sext i32 %2887 to i64
  %2889 = getelementptr inbounds float, ptr %2884, i64 %2888
  %2890 = load float, ptr %2889, align 4, !tbaa !16
  %2891 = load ptr, ptr %15, align 8, !tbaa !9
  %2892 = load i32, ptr %24, align 4, !tbaa !5
  %2893 = load i32, ptr %26, align 4, !tbaa !5
  %2894 = sub nsw i32 %2892, %2893
  %2895 = sext i32 %2894 to i64
  %2896 = getelementptr inbounds float, ptr %2891, i64 %2895
  %2897 = load float, ptr %2896, align 4, !tbaa !16
  %2898 = fsub float %2890, %2897
  br label %2993

2899:                                             ; preds = %2876
  %2900 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2901 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2900, i32 0, i32 8
  %2902 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2901, i64 0, i64 7
  %2903 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2902, i32 0, i32 1
  %2904 = load i32, ptr %2903, align 4, !tbaa !15
  %2905 = icmp eq i32 %2904, 2
  br i1 %2905, label %2906, label %2990

2906:                                             ; preds = %2899
  %2907 = load ptr, ptr %14, align 8, !tbaa !9
  %2908 = load i32, ptr %24, align 4, !tbaa !5
  %2909 = load i32, ptr %26, align 4, !tbaa !5
  %2910 = sub nsw i32 %2908, %2909
  %2911 = sext i32 %2910 to i64
  %2912 = getelementptr inbounds float, ptr %2907, i64 %2911
  %2913 = load float, ptr %2912, align 4, !tbaa !16
  %2914 = load ptr, ptr %16, align 8, !tbaa !9
  %2915 = load i32, ptr %24, align 4, !tbaa !5
  %2916 = load i32, ptr %26, align 4, !tbaa !5
  %2917 = sub nsw i32 %2915, %2916
  %2918 = sext i32 %2917 to i64
  %2919 = getelementptr inbounds float, ptr %2914, i64 %2918
  %2920 = load float, ptr %2919, align 4, !tbaa !16
  %2921 = load ptr, ptr %13, align 8, !tbaa !9
  %2922 = load i32, ptr %24, align 4, !tbaa !5
  %2923 = load i32, ptr %26, align 4, !tbaa !5
  %2924 = sub nsw i32 %2922, %2923
  %2925 = sext i32 %2924 to i64
  %2926 = getelementptr inbounds float, ptr %2921, i64 %2925
  %2927 = load float, ptr %2926, align 4, !tbaa !16
  %2928 = fcmp oge float %2920, %2927
  br i1 %2928, label %2929, label %2937

2929:                                             ; preds = %2906
  %2930 = load ptr, ptr %16, align 8, !tbaa !9
  %2931 = load i32, ptr %24, align 4, !tbaa !5
  %2932 = load i32, ptr %26, align 4, !tbaa !5
  %2933 = sub nsw i32 %2931, %2932
  %2934 = sext i32 %2933 to i64
  %2935 = getelementptr inbounds float, ptr %2930, i64 %2934
  %2936 = load float, ptr %2935, align 4, !tbaa !16
  br label %2945

2937:                                             ; preds = %2906
  %2938 = load ptr, ptr %13, align 8, !tbaa !9
  %2939 = load i32, ptr %24, align 4, !tbaa !5
  %2940 = load i32, ptr %26, align 4, !tbaa !5
  %2941 = sub nsw i32 %2939, %2940
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds float, ptr %2938, i64 %2942
  %2944 = load float, ptr %2943, align 4, !tbaa !16
  br label %2945

2945:                                             ; preds = %2937, %2929
  %2946 = phi float [ %2936, %2929 ], [ %2944, %2937 ]
  %2947 = fsub float %2913, %2946
  %2948 = load ptr, ptr %16, align 8, !tbaa !9
  %2949 = load i32, ptr %24, align 4, !tbaa !5
  %2950 = load i32, ptr %26, align 4, !tbaa !5
  %2951 = sub nsw i32 %2949, %2950
  %2952 = sext i32 %2951 to i64
  %2953 = getelementptr inbounds float, ptr %2948, i64 %2952
  %2954 = load float, ptr %2953, align 4, !tbaa !16
  %2955 = load ptr, ptr %13, align 8, !tbaa !9
  %2956 = load i32, ptr %24, align 4, !tbaa !5
  %2957 = load i32, ptr %26, align 4, !tbaa !5
  %2958 = sub nsw i32 %2956, %2957
  %2959 = sext i32 %2958 to i64
  %2960 = getelementptr inbounds float, ptr %2955, i64 %2959
  %2961 = load float, ptr %2960, align 4, !tbaa !16
  %2962 = fcmp oge float %2954, %2961
  br i1 %2962, label %2963, label %2971

2963:                                             ; preds = %2945
  %2964 = load ptr, ptr %13, align 8, !tbaa !9
  %2965 = load i32, ptr %24, align 4, !tbaa !5
  %2966 = load i32, ptr %26, align 4, !tbaa !5
  %2967 = sub nsw i32 %2965, %2966
  %2968 = sext i32 %2967 to i64
  %2969 = getelementptr inbounds float, ptr %2964, i64 %2968
  %2970 = load float, ptr %2969, align 4, !tbaa !16
  br label %2979

2971:                                             ; preds = %2945
  %2972 = load ptr, ptr %16, align 8, !tbaa !9
  %2973 = load i32, ptr %24, align 4, !tbaa !5
  %2974 = load i32, ptr %26, align 4, !tbaa !5
  %2975 = sub nsw i32 %2973, %2974
  %2976 = sext i32 %2975 to i64
  %2977 = getelementptr inbounds float, ptr %2972, i64 %2976
  %2978 = load float, ptr %2977, align 4, !tbaa !16
  br label %2979

2979:                                             ; preds = %2971, %2963
  %2980 = phi float [ %2970, %2963 ], [ %2978, %2971 ]
  %2981 = load ptr, ptr %15, align 8, !tbaa !9
  %2982 = load i32, ptr %24, align 4, !tbaa !5
  %2983 = load i32, ptr %26, align 4, !tbaa !5
  %2984 = sub nsw i32 %2982, %2983
  %2985 = sext i32 %2984 to i64
  %2986 = getelementptr inbounds float, ptr %2981, i64 %2985
  %2987 = load float, ptr %2986, align 4, !tbaa !16
  %2988 = fsub float %2980, %2987
  %2989 = fadd float %2947, %2988
  br label %2991

2990:                                             ; preds = %2899
  br label %2991

2991:                                             ; preds = %2990, %2979
  %2992 = phi float [ %2989, %2979 ], [ 0.000000e+00, %2990 ]
  br label %2993

2993:                                             ; preds = %2991, %2883
  %2994 = phi float [ %2898, %2883 ], [ %2992, %2991 ]
  %2995 = fpext float %2994 to double
  br label %2996

2996:                                             ; preds = %2993, %2858
  %2997 = phi double [ %2875, %2858 ], [ %2995, %2993 ]
  %2998 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2999 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2998, i32 0, i32 8
  %3000 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2999, i64 0, i64 7
  %3001 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3000, i32 0, i32 1
  %3002 = load i32, ptr %3001, align 4, !tbaa !15
  %3003 = icmp eq i32 %3002, 0
  br i1 %3003, label %3004, label %3022

3004:                                             ; preds = %2996
  %3005 = load ptr, ptr %16, align 8, !tbaa !9
  %3006 = load i32, ptr %27, align 4, !tbaa !5
  %3007 = load i32, ptr %26, align 4, !tbaa !5
  %3008 = sub nsw i32 %3006, %3007
  %3009 = sext i32 %3008 to i64
  %3010 = getelementptr inbounds float, ptr %3005, i64 %3009
  %3011 = load float, ptr %3010, align 4, !tbaa !16
  %3012 = load ptr, ptr %13, align 8, !tbaa !9
  %3013 = load i32, ptr %27, align 4, !tbaa !5
  %3014 = load i32, ptr %26, align 4, !tbaa !5
  %3015 = sub nsw i32 %3013, %3014
  %3016 = sext i32 %3015 to i64
  %3017 = getelementptr inbounds float, ptr %3012, i64 %3016
  %3018 = load float, ptr %3017, align 4, !tbaa !16
  %3019 = fsub float %3011, %3018
  %3020 = fpext float %3019 to double
  %3021 = call double @llvm.fabs.f64(double %3020)
  br label %3142

3022:                                             ; preds = %2996
  %3023 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3024 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3023, i32 0, i32 8
  %3025 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3024, i64 0, i64 7
  %3026 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3025, i32 0, i32 1
  %3027 = load i32, ptr %3026, align 4, !tbaa !15
  %3028 = icmp eq i32 %3027, 1
  br i1 %3028, label %3029, label %3045

3029:                                             ; preds = %3022
  %3030 = load ptr, ptr %14, align 8, !tbaa !9
  %3031 = load i32, ptr %27, align 4, !tbaa !5
  %3032 = load i32, ptr %26, align 4, !tbaa !5
  %3033 = sub nsw i32 %3031, %3032
  %3034 = sext i32 %3033 to i64
  %3035 = getelementptr inbounds float, ptr %3030, i64 %3034
  %3036 = load float, ptr %3035, align 4, !tbaa !16
  %3037 = load ptr, ptr %15, align 8, !tbaa !9
  %3038 = load i32, ptr %27, align 4, !tbaa !5
  %3039 = load i32, ptr %26, align 4, !tbaa !5
  %3040 = sub nsw i32 %3038, %3039
  %3041 = sext i32 %3040 to i64
  %3042 = getelementptr inbounds float, ptr %3037, i64 %3041
  %3043 = load float, ptr %3042, align 4, !tbaa !16
  %3044 = fsub float %3036, %3043
  br label %3139

3045:                                             ; preds = %3022
  %3046 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3047 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3046, i32 0, i32 8
  %3048 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3047, i64 0, i64 7
  %3049 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3048, i32 0, i32 1
  %3050 = load i32, ptr %3049, align 4, !tbaa !15
  %3051 = icmp eq i32 %3050, 2
  br i1 %3051, label %3052, label %3136

3052:                                             ; preds = %3045
  %3053 = load ptr, ptr %14, align 8, !tbaa !9
  %3054 = load i32, ptr %27, align 4, !tbaa !5
  %3055 = load i32, ptr %26, align 4, !tbaa !5
  %3056 = sub nsw i32 %3054, %3055
  %3057 = sext i32 %3056 to i64
  %3058 = getelementptr inbounds float, ptr %3053, i64 %3057
  %3059 = load float, ptr %3058, align 4, !tbaa !16
  %3060 = load ptr, ptr %16, align 8, !tbaa !9
  %3061 = load i32, ptr %27, align 4, !tbaa !5
  %3062 = load i32, ptr %26, align 4, !tbaa !5
  %3063 = sub nsw i32 %3061, %3062
  %3064 = sext i32 %3063 to i64
  %3065 = getelementptr inbounds float, ptr %3060, i64 %3064
  %3066 = load float, ptr %3065, align 4, !tbaa !16
  %3067 = load ptr, ptr %13, align 8, !tbaa !9
  %3068 = load i32, ptr %27, align 4, !tbaa !5
  %3069 = load i32, ptr %26, align 4, !tbaa !5
  %3070 = sub nsw i32 %3068, %3069
  %3071 = sext i32 %3070 to i64
  %3072 = getelementptr inbounds float, ptr %3067, i64 %3071
  %3073 = load float, ptr %3072, align 4, !tbaa !16
  %3074 = fcmp oge float %3066, %3073
  br i1 %3074, label %3075, label %3083

3075:                                             ; preds = %3052
  %3076 = load ptr, ptr %16, align 8, !tbaa !9
  %3077 = load i32, ptr %27, align 4, !tbaa !5
  %3078 = load i32, ptr %26, align 4, !tbaa !5
  %3079 = sub nsw i32 %3077, %3078
  %3080 = sext i32 %3079 to i64
  %3081 = getelementptr inbounds float, ptr %3076, i64 %3080
  %3082 = load float, ptr %3081, align 4, !tbaa !16
  br label %3091

3083:                                             ; preds = %3052
  %3084 = load ptr, ptr %13, align 8, !tbaa !9
  %3085 = load i32, ptr %27, align 4, !tbaa !5
  %3086 = load i32, ptr %26, align 4, !tbaa !5
  %3087 = sub nsw i32 %3085, %3086
  %3088 = sext i32 %3087 to i64
  %3089 = getelementptr inbounds float, ptr %3084, i64 %3088
  %3090 = load float, ptr %3089, align 4, !tbaa !16
  br label %3091

3091:                                             ; preds = %3083, %3075
  %3092 = phi float [ %3082, %3075 ], [ %3090, %3083 ]
  %3093 = fsub float %3059, %3092
  %3094 = load ptr, ptr %16, align 8, !tbaa !9
  %3095 = load i32, ptr %27, align 4, !tbaa !5
  %3096 = load i32, ptr %26, align 4, !tbaa !5
  %3097 = sub nsw i32 %3095, %3096
  %3098 = sext i32 %3097 to i64
  %3099 = getelementptr inbounds float, ptr %3094, i64 %3098
  %3100 = load float, ptr %3099, align 4, !tbaa !16
  %3101 = load ptr, ptr %13, align 8, !tbaa !9
  %3102 = load i32, ptr %27, align 4, !tbaa !5
  %3103 = load i32, ptr %26, align 4, !tbaa !5
  %3104 = sub nsw i32 %3102, %3103
  %3105 = sext i32 %3104 to i64
  %3106 = getelementptr inbounds float, ptr %3101, i64 %3105
  %3107 = load float, ptr %3106, align 4, !tbaa !16
  %3108 = fcmp oge float %3100, %3107
  br i1 %3108, label %3109, label %3117

3109:                                             ; preds = %3091
  %3110 = load ptr, ptr %13, align 8, !tbaa !9
  %3111 = load i32, ptr %27, align 4, !tbaa !5
  %3112 = load i32, ptr %26, align 4, !tbaa !5
  %3113 = sub nsw i32 %3111, %3112
  %3114 = sext i32 %3113 to i64
  %3115 = getelementptr inbounds float, ptr %3110, i64 %3114
  %3116 = load float, ptr %3115, align 4, !tbaa !16
  br label %3125

3117:                                             ; preds = %3091
  %3118 = load ptr, ptr %16, align 8, !tbaa !9
  %3119 = load i32, ptr %27, align 4, !tbaa !5
  %3120 = load i32, ptr %26, align 4, !tbaa !5
  %3121 = sub nsw i32 %3119, %3120
  %3122 = sext i32 %3121 to i64
  %3123 = getelementptr inbounds float, ptr %3118, i64 %3122
  %3124 = load float, ptr %3123, align 4, !tbaa !16
  br label %3125

3125:                                             ; preds = %3117, %3109
  %3126 = phi float [ %3116, %3109 ], [ %3124, %3117 ]
  %3127 = load ptr, ptr %15, align 8, !tbaa !9
  %3128 = load i32, ptr %27, align 4, !tbaa !5
  %3129 = load i32, ptr %26, align 4, !tbaa !5
  %3130 = sub nsw i32 %3128, %3129
  %3131 = sext i32 %3130 to i64
  %3132 = getelementptr inbounds float, ptr %3127, i64 %3131
  %3133 = load float, ptr %3132, align 4, !tbaa !16
  %3134 = fsub float %3126, %3133
  %3135 = fadd float %3093, %3134
  br label %3137

3136:                                             ; preds = %3045
  br label %3137

3137:                                             ; preds = %3136, %3125
  %3138 = phi float [ %3135, %3125 ], [ 0.000000e+00, %3136 ]
  br label %3139

3139:                                             ; preds = %3137, %3029
  %3140 = phi float [ %3044, %3029 ], [ %3138, %3137 ]
  %3141 = fpext float %3140 to double
  br label %3142

3142:                                             ; preds = %3139, %3004
  %3143 = phi double [ %3021, %3004 ], [ %3141, %3139 ]
  %3144 = fsub double %2997, %3143
  %3145 = load i32, ptr %26, align 4, !tbaa !5
  %3146 = sext i32 %3145 to i64
  %3147 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 %3146
  %3148 = load double, ptr %3147, align 8, !tbaa !11
  %3149 = fadd double %3148, %3144
  store double %3149, ptr %3147, align 8, !tbaa !11
  br label %3150

3150:                                             ; preds = %3142
  %3151 = load i32, ptr %26, align 4, !tbaa !5
  %3152 = add nsw i32 %3151, -1
  store i32 %3152, ptr %26, align 4, !tbaa !5
  br label %2848, !llvm.loop !24

3153:                                             ; preds = %2848
  store i32 2, ptr %26, align 4, !tbaa !5
  br label %3154

3154:                                             ; preds = %3754, %3153
  %3155 = load i32, ptr %26, align 4, !tbaa !5
  %3156 = icmp sge i32 %3155, 1
  br i1 %3156, label %3157, label %3757

3157:                                             ; preds = %3154
  %3158 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3159 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3158, i32 0, i32 8
  %3160 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3159, i64 0, i64 9
  %3161 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3160, i32 0, i32 1
  %3162 = load i32, ptr %3161, align 4, !tbaa !15
  %3163 = icmp eq i32 %3162, 0
  br i1 %3163, label %3164, label %3182

3164:                                             ; preds = %3157
  %3165 = load ptr, ptr %16, align 8, !tbaa !9
  %3166 = load i32, ptr %24, align 4, !tbaa !5
  %3167 = load i32, ptr %26, align 4, !tbaa !5
  %3168 = sub nsw i32 %3166, %3167
  %3169 = sext i32 %3168 to i64
  %3170 = getelementptr inbounds float, ptr %3165, i64 %3169
  %3171 = load float, ptr %3170, align 4, !tbaa !16
  %3172 = load ptr, ptr %13, align 8, !tbaa !9
  %3173 = load i32, ptr %24, align 4, !tbaa !5
  %3174 = load i32, ptr %26, align 4, !tbaa !5
  %3175 = sub nsw i32 %3173, %3174
  %3176 = sext i32 %3175 to i64
  %3177 = getelementptr inbounds float, ptr %3172, i64 %3176
  %3178 = load float, ptr %3177, align 4, !tbaa !16
  %3179 = fsub float %3171, %3178
  %3180 = fpext float %3179 to double
  %3181 = call double @llvm.fabs.f64(double %3180)
  br label %3302

3182:                                             ; preds = %3157
  %3183 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3184 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3183, i32 0, i32 8
  %3185 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3184, i64 0, i64 9
  %3186 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3185, i32 0, i32 1
  %3187 = load i32, ptr %3186, align 4, !tbaa !15
  %3188 = icmp eq i32 %3187, 1
  br i1 %3188, label %3189, label %3205

3189:                                             ; preds = %3182
  %3190 = load ptr, ptr %14, align 8, !tbaa !9
  %3191 = load i32, ptr %24, align 4, !tbaa !5
  %3192 = load i32, ptr %26, align 4, !tbaa !5
  %3193 = sub nsw i32 %3191, %3192
  %3194 = sext i32 %3193 to i64
  %3195 = getelementptr inbounds float, ptr %3190, i64 %3194
  %3196 = load float, ptr %3195, align 4, !tbaa !16
  %3197 = load ptr, ptr %15, align 8, !tbaa !9
  %3198 = load i32, ptr %24, align 4, !tbaa !5
  %3199 = load i32, ptr %26, align 4, !tbaa !5
  %3200 = sub nsw i32 %3198, %3199
  %3201 = sext i32 %3200 to i64
  %3202 = getelementptr inbounds float, ptr %3197, i64 %3201
  %3203 = load float, ptr %3202, align 4, !tbaa !16
  %3204 = fsub float %3196, %3203
  br label %3299

3205:                                             ; preds = %3182
  %3206 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3207 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3206, i32 0, i32 8
  %3208 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3207, i64 0, i64 9
  %3209 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3208, i32 0, i32 1
  %3210 = load i32, ptr %3209, align 4, !tbaa !15
  %3211 = icmp eq i32 %3210, 2
  br i1 %3211, label %3212, label %3296

3212:                                             ; preds = %3205
  %3213 = load ptr, ptr %14, align 8, !tbaa !9
  %3214 = load i32, ptr %24, align 4, !tbaa !5
  %3215 = load i32, ptr %26, align 4, !tbaa !5
  %3216 = sub nsw i32 %3214, %3215
  %3217 = sext i32 %3216 to i64
  %3218 = getelementptr inbounds float, ptr %3213, i64 %3217
  %3219 = load float, ptr %3218, align 4, !tbaa !16
  %3220 = load ptr, ptr %16, align 8, !tbaa !9
  %3221 = load i32, ptr %24, align 4, !tbaa !5
  %3222 = load i32, ptr %26, align 4, !tbaa !5
  %3223 = sub nsw i32 %3221, %3222
  %3224 = sext i32 %3223 to i64
  %3225 = getelementptr inbounds float, ptr %3220, i64 %3224
  %3226 = load float, ptr %3225, align 4, !tbaa !16
  %3227 = load ptr, ptr %13, align 8, !tbaa !9
  %3228 = load i32, ptr %24, align 4, !tbaa !5
  %3229 = load i32, ptr %26, align 4, !tbaa !5
  %3230 = sub nsw i32 %3228, %3229
  %3231 = sext i32 %3230 to i64
  %3232 = getelementptr inbounds float, ptr %3227, i64 %3231
  %3233 = load float, ptr %3232, align 4, !tbaa !16
  %3234 = fcmp oge float %3226, %3233
  br i1 %3234, label %3235, label %3243

3235:                                             ; preds = %3212
  %3236 = load ptr, ptr %16, align 8, !tbaa !9
  %3237 = load i32, ptr %24, align 4, !tbaa !5
  %3238 = load i32, ptr %26, align 4, !tbaa !5
  %3239 = sub nsw i32 %3237, %3238
  %3240 = sext i32 %3239 to i64
  %3241 = getelementptr inbounds float, ptr %3236, i64 %3240
  %3242 = load float, ptr %3241, align 4, !tbaa !16
  br label %3251

3243:                                             ; preds = %3212
  %3244 = load ptr, ptr %13, align 8, !tbaa !9
  %3245 = load i32, ptr %24, align 4, !tbaa !5
  %3246 = load i32, ptr %26, align 4, !tbaa !5
  %3247 = sub nsw i32 %3245, %3246
  %3248 = sext i32 %3247 to i64
  %3249 = getelementptr inbounds float, ptr %3244, i64 %3248
  %3250 = load float, ptr %3249, align 4, !tbaa !16
  br label %3251

3251:                                             ; preds = %3243, %3235
  %3252 = phi float [ %3242, %3235 ], [ %3250, %3243 ]
  %3253 = fsub float %3219, %3252
  %3254 = load ptr, ptr %16, align 8, !tbaa !9
  %3255 = load i32, ptr %24, align 4, !tbaa !5
  %3256 = load i32, ptr %26, align 4, !tbaa !5
  %3257 = sub nsw i32 %3255, %3256
  %3258 = sext i32 %3257 to i64
  %3259 = getelementptr inbounds float, ptr %3254, i64 %3258
  %3260 = load float, ptr %3259, align 4, !tbaa !16
  %3261 = load ptr, ptr %13, align 8, !tbaa !9
  %3262 = load i32, ptr %24, align 4, !tbaa !5
  %3263 = load i32, ptr %26, align 4, !tbaa !5
  %3264 = sub nsw i32 %3262, %3263
  %3265 = sext i32 %3264 to i64
  %3266 = getelementptr inbounds float, ptr %3261, i64 %3265
  %3267 = load float, ptr %3266, align 4, !tbaa !16
  %3268 = fcmp oge float %3260, %3267
  br i1 %3268, label %3269, label %3277

3269:                                             ; preds = %3251
  %3270 = load ptr, ptr %13, align 8, !tbaa !9
  %3271 = load i32, ptr %24, align 4, !tbaa !5
  %3272 = load i32, ptr %26, align 4, !tbaa !5
  %3273 = sub nsw i32 %3271, %3272
  %3274 = sext i32 %3273 to i64
  %3275 = getelementptr inbounds float, ptr %3270, i64 %3274
  %3276 = load float, ptr %3275, align 4, !tbaa !16
  br label %3285

3277:                                             ; preds = %3251
  %3278 = load ptr, ptr %16, align 8, !tbaa !9
  %3279 = load i32, ptr %24, align 4, !tbaa !5
  %3280 = load i32, ptr %26, align 4, !tbaa !5
  %3281 = sub nsw i32 %3279, %3280
  %3282 = sext i32 %3281 to i64
  %3283 = getelementptr inbounds float, ptr %3278, i64 %3282
  %3284 = load float, ptr %3283, align 4, !tbaa !16
  br label %3285

3285:                                             ; preds = %3277, %3269
  %3286 = phi float [ %3276, %3269 ], [ %3284, %3277 ]
  %3287 = load ptr, ptr %15, align 8, !tbaa !9
  %3288 = load i32, ptr %24, align 4, !tbaa !5
  %3289 = load i32, ptr %26, align 4, !tbaa !5
  %3290 = sub nsw i32 %3288, %3289
  %3291 = sext i32 %3290 to i64
  %3292 = getelementptr inbounds float, ptr %3287, i64 %3291
  %3293 = load float, ptr %3292, align 4, !tbaa !16
  %3294 = fsub float %3286, %3293
  %3295 = fadd float %3253, %3294
  br label %3297

3296:                                             ; preds = %3205
  br label %3297

3297:                                             ; preds = %3296, %3285
  %3298 = phi float [ %3295, %3285 ], [ 0.000000e+00, %3296 ]
  br label %3299

3299:                                             ; preds = %3297, %3189
  %3300 = phi float [ %3204, %3189 ], [ %3298, %3297 ]
  %3301 = fpext float %3300 to double
  br label %3302

3302:                                             ; preds = %3299, %3164
  %3303 = phi double [ %3181, %3164 ], [ %3301, %3299 ]
  %3304 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3305 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3304, i32 0, i32 8
  %3306 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3305, i64 0, i64 9
  %3307 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3306, i32 0, i32 1
  %3308 = load i32, ptr %3307, align 4, !tbaa !15
  %3309 = icmp eq i32 %3308, 0
  br i1 %3309, label %3310, label %3328

3310:                                             ; preds = %3302
  %3311 = load ptr, ptr %16, align 8, !tbaa !9
  %3312 = load i32, ptr %29, align 4, !tbaa !5
  %3313 = load i32, ptr %26, align 4, !tbaa !5
  %3314 = sub nsw i32 %3312, %3313
  %3315 = sext i32 %3314 to i64
  %3316 = getelementptr inbounds float, ptr %3311, i64 %3315
  %3317 = load float, ptr %3316, align 4, !tbaa !16
  %3318 = load ptr, ptr %13, align 8, !tbaa !9
  %3319 = load i32, ptr %29, align 4, !tbaa !5
  %3320 = load i32, ptr %26, align 4, !tbaa !5
  %3321 = sub nsw i32 %3319, %3320
  %3322 = sext i32 %3321 to i64
  %3323 = getelementptr inbounds float, ptr %3318, i64 %3322
  %3324 = load float, ptr %3323, align 4, !tbaa !16
  %3325 = fsub float %3317, %3324
  %3326 = fpext float %3325 to double
  %3327 = call double @llvm.fabs.f64(double %3326)
  br label %3448

3328:                                             ; preds = %3302
  %3329 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3330 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3329, i32 0, i32 8
  %3331 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3330, i64 0, i64 9
  %3332 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3331, i32 0, i32 1
  %3333 = load i32, ptr %3332, align 4, !tbaa !15
  %3334 = icmp eq i32 %3333, 1
  br i1 %3334, label %3335, label %3351

3335:                                             ; preds = %3328
  %3336 = load ptr, ptr %14, align 8, !tbaa !9
  %3337 = load i32, ptr %29, align 4, !tbaa !5
  %3338 = load i32, ptr %26, align 4, !tbaa !5
  %3339 = sub nsw i32 %3337, %3338
  %3340 = sext i32 %3339 to i64
  %3341 = getelementptr inbounds float, ptr %3336, i64 %3340
  %3342 = load float, ptr %3341, align 4, !tbaa !16
  %3343 = load ptr, ptr %15, align 8, !tbaa !9
  %3344 = load i32, ptr %29, align 4, !tbaa !5
  %3345 = load i32, ptr %26, align 4, !tbaa !5
  %3346 = sub nsw i32 %3344, %3345
  %3347 = sext i32 %3346 to i64
  %3348 = getelementptr inbounds float, ptr %3343, i64 %3347
  %3349 = load float, ptr %3348, align 4, !tbaa !16
  %3350 = fsub float %3342, %3349
  br label %3445

3351:                                             ; preds = %3328
  %3352 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3353 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3352, i32 0, i32 8
  %3354 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3353, i64 0, i64 9
  %3355 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3354, i32 0, i32 1
  %3356 = load i32, ptr %3355, align 4, !tbaa !15
  %3357 = icmp eq i32 %3356, 2
  br i1 %3357, label %3358, label %3442

3358:                                             ; preds = %3351
  %3359 = load ptr, ptr %14, align 8, !tbaa !9
  %3360 = load i32, ptr %29, align 4, !tbaa !5
  %3361 = load i32, ptr %26, align 4, !tbaa !5
  %3362 = sub nsw i32 %3360, %3361
  %3363 = sext i32 %3362 to i64
  %3364 = getelementptr inbounds float, ptr %3359, i64 %3363
  %3365 = load float, ptr %3364, align 4, !tbaa !16
  %3366 = load ptr, ptr %16, align 8, !tbaa !9
  %3367 = load i32, ptr %29, align 4, !tbaa !5
  %3368 = load i32, ptr %26, align 4, !tbaa !5
  %3369 = sub nsw i32 %3367, %3368
  %3370 = sext i32 %3369 to i64
  %3371 = getelementptr inbounds float, ptr %3366, i64 %3370
  %3372 = load float, ptr %3371, align 4, !tbaa !16
  %3373 = load ptr, ptr %13, align 8, !tbaa !9
  %3374 = load i32, ptr %29, align 4, !tbaa !5
  %3375 = load i32, ptr %26, align 4, !tbaa !5
  %3376 = sub nsw i32 %3374, %3375
  %3377 = sext i32 %3376 to i64
  %3378 = getelementptr inbounds float, ptr %3373, i64 %3377
  %3379 = load float, ptr %3378, align 4, !tbaa !16
  %3380 = fcmp oge float %3372, %3379
  br i1 %3380, label %3381, label %3389

3381:                                             ; preds = %3358
  %3382 = load ptr, ptr %16, align 8, !tbaa !9
  %3383 = load i32, ptr %29, align 4, !tbaa !5
  %3384 = load i32, ptr %26, align 4, !tbaa !5
  %3385 = sub nsw i32 %3383, %3384
  %3386 = sext i32 %3385 to i64
  %3387 = getelementptr inbounds float, ptr %3382, i64 %3386
  %3388 = load float, ptr %3387, align 4, !tbaa !16
  br label %3397

3389:                                             ; preds = %3358
  %3390 = load ptr, ptr %13, align 8, !tbaa !9
  %3391 = load i32, ptr %29, align 4, !tbaa !5
  %3392 = load i32, ptr %26, align 4, !tbaa !5
  %3393 = sub nsw i32 %3391, %3392
  %3394 = sext i32 %3393 to i64
  %3395 = getelementptr inbounds float, ptr %3390, i64 %3394
  %3396 = load float, ptr %3395, align 4, !tbaa !16
  br label %3397

3397:                                             ; preds = %3389, %3381
  %3398 = phi float [ %3388, %3381 ], [ %3396, %3389 ]
  %3399 = fsub float %3365, %3398
  %3400 = load ptr, ptr %16, align 8, !tbaa !9
  %3401 = load i32, ptr %29, align 4, !tbaa !5
  %3402 = load i32, ptr %26, align 4, !tbaa !5
  %3403 = sub nsw i32 %3401, %3402
  %3404 = sext i32 %3403 to i64
  %3405 = getelementptr inbounds float, ptr %3400, i64 %3404
  %3406 = load float, ptr %3405, align 4, !tbaa !16
  %3407 = load ptr, ptr %13, align 8, !tbaa !9
  %3408 = load i32, ptr %29, align 4, !tbaa !5
  %3409 = load i32, ptr %26, align 4, !tbaa !5
  %3410 = sub nsw i32 %3408, %3409
  %3411 = sext i32 %3410 to i64
  %3412 = getelementptr inbounds float, ptr %3407, i64 %3411
  %3413 = load float, ptr %3412, align 4, !tbaa !16
  %3414 = fcmp oge float %3406, %3413
  br i1 %3414, label %3415, label %3423

3415:                                             ; preds = %3397
  %3416 = load ptr, ptr %13, align 8, !tbaa !9
  %3417 = load i32, ptr %29, align 4, !tbaa !5
  %3418 = load i32, ptr %26, align 4, !tbaa !5
  %3419 = sub nsw i32 %3417, %3418
  %3420 = sext i32 %3419 to i64
  %3421 = getelementptr inbounds float, ptr %3416, i64 %3420
  %3422 = load float, ptr %3421, align 4, !tbaa !16
  br label %3431

3423:                                             ; preds = %3397
  %3424 = load ptr, ptr %16, align 8, !tbaa !9
  %3425 = load i32, ptr %29, align 4, !tbaa !5
  %3426 = load i32, ptr %26, align 4, !tbaa !5
  %3427 = sub nsw i32 %3425, %3426
  %3428 = sext i32 %3427 to i64
  %3429 = getelementptr inbounds float, ptr %3424, i64 %3428
  %3430 = load float, ptr %3429, align 4, !tbaa !16
  br label %3431

3431:                                             ; preds = %3423, %3415
  %3432 = phi float [ %3422, %3415 ], [ %3430, %3423 ]
  %3433 = load ptr, ptr %15, align 8, !tbaa !9
  %3434 = load i32, ptr %29, align 4, !tbaa !5
  %3435 = load i32, ptr %26, align 4, !tbaa !5
  %3436 = sub nsw i32 %3434, %3435
  %3437 = sext i32 %3436 to i64
  %3438 = getelementptr inbounds float, ptr %3433, i64 %3437
  %3439 = load float, ptr %3438, align 4, !tbaa !16
  %3440 = fsub float %3432, %3439
  %3441 = fadd float %3399, %3440
  br label %3443

3442:                                             ; preds = %3351
  br label %3443

3443:                                             ; preds = %3442, %3431
  %3444 = phi float [ %3441, %3431 ], [ 0.000000e+00, %3442 ]
  br label %3445

3445:                                             ; preds = %3443, %3335
  %3446 = phi float [ %3350, %3335 ], [ %3444, %3443 ]
  %3447 = fpext float %3446 to double
  br label %3448

3448:                                             ; preds = %3445, %3310
  %3449 = phi double [ %3327, %3310 ], [ %3447, %3445 ]
  %3450 = fsub double %3303, %3449
  %3451 = load i32, ptr %26, align 4, !tbaa !5
  %3452 = sext i32 %3451 to i64
  %3453 = getelementptr inbounds [3 x double], ptr %22, i64 0, i64 %3452
  %3454 = load double, ptr %3453, align 8, !tbaa !11
  %3455 = fadd double %3454, %3450
  store double %3455, ptr %3453, align 8, !tbaa !11
  %3456 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3457 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3456, i32 0, i32 8
  %3458 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3457, i64 0, i64 8
  %3459 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3458, i32 0, i32 1
  %3460 = load i32, ptr %3459, align 4, !tbaa !15
  %3461 = icmp eq i32 %3460, 0
  br i1 %3461, label %3462, label %3480

3462:                                             ; preds = %3448
  %3463 = load ptr, ptr %16, align 8, !tbaa !9
  %3464 = load i32, ptr %24, align 4, !tbaa !5
  %3465 = load i32, ptr %26, align 4, !tbaa !5
  %3466 = sub nsw i32 %3464, %3465
  %3467 = sext i32 %3466 to i64
  %3468 = getelementptr inbounds float, ptr %3463, i64 %3467
  %3469 = load float, ptr %3468, align 4, !tbaa !16
  %3470 = load ptr, ptr %13, align 8, !tbaa !9
  %3471 = load i32, ptr %24, align 4, !tbaa !5
  %3472 = load i32, ptr %26, align 4, !tbaa !5
  %3473 = sub nsw i32 %3471, %3472
  %3474 = sext i32 %3473 to i64
  %3475 = getelementptr inbounds float, ptr %3470, i64 %3474
  %3476 = load float, ptr %3475, align 4, !tbaa !16
  %3477 = fsub float %3469, %3476
  %3478 = fpext float %3477 to double
  %3479 = call double @llvm.fabs.f64(double %3478)
  br label %3600

3480:                                             ; preds = %3448
  %3481 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3482 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3481, i32 0, i32 8
  %3483 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3482, i64 0, i64 8
  %3484 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3483, i32 0, i32 1
  %3485 = load i32, ptr %3484, align 4, !tbaa !15
  %3486 = icmp eq i32 %3485, 1
  br i1 %3486, label %3487, label %3503

3487:                                             ; preds = %3480
  %3488 = load ptr, ptr %14, align 8, !tbaa !9
  %3489 = load i32, ptr %24, align 4, !tbaa !5
  %3490 = load i32, ptr %26, align 4, !tbaa !5
  %3491 = sub nsw i32 %3489, %3490
  %3492 = sext i32 %3491 to i64
  %3493 = getelementptr inbounds float, ptr %3488, i64 %3492
  %3494 = load float, ptr %3493, align 4, !tbaa !16
  %3495 = load ptr, ptr %15, align 8, !tbaa !9
  %3496 = load i32, ptr %24, align 4, !tbaa !5
  %3497 = load i32, ptr %26, align 4, !tbaa !5
  %3498 = sub nsw i32 %3496, %3497
  %3499 = sext i32 %3498 to i64
  %3500 = getelementptr inbounds float, ptr %3495, i64 %3499
  %3501 = load float, ptr %3500, align 4, !tbaa !16
  %3502 = fsub float %3494, %3501
  br label %3597

3503:                                             ; preds = %3480
  %3504 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3505 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3504, i32 0, i32 8
  %3506 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3505, i64 0, i64 8
  %3507 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3506, i32 0, i32 1
  %3508 = load i32, ptr %3507, align 4, !tbaa !15
  %3509 = icmp eq i32 %3508, 2
  br i1 %3509, label %3510, label %3594

3510:                                             ; preds = %3503
  %3511 = load ptr, ptr %14, align 8, !tbaa !9
  %3512 = load i32, ptr %24, align 4, !tbaa !5
  %3513 = load i32, ptr %26, align 4, !tbaa !5
  %3514 = sub nsw i32 %3512, %3513
  %3515 = sext i32 %3514 to i64
  %3516 = getelementptr inbounds float, ptr %3511, i64 %3515
  %3517 = load float, ptr %3516, align 4, !tbaa !16
  %3518 = load ptr, ptr %16, align 8, !tbaa !9
  %3519 = load i32, ptr %24, align 4, !tbaa !5
  %3520 = load i32, ptr %26, align 4, !tbaa !5
  %3521 = sub nsw i32 %3519, %3520
  %3522 = sext i32 %3521 to i64
  %3523 = getelementptr inbounds float, ptr %3518, i64 %3522
  %3524 = load float, ptr %3523, align 4, !tbaa !16
  %3525 = load ptr, ptr %13, align 8, !tbaa !9
  %3526 = load i32, ptr %24, align 4, !tbaa !5
  %3527 = load i32, ptr %26, align 4, !tbaa !5
  %3528 = sub nsw i32 %3526, %3527
  %3529 = sext i32 %3528 to i64
  %3530 = getelementptr inbounds float, ptr %3525, i64 %3529
  %3531 = load float, ptr %3530, align 4, !tbaa !16
  %3532 = fcmp oge float %3524, %3531
  br i1 %3532, label %3533, label %3541

3533:                                             ; preds = %3510
  %3534 = load ptr, ptr %16, align 8, !tbaa !9
  %3535 = load i32, ptr %24, align 4, !tbaa !5
  %3536 = load i32, ptr %26, align 4, !tbaa !5
  %3537 = sub nsw i32 %3535, %3536
  %3538 = sext i32 %3537 to i64
  %3539 = getelementptr inbounds float, ptr %3534, i64 %3538
  %3540 = load float, ptr %3539, align 4, !tbaa !16
  br label %3549

3541:                                             ; preds = %3510
  %3542 = load ptr, ptr %13, align 8, !tbaa !9
  %3543 = load i32, ptr %24, align 4, !tbaa !5
  %3544 = load i32, ptr %26, align 4, !tbaa !5
  %3545 = sub nsw i32 %3543, %3544
  %3546 = sext i32 %3545 to i64
  %3547 = getelementptr inbounds float, ptr %3542, i64 %3546
  %3548 = load float, ptr %3547, align 4, !tbaa !16
  br label %3549

3549:                                             ; preds = %3541, %3533
  %3550 = phi float [ %3540, %3533 ], [ %3548, %3541 ]
  %3551 = fsub float %3517, %3550
  %3552 = load ptr, ptr %16, align 8, !tbaa !9
  %3553 = load i32, ptr %24, align 4, !tbaa !5
  %3554 = load i32, ptr %26, align 4, !tbaa !5
  %3555 = sub nsw i32 %3553, %3554
  %3556 = sext i32 %3555 to i64
  %3557 = getelementptr inbounds float, ptr %3552, i64 %3556
  %3558 = load float, ptr %3557, align 4, !tbaa !16
  %3559 = load ptr, ptr %13, align 8, !tbaa !9
  %3560 = load i32, ptr %24, align 4, !tbaa !5
  %3561 = load i32, ptr %26, align 4, !tbaa !5
  %3562 = sub nsw i32 %3560, %3561
  %3563 = sext i32 %3562 to i64
  %3564 = getelementptr inbounds float, ptr %3559, i64 %3563
  %3565 = load float, ptr %3564, align 4, !tbaa !16
  %3566 = fcmp oge float %3558, %3565
  br i1 %3566, label %3567, label %3575

3567:                                             ; preds = %3549
  %3568 = load ptr, ptr %13, align 8, !tbaa !9
  %3569 = load i32, ptr %24, align 4, !tbaa !5
  %3570 = load i32, ptr %26, align 4, !tbaa !5
  %3571 = sub nsw i32 %3569, %3570
  %3572 = sext i32 %3571 to i64
  %3573 = getelementptr inbounds float, ptr %3568, i64 %3572
  %3574 = load float, ptr %3573, align 4, !tbaa !16
  br label %3583

3575:                                             ; preds = %3549
  %3576 = load ptr, ptr %16, align 8, !tbaa !9
  %3577 = load i32, ptr %24, align 4, !tbaa !5
  %3578 = load i32, ptr %26, align 4, !tbaa !5
  %3579 = sub nsw i32 %3577, %3578
  %3580 = sext i32 %3579 to i64
  %3581 = getelementptr inbounds float, ptr %3576, i64 %3580
  %3582 = load float, ptr %3581, align 4, !tbaa !16
  br label %3583

3583:                                             ; preds = %3575, %3567
  %3584 = phi float [ %3574, %3567 ], [ %3582, %3575 ]
  %3585 = load ptr, ptr %15, align 8, !tbaa !9
  %3586 = load i32, ptr %24, align 4, !tbaa !5
  %3587 = load i32, ptr %26, align 4, !tbaa !5
  %3588 = sub nsw i32 %3586, %3587
  %3589 = sext i32 %3588 to i64
  %3590 = getelementptr inbounds float, ptr %3585, i64 %3589
  %3591 = load float, ptr %3590, align 4, !tbaa !16
  %3592 = fsub float %3584, %3591
  %3593 = fadd float %3551, %3592
  br label %3595

3594:                                             ; preds = %3503
  br label %3595

3595:                                             ; preds = %3594, %3583
  %3596 = phi float [ %3593, %3583 ], [ 0.000000e+00, %3594 ]
  br label %3597

3597:                                             ; preds = %3595, %3487
  %3598 = phi float [ %3502, %3487 ], [ %3596, %3595 ]
  %3599 = fpext float %3598 to double
  br label %3600

3600:                                             ; preds = %3597, %3462
  %3601 = phi double [ %3479, %3462 ], [ %3599, %3597 ]
  %3602 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3603 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3602, i32 0, i32 8
  %3604 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3603, i64 0, i64 8
  %3605 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3604, i32 0, i32 1
  %3606 = load i32, ptr %3605, align 4, !tbaa !15
  %3607 = icmp eq i32 %3606, 0
  br i1 %3607, label %3608, label %3626

3608:                                             ; preds = %3600
  %3609 = load ptr, ptr %16, align 8, !tbaa !9
  %3610 = load i32, ptr %28, align 4, !tbaa !5
  %3611 = load i32, ptr %26, align 4, !tbaa !5
  %3612 = sub nsw i32 %3610, %3611
  %3613 = sext i32 %3612 to i64
  %3614 = getelementptr inbounds float, ptr %3609, i64 %3613
  %3615 = load float, ptr %3614, align 4, !tbaa !16
  %3616 = load ptr, ptr %13, align 8, !tbaa !9
  %3617 = load i32, ptr %28, align 4, !tbaa !5
  %3618 = load i32, ptr %26, align 4, !tbaa !5
  %3619 = sub nsw i32 %3617, %3618
  %3620 = sext i32 %3619 to i64
  %3621 = getelementptr inbounds float, ptr %3616, i64 %3620
  %3622 = load float, ptr %3621, align 4, !tbaa !16
  %3623 = fsub float %3615, %3622
  %3624 = fpext float %3623 to double
  %3625 = call double @llvm.fabs.f64(double %3624)
  br label %3746

3626:                                             ; preds = %3600
  %3627 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3628 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3627, i32 0, i32 8
  %3629 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3628, i64 0, i64 8
  %3630 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3629, i32 0, i32 1
  %3631 = load i32, ptr %3630, align 4, !tbaa !15
  %3632 = icmp eq i32 %3631, 1
  br i1 %3632, label %3633, label %3649

3633:                                             ; preds = %3626
  %3634 = load ptr, ptr %14, align 8, !tbaa !9
  %3635 = load i32, ptr %28, align 4, !tbaa !5
  %3636 = load i32, ptr %26, align 4, !tbaa !5
  %3637 = sub nsw i32 %3635, %3636
  %3638 = sext i32 %3637 to i64
  %3639 = getelementptr inbounds float, ptr %3634, i64 %3638
  %3640 = load float, ptr %3639, align 4, !tbaa !16
  %3641 = load ptr, ptr %15, align 8, !tbaa !9
  %3642 = load i32, ptr %28, align 4, !tbaa !5
  %3643 = load i32, ptr %26, align 4, !tbaa !5
  %3644 = sub nsw i32 %3642, %3643
  %3645 = sext i32 %3644 to i64
  %3646 = getelementptr inbounds float, ptr %3641, i64 %3645
  %3647 = load float, ptr %3646, align 4, !tbaa !16
  %3648 = fsub float %3640, %3647
  br label %3743

3649:                                             ; preds = %3626
  %3650 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3651 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3650, i32 0, i32 8
  %3652 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3651, i64 0, i64 8
  %3653 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3652, i32 0, i32 1
  %3654 = load i32, ptr %3653, align 4, !tbaa !15
  %3655 = icmp eq i32 %3654, 2
  br i1 %3655, label %3656, label %3740

3656:                                             ; preds = %3649
  %3657 = load ptr, ptr %14, align 8, !tbaa !9
  %3658 = load i32, ptr %28, align 4, !tbaa !5
  %3659 = load i32, ptr %26, align 4, !tbaa !5
  %3660 = sub nsw i32 %3658, %3659
  %3661 = sext i32 %3660 to i64
  %3662 = getelementptr inbounds float, ptr %3657, i64 %3661
  %3663 = load float, ptr %3662, align 4, !tbaa !16
  %3664 = load ptr, ptr %16, align 8, !tbaa !9
  %3665 = load i32, ptr %28, align 4, !tbaa !5
  %3666 = load i32, ptr %26, align 4, !tbaa !5
  %3667 = sub nsw i32 %3665, %3666
  %3668 = sext i32 %3667 to i64
  %3669 = getelementptr inbounds float, ptr %3664, i64 %3668
  %3670 = load float, ptr %3669, align 4, !tbaa !16
  %3671 = load ptr, ptr %13, align 8, !tbaa !9
  %3672 = load i32, ptr %28, align 4, !tbaa !5
  %3673 = load i32, ptr %26, align 4, !tbaa !5
  %3674 = sub nsw i32 %3672, %3673
  %3675 = sext i32 %3674 to i64
  %3676 = getelementptr inbounds float, ptr %3671, i64 %3675
  %3677 = load float, ptr %3676, align 4, !tbaa !16
  %3678 = fcmp oge float %3670, %3677
  br i1 %3678, label %3679, label %3687

3679:                                             ; preds = %3656
  %3680 = load ptr, ptr %16, align 8, !tbaa !9
  %3681 = load i32, ptr %28, align 4, !tbaa !5
  %3682 = load i32, ptr %26, align 4, !tbaa !5
  %3683 = sub nsw i32 %3681, %3682
  %3684 = sext i32 %3683 to i64
  %3685 = getelementptr inbounds float, ptr %3680, i64 %3684
  %3686 = load float, ptr %3685, align 4, !tbaa !16
  br label %3695

3687:                                             ; preds = %3656
  %3688 = load ptr, ptr %13, align 8, !tbaa !9
  %3689 = load i32, ptr %28, align 4, !tbaa !5
  %3690 = load i32, ptr %26, align 4, !tbaa !5
  %3691 = sub nsw i32 %3689, %3690
  %3692 = sext i32 %3691 to i64
  %3693 = getelementptr inbounds float, ptr %3688, i64 %3692
  %3694 = load float, ptr %3693, align 4, !tbaa !16
  br label %3695

3695:                                             ; preds = %3687, %3679
  %3696 = phi float [ %3686, %3679 ], [ %3694, %3687 ]
  %3697 = fsub float %3663, %3696
  %3698 = load ptr, ptr %16, align 8, !tbaa !9
  %3699 = load i32, ptr %28, align 4, !tbaa !5
  %3700 = load i32, ptr %26, align 4, !tbaa !5
  %3701 = sub nsw i32 %3699, %3700
  %3702 = sext i32 %3701 to i64
  %3703 = getelementptr inbounds float, ptr %3698, i64 %3702
  %3704 = load float, ptr %3703, align 4, !tbaa !16
  %3705 = load ptr, ptr %13, align 8, !tbaa !9
  %3706 = load i32, ptr %28, align 4, !tbaa !5
  %3707 = load i32, ptr %26, align 4, !tbaa !5
  %3708 = sub nsw i32 %3706, %3707
  %3709 = sext i32 %3708 to i64
  %3710 = getelementptr inbounds float, ptr %3705, i64 %3709
  %3711 = load float, ptr %3710, align 4, !tbaa !16
  %3712 = fcmp oge float %3704, %3711
  br i1 %3712, label %3713, label %3721

3713:                                             ; preds = %3695
  %3714 = load ptr, ptr %13, align 8, !tbaa !9
  %3715 = load i32, ptr %28, align 4, !tbaa !5
  %3716 = load i32, ptr %26, align 4, !tbaa !5
  %3717 = sub nsw i32 %3715, %3716
  %3718 = sext i32 %3717 to i64
  %3719 = getelementptr inbounds float, ptr %3714, i64 %3718
  %3720 = load float, ptr %3719, align 4, !tbaa !16
  br label %3729

3721:                                             ; preds = %3695
  %3722 = load ptr, ptr %16, align 8, !tbaa !9
  %3723 = load i32, ptr %28, align 4, !tbaa !5
  %3724 = load i32, ptr %26, align 4, !tbaa !5
  %3725 = sub nsw i32 %3723, %3724
  %3726 = sext i32 %3725 to i64
  %3727 = getelementptr inbounds float, ptr %3722, i64 %3726
  %3728 = load float, ptr %3727, align 4, !tbaa !16
  br label %3729

3729:                                             ; preds = %3721, %3713
  %3730 = phi float [ %3720, %3713 ], [ %3728, %3721 ]
  %3731 = load ptr, ptr %15, align 8, !tbaa !9
  %3732 = load i32, ptr %28, align 4, !tbaa !5
  %3733 = load i32, ptr %26, align 4, !tbaa !5
  %3734 = sub nsw i32 %3732, %3733
  %3735 = sext i32 %3734 to i64
  %3736 = getelementptr inbounds float, ptr %3731, i64 %3735
  %3737 = load float, ptr %3736, align 4, !tbaa !16
  %3738 = fsub float %3730, %3737
  %3739 = fadd float %3697, %3738
  br label %3741

3740:                                             ; preds = %3649
  br label %3741

3741:                                             ; preds = %3740, %3729
  %3742 = phi float [ %3739, %3729 ], [ 0.000000e+00, %3740 ]
  br label %3743

3743:                                             ; preds = %3741, %3633
  %3744 = phi float [ %3648, %3633 ], [ %3742, %3741 ]
  %3745 = fpext float %3744 to double
  br label %3746

3746:                                             ; preds = %3743, %3608
  %3747 = phi double [ %3625, %3608 ], [ %3745, %3743 ]
  %3748 = fsub double %3601, %3747
  %3749 = load i32, ptr %26, align 4, !tbaa !5
  %3750 = sext i32 %3749 to i64
  %3751 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 %3750
  %3752 = load double, ptr %3751, align 8, !tbaa !11
  %3753 = fadd double %3752, %3748
  store double %3753, ptr %3751, align 8, !tbaa !11
  br label %3754

3754:                                             ; preds = %3746
  %3755 = load i32, ptr %26, align 4, !tbaa !5
  %3756 = add nsw i32 %3755, -1
  store i32 %3756, ptr %26, align 4, !tbaa !5
  br label %3154, !llvm.loop !25

3757:                                             ; preds = %3154
  %3758 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3759 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3758, i32 0, i32 8
  %3760 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3759, i64 0, i64 2
  %3761 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3760, i32 0, i32 1
  %3762 = load i32, ptr %3761, align 4, !tbaa !15
  %3763 = icmp eq i32 %3762, 0
  br i1 %3763, label %3764, label %3778

3764:                                             ; preds = %3757
  %3765 = load ptr, ptr %16, align 8, !tbaa !9
  %3766 = load i32, ptr %24, align 4, !tbaa !5
  %3767 = sext i32 %3766 to i64
  %3768 = getelementptr inbounds float, ptr %3765, i64 %3767
  %3769 = load float, ptr %3768, align 4, !tbaa !16
  %3770 = load ptr, ptr %13, align 8, !tbaa !9
  %3771 = load i32, ptr %24, align 4, !tbaa !5
  %3772 = sext i32 %3771 to i64
  %3773 = getelementptr inbounds float, ptr %3770, i64 %3772
  %3774 = load float, ptr %3773, align 4, !tbaa !16
  %3775 = fsub float %3769, %3774
  %3776 = fpext float %3775 to double
  %3777 = call double @llvm.fabs.f64(double %3776)
  br label %3874

3778:                                             ; preds = %3757
  %3779 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3780 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3779, i32 0, i32 8
  %3781 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3780, i64 0, i64 2
  %3782 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3781, i32 0, i32 1
  %3783 = load i32, ptr %3782, align 4, !tbaa !15
  %3784 = icmp eq i32 %3783, 1
  br i1 %3784, label %3785, label %3797

3785:                                             ; preds = %3778
  %3786 = load ptr, ptr %14, align 8, !tbaa !9
  %3787 = load i32, ptr %24, align 4, !tbaa !5
  %3788 = sext i32 %3787 to i64
  %3789 = getelementptr inbounds float, ptr %3786, i64 %3788
  %3790 = load float, ptr %3789, align 4, !tbaa !16
  %3791 = load ptr, ptr %15, align 8, !tbaa !9
  %3792 = load i32, ptr %24, align 4, !tbaa !5
  %3793 = sext i32 %3792 to i64
  %3794 = getelementptr inbounds float, ptr %3791, i64 %3793
  %3795 = load float, ptr %3794, align 4, !tbaa !16
  %3796 = fsub float %3790, %3795
  br label %3871

3797:                                             ; preds = %3778
  %3798 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3799 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3798, i32 0, i32 8
  %3800 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3799, i64 0, i64 2
  %3801 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3800, i32 0, i32 1
  %3802 = load i32, ptr %3801, align 4, !tbaa !15
  %3803 = icmp eq i32 %3802, 2
  br i1 %3803, label %3804, label %3868

3804:                                             ; preds = %3797
  %3805 = load ptr, ptr %14, align 8, !tbaa !9
  %3806 = load i32, ptr %24, align 4, !tbaa !5
  %3807 = sext i32 %3806 to i64
  %3808 = getelementptr inbounds float, ptr %3805, i64 %3807
  %3809 = load float, ptr %3808, align 4, !tbaa !16
  %3810 = load ptr, ptr %16, align 8, !tbaa !9
  %3811 = load i32, ptr %24, align 4, !tbaa !5
  %3812 = sext i32 %3811 to i64
  %3813 = getelementptr inbounds float, ptr %3810, i64 %3812
  %3814 = load float, ptr %3813, align 4, !tbaa !16
  %3815 = load ptr, ptr %13, align 8, !tbaa !9
  %3816 = load i32, ptr %24, align 4, !tbaa !5
  %3817 = sext i32 %3816 to i64
  %3818 = getelementptr inbounds float, ptr %3815, i64 %3817
  %3819 = load float, ptr %3818, align 4, !tbaa !16
  %3820 = fcmp oge float %3814, %3819
  br i1 %3820, label %3821, label %3827

3821:                                             ; preds = %3804
  %3822 = load ptr, ptr %16, align 8, !tbaa !9
  %3823 = load i32, ptr %24, align 4, !tbaa !5
  %3824 = sext i32 %3823 to i64
  %3825 = getelementptr inbounds float, ptr %3822, i64 %3824
  %3826 = load float, ptr %3825, align 4, !tbaa !16
  br label %3833

3827:                                             ; preds = %3804
  %3828 = load ptr, ptr %13, align 8, !tbaa !9
  %3829 = load i32, ptr %24, align 4, !tbaa !5
  %3830 = sext i32 %3829 to i64
  %3831 = getelementptr inbounds float, ptr %3828, i64 %3830
  %3832 = load float, ptr %3831, align 4, !tbaa !16
  br label %3833

3833:                                             ; preds = %3827, %3821
  %3834 = phi float [ %3826, %3821 ], [ %3832, %3827 ]
  %3835 = fsub float %3809, %3834
  %3836 = load ptr, ptr %16, align 8, !tbaa !9
  %3837 = load i32, ptr %24, align 4, !tbaa !5
  %3838 = sext i32 %3837 to i64
  %3839 = getelementptr inbounds float, ptr %3836, i64 %3838
  %3840 = load float, ptr %3839, align 4, !tbaa !16
  %3841 = load ptr, ptr %13, align 8, !tbaa !9
  %3842 = load i32, ptr %24, align 4, !tbaa !5
  %3843 = sext i32 %3842 to i64
  %3844 = getelementptr inbounds float, ptr %3841, i64 %3843
  %3845 = load float, ptr %3844, align 4, !tbaa !16
  %3846 = fcmp oge float %3840, %3845
  br i1 %3846, label %3847, label %3853

3847:                                             ; preds = %3833
  %3848 = load ptr, ptr %13, align 8, !tbaa !9
  %3849 = load i32, ptr %24, align 4, !tbaa !5
  %3850 = sext i32 %3849 to i64
  %3851 = getelementptr inbounds float, ptr %3848, i64 %3850
  %3852 = load float, ptr %3851, align 4, !tbaa !16
  br label %3859

3853:                                             ; preds = %3833
  %3854 = load ptr, ptr %16, align 8, !tbaa !9
  %3855 = load i32, ptr %24, align 4, !tbaa !5
  %3856 = sext i32 %3855 to i64
  %3857 = getelementptr inbounds float, ptr %3854, i64 %3856
  %3858 = load float, ptr %3857, align 4, !tbaa !16
  br label %3859

3859:                                             ; preds = %3853, %3847
  %3860 = phi float [ %3852, %3847 ], [ %3858, %3853 ]
  %3861 = load ptr, ptr %15, align 8, !tbaa !9
  %3862 = load i32, ptr %24, align 4, !tbaa !5
  %3863 = sext i32 %3862 to i64
  %3864 = getelementptr inbounds float, ptr %3861, i64 %3863
  %3865 = load float, ptr %3864, align 4, !tbaa !16
  %3866 = fsub float %3860, %3865
  %3867 = fadd float %3835, %3866
  br label %3869

3868:                                             ; preds = %3797
  br label %3869

3869:                                             ; preds = %3868, %3859
  %3870 = phi float [ %3867, %3859 ], [ 0.000000e+00, %3868 ]
  br label %3871

3871:                                             ; preds = %3869, %3785
  %3872 = phi float [ %3796, %3785 ], [ %3870, %3869 ]
  %3873 = fpext float %3872 to double
  br label %3874

3874:                                             ; preds = %3871, %3764
  %3875 = phi double [ %3777, %3764 ], [ %3873, %3871 ]
  %3876 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3877 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3876, i32 0, i32 8
  %3878 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3877, i64 0, i64 2
  %3879 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3878, i32 0, i32 1
  %3880 = load i32, ptr %3879, align 4, !tbaa !15
  %3881 = icmp eq i32 %3880, 0
  br i1 %3881, label %3882, label %3896

3882:                                             ; preds = %3874
  %3883 = load ptr, ptr %16, align 8, !tbaa !9
  %3884 = load i32, ptr %30, align 4, !tbaa !5
  %3885 = sext i32 %3884 to i64
  %3886 = getelementptr inbounds float, ptr %3883, i64 %3885
  %3887 = load float, ptr %3886, align 4, !tbaa !16
  %3888 = load ptr, ptr %13, align 8, !tbaa !9
  %3889 = load i32, ptr %30, align 4, !tbaa !5
  %3890 = sext i32 %3889 to i64
  %3891 = getelementptr inbounds float, ptr %3888, i64 %3890
  %3892 = load float, ptr %3891, align 4, !tbaa !16
  %3893 = fsub float %3887, %3892
  %3894 = fpext float %3893 to double
  %3895 = call double @llvm.fabs.f64(double %3894)
  br label %3992

3896:                                             ; preds = %3874
  %3897 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3898 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3897, i32 0, i32 8
  %3899 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3898, i64 0, i64 2
  %3900 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3899, i32 0, i32 1
  %3901 = load i32, ptr %3900, align 4, !tbaa !15
  %3902 = icmp eq i32 %3901, 1
  br i1 %3902, label %3903, label %3915

3903:                                             ; preds = %3896
  %3904 = load ptr, ptr %14, align 8, !tbaa !9
  %3905 = load i32, ptr %30, align 4, !tbaa !5
  %3906 = sext i32 %3905 to i64
  %3907 = getelementptr inbounds float, ptr %3904, i64 %3906
  %3908 = load float, ptr %3907, align 4, !tbaa !16
  %3909 = load ptr, ptr %15, align 8, !tbaa !9
  %3910 = load i32, ptr %30, align 4, !tbaa !5
  %3911 = sext i32 %3910 to i64
  %3912 = getelementptr inbounds float, ptr %3909, i64 %3911
  %3913 = load float, ptr %3912, align 4, !tbaa !16
  %3914 = fsub float %3908, %3913
  br label %3989

3915:                                             ; preds = %3896
  %3916 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3917 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3916, i32 0, i32 8
  %3918 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3917, i64 0, i64 2
  %3919 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3918, i32 0, i32 1
  %3920 = load i32, ptr %3919, align 4, !tbaa !15
  %3921 = icmp eq i32 %3920, 2
  br i1 %3921, label %3922, label %3986

3922:                                             ; preds = %3915
  %3923 = load ptr, ptr %14, align 8, !tbaa !9
  %3924 = load i32, ptr %30, align 4, !tbaa !5
  %3925 = sext i32 %3924 to i64
  %3926 = getelementptr inbounds float, ptr %3923, i64 %3925
  %3927 = load float, ptr %3926, align 4, !tbaa !16
  %3928 = load ptr, ptr %16, align 8, !tbaa !9
  %3929 = load i32, ptr %30, align 4, !tbaa !5
  %3930 = sext i32 %3929 to i64
  %3931 = getelementptr inbounds float, ptr %3928, i64 %3930
  %3932 = load float, ptr %3931, align 4, !tbaa !16
  %3933 = load ptr, ptr %13, align 8, !tbaa !9
  %3934 = load i32, ptr %30, align 4, !tbaa !5
  %3935 = sext i32 %3934 to i64
  %3936 = getelementptr inbounds float, ptr %3933, i64 %3935
  %3937 = load float, ptr %3936, align 4, !tbaa !16
  %3938 = fcmp oge float %3932, %3937
  br i1 %3938, label %3939, label %3945

3939:                                             ; preds = %3922
  %3940 = load ptr, ptr %16, align 8, !tbaa !9
  %3941 = load i32, ptr %30, align 4, !tbaa !5
  %3942 = sext i32 %3941 to i64
  %3943 = getelementptr inbounds float, ptr %3940, i64 %3942
  %3944 = load float, ptr %3943, align 4, !tbaa !16
  br label %3951

3945:                                             ; preds = %3922
  %3946 = load ptr, ptr %13, align 8, !tbaa !9
  %3947 = load i32, ptr %30, align 4, !tbaa !5
  %3948 = sext i32 %3947 to i64
  %3949 = getelementptr inbounds float, ptr %3946, i64 %3948
  %3950 = load float, ptr %3949, align 4, !tbaa !16
  br label %3951

3951:                                             ; preds = %3945, %3939
  %3952 = phi float [ %3944, %3939 ], [ %3950, %3945 ]
  %3953 = fsub float %3927, %3952
  %3954 = load ptr, ptr %16, align 8, !tbaa !9
  %3955 = load i32, ptr %30, align 4, !tbaa !5
  %3956 = sext i32 %3955 to i64
  %3957 = getelementptr inbounds float, ptr %3954, i64 %3956
  %3958 = load float, ptr %3957, align 4, !tbaa !16
  %3959 = load ptr, ptr %13, align 8, !tbaa !9
  %3960 = load i32, ptr %30, align 4, !tbaa !5
  %3961 = sext i32 %3960 to i64
  %3962 = getelementptr inbounds float, ptr %3959, i64 %3961
  %3963 = load float, ptr %3962, align 4, !tbaa !16
  %3964 = fcmp oge float %3958, %3963
  br i1 %3964, label %3965, label %3971

3965:                                             ; preds = %3951
  %3966 = load ptr, ptr %13, align 8, !tbaa !9
  %3967 = load i32, ptr %30, align 4, !tbaa !5
  %3968 = sext i32 %3967 to i64
  %3969 = getelementptr inbounds float, ptr %3966, i64 %3968
  %3970 = load float, ptr %3969, align 4, !tbaa !16
  br label %3977

3971:                                             ; preds = %3951
  %3972 = load ptr, ptr %16, align 8, !tbaa !9
  %3973 = load i32, ptr %30, align 4, !tbaa !5
  %3974 = sext i32 %3973 to i64
  %3975 = getelementptr inbounds float, ptr %3972, i64 %3974
  %3976 = load float, ptr %3975, align 4, !tbaa !16
  br label %3977

3977:                                             ; preds = %3971, %3965
  %3978 = phi float [ %3970, %3965 ], [ %3976, %3971 ]
  %3979 = load ptr, ptr %15, align 8, !tbaa !9
  %3980 = load i32, ptr %30, align 4, !tbaa !5
  %3981 = sext i32 %3980 to i64
  %3982 = getelementptr inbounds float, ptr %3979, i64 %3981
  %3983 = load float, ptr %3982, align 4, !tbaa !16
  %3984 = fsub float %3978, %3983
  %3985 = fadd float %3953, %3984
  br label %3987

3986:                                             ; preds = %3915
  br label %3987

3987:                                             ; preds = %3986, %3977
  %3988 = phi float [ %3985, %3977 ], [ 0.000000e+00, %3986 ]
  br label %3989

3989:                                             ; preds = %3987, %3903
  %3990 = phi float [ %3914, %3903 ], [ %3988, %3987 ]
  %3991 = fpext float %3990 to double
  br label %3992

3992:                                             ; preds = %3989, %3882
  %3993 = phi double [ %3895, %3882 ], [ %3991, %3989 ]
  %3994 = fsub double %3875, %3993
  %3995 = load double, ptr %23, align 8, !tbaa !11
  %3996 = fadd double %3995, %3994
  store double %3996, ptr %23, align 8, !tbaa !11
  %3997 = load i32, ptr %24, align 4, !tbaa !5
  %3998 = add nsw i32 %3997, 1
  store i32 %3998, ptr %24, align 4, !tbaa !5
  %3999 = load i32, ptr %27, align 4, !tbaa !5
  %4000 = add nsw i32 %3999, 1
  store i32 %4000, ptr %27, align 4, !tbaa !5
  %4001 = load i32, ptr %28, align 4, !tbaa !5
  %4002 = add nsw i32 %4001, 1
  store i32 %4002, ptr %28, align 4, !tbaa !5
  %4003 = load i32, ptr %29, align 4, !tbaa !5
  %4004 = add nsw i32 %4003, 1
  store i32 %4004, ptr %29, align 4, !tbaa !5
  %4005 = load i32, ptr %30, align 4, !tbaa !5
  %4006 = add nsw i32 %4005, 1
  store i32 %4006, ptr %30, align 4, !tbaa !5
  br label %4007

4007:                                             ; preds = %3992
  %4008 = load i32, ptr %24, align 4, !tbaa !5
  %4009 = load i32, ptr %12, align 4, !tbaa !5
  %4010 = icmp sle i32 %4008, %4009
  br i1 %4010, label %1201, label %4011, !llvm.loop !26

4011:                                             ; preds = %4007
  %4012 = load i32, ptr %25, align 4, !tbaa !5
  %4013 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %4012, ptr %4013, align 4, !tbaa !5
  %4014 = load i32, ptr %11, align 4, !tbaa !5
  %4015 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %4014, ptr %4015, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %32, align 4
  br label %4016

4016:                                             ; preds = %4011, %72, %60, %56, %43, %35
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #3
  %4017 = load i32, ptr %10, align 4
  ret i32 %4017
}

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !6, i64 8}
!14 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8, !12, i64 16}
!15 = !{!14, !6, i64 4}
!16 = !{!17, !17, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = distinct !{!21, !19}
!22 = distinct !{!22, !19}
!23 = !{!14, !12, i64 16}
!24 = distinct !{!24, !19}
!25 = distinct !{!25, !19}
!26 = distinct !{!26, !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_CDL3WHITESOLDIERS_Lookback() local_unnamed_addr #0

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

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

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

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 408
  %31 = load i32, ptr %30, align 8, !tbaa !11
  %32 = sub i32 %spec.select, %31
  %33 = getelementptr inbounds i8, ptr %26, i64 432
  %34 = load i32, ptr %33, align 8, !tbaa !11
  %35 = sub i32 %spec.select, %34
  %36 = getelementptr inbounds i8, ptr %26, i64 264
  %37 = load i32, ptr %36, align 8, !tbaa !11
  %38 = sub i32 %spec.select, %37
  %39 = icmp sgt i32 %28, 0
  br i1 %39, label %.lr.ph, label %.preheader1177

.lr.ph:                                           ; preds = %25
  %40 = getelementptr inbounds i8, ptr %26, i64 380
  %41 = load i32, ptr %40, align 4, !tbaa !14
  switch i32 %41, label %.preheader1177 [
    i32 0, label %.thread.us.preheader
    i32 1, label %.thread1117.us.preheader
    i32 2, label %.thread1119.us.preheader
  ]

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

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

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

.thread.us:                                       ; preds = %.thread.us.preheader, %.thread.us
  %indvars.iv1252 = phi i64 [ %46, %.thread.us.preheader ], [ %indvars.iv.next1253, %.thread.us ]
  %48 = phi double [ 0.000000e+00, %.thread.us.preheader ], [ %66, %.thread.us ]
  %49 = phi <2 x double> [ zeroinitializer, %.thread.us.preheader ], [ %58, %.thread.us ]
  %50 = add nsw i64 %indvars.iv1252, -2
  %51 = getelementptr inbounds float, ptr %5, i64 %50
  %52 = getelementptr inbounds float, ptr %2, i64 %50
  %53 = load <2 x float>, ptr %51, align 4, !tbaa !15
  %54 = load <2 x float>, ptr %52, align 4, !tbaa !15
  %55 = fsub <2 x float> %53, %54
  %56 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %55)
  %57 = fpext <2 x float> %56 to <2 x double>
  %58 = fadd <2 x double> %49, %57
  %59 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1252
  %60 = load float, ptr %59, align 4, !tbaa !15
  %61 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1252
  %62 = load float, ptr %61, align 4, !tbaa !15
  %63 = fsub float %60, %62
  %64 = tail call float @llvm.fabs.f32(float %63)
  %65 = fpext float %64 to double
  %66 = fadd double %48, %65
  %indvars.iv.next1253 = add nsw i64 %indvars.iv1252, 1
  %67 = icmp slt i64 %indvars.iv.next1253, %47
  br i1 %67, label %.thread.us, label %.preheader1177, !llvm.loop !17

.thread1117.us:                                   ; preds = %.thread1117.us.preheader, %.thread1117.us
  %indvars.iv1249 = phi i64 [ %44, %.thread1117.us.preheader ], [ %indvars.iv.next1250, %.thread1117.us ]
  %68 = phi double [ 0.000000e+00, %.thread1117.us.preheader ], [ %84, %.thread1117.us ]
  %69 = phi <2 x double> [ zeroinitializer, %.thread1117.us.preheader ], [ %77, %.thread1117.us ]
  %70 = add nsw i64 %indvars.iv1249, -2
  %71 = getelementptr inbounds float, ptr %3, i64 %70
  %72 = getelementptr inbounds float, ptr %4, i64 %70
  %73 = load <2 x float>, ptr %71, align 4, !tbaa !15
  %74 = load <2 x float>, ptr %72, align 4, !tbaa !15
  %75 = fsub <2 x float> %73, %74
  %76 = fpext <2 x float> %75 to <2 x double>
  %77 = fadd <2 x double> %69, %76
  %78 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1249
  %79 = load float, ptr %78, align 4, !tbaa !15
  %80 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1249
  %81 = load float, ptr %80, align 4, !tbaa !15
  %82 = fsub float %79, %81
  %83 = fpext float %82 to double
  %84 = fadd double %68, %83
  %indvars.iv.next1250 = add nsw i64 %indvars.iv1249, 1
  %85 = icmp slt i64 %indvars.iv.next1250, %45
  br i1 %85, label %.thread1117.us, label %.preheader1177, !llvm.loop !17

.thread1119.us:                                   ; preds = %.thread1119.us.preheader, %.thread1119.us
  %indvars.iv = phi i64 [ %42, %.thread1119.us.preheader ], [ %indvars.iv.next, %.thread1119.us ]
  %86 = phi double [ 0.000000e+00, %.thread1119.us.preheader ], [ %119, %.thread1119.us ]
  %87 = phi <2 x double> [ zeroinitializer, %.thread1119.us.preheader ], [ %104, %.thread1119.us ]
  %88 = add nsw i64 %indvars.iv, -2
  %89 = getelementptr inbounds float, ptr %3, i64 %88
  %90 = getelementptr inbounds float, ptr %5, i64 %88
  %91 = getelementptr inbounds float, ptr %2, i64 %88
  %92 = getelementptr inbounds float, ptr %4, i64 %88
  %93 = load <2 x float>, ptr %89, align 4, !tbaa !15
  %94 = load <2 x float>, ptr %90, align 4, !tbaa !15
  %95 = load <2 x float>, ptr %91, align 4, !tbaa !15
  %96 = fcmp ult <2 x float> %94, %95
  %97 = select <2 x i1> %96, <2 x float> %95, <2 x float> %94
  %98 = fsub <2 x float> %93, %97
  %99 = select <2 x i1> %96, <2 x float> %94, <2 x float> %95
  %100 = load <2 x float>, ptr %92, align 4, !tbaa !15
  %101 = fsub <2 x float> %99, %100
  %102 = fadd <2 x float> %98, %101
  %103 = fpext <2 x float> %102 to <2 x double>
  %104 = fadd <2 x double> %87, %103
  %105 = getelementptr inbounds float, ptr %3, i64 %indvars.iv
  %106 = load float, ptr %105, align 4, !tbaa !15
  %107 = getelementptr inbounds float, ptr %5, i64 %indvars.iv
  %108 = load float, ptr %107, align 4, !tbaa !15
  %109 = getelementptr inbounds float, ptr %2, i64 %indvars.iv
  %110 = load float, ptr %109, align 4, !tbaa !15
  %111 = fcmp ult float %108, %110
  %.1093.us = select i1 %111, float %110, float %108
  %112 = fsub float %106, %.1093.us
  %113 = select i1 %111, float %108, float %110
  %114 = getelementptr inbounds float, ptr %4, i64 %indvars.iv
  %115 = load float, ptr %114, align 4, !tbaa !15
  %116 = fsub float %113, %115
  %117 = fadd float %112, %116
  %118 = fpext float %117 to double
  %119 = fadd double %86, %118
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %120 = icmp slt i64 %indvars.iv.next, %43
  br i1 %120, label %.thread1119.us, label %.preheader1177, !llvm.loop !17

.preheader1177:                                   ; preds = %.thread1119.us, %.thread1117.us, %.thread.us, %.lr.ph, %25
  %.lcssa1181 = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %.lr.ph ], [ %66, %.thread.us ], [ %84, %.thread1117.us ], [ %119, %.thread1119.us ]
  %121 = phi <2 x double> [ zeroinitializer, %25 ], [ zeroinitializer, %.lr.ph ], [ %58, %.thread.us ], [ %77, %.thread1117.us ], [ %104, %.thread1119.us ]
  %122 = icmp sgt i32 %31, 0
  br i1 %122, label %.lr.ph1210, label %.preheader1176

.lr.ph1210:                                       ; preds = %.preheader1177
  %123 = getelementptr inbounds i8, ptr %26, i64 404
  %124 = load i32, ptr %123, align 4, !tbaa !14
  %125 = sext i32 %32 to i64
  %126 = zext nneg i32 %spec.select to i64
  br label %132

.preheader1176:                                   ; preds = %192, %.preheader1177
  %.lcssa1208 = phi double [ 0.000000e+00, %.preheader1177 ], [ %195, %192 ]
  %.lcssa1206 = phi double [ 0.000000e+00, %.preheader1177 ], [ %193, %192 ]
  %127 = icmp sgt i32 %34, 0
  br i1 %127, label %.lr.ph1218, label %.preheader1175

.lr.ph1218:                                       ; preds = %.preheader1176
  %128 = getelementptr inbounds i8, ptr %26, i64 428
  %129 = load i32, ptr %128, align 4, !tbaa !14
  %130 = sext i32 %35 to i64
  %131 = zext nneg i32 %spec.select to i64
  br label %202

132:                                              ; preds = %.lr.ph1210, %192
  %indvars.iv1255 = phi i64 [ %125, %.lr.ph1210 ], [ %indvars.iv.next1256, %192 ]
  %133 = phi double [ 0.000000e+00, %.lr.ph1210 ], [ %193, %192 ]
  %134 = phi double [ 0.000000e+00, %.lr.ph1210 ], [ %195, %192 ]
  switch i32 %124, label %192 [
    i32 0, label %.thread1127
    i32 1, label %.thread1129
    i32 2, label %.thread1131
  ]

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

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

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

192:                                              ; preds = %132, %.thread1129, %.thread1131, %.thread1127
  %.pn = phi double [ %142, %.thread1127 ], [ %156, %.thread1129 ], [ %177, %.thread1131 ], [ 0.000000e+00, %132 ]
  %.in1087 = phi float [ %149, %.thread1127 ], [ %162, %.thread1129 ], [ %191, %.thread1131 ], [ 0.000000e+00, %132 ]
  %193 = fadd double %133, %.pn
  %194 = fpext float %.in1087 to double
  %195 = fadd double %134, %194
  %indvars.iv.next1256 = add nsw i64 %indvars.iv1255, 1
  %196 = icmp slt i64 %indvars.iv.next1256, %126
  br i1 %196, label %132, label %.preheader1176, !llvm.loop !19

.preheader1175:                                   ; preds = %262, %.preheader1176
  %.lcssa1216 = phi double [ 0.000000e+00, %.preheader1176 ], [ %265, %262 ]
  %.lcssa1214 = phi double [ 0.000000e+00, %.preheader1176 ], [ %263, %262 ]
  %197 = icmp sgt i32 %37, 0
  br i1 %197, label %.lr.ph1223, label %.preheader1175..preheader1174_crit_edge

.preheader1175..preheader1174_crit_edge:          ; preds = %.preheader1175
  %.pre1305 = sext i32 %38 to i64
  br label %.preheader1174

.lr.ph1223:                                       ; preds = %.preheader1175
  %198 = getelementptr inbounds i8, ptr %26, i64 260
  %199 = load i32, ptr %198, align 4, !tbaa !14
  %200 = sext i32 %38 to i64
  %201 = zext nneg i32 %spec.select to i64
  br label %281

202:                                              ; preds = %.lr.ph1218, %262
  %indvars.iv1258 = phi i64 [ %130, %.lr.ph1218 ], [ %indvars.iv.next1259, %262 ]
  %203 = phi double [ 0.000000e+00, %.lr.ph1218 ], [ %263, %262 ]
  %204 = phi double [ 0.000000e+00, %.lr.ph1218 ], [ %265, %262 ]
  switch i32 %129, label %262 [
    i32 0, label %.thread1133
    i32 1, label %.thread1135
    i32 2, label %.thread1137
  ]

.thread1133:                                      ; preds = %202
  %205 = add nsw i64 %indvars.iv1258, -2
  %206 = getelementptr inbounds float, ptr %5, i64 %205
  %207 = load float, ptr %206, align 4, !tbaa !15
  %208 = getelementptr inbounds float, ptr %2, i64 %205
  %209 = load float, ptr %208, align 4, !tbaa !15
  %210 = fsub float %207, %209
  %211 = tail call float @llvm.fabs.f32(float %210)
  %212 = fpext float %211 to double
  %213 = add nsw i64 %indvars.iv1258, -1
  %214 = getelementptr inbounds float, ptr %5, i64 %213
  %215 = load float, ptr %214, align 4, !tbaa !15
  %216 = getelementptr inbounds float, ptr %2, i64 %213
  %217 = load float, ptr %216, align 4, !tbaa !15
  %218 = fsub float %215, %217
  %219 = tail call float @llvm.fabs.f32(float %218)
  br label %262

.thread1135:                                      ; preds = %202
  %220 = add nsw i64 %indvars.iv1258, -2
  %221 = getelementptr inbounds float, ptr %3, i64 %220
  %222 = load float, ptr %221, align 4, !tbaa !15
  %223 = getelementptr inbounds float, ptr %4, i64 %220
  %224 = load float, ptr %223, align 4, !tbaa !15
  %225 = fsub float %222, %224
  %226 = fpext float %225 to double
  %227 = add nsw i64 %indvars.iv1258, -1
  %228 = getelementptr inbounds float, ptr %3, i64 %227
  %229 = load float, ptr %228, align 4, !tbaa !15
  %230 = getelementptr inbounds float, ptr %4, i64 %227
  %231 = load float, ptr %230, align 4, !tbaa !15
  %232 = fsub float %229, %231
  br label %262

.thread1137:                                      ; preds = %202
  %233 = add nsw i64 %indvars.iv1258, -2
  %234 = getelementptr inbounds float, ptr %3, i64 %233
  %235 = load float, ptr %234, align 4, !tbaa !15
  %236 = getelementptr inbounds float, ptr %5, i64 %233
  %237 = load float, ptr %236, align 4, !tbaa !15
  %238 = getelementptr inbounds float, ptr %2, i64 %233
  %239 = load float, ptr %238, align 4, !tbaa !15
  %240 = fcmp ult float %237, %239
  %.1096 = select i1 %240, float %239, float %237
  %241 = fsub float %235, %.1096
  %242 = select i1 %240, float %237, float %239
  %243 = getelementptr inbounds float, ptr %4, i64 %233
  %244 = load float, ptr %243, align 4, !tbaa !15
  %245 = fsub float %242, %244
  %246 = fadd float %241, %245
  %247 = fpext float %246 to double
  %248 = add nsw i64 %indvars.iv1258, -1
  %249 = getelementptr inbounds float, ptr %3, i64 %248
  %250 = load float, ptr %249, align 4, !tbaa !15
  %251 = getelementptr inbounds float, ptr %5, i64 %248
  %252 = load float, ptr %251, align 4, !tbaa !15
  %253 = getelementptr inbounds float, ptr %2, i64 %248
  %254 = load float, ptr %253, align 4, !tbaa !15
  %255 = fcmp ult float %252, %254
  %.1097 = select i1 %255, float %254, float %252
  %256 = fsub float %250, %.1097
  %257 = select i1 %255, float %252, float %254
  %258 = getelementptr inbounds float, ptr %4, i64 %248
  %259 = load float, ptr %258, align 4, !tbaa !15
  %260 = fsub float %257, %259
  %261 = fadd float %256, %260
  br label %262

262:                                              ; preds = %202, %.thread1135, %.thread1137, %.thread1133
  %.pn1227 = phi double [ %212, %.thread1133 ], [ %226, %.thread1135 ], [ %247, %.thread1137 ], [ 0.000000e+00, %202 ]
  %.in1085 = phi float [ %219, %.thread1133 ], [ %232, %.thread1135 ], [ %261, %.thread1137 ], [ 0.000000e+00, %202 ]
  %263 = fadd double %203, %.pn1227
  %264 = fpext float %.in1085 to double
  %265 = fadd double %204, %264
  %indvars.iv.next1259 = add nsw i64 %indvars.iv1258, 1
  %266 = icmp slt i64 %indvars.iv.next1259, %131
  br i1 %266, label %202, label %.preheader1175, !llvm.loop !20

.preheader1174:                                   ; preds = %309, %.preheader1175..preheader1174_crit_edge
  %.pre-phi = phi i64 [ %.pre1305, %.preheader1175..preheader1174_crit_edge ], [ %200, %309 ]
  %.0918.lcssa = phi double [ 0.000000e+00, %.preheader1175..preheader1174_crit_edge ], [ %311, %309 ]
  %267 = getelementptr inbounds i8, ptr %26, i64 380
  %268 = getelementptr inbounds i8, ptr %26, i64 428
  %269 = getelementptr inbounds i8, ptr %26, i64 404
  %270 = getelementptr inbounds i8, ptr %26, i64 260
  %271 = getelementptr inbounds i8, ptr %26, i64 392
  %272 = getelementptr inbounds i8, ptr %26, i64 416
  %273 = getelementptr inbounds i8, ptr %26, i64 440
  %274 = getelementptr inbounds i8, ptr %26, i64 272
  %275 = sext i32 %22 to i64
  %276 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %275, i64 %276)
  %277 = sext i32 %1 to i64
  %278 = sext i32 %29 to i64
  %279 = sext i32 %32 to i64
  %280 = sext i32 %35 to i64
  br label %313

281:                                              ; preds = %.lr.ph1223, %309
  %indvars.iv1261 = phi i64 [ %200, %.lr.ph1223 ], [ %indvars.iv.next1262, %309 ]
  %.09181221 = phi double [ 0.000000e+00, %.lr.ph1223 ], [ %311, %309 ]
  switch i32 %199, label %309 [
    i32 0, label %282
    i32 1, label %289
    i32 2, label %295
  ]

282:                                              ; preds = %281
  %283 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1261
  %284 = load float, ptr %283, align 4, !tbaa !15
  %285 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1261
  %286 = load float, ptr %285, align 4, !tbaa !15
  %287 = fsub float %284, %286
  %288 = tail call float @llvm.fabs.f32(float %287)
  br label %309

289:                                              ; preds = %281
  %290 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1261
  %291 = load float, ptr %290, align 4, !tbaa !15
  %292 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1261
  %293 = load float, ptr %292, align 4, !tbaa !15
  %294 = fsub float %291, %293
  br label %309

295:                                              ; preds = %281
  %296 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1261
  %297 = load float, ptr %296, align 4, !tbaa !15
  %298 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1261
  %299 = load float, ptr %298, align 4, !tbaa !15
  %300 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1261
  %301 = load float, ptr %300, align 4, !tbaa !15
  %302 = fcmp ult float %299, %301
  %.1098 = select i1 %302, float %301, float %299
  %303 = fsub float %297, %.1098
  %304 = select i1 %302, float %299, float %301
  %305 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1261
  %306 = load float, ptr %305, align 4, !tbaa !15
  %307 = fsub float %304, %306
  %308 = fadd float %303, %307
  br label %309

309:                                              ; preds = %289, %295, %281, %282
  %.in1083 = phi float [ %288, %282 ], [ %294, %289 ], [ %308, %295 ], [ 0.000000e+00, %281 ]
  %310 = fpext float %.in1083 to double
  %311 = fadd double %.09181221, %310
  %indvars.iv.next1262 = add nsw i64 %indvars.iv1261, 1
  %312 = icmp slt i64 %indvars.iv.next1262, %201
  br i1 %312, label %281, label %.preheader1174, !llvm.loop !21

313:                                              ; preds = %.preheader1174, %1078
  %.sroa.01298.0 = phi double [ %.lcssa1181, %.preheader1174 ], [ %775, %1078 ]
  %.sroa.91296.0 = phi double [ %.lcssa1206, %.preheader1174 ], [ %901, %1078 ]
  %.sroa.31294.0 = phi double [ %.lcssa1208, %.preheader1174 ], [ %1025, %1078 ]
  %.sroa.9.0 = phi double [ %.lcssa1214, %.preheader1174 ], [ %839, %1078 ]
  %.sroa.3.0 = phi double [ %.lcssa1216, %.preheader1174 ], [ %963, %1078 ]
  %indvars.iv1280 = phi i64 [ %.pre-phi, %.preheader1174 ], [ %indvars.iv.next1281, %1078 ]
  %indvars.iv1278 = phi i64 [ %280, %.preheader1174 ], [ %indvars.iv.next1279, %1078 ]
  %indvars.iv1276 = phi i64 [ %279, %.preheader1174 ], [ %indvars.iv.next1277, %1078 ]
  %indvars.iv1274 = phi i64 [ %278, %.preheader1174 ], [ %indvars.iv.next1275, %1078 ]
  %indvars.iv1272 = phi i64 [ 0, %.preheader1174 ], [ %indvars.iv.next1273, %1078 ]
  %indvars.iv1270 = phi i64 [ %smax, %.preheader1174 ], [ %indvars.iv.next1271, %1078 ]
  %.1919 = phi double [ %.0918.lcssa, %.preheader1174 ], [ %1082, %1078 ]
  %314 = phi <2 x double> [ %121, %.preheader1174 ], [ %772, %1078 ]
  %315 = add nsw i64 %indvars.iv1270, -2
  %316 = getelementptr inbounds float, ptr %5, i64 %315
  %317 = load float, ptr %316, align 4, !tbaa !15
  %318 = getelementptr inbounds float, ptr %2, i64 %315
  %319 = load float, ptr %318, align 4, !tbaa !15
  %320 = fcmp ult float %317, %319
  br i1 %320, label %594, label %321

321:                                              ; preds = %313
  %322 = getelementptr inbounds float, ptr %3, i64 %315
  %323 = load float, ptr %322, align 4, !tbaa !15
  %324 = fsub float %323, %317
  %325 = fpext float %324 to double
  %326 = load double, ptr %271, align 8, !tbaa !22
  %327 = load i32, ptr %27, align 8, !tbaa !11
  %.not1067 = icmp eq i32 %327, 0
  br i1 %.not1067, label %332, label %328

328:                                              ; preds = %321
  %329 = sitofp i32 %327 to double
  %330 = extractelement <2 x double> %314, i64 0
  %331 = fdiv double %330, %329
  %.pre = load i32, ptr %267, align 4, !tbaa !14
  br label %349

332:                                              ; preds = %321
  %333 = load i32, ptr %267, align 4, !tbaa !14
  switch i32 %333, label %346 [
    i32 0, label %.thread
    i32 1, label %337
    i32 2, label %341
  ]

.thread:                                          ; preds = %332
  %334 = fsub float %317, %319
  %335 = tail call float @llvm.fabs.f32(float %334)
  %336 = fpext float %335 to double
  br label %354

337:                                              ; preds = %332
  %338 = getelementptr inbounds float, ptr %4, i64 %315
  %339 = load float, ptr %338, align 4, !tbaa !15
  %340 = fsub float %323, %339
  br label %346

341:                                              ; preds = %332
  %342 = getelementptr inbounds float, ptr %4, i64 %315
  %343 = load float, ptr %342, align 4, !tbaa !15
  %344 = fsub float %319, %343
  %345 = fadd float %324, %344
  br label %346

346:                                              ; preds = %332, %341, %337
  %347 = phi float [ %340, %337 ], [ %345, %341 ], [ 0.000000e+00, %332 ]
  %348 = fpext float %347 to double
  br label %349

349:                                              ; preds = %346, %328
  %350 = phi i32 [ %.pre, %328 ], [ %333, %346 ]
  %351 = phi double [ %331, %328 ], [ %348, %346 ]
  %.fr = freeze i32 %350
  %352 = icmp eq i32 %.fr, 2
  br i1 %352, label %353, label %354

353:                                              ; preds = %349
  br label %354

354:                                              ; preds = %.thread, %349, %353
  %.pn1340 = phi double [ %351, %353 ], [ %351, %349 ], [ %336, %.thread ]
  %355 = phi i32 [ %.fr, %353 ], [ %.fr, %349 ], [ 0, %.thread ]
  %356 = phi double [ 2.000000e+00, %353 ], [ 1.000000e+00, %349 ], [ 1.000000e+00, %.thread ]
  %357 = fmul double %326, %.pn1340
  %358 = fdiv double %357, %356
  %359 = fcmp ogt double %358, %325
  br i1 %359, label %360, label %594

360:                                              ; preds = %354
  %361 = add nsw i64 %indvars.iv1270, -1
  %362 = getelementptr inbounds float, ptr %5, i64 %361
  %363 = load float, ptr %362, align 4, !tbaa !15
  %364 = getelementptr inbounds float, ptr %2, i64 %361
  %365 = load float, ptr %364, align 4, !tbaa !15
  %366 = fcmp ult float %363, %365
  br i1 %366, label %594, label %367

367:                                              ; preds = %360
  %368 = getelementptr inbounds float, ptr %3, i64 %361
  %369 = load float, ptr %368, align 4, !tbaa !15
  %370 = fsub float %369, %363
  %371 = fpext float %370 to double
  br i1 %.not1067, label %376, label %372

372:                                              ; preds = %367
  %373 = sitofp i32 %327 to double
  %374 = extractelement <2 x double> %314, i64 1
  %375 = fdiv double %374, %373
  br label %393

376:                                              ; preds = %367
  switch i32 %355, label %390 [
    i32 0, label %377
    i32 1, label %381
    i32 2, label %385
  ]

377:                                              ; preds = %376
  %378 = fsub float %363, %365
  %379 = tail call float @llvm.fabs.f32(float %378)
  %380 = fpext float %379 to double
  br label %393

381:                                              ; preds = %376
  %382 = getelementptr inbounds float, ptr %4, i64 %361
  %383 = load float, ptr %382, align 4, !tbaa !15
  %384 = fsub float %369, %383
  br label %390

385:                                              ; preds = %376
  %386 = getelementptr inbounds float, ptr %4, i64 %361
  %387 = load float, ptr %386, align 4, !tbaa !15
  %388 = fsub float %365, %387
  %389 = fadd float %370, %388
  br label %390

390:                                              ; preds = %376, %385, %381
  %391 = phi float [ %384, %381 ], [ %389, %385 ], [ 0.000000e+00, %376 ]
  %392 = fpext float %391 to double
  br label %393

393:                                              ; preds = %377, %390, %372
  %394 = phi double [ %375, %372 ], [ %380, %377 ], [ %392, %390 ]
  %395 = fmul double %326, %394
  %396 = fdiv double %395, %356
  %397 = fcmp ogt double %396, %371
  br i1 %397, label %398, label %594

398:                                              ; preds = %393
  %399 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1270
  %400 = load float, ptr %399, align 4, !tbaa !15
  %401 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1270
  %402 = load float, ptr %401, align 4, !tbaa !15
  %403 = fcmp ult float %400, %402
  br i1 %403, label %594, label %404

404:                                              ; preds = %398
  %405 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1270
  %406 = load float, ptr %405, align 4, !tbaa !15
  %407 = fsub float %406, %400
  %408 = fpext float %407 to double
  br i1 %.not1067, label %412, label %409

409:                                              ; preds = %404
  %410 = sitofp i32 %327 to double
  %411 = fdiv double %.sroa.01298.0, %410
  br label %429

412:                                              ; preds = %404
  switch i32 %355, label %426 [
    i32 0, label %413
    i32 1, label %417
    i32 2, label %421
  ]

413:                                              ; preds = %412
  %414 = fsub float %400, %402
  %415 = tail call float @llvm.fabs.f32(float %414)
  %416 = fpext float %415 to double
  br label %429

417:                                              ; preds = %412
  %418 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1270
  %419 = load float, ptr %418, align 4, !tbaa !15
  %420 = fsub float %406, %419
  br label %426

421:                                              ; preds = %412
  %422 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1270
  %423 = load float, ptr %422, align 4, !tbaa !15
  %424 = fsub float %402, %423
  %425 = fadd float %407, %424
  br label %426

426:                                              ; preds = %412, %421, %417
  %427 = phi float [ %420, %417 ], [ %425, %421 ], [ 0.000000e+00, %412 ]
  %428 = fpext float %427 to double
  br label %429

429:                                              ; preds = %413, %426, %409
  %430 = phi double [ %411, %409 ], [ %416, %413 ], [ %428, %426 ]
  %431 = fmul double %326, %430
  %432 = fdiv double %431, %356
  %433 = fcmp ogt double %432, %408
  %434 = fcmp ogt float %400, %363
  %or.cond1163 = and i1 %434, %433
  %435 = fcmp ogt float %363, %317
  %or.cond1164 = and i1 %435, %or.cond1163
  %436 = fcmp ogt float %365, %319
  %or.cond1165 = and i1 %436, %or.cond1164
  br i1 %or.cond1165, label %437, label %594

437:                                              ; preds = %429
  %438 = fpext float %365 to double
  %439 = fpext float %317 to double
  %440 = load double, ptr %272, align 8, !tbaa !22
  %441 = load i32, ptr %30, align 8, !tbaa !11
  %.not1070 = icmp eq i32 %441, 0
  br i1 %.not1070, label %445, label %442

442:                                              ; preds = %437
  %443 = sitofp i32 %441 to double
  %444 = fdiv double %.sroa.91296.0, %443
  %.pre1302 = load i32, ptr %269, align 4, !tbaa !14
  br label %463

445:                                              ; preds = %437
  %446 = load i32, ptr %269, align 4, !tbaa !14
  switch i32 %446, label %460 [
    i32 0, label %447
    i32 1, label %451
    i32 2, label %455
  ]

447:                                              ; preds = %445
  %448 = fsub float %317, %319
  %449 = tail call float @llvm.fabs.f32(float %448)
  %450 = fpext float %449 to double
  br label %463

451:                                              ; preds = %445
  %452 = getelementptr inbounds float, ptr %4, i64 %315
  %453 = load float, ptr %452, align 4, !tbaa !15
  %454 = fsub float %323, %453
  br label %460

455:                                              ; preds = %445
  %456 = getelementptr inbounds float, ptr %4, i64 %315
  %457 = load float, ptr %456, align 4, !tbaa !15
  %458 = fsub float %319, %457
  %459 = fadd float %324, %458
  br label %460

460:                                              ; preds = %445, %455, %451
  %461 = phi float [ %454, %451 ], [ %459, %455 ], [ 0.000000e+00, %445 ]
  %462 = fpext float %461 to double
  br label %463

463:                                              ; preds = %447, %460, %442
  %464 = phi i32 [ %.pre1302, %442 ], [ 0, %447 ], [ %446, %460 ]
  %465 = phi double [ %444, %442 ], [ %450, %447 ], [ %462, %460 ]
  %466 = fmul double %440, %465
  %467 = icmp eq i32 %464, 2
  %468 = select i1 %467, double 2.000000e+00, double 1.000000e+00
  %469 = fdiv double %466, %468
  %470 = fadd double %469, %439
  %471 = fcmp oge double %470, %438
  %472 = fcmp ogt float %402, %365
  %or.cond1166 = and i1 %472, %471
  br i1 %or.cond1166, label %473, label %594

473:                                              ; preds = %463
  %474 = fpext float %402 to double
  %475 = fpext float %363 to double
  br i1 %.not1070, label %479, label %476

476:                                              ; preds = %473
  %477 = sitofp i32 %441 to double
  %478 = fdiv double %.sroa.31294.0, %477
  br label %497

479:                                              ; preds = %473
  switch i32 %464, label %488 [
    i32 0, label %480
    i32 1, label %484
  ]

480:                                              ; preds = %479
  %481 = fsub float %363, %365
  %482 = tail call float @llvm.fabs.f32(float %481)
  %483 = fpext float %482 to double
  br label %497

484:                                              ; preds = %479
  %485 = getelementptr inbounds float, ptr %4, i64 %361
  %486 = load float, ptr %485, align 4, !tbaa !15
  %487 = fsub float %369, %486
  br label %494

488:                                              ; preds = %479
  br i1 %467, label %489, label %494

489:                                              ; preds = %488
  %490 = getelementptr inbounds float, ptr %4, i64 %361
  %491 = load float, ptr %490, align 4, !tbaa !15
  %492 = fsub float %365, %491
  %493 = fadd float %370, %492
  br label %494

494:                                              ; preds = %489, %488, %484
  %495 = phi float [ %487, %484 ], [ %493, %489 ], [ 0.000000e+00, %488 ]
  %496 = fpext float %495 to double
  br label %497

497:                                              ; preds = %480, %494, %476
  %498 = phi double [ %478, %476 ], [ %483, %480 ], [ %496, %494 ]
  %499 = fmul double %440, %498
  %500 = fdiv double %499, %468
  %501 = fadd double %500, %475
  %502 = fcmp ult double %501, %474
  br i1 %502, label %594, label %503

503:                                              ; preds = %497
  %504 = fsub float %363, %365
  %505 = tail call float @llvm.fabs.f32(float %504)
  %506 = fpext float %505 to double
  %507 = fsub float %317, %319
  %508 = tail call float @llvm.fabs.f32(float %507)
  %509 = fpext float %508 to double
  %510 = load double, ptr %273, align 8, !tbaa !22
  %511 = load i32, ptr %33, align 8, !tbaa !11
  %.not1072 = icmp eq i32 %511, 0
  br i1 %.not1072, label %515, label %512

512:                                              ; preds = %503
  %513 = sitofp i32 %511 to double
  %514 = fdiv double %.sroa.9.0, %513
  %.pre1303 = load i32, ptr %268, align 4, !tbaa !14
  br label %529

515:                                              ; preds = %503
  %516 = load i32, ptr %268, align 4, !tbaa !14
  switch i32 %516, label %526 [
    i32 0, label %529
    i32 1, label %517
    i32 2, label %521
  ]

517:                                              ; preds = %515
  %518 = getelementptr inbounds float, ptr %4, i64 %315
  %519 = load float, ptr %518, align 4, !tbaa !15
  %520 = fsub float %323, %519
  br label %526

521:                                              ; preds = %515
  %522 = getelementptr inbounds float, ptr %4, i64 %315
  %523 = load float, ptr %522, align 4, !tbaa !15
  %524 = fsub float %319, %523
  %525 = fadd float %324, %524
  br label %526

526:                                              ; preds = %515, %521, %517
  %527 = phi float [ %520, %517 ], [ %525, %521 ], [ 0.000000e+00, %515 ]
  %528 = fpext float %527 to double
  br label %529

529:                                              ; preds = %515, %526, %512
  %530 = phi i32 [ %.pre1303, %512 ], [ %516, %526 ], [ %516, %515 ]
  %531 = phi double [ %514, %512 ], [ %528, %526 ], [ %509, %515 ]
  %532 = fmul double %510, %531
  %533 = icmp eq i32 %530, 2
  %534 = select i1 %533, double 2.000000e+00, double 1.000000e+00
  %535 = fdiv double %532, %534
  %536 = fsub double %509, %535
  %537 = fcmp olt double %536, %506
  br i1 %537, label %538, label %594

538:                                              ; preds = %529
  %539 = fsub float %400, %402
  %540 = tail call float @llvm.fabs.f32(float %539)
  %541 = fpext float %540 to double
  br i1 %.not1072, label %545, label %542

542:                                              ; preds = %538
  %543 = sitofp i32 %511 to double
  %544 = fdiv double %.sroa.3.0, %543
  br label %559

545:                                              ; preds = %538
  switch i32 %530, label %550 [
    i32 0, label %559
    i32 1, label %546
  ]

546:                                              ; preds = %545
  %547 = getelementptr inbounds float, ptr %4, i64 %361
  %548 = load float, ptr %547, align 4, !tbaa !15
  %549 = fsub float %369, %548
  br label %556

550:                                              ; preds = %545
  br i1 %533, label %551, label %556

551:                                              ; preds = %550
  %552 = getelementptr inbounds float, ptr %4, i64 %361
  %553 = load float, ptr %552, align 4, !tbaa !15
  %554 = fsub float %365, %553
  %555 = fadd float %370, %554
  br label %556

556:                                              ; preds = %551, %550, %546
  %557 = phi float [ %549, %546 ], [ %555, %551 ], [ 0.000000e+00, %550 ]
  %558 = fpext float %557 to double
  br label %559

559:                                              ; preds = %545, %556, %542
  %560 = phi double [ %544, %542 ], [ %558, %556 ], [ %506, %545 ]
  %561 = fmul double %510, %560
  %562 = fdiv double %561, %534
  %563 = fsub double %506, %562
  %564 = fcmp olt double %563, %541
  br i1 %564, label %565, label %594

565:                                              ; preds = %559
  %566 = load double, ptr %274, align 8, !tbaa !22
  %567 = load i32, ptr %36, align 8, !tbaa !11
  %.not1074 = icmp eq i32 %567, 0
  br i1 %.not1074, label %571, label %568

568:                                              ; preds = %565
  %569 = sitofp i32 %567 to double
  %570 = fdiv double %.1919, %569
  %.pre1304 = load i32, ptr %270, align 4, !tbaa !14
  br label %585

571:                                              ; preds = %565
  %572 = load i32, ptr %270, align 4, !tbaa !14
  switch i32 %572, label %582 [
    i32 0, label %.thread1308
    i32 1, label %573
    i32 2, label %577
  ]

573:                                              ; preds = %571
  %574 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1270
  %575 = load float, ptr %574, align 4, !tbaa !15
  %576 = fsub float %406, %575
  br label %582

577:                                              ; preds = %571
  %578 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1270
  %579 = load float, ptr %578, align 4, !tbaa !15
  %580 = fsub float %402, %579
  %581 = fadd float %407, %580
  br label %582

582:                                              ; preds = %571, %577, %573
  %583 = phi float [ %576, %573 ], [ %581, %577 ], [ 0.000000e+00, %571 ]
  %584 = fpext float %583 to double
  br label %585

585:                                              ; preds = %582, %568
  %586 = phi i32 [ %.pre1304, %568 ], [ %572, %582 ]
  %587 = phi double [ %570, %568 ], [ %584, %582 ]
  %.fr1341 = freeze i32 %586
  %588 = icmp eq i32 %.fr1341, 2
  br i1 %588, label %589, label %.thread1308

589:                                              ; preds = %585
  br label %.thread1308

.thread1308:                                      ; preds = %571, %585, %589
  %.pn1342 = phi double [ %587, %589 ], [ %587, %585 ], [ %541, %571 ]
  %590 = phi double [ 2.000000e+00, %589 ], [ 1.000000e+00, %585 ], [ 1.000000e+00, %571 ]
  %591 = fmul double %566, %.pn1342
  %592 = fdiv double %591, %590
  %593 = fcmp olt double %592, %541
  br i1 %593, label %595, label %594

594:                                              ; preds = %.thread1308, %559, %529, %497, %463, %429, %398, %393, %360, %354, %313
  br label %595

595:                                              ; preds = %.thread1308, %594
  %.sink = phi i32 [ 0, %594 ], [ 100, %.thread1308 ]
  %596 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv1272
  store i32 %.sink, ptr %596, align 4, !tbaa !5
  %597 = load i32, ptr %267, align 4, !tbaa !14
  switch i32 %597, label %.preheader [
    i32 0, label %.thread1310
    i32 1, label %.thread1312
    i32 2, label %.thread1314
  ]

.thread1310:                                      ; preds = %595
  %598 = add nsw i64 %indvars.iv1270, -2
  %599 = getelementptr inbounds float, ptr %5, i64 %598
  %600 = load float, ptr %599, align 4, !tbaa !15
  %601 = getelementptr inbounds float, ptr %2, i64 %598
  %602 = load float, ptr %601, align 4, !tbaa !15
  %603 = add nsw i64 %indvars.iv1274, -2
  %604 = getelementptr inbounds float, ptr %5, i64 %603
  %605 = load float, ptr %604, align 4, !tbaa !15
  %606 = getelementptr inbounds float, ptr %2, i64 %603
  %607 = load float, ptr %606, align 4, !tbaa !15
  %608 = insertelement <2 x float> poison, float %600, i64 0
  %609 = insertelement <2 x float> %608, float %605, i64 1
  %610 = insertelement <2 x float> poison, float %602, i64 0
  %611 = insertelement <2 x float> %610, float %607, i64 1
  %612 = fsub <2 x float> %609, %611
  %613 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %612)
  %614 = fpext <2 x float> %613 to <2 x double>
  %615 = add nsw i64 %indvars.iv1270, -1
  %616 = getelementptr inbounds float, ptr %5, i64 %615
  %617 = load float, ptr %616, align 4, !tbaa !15
  %618 = getelementptr inbounds float, ptr %2, i64 %615
  %619 = load float, ptr %618, align 4, !tbaa !15
  %620 = add nsw i64 %indvars.iv1274, -1
  %621 = getelementptr inbounds float, ptr %5, i64 %620
  %622 = load float, ptr %621, align 4, !tbaa !15
  %623 = getelementptr inbounds float, ptr %2, i64 %620
  %624 = load float, ptr %623, align 4, !tbaa !15
  %625 = insertelement <2 x float> poison, float %617, i64 0
  %626 = insertelement <2 x float> %625, float %622, i64 1
  %627 = insertelement <2 x float> poison, float %619, i64 0
  %628 = insertelement <2 x float> %627, float %624, i64 1
  %629 = fsub <2 x float> %626, %628
  %630 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %629)
  %631 = fpext <2 x float> %630 to <2 x double>
  %632 = shufflevector <2 x double> %614, <2 x double> %631, <2 x i32> <i32 0, i32 2>
  %633 = shufflevector <2 x double> %614, <2 x double> %631, <2 x i32> <i32 1, i32 3>
  %634 = fsub <2 x double> %632, %633
  %635 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1270
  %636 = load float, ptr %635, align 4, !tbaa !15
  %637 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1270
  %638 = load float, ptr %637, align 4, !tbaa !15
  %639 = fsub float %636, %638
  %640 = tail call float @llvm.fabs.f32(float %639)
  %641 = fpext float %640 to double
  %642 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1274
  %643 = load float, ptr %642, align 4, !tbaa !15
  %644 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1274
  %645 = load float, ptr %644, align 4, !tbaa !15
  %646 = fsub float %643, %645
  %647 = tail call float @llvm.fabs.f32(float %646)
  br label %.preheader

.thread1312:                                      ; preds = %595
  %648 = add nsw i64 %indvars.iv1270, -2
  %649 = getelementptr inbounds float, ptr %3, i64 %648
  %650 = getelementptr inbounds float, ptr %4, i64 %648
  %651 = add nsw i64 %indvars.iv1274, -2
  %652 = getelementptr inbounds float, ptr %3, i64 %651
  %653 = getelementptr inbounds float, ptr %4, i64 %651
  %654 = load <2 x float>, ptr %649, align 4, !tbaa !15
  %655 = load <2 x float>, ptr %650, align 4, !tbaa !15
  %656 = fsub <2 x float> %654, %655
  %657 = fpext <2 x float> %656 to <2 x double>
  %658 = load <2 x float>, ptr %652, align 4, !tbaa !15
  %659 = load <2 x float>, ptr %653, align 4, !tbaa !15
  %660 = fsub <2 x float> %658, %659
  %661 = fpext <2 x float> %660 to <2 x double>
  %662 = fsub <2 x double> %657, %661
  %663 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1270
  %664 = load float, ptr %663, align 4, !tbaa !15
  %665 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1270
  %666 = load float, ptr %665, align 4, !tbaa !15
  %667 = fsub float %664, %666
  %668 = fpext float %667 to double
  %669 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1274
  %670 = load float, ptr %669, align 4, !tbaa !15
  %671 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1274
  %672 = load float, ptr %671, align 4, !tbaa !15
  %673 = fsub float %670, %672
  br label %.preheader

.thread1314:                                      ; preds = %595
  %674 = add nsw i64 %indvars.iv1270, -2
  %675 = getelementptr inbounds float, ptr %3, i64 %674
  %676 = load float, ptr %675, align 4, !tbaa !15
  %677 = getelementptr inbounds float, ptr %5, i64 %674
  %678 = load float, ptr %677, align 4, !tbaa !15
  %679 = getelementptr inbounds float, ptr %2, i64 %674
  %680 = load float, ptr %679, align 4, !tbaa !15
  %681 = getelementptr inbounds float, ptr %4, i64 %674
  %682 = load float, ptr %681, align 4, !tbaa !15
  %683 = add nsw i64 %indvars.iv1274, -2
  %684 = getelementptr inbounds float, ptr %3, i64 %683
  %685 = load float, ptr %684, align 4, !tbaa !15
  %686 = getelementptr inbounds float, ptr %5, i64 %683
  %687 = load float, ptr %686, align 4, !tbaa !15
  %688 = getelementptr inbounds float, ptr %2, i64 %683
  %689 = load float, ptr %688, align 4, !tbaa !15
  %690 = getelementptr inbounds float, ptr %4, i64 %683
  %691 = load float, ptr %690, align 4, !tbaa !15
  %692 = insertelement <2 x float> poison, float %678, i64 0
  %693 = insertelement <2 x float> %692, float %687, i64 1
  %694 = insertelement <2 x float> poison, float %680, i64 0
  %695 = insertelement <2 x float> %694, float %689, i64 1
  %696 = fcmp ult <2 x float> %693, %695
  %697 = select <2 x i1> %696, <2 x float> %695, <2 x float> %693
  %698 = insertelement <2 x float> poison, float %676, i64 0
  %699 = insertelement <2 x float> %698, float %685, i64 1
  %700 = fsub <2 x float> %699, %697
  %701 = select <2 x i1> %696, <2 x float> %693, <2 x float> %695
  %702 = insertelement <2 x float> poison, float %682, i64 0
  %703 = insertelement <2 x float> %702, float %691, i64 1
  %704 = fsub <2 x float> %701, %703
  %705 = fadd <2 x float> %700, %704
  %706 = fpext <2 x float> %705 to <2 x double>
  %707 = add nsw i64 %indvars.iv1270, -1
  %708 = getelementptr inbounds float, ptr %3, i64 %707
  %709 = load float, ptr %708, align 4, !tbaa !15
  %710 = getelementptr inbounds float, ptr %5, i64 %707
  %711 = load float, ptr %710, align 4, !tbaa !15
  %712 = getelementptr inbounds float, ptr %2, i64 %707
  %713 = load float, ptr %712, align 4, !tbaa !15
  %714 = getelementptr inbounds float, ptr %4, i64 %707
  %715 = load float, ptr %714, align 4, !tbaa !15
  %716 = add nsw i64 %indvars.iv1274, -1
  %717 = getelementptr inbounds float, ptr %3, i64 %716
  %718 = load float, ptr %717, align 4, !tbaa !15
  %719 = getelementptr inbounds float, ptr %5, i64 %716
  %720 = load float, ptr %719, align 4, !tbaa !15
  %721 = getelementptr inbounds float, ptr %2, i64 %716
  %722 = load float, ptr %721, align 4, !tbaa !15
  %723 = getelementptr inbounds float, ptr %4, i64 %716
  %724 = load float, ptr %723, align 4, !tbaa !15
  %725 = insertelement <2 x float> poison, float %711, i64 0
  %726 = insertelement <2 x float> %725, float %720, i64 1
  %727 = insertelement <2 x float> poison, float %713, i64 0
  %728 = insertelement <2 x float> %727, float %722, i64 1
  %729 = fcmp ult <2 x float> %726, %728
  %730 = select <2 x i1> %729, <2 x float> %728, <2 x float> %726
  %731 = insertelement <2 x float> poison, float %709, i64 0
  %732 = insertelement <2 x float> %731, float %718, i64 1
  %733 = fsub <2 x float> %732, %730
  %734 = select <2 x i1> %729, <2 x float> %726, <2 x float> %728
  %735 = insertelement <2 x float> poison, float %715, i64 0
  %736 = insertelement <2 x float> %735, float %724, i64 1
  %737 = fsub <2 x float> %734, %736
  %738 = fadd <2 x float> %733, %737
  %739 = fpext <2 x float> %738 to <2 x double>
  %740 = shufflevector <2 x double> %706, <2 x double> %739, <2 x i32> <i32 0, i32 2>
  %741 = shufflevector <2 x double> %706, <2 x double> %739, <2 x i32> <i32 1, i32 3>
  %742 = fsub <2 x double> %740, %741
  %743 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1270
  %744 = load float, ptr %743, align 4, !tbaa !15
  %745 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1270
  %746 = load float, ptr %745, align 4, !tbaa !15
  %747 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1270
  %748 = load float, ptr %747, align 4, !tbaa !15
  %749 = fcmp ult float %746, %748
  %.1107.2 = select i1 %749, float %748, float %746
  %750 = fsub float %744, %.1107.2
  %751 = select i1 %749, float %746, float %748
  %752 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1270
  %753 = load float, ptr %752, align 4, !tbaa !15
  %754 = fsub float %751, %753
  %755 = fadd float %750, %754
  %756 = fpext float %755 to double
  %757 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1274
  %758 = load float, ptr %757, align 4, !tbaa !15
  %759 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1274
  %760 = load float, ptr %759, align 4, !tbaa !15
  %761 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1274
  %762 = load float, ptr %761, align 4, !tbaa !15
  %763 = fcmp ult float %760, %762
  %.1108.2 = select i1 %763, float %762, float %760
  %764 = fsub float %758, %.1108.2
  %765 = select i1 %763, float %760, float %762
  %766 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1274
  %767 = load float, ptr %766, align 4, !tbaa !15
  %768 = fsub float %765, %767
  %769 = fadd float %764, %768
  br label %.preheader

.preheader:                                       ; preds = %595, %.thread1310, %.thread1312, %.thread1314
  %770 = phi double [ %641, %.thread1310 ], [ %668, %.thread1312 ], [ %756, %.thread1314 ], [ 0.000000e+00, %595 ]
  %.in1082.2 = phi float [ %647, %.thread1310 ], [ %673, %.thread1312 ], [ %769, %.thread1314 ], [ 0.000000e+00, %595 ]
  %771 = phi <2 x double> [ %634, %.thread1310 ], [ %662, %.thread1312 ], [ %742, %.thread1314 ], [ zeroinitializer, %595 ]
  %772 = fadd <2 x double> %314, %771
  %773 = fpext float %.in1082.2 to double
  %774 = fsub double %770, %773
  %775 = fadd double %.sroa.01298.0, %774
  %776 = load i32, ptr %268, align 4, !tbaa !14
  %777 = load i32, ptr %269, align 4, !tbaa !14
  switch i32 %776, label %835 [
    i32 0, label %.thread1145
    i32 1, label %.thread1147
    i32 2, label %.thread1149
  ]

.thread1145:                                      ; preds = %.preheader
  %778 = add nsw i64 %indvars.iv1270, -2
  %779 = getelementptr inbounds float, ptr %5, i64 %778
  %780 = load float, ptr %779, align 4, !tbaa !15
  %781 = getelementptr inbounds float, ptr %2, i64 %778
  %782 = load float, ptr %781, align 4, !tbaa !15
  %783 = fsub float %780, %782
  %784 = tail call float @llvm.fabs.f32(float %783)
  %785 = fpext float %784 to double
  %786 = add nsw i64 %indvars.iv1278, -2
  %787 = getelementptr inbounds float, ptr %5, i64 %786
  %788 = load float, ptr %787, align 4, !tbaa !15
  %789 = getelementptr inbounds float, ptr %2, i64 %786
  %790 = load float, ptr %789, align 4, !tbaa !15
  %791 = fsub float %788, %790
  %792 = tail call float @llvm.fabs.f32(float %791)
  br label %835

.thread1147:                                      ; preds = %.preheader
  %793 = add nsw i64 %indvars.iv1270, -2
  %794 = getelementptr inbounds float, ptr %3, i64 %793
  %795 = load float, ptr %794, align 4, !tbaa !15
  %796 = getelementptr inbounds float, ptr %4, i64 %793
  %797 = load float, ptr %796, align 4, !tbaa !15
  %798 = fsub float %795, %797
  %799 = fpext float %798 to double
  %800 = add nsw i64 %indvars.iv1278, -2
  %801 = getelementptr inbounds float, ptr %3, i64 %800
  %802 = load float, ptr %801, align 4, !tbaa !15
  %803 = getelementptr inbounds float, ptr %4, i64 %800
  %804 = load float, ptr %803, align 4, !tbaa !15
  %805 = fsub float %802, %804
  br label %835

.thread1149:                                      ; preds = %.preheader
  %806 = add nsw i64 %indvars.iv1270, -2
  %807 = getelementptr inbounds float, ptr %3, i64 %806
  %808 = load float, ptr %807, align 4, !tbaa !15
  %809 = getelementptr inbounds float, ptr %5, i64 %806
  %810 = load float, ptr %809, align 4, !tbaa !15
  %811 = getelementptr inbounds float, ptr %2, i64 %806
  %812 = load float, ptr %811, align 4, !tbaa !15
  %813 = fcmp ult float %810, %812
  %.1109 = select i1 %813, float %812, float %810
  %814 = fsub float %808, %.1109
  %815 = select i1 %813, float %810, float %812
  %816 = getelementptr inbounds float, ptr %4, i64 %806
  %817 = load float, ptr %816, align 4, !tbaa !15
  %818 = fsub float %815, %817
  %819 = fadd float %814, %818
  %820 = fpext float %819 to double
  %821 = add nsw i64 %indvars.iv1278, -2
  %822 = getelementptr inbounds float, ptr %3, i64 %821
  %823 = load float, ptr %822, align 4, !tbaa !15
  %824 = getelementptr inbounds float, ptr %5, i64 %821
  %825 = load float, ptr %824, align 4, !tbaa !15
  %826 = getelementptr inbounds float, ptr %2, i64 %821
  %827 = load float, ptr %826, align 4, !tbaa !15
  %828 = fcmp ult float %825, %827
  %.1110 = select i1 %828, float %827, float %825
  %829 = fsub float %823, %.1110
  %830 = select i1 %828, float %825, float %827
  %831 = getelementptr inbounds float, ptr %4, i64 %821
  %832 = load float, ptr %831, align 4, !tbaa !15
  %833 = fsub float %830, %832
  %834 = fadd float %829, %833
  br label %835

835:                                              ; preds = %.preheader, %.thread1147, %.thread1149, %.thread1145
  %836 = phi double [ %785, %.thread1145 ], [ %799, %.thread1147 ], [ %820, %.thread1149 ], [ 0.000000e+00, %.preheader ]
  %.in1078 = phi float [ %792, %.thread1145 ], [ %805, %.thread1147 ], [ %834, %.thread1149 ], [ 0.000000e+00, %.preheader ]
  %837 = fpext float %.in1078 to double
  %838 = fsub double %836, %837
  %839 = fadd double %.sroa.9.0, %838
  switch i32 %777, label %897 [
    i32 0, label %.thread1151
    i32 1, label %.thread1153
    i32 2, label %.thread1155
  ]

.thread1151:                                      ; preds = %835
  %840 = add nsw i64 %indvars.iv1270, -2
  %841 = getelementptr inbounds float, ptr %5, i64 %840
  %842 = load float, ptr %841, align 4, !tbaa !15
  %843 = getelementptr inbounds float, ptr %2, i64 %840
  %844 = load float, ptr %843, align 4, !tbaa !15
  %845 = fsub float %842, %844
  %846 = tail call float @llvm.fabs.f32(float %845)
  %847 = fpext float %846 to double
  %848 = add nsw i64 %indvars.iv1276, -2
  %849 = getelementptr inbounds float, ptr %5, i64 %848
  %850 = load float, ptr %849, align 4, !tbaa !15
  %851 = getelementptr inbounds float, ptr %2, i64 %848
  %852 = load float, ptr %851, align 4, !tbaa !15
  %853 = fsub float %850, %852
  %854 = tail call float @llvm.fabs.f32(float %853)
  br label %897

.thread1153:                                      ; preds = %835
  %855 = add nsw i64 %indvars.iv1270, -2
  %856 = getelementptr inbounds float, ptr %3, i64 %855
  %857 = load float, ptr %856, align 4, !tbaa !15
  %858 = getelementptr inbounds float, ptr %4, i64 %855
  %859 = load float, ptr %858, align 4, !tbaa !15
  %860 = fsub float %857, %859
  %861 = fpext float %860 to double
  %862 = add nsw i64 %indvars.iv1276, -2
  %863 = getelementptr inbounds float, ptr %3, i64 %862
  %864 = load float, ptr %863, align 4, !tbaa !15
  %865 = getelementptr inbounds float, ptr %4, i64 %862
  %866 = load float, ptr %865, align 4, !tbaa !15
  %867 = fsub float %864, %866
  br label %897

.thread1155:                                      ; preds = %835
  %868 = add nsw i64 %indvars.iv1270, -2
  %869 = getelementptr inbounds float, ptr %3, i64 %868
  %870 = load float, ptr %869, align 4, !tbaa !15
  %871 = getelementptr inbounds float, ptr %5, i64 %868
  %872 = load float, ptr %871, align 4, !tbaa !15
  %873 = getelementptr inbounds float, ptr %2, i64 %868
  %874 = load float, ptr %873, align 4, !tbaa !15
  %875 = fcmp ult float %872, %874
  %.1111 = select i1 %875, float %874, float %872
  %876 = fsub float %870, %.1111
  %877 = select i1 %875, float %872, float %874
  %878 = getelementptr inbounds float, ptr %4, i64 %868
  %879 = load float, ptr %878, align 4, !tbaa !15
  %880 = fsub float %877, %879
  %881 = fadd float %876, %880
  %882 = fpext float %881 to double
  %883 = add nsw i64 %indvars.iv1276, -2
  %884 = getelementptr inbounds float, ptr %3, i64 %883
  %885 = load float, ptr %884, align 4, !tbaa !15
  %886 = getelementptr inbounds float, ptr %5, i64 %883
  %887 = load float, ptr %886, align 4, !tbaa !15
  %888 = getelementptr inbounds float, ptr %2, i64 %883
  %889 = load float, ptr %888, align 4, !tbaa !15
  %890 = fcmp ult float %887, %889
  %.1112 = select i1 %890, float %889, float %887
  %891 = fsub float %885, %.1112
  %892 = select i1 %890, float %887, float %889
  %893 = getelementptr inbounds float, ptr %4, i64 %883
  %894 = load float, ptr %893, align 4, !tbaa !15
  %895 = fsub float %892, %894
  %896 = fadd float %891, %895
  br label %897

897:                                              ; preds = %835, %.thread1153, %.thread1155, %.thread1151
  %898 = phi double [ %847, %.thread1151 ], [ %861, %.thread1153 ], [ %882, %.thread1155 ], [ 0.000000e+00, %835 ]
  %.in1080 = phi float [ %854, %.thread1151 ], [ %867, %.thread1153 ], [ %896, %.thread1155 ], [ 0.000000e+00, %835 ]
  %899 = fpext float %.in1080 to double
  %900 = fsub double %898, %899
  %901 = fadd double %.sroa.91296.0, %900
  switch i32 %776, label %959 [
    i32 0, label %.thread1145.1
    i32 1, label %.thread1147.1
    i32 2, label %.thread1149.1
  ]

.thread1149.1:                                    ; preds = %897
  %902 = add nsw i64 %indvars.iv1270, -1
  %903 = getelementptr inbounds float, ptr %3, i64 %902
  %904 = load float, ptr %903, align 4, !tbaa !15
  %905 = getelementptr inbounds float, ptr %5, i64 %902
  %906 = load float, ptr %905, align 4, !tbaa !15
  %907 = getelementptr inbounds float, ptr %2, i64 %902
  %908 = load float, ptr %907, align 4, !tbaa !15
  %909 = fcmp ult float %906, %908
  %.1109.1 = select i1 %909, float %908, float %906
  %910 = fsub float %904, %.1109.1
  %911 = select i1 %909, float %906, float %908
  %912 = getelementptr inbounds float, ptr %4, i64 %902
  %913 = load float, ptr %912, align 4, !tbaa !15
  %914 = fsub float %911, %913
  %915 = fadd float %910, %914
  %916 = fpext float %915 to double
  %917 = add nsw i64 %indvars.iv1278, -1
  %918 = getelementptr inbounds float, ptr %3, i64 %917
  %919 = load float, ptr %918, align 4, !tbaa !15
  %920 = getelementptr inbounds float, ptr %5, i64 %917
  %921 = load float, ptr %920, align 4, !tbaa !15
  %922 = getelementptr inbounds float, ptr %2, i64 %917
  %923 = load float, ptr %922, align 4, !tbaa !15
  %924 = fcmp ult float %921, %923
  %.1110.1 = select i1 %924, float %923, float %921
  %925 = fsub float %919, %.1110.1
  %926 = select i1 %924, float %921, float %923
  %927 = getelementptr inbounds float, ptr %4, i64 %917
  %928 = load float, ptr %927, align 4, !tbaa !15
  %929 = fsub float %926, %928
  %930 = fadd float %925, %929
  br label %959

.thread1147.1:                                    ; preds = %897
  %931 = add nsw i64 %indvars.iv1270, -1
  %932 = getelementptr inbounds float, ptr %3, i64 %931
  %933 = load float, ptr %932, align 4, !tbaa !15
  %934 = getelementptr inbounds float, ptr %4, i64 %931
  %935 = load float, ptr %934, align 4, !tbaa !15
  %936 = fsub float %933, %935
  %937 = fpext float %936 to double
  %938 = add nsw i64 %indvars.iv1278, -1
  %939 = getelementptr inbounds float, ptr %3, i64 %938
  %940 = load float, ptr %939, align 4, !tbaa !15
  %941 = getelementptr inbounds float, ptr %4, i64 %938
  %942 = load float, ptr %941, align 4, !tbaa !15
  %943 = fsub float %940, %942
  br label %959

.thread1145.1:                                    ; preds = %897
  %944 = add nsw i64 %indvars.iv1270, -1
  %945 = getelementptr inbounds float, ptr %5, i64 %944
  %946 = load float, ptr %945, align 4, !tbaa !15
  %947 = getelementptr inbounds float, ptr %2, i64 %944
  %948 = load float, ptr %947, align 4, !tbaa !15
  %949 = fsub float %946, %948
  %950 = tail call float @llvm.fabs.f32(float %949)
  %951 = fpext float %950 to double
  %952 = add nsw i64 %indvars.iv1278, -1
  %953 = getelementptr inbounds float, ptr %5, i64 %952
  %954 = load float, ptr %953, align 4, !tbaa !15
  %955 = getelementptr inbounds float, ptr %2, i64 %952
  %956 = load float, ptr %955, align 4, !tbaa !15
  %957 = fsub float %954, %956
  %958 = tail call float @llvm.fabs.f32(float %957)
  br label %959

959:                                              ; preds = %.thread1145.1, %.thread1147.1, %.thread1149.1, %897
  %960 = phi double [ %951, %.thread1145.1 ], [ %937, %.thread1147.1 ], [ %916, %.thread1149.1 ], [ 0.000000e+00, %897 ]
  %.in1078.1 = phi float [ %958, %.thread1145.1 ], [ %943, %.thread1147.1 ], [ %930, %.thread1149.1 ], [ 0.000000e+00, %897 ]
  %961 = fpext float %.in1078.1 to double
  %962 = fsub double %960, %961
  %963 = fadd double %.sroa.3.0, %962
  switch i32 %777, label %1021 [
    i32 0, label %.thread1151.1
    i32 1, label %.thread1153.1
    i32 2, label %.thread1155.1
  ]

.thread1155.1:                                    ; preds = %959
  %964 = add nsw i64 %indvars.iv1270, -1
  %965 = getelementptr inbounds float, ptr %3, i64 %964
  %966 = load float, ptr %965, align 4, !tbaa !15
  %967 = getelementptr inbounds float, ptr %5, i64 %964
  %968 = load float, ptr %967, align 4, !tbaa !15
  %969 = getelementptr inbounds float, ptr %2, i64 %964
  %970 = load float, ptr %969, align 4, !tbaa !15
  %971 = fcmp ult float %968, %970
  %.1111.1 = select i1 %971, float %970, float %968
  %972 = fsub float %966, %.1111.1
  %973 = select i1 %971, float %968, float %970
  %974 = getelementptr inbounds float, ptr %4, i64 %964
  %975 = load float, ptr %974, align 4, !tbaa !15
  %976 = fsub float %973, %975
  %977 = fadd float %972, %976
  %978 = fpext float %977 to double
  %979 = add nsw i64 %indvars.iv1276, -1
  %980 = getelementptr inbounds float, ptr %3, i64 %979
  %981 = load float, ptr %980, align 4, !tbaa !15
  %982 = getelementptr inbounds float, ptr %5, i64 %979
  %983 = load float, ptr %982, align 4, !tbaa !15
  %984 = getelementptr inbounds float, ptr %2, i64 %979
  %985 = load float, ptr %984, align 4, !tbaa !15
  %986 = fcmp ult float %983, %985
  %.1112.1 = select i1 %986, float %985, float %983
  %987 = fsub float %981, %.1112.1
  %988 = select i1 %986, float %983, float %985
  %989 = getelementptr inbounds float, ptr %4, i64 %979
  %990 = load float, ptr %989, align 4, !tbaa !15
  %991 = fsub float %988, %990
  %992 = fadd float %987, %991
  br label %1021

.thread1153.1:                                    ; preds = %959
  %993 = add nsw i64 %indvars.iv1270, -1
  %994 = getelementptr inbounds float, ptr %3, i64 %993
  %995 = load float, ptr %994, align 4, !tbaa !15
  %996 = getelementptr inbounds float, ptr %4, i64 %993
  %997 = load float, ptr %996, align 4, !tbaa !15
  %998 = fsub float %995, %997
  %999 = fpext float %998 to double
  %1000 = add nsw i64 %indvars.iv1276, -1
  %1001 = getelementptr inbounds float, ptr %3, i64 %1000
  %1002 = load float, ptr %1001, align 4, !tbaa !15
  %1003 = getelementptr inbounds float, ptr %4, i64 %1000
  %1004 = load float, ptr %1003, align 4, !tbaa !15
  %1005 = fsub float %1002, %1004
  br label %1021

.thread1151.1:                                    ; preds = %959
  %1006 = add nsw i64 %indvars.iv1270, -1
  %1007 = getelementptr inbounds float, ptr %5, i64 %1006
  %1008 = load float, ptr %1007, align 4, !tbaa !15
  %1009 = getelementptr inbounds float, ptr %2, i64 %1006
  %1010 = load float, ptr %1009, align 4, !tbaa !15
  %1011 = fsub float %1008, %1010
  %1012 = tail call float @llvm.fabs.f32(float %1011)
  %1013 = fpext float %1012 to double
  %1014 = add nsw i64 %indvars.iv1276, -1
  %1015 = getelementptr inbounds float, ptr %5, i64 %1014
  %1016 = load float, ptr %1015, align 4, !tbaa !15
  %1017 = getelementptr inbounds float, ptr %2, i64 %1014
  %1018 = load float, ptr %1017, align 4, !tbaa !15
  %1019 = fsub float %1016, %1018
  %1020 = tail call float @llvm.fabs.f32(float %1019)
  br label %1021

1021:                                             ; preds = %.thread1151.1, %.thread1153.1, %.thread1155.1, %959
  %1022 = phi double [ %1013, %.thread1151.1 ], [ %999, %.thread1153.1 ], [ %978, %.thread1155.1 ], [ 0.000000e+00, %959 ]
  %.in1080.1 = phi float [ %1020, %.thread1151.1 ], [ %1005, %.thread1153.1 ], [ %992, %.thread1155.1 ], [ 0.000000e+00, %959 ]
  %1023 = fpext float %.in1080.1 to double
  %1024 = fsub double %1022, %1023
  %1025 = fadd double %.sroa.31294.0, %1024
  %indvars.iv.next1273 = add nuw nsw i64 %indvars.iv1272, 1
  %1026 = load i32, ptr %270, align 4, !tbaa !14
  switch i32 %1026, label %1078 [
    i32 0, label %.thread1157
    i32 1, label %.thread1159
    i32 2, label %.thread1161
  ]

.thread1157:                                      ; preds = %1021
  %1027 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1270
  %1028 = load float, ptr %1027, align 4, !tbaa !15
  %1029 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1270
  %1030 = load float, ptr %1029, align 4, !tbaa !15
  %1031 = fsub float %1028, %1030
  %1032 = tail call float @llvm.fabs.f32(float %1031)
  %1033 = fpext float %1032 to double
  %1034 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1280
  %1035 = load float, ptr %1034, align 4, !tbaa !15
  %1036 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1280
  %1037 = load float, ptr %1036, align 4, !tbaa !15
  %1038 = fsub float %1035, %1037
  %1039 = tail call float @llvm.fabs.f32(float %1038)
  br label %1078

.thread1159:                                      ; preds = %1021
  %1040 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1270
  %1041 = load float, ptr %1040, align 4, !tbaa !15
  %1042 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1270
  %1043 = load float, ptr %1042, align 4, !tbaa !15
  %1044 = fsub float %1041, %1043
  %1045 = fpext float %1044 to double
  %1046 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1280
  %1047 = load float, ptr %1046, align 4, !tbaa !15
  %1048 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1280
  %1049 = load float, ptr %1048, align 4, !tbaa !15
  %1050 = fsub float %1047, %1049
  br label %1078

.thread1161:                                      ; preds = %1021
  %1051 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1270
  %1052 = load float, ptr %1051, align 4, !tbaa !15
  %1053 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1270
  %1054 = load float, ptr %1053, align 4, !tbaa !15
  %1055 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1270
  %1056 = load float, ptr %1055, align 4, !tbaa !15
  %1057 = fcmp ult float %1054, %1056
  %.1113 = select i1 %1057, float %1056, float %1054
  %1058 = fsub float %1052, %.1113
  %1059 = select i1 %1057, float %1054, float %1056
  %1060 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1270
  %1061 = load float, ptr %1060, align 4, !tbaa !15
  %1062 = fsub float %1059, %1061
  %1063 = fadd float %1058, %1062
  %1064 = fpext float %1063 to double
  %1065 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1280
  %1066 = load float, ptr %1065, align 4, !tbaa !15
  %1067 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1280
  %1068 = load float, ptr %1067, align 4, !tbaa !15
  %1069 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1280
  %1070 = load float, ptr %1069, align 4, !tbaa !15
  %1071 = fcmp ult float %1068, %1070
  %.1114 = select i1 %1071, float %1070, float %1068
  %1072 = fsub float %1066, %.1114
  %1073 = select i1 %1071, float %1068, float %1070
  %1074 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1280
  %1075 = load float, ptr %1074, align 4, !tbaa !15
  %1076 = fsub float %1073, %1075
  %1077 = fadd float %1072, %1076
  br label %1078

1078:                                             ; preds = %1021, %.thread1159, %.thread1161, %.thread1157
  %1079 = phi double [ %1033, %.thread1157 ], [ %1045, %.thread1159 ], [ %1064, %.thread1161 ], [ 0.000000e+00, %1021 ]
  %.in1075 = phi float [ %1039, %.thread1157 ], [ %1050, %.thread1159 ], [ %1077, %.thread1161 ], [ 0.000000e+00, %1021 ]
  %1080 = fpext float %.in1075 to double
  %1081 = fsub double %1079, %1080
  %1082 = fadd double %.1919, %1081
  %indvars.iv.next1271 = add nuw nsw i64 %indvars.iv1270, 1
  %indvars.iv.next1275 = add nsw i64 %indvars.iv1274, 1
  %indvars.iv.next1277 = add nsw i64 %indvars.iv1276, 1
  %indvars.iv.next1279 = add nsw i64 %indvars.iv1278, 1
  %indvars.iv.next1281 = add nsw i64 %indvars.iv1280, 1
  %.not1076.not = icmp slt i64 %indvars.iv1270, %277
  br i1 %.not1076.not, label %313, label %1083, !llvm.loop !23

1083:                                             ; preds = %1078
  %1084 = trunc nuw i64 %indvars.iv.next1273 to i32
  store i32 %1084, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %1085

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !6, i64 8}
!12 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8, !13, i64 16}
!13 = !{!"double", !7, i64 0}
!14 = !{!12, !6, i64 4}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = distinct !{!21, !18}
!22 = !{!12, !13, i64 16}
!23 = distinct !{!23, !18}


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