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

; 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_CDLSTALLEDPATTERN_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_CDLSTALLEDPATTERN(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 double, align 8
  %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 8, 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 %3294

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

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

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

61:                                               ; preds = %57
  %62 = call i32 @TA_CDLSTALLEDPATTERN_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 %3294

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 0
  %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
  store double 0.000000e+00, ptr %22, align 8, !tbaa !11
  %86 = load i32, ptr %11, align 4, !tbaa !5
  %87 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %88 = getelementptr inbounds %struct.TA_LibcPriv, ptr %87, i32 0, i32 8
  %89 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %88, i64 0, i64 2
  %90 = getelementptr inbounds %struct.TA_CandleSetting, ptr %89, i32 0, i32 2
  %91 = load i32, ptr %90, align 8, !tbaa !13
  %92 = sub nsw i32 %86, %91
  store i32 %92, ptr %28, align 4, !tbaa !5
  store double 0.000000e+00, ptr %23, align 8, !tbaa !11
  %93 = load i32, ptr %11, align 4, !tbaa !5
  %94 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %95 = getelementptr inbounds %struct.TA_LibcPriv, ptr %94, i32 0, i32 8
  %96 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %95, i64 0, i64 7
  %97 = getelementptr inbounds %struct.TA_CandleSetting, ptr %96, i32 0, i32 2
  %98 = load i32, ptr %97, align 8, !tbaa !13
  %99 = sub nsw i32 %93, %98
  store i32 %99, ptr %29, align 4, !tbaa !5
  %100 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  store double 0.000000e+00, ptr %100, align 16, !tbaa !11
  %101 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  store double 0.000000e+00, ptr %101, align 8, !tbaa !11
  %102 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 0
  store double 0.000000e+00, ptr %102, align 16, !tbaa !11
  %103 = load i32, ptr %11, align 4, !tbaa !5
  %104 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %105 = getelementptr inbounds %struct.TA_LibcPriv, ptr %104, i32 0, i32 8
  %106 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %105, i64 0, i64 8
  %107 = getelementptr inbounds %struct.TA_CandleSetting, ptr %106, i32 0, i32 2
  %108 = load i32, ptr %107, align 8, !tbaa !13
  %109 = sub nsw i32 %103, %108
  store i32 %109, ptr %30, align 4, !tbaa !5
  %110 = load i32, ptr %27, align 4, !tbaa !5
  store i32 %110, ptr %24, align 4, !tbaa !5
  br label %111

111:                                              ; preds = %381, %75
  %112 = load i32, ptr %24, align 4, !tbaa !5
  %113 = load i32, ptr %11, align 4, !tbaa !5
  %114 = icmp slt i32 %112, %113
  br i1 %114, label %115, label %388

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

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

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

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

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

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

186:                                              ; preds = %166
  %187 = load ptr, ptr %16, align 8, !tbaa !9
  %188 = load i32, ptr %24, align 4, !tbaa !5
  %189 = sub nsw i32 %188, 2
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds float, ptr %187, i64 %190
  %192 = load float, ptr %191, align 4, !tbaa !16
  br label %200

193:                                              ; preds = %166
  %194 = load ptr, ptr %13, align 8, !tbaa !9
  %195 = load i32, ptr %24, align 4, !tbaa !5
  %196 = sub nsw i32 %195, 2
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds float, ptr %194, i64 %197
  %199 = load float, ptr %198, align 4, !tbaa !16
  br label %200

200:                                              ; preds = %193, %186
  %201 = phi float [ %192, %186 ], [ %199, %193 ]
  %202 = fsub float %172, %201
  %203 = load ptr, ptr %16, align 8, !tbaa !9
  %204 = load i32, ptr %24, align 4, !tbaa !5
  %205 = sub nsw i32 %204, 2
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds float, ptr %203, i64 %206
  %208 = load float, ptr %207, align 4, !tbaa !16
  %209 = load ptr, ptr %13, align 8, !tbaa !9
  %210 = load i32, ptr %24, align 4, !tbaa !5
  %211 = sub nsw i32 %210, 2
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds float, ptr %209, i64 %212
  %214 = load float, ptr %213, align 4, !tbaa !16
  %215 = fcmp oge float %208, %214
  br i1 %215, label %216, label %223

216:                                              ; preds = %200
  %217 = load ptr, ptr %13, align 8, !tbaa !9
  %218 = load i32, ptr %24, align 4, !tbaa !5
  %219 = sub nsw i32 %218, 2
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds float, ptr %217, i64 %220
  %222 = load float, ptr %221, align 4, !tbaa !16
  br label %230

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

230:                                              ; preds = %223, %216
  %231 = phi float [ %222, %216 ], [ %229, %223 ]
  %232 = load ptr, ptr %15, align 8, !tbaa !9
  %233 = load i32, ptr %24, align 4, !tbaa !5
  %234 = sub nsw i32 %233, 2
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds float, ptr %232, i64 %235
  %237 = load float, ptr %236, align 4, !tbaa !16
  %238 = fsub float %231, %237
  %239 = fadd float %202, %238
  br label %241

240:                                              ; preds = %159
  br label %241

241:                                              ; preds = %240, %230
  %242 = phi float [ %239, %230 ], [ 0.000000e+00, %240 ]
  br label %243

243:                                              ; preds = %241, %145
  %244 = phi float [ %158, %145 ], [ %242, %241 ]
  %245 = fpext float %244 to double
  br label %246

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

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

273:                                              ; preds = %246
  %274 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %275 = getelementptr inbounds %struct.TA_LibcPriv, ptr %274, i32 0, i32 8
  %276 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %275, i64 0, i64 0
  %277 = getelementptr inbounds %struct.TA_CandleSetting, ptr %276, i32 0, i32 1
  %278 = load i32, ptr %277, align 4, !tbaa !15
  %279 = icmp eq i32 %278, 1
  br i1 %279, label %280, label %294

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

294:                                              ; preds = %273
  %295 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %296 = getelementptr inbounds %struct.TA_LibcPriv, ptr %295, i32 0, i32 8
  %297 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %296, i64 0, i64 0
  %298 = getelementptr inbounds %struct.TA_CandleSetting, ptr %297, i32 0, i32 1
  %299 = load i32, ptr %298, align 4, !tbaa !15
  %300 = icmp eq i32 %299, 2
  br i1 %300, label %301, label %375

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

321:                                              ; preds = %301
  %322 = load ptr, ptr %16, align 8, !tbaa !9
  %323 = load i32, ptr %24, align 4, !tbaa !5
  %324 = sub nsw i32 %323, 1
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds float, ptr %322, i64 %325
  %327 = load float, ptr %326, align 4, !tbaa !16
  br label %335

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

335:                                              ; preds = %328, %321
  %336 = phi float [ %327, %321 ], [ %334, %328 ]
  %337 = fsub float %307, %336
  %338 = load ptr, ptr %16, align 8, !tbaa !9
  %339 = load i32, ptr %24, align 4, !tbaa !5
  %340 = sub nsw i32 %339, 1
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds float, ptr %338, i64 %341
  %343 = load float, ptr %342, align 4, !tbaa !16
  %344 = load ptr, ptr %13, align 8, !tbaa !9
  %345 = load i32, ptr %24, align 4, !tbaa !5
  %346 = sub nsw i32 %345, 1
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds float, ptr %344, i64 %347
  %349 = load float, ptr %348, align 4, !tbaa !16
  %350 = fcmp oge float %343, %349
  br i1 %350, label %351, label %358

351:                                              ; preds = %335
  %352 = load ptr, ptr %13, align 8, !tbaa !9
  %353 = load i32, ptr %24, align 4, !tbaa !5
  %354 = sub nsw i32 %353, 1
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds float, ptr %352, i64 %355
  %357 = load float, ptr %356, align 4, !tbaa !16
  br label %365

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

365:                                              ; preds = %358, %351
  %366 = phi float [ %357, %351 ], [ %364, %358 ]
  %367 = load ptr, ptr %15, align 8, !tbaa !9
  %368 = load i32, ptr %24, align 4, !tbaa !5
  %369 = sub nsw i32 %368, 1
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds float, ptr %367, i64 %370
  %372 = load float, ptr %371, align 4, !tbaa !16
  %373 = fsub float %366, %372
  %374 = fadd float %337, %373
  br label %376

375:                                              ; preds = %294
  br label %376

376:                                              ; preds = %375, %365
  %377 = phi float [ %374, %365 ], [ 0.000000e+00, %375 ]
  br label %378

378:                                              ; preds = %376, %280
  %379 = phi float [ %293, %280 ], [ %377, %376 ]
  %380 = fpext float %379 to double
  br label %381

381:                                              ; preds = %378, %257
  %382 = phi double [ %272, %257 ], [ %380, %378 ]
  %383 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  %384 = load double, ptr %383, align 8, !tbaa !11
  %385 = fadd double %384, %382
  store double %385, ptr %383, align 8, !tbaa !11
  %386 = load i32, ptr %24, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr %24, align 4, !tbaa !5
  br label %111, !llvm.loop !18

388:                                              ; preds = %111
  %389 = load i32, ptr %28, align 4, !tbaa !5
  store i32 %389, ptr %24, align 4, !tbaa !5
  br label %390

390:                                              ; preds = %511, %388
  %391 = load i32, ptr %24, align 4, !tbaa !5
  %392 = load i32, ptr %11, align 4, !tbaa !5
  %393 = icmp slt i32 %391, %392
  br i1 %393, label %394, label %517

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

401:                                              ; preds = %394
  %402 = load ptr, ptr %16, align 8, !tbaa !9
  %403 = load i32, ptr %24, align 4, !tbaa !5
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds float, ptr %402, i64 %404
  %406 = load float, ptr %405, align 4, !tbaa !16
  %407 = load ptr, ptr %13, align 8, !tbaa !9
  %408 = load i32, ptr %24, align 4, !tbaa !5
  %409 = sext i32 %408 to i64
  %410 = getelementptr inbounds float, ptr %407, i64 %409
  %411 = load float, ptr %410, align 4, !tbaa !16
  %412 = fsub float %406, %411
  %413 = fpext float %412 to double
  %414 = call double @llvm.fabs.f64(double %413)
  br label %511

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

422:                                              ; preds = %415
  %423 = load ptr, ptr %14, align 8, !tbaa !9
  %424 = load i32, ptr %24, align 4, !tbaa !5
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds float, ptr %423, i64 %425
  %427 = load float, ptr %426, align 4, !tbaa !16
  %428 = load ptr, ptr %15, align 8, !tbaa !9
  %429 = load i32, ptr %24, align 4, !tbaa !5
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds float, ptr %428, i64 %430
  %432 = load float, ptr %431, align 4, !tbaa !16
  %433 = fsub float %427, %432
  br label %508

434:                                              ; preds = %415
  %435 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %436 = getelementptr inbounds %struct.TA_LibcPriv, ptr %435, i32 0, i32 8
  %437 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %436, i64 0, i64 2
  %438 = getelementptr inbounds %struct.TA_CandleSetting, ptr %437, i32 0, i32 1
  %439 = load i32, ptr %438, align 4, !tbaa !15
  %440 = icmp eq i32 %439, 2
  br i1 %440, label %441, label %505

441:                                              ; preds = %434
  %442 = load ptr, ptr %14, align 8, !tbaa !9
  %443 = load i32, ptr %24, align 4, !tbaa !5
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds float, ptr %442, i64 %444
  %446 = load float, ptr %445, align 4, !tbaa !16
  %447 = load ptr, ptr %16, align 8, !tbaa !9
  %448 = load i32, ptr %24, align 4, !tbaa !5
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds float, ptr %447, i64 %449
  %451 = load float, ptr %450, align 4, !tbaa !16
  %452 = load ptr, ptr %13, align 8, !tbaa !9
  %453 = load i32, ptr %24, align 4, !tbaa !5
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds float, ptr %452, i64 %454
  %456 = load float, ptr %455, align 4, !tbaa !16
  %457 = fcmp oge float %451, %456
  br i1 %457, label %458, label %464

458:                                              ; preds = %441
  %459 = load ptr, ptr %16, 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 %470

464:                                              ; preds = %441
  %465 = load ptr, ptr %13, align 8, !tbaa !9
  %466 = load i32, ptr %24, align 4, !tbaa !5
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds float, ptr %465, i64 %467
  %469 = load float, ptr %468, align 4, !tbaa !16
  br label %470

470:                                              ; preds = %464, %458
  %471 = phi float [ %463, %458 ], [ %469, %464 ]
  %472 = fsub float %446, %471
  %473 = load ptr, ptr %16, align 8, !tbaa !9
  %474 = load i32, ptr %24, align 4, !tbaa !5
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds float, ptr %473, i64 %475
  %477 = load float, ptr %476, align 4, !tbaa !16
  %478 = load ptr, ptr %13, align 8, !tbaa !9
  %479 = load i32, ptr %24, align 4, !tbaa !5
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds float, ptr %478, i64 %480
  %482 = load float, ptr %481, align 4, !tbaa !16
  %483 = fcmp oge float %477, %482
  br i1 %483, label %484, label %490

484:                                              ; preds = %470
  %485 = load ptr, ptr %13, 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 %496

490:                                              ; preds = %470
  %491 = load ptr, ptr %16, align 8, !tbaa !9
  %492 = load i32, ptr %24, align 4, !tbaa !5
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds float, ptr %491, i64 %493
  %495 = load float, ptr %494, align 4, !tbaa !16
  br label %496

496:                                              ; preds = %490, %484
  %497 = phi float [ %489, %484 ], [ %495, %490 ]
  %498 = load ptr, ptr %15, align 8, !tbaa !9
  %499 = load i32, ptr %24, align 4, !tbaa !5
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds float, ptr %498, i64 %500
  %502 = load float, ptr %501, align 4, !tbaa !16
  %503 = fsub float %497, %502
  %504 = fadd float %472, %503
  br label %506

505:                                              ; preds = %434
  br label %506

506:                                              ; preds = %505, %496
  %507 = phi float [ %504, %496 ], [ 0.000000e+00, %505 ]
  br label %508

508:                                              ; preds = %506, %422
  %509 = phi float [ %433, %422 ], [ %507, %506 ]
  %510 = fpext float %509 to double
  br label %511

511:                                              ; preds = %508, %401
  %512 = phi double [ %414, %401 ], [ %510, %508 ]
  %513 = load double, ptr %22, align 8, !tbaa !11
  %514 = fadd double %513, %512
  store double %514, ptr %22, align 8, !tbaa !11
  %515 = load i32, ptr %24, align 4, !tbaa !5
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr %24, align 4, !tbaa !5
  br label %390, !llvm.loop !20

517:                                              ; preds = %390
  %518 = load i32, ptr %29, align 4, !tbaa !5
  store i32 %518, ptr %24, align 4, !tbaa !5
  br label %519

519:                                              ; preds = %654, %517
  %520 = load i32, ptr %24, align 4, !tbaa !5
  %521 = load i32, ptr %11, align 4, !tbaa !5
  %522 = icmp slt i32 %520, %521
  br i1 %522, label %523, label %660

523:                                              ; preds = %519
  %524 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %525 = getelementptr inbounds %struct.TA_LibcPriv, ptr %524, i32 0, i32 8
  %526 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %525, i64 0, i64 7
  %527 = getelementptr inbounds %struct.TA_CandleSetting, ptr %526, i32 0, i32 1
  %528 = load i32, ptr %527, align 4, !tbaa !15
  %529 = icmp eq i32 %528, 0
  br i1 %529, label %530, label %546

530:                                              ; preds = %523
  %531 = load ptr, ptr %16, align 8, !tbaa !9
  %532 = load i32, ptr %24, align 4, !tbaa !5
  %533 = sub nsw i32 %532, 1
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds float, ptr %531, i64 %534
  %536 = load float, ptr %535, align 4, !tbaa !16
  %537 = load ptr, ptr %13, align 8, !tbaa !9
  %538 = load i32, ptr %24, align 4, !tbaa !5
  %539 = sub nsw i32 %538, 1
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds float, ptr %537, i64 %540
  %542 = load float, ptr %541, align 4, !tbaa !16
  %543 = fsub float %536, %542
  %544 = fpext float %543 to double
  %545 = call double @llvm.fabs.f64(double %544)
  br label %654

546:                                              ; preds = %523
  %547 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %548 = getelementptr inbounds %struct.TA_LibcPriv, ptr %547, i32 0, i32 8
  %549 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %548, i64 0, i64 7
  %550 = getelementptr inbounds %struct.TA_CandleSetting, ptr %549, i32 0, i32 1
  %551 = load i32, ptr %550, align 4, !tbaa !15
  %552 = icmp eq i32 %551, 1
  br i1 %552, label %553, label %567

553:                                              ; preds = %546
  %554 = load ptr, ptr %14, align 8, !tbaa !9
  %555 = load i32, ptr %24, align 4, !tbaa !5
  %556 = sub nsw i32 %555, 1
  %557 = sext i32 %556 to i64
  %558 = getelementptr inbounds float, ptr %554, i64 %557
  %559 = load float, ptr %558, align 4, !tbaa !16
  %560 = load ptr, ptr %15, align 8, !tbaa !9
  %561 = load i32, ptr %24, align 4, !tbaa !5
  %562 = sub nsw i32 %561, 1
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds float, ptr %560, i64 %563
  %565 = load float, ptr %564, align 4, !tbaa !16
  %566 = fsub float %559, %565
  br label %651

567:                                              ; preds = %546
  %568 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %569 = getelementptr inbounds %struct.TA_LibcPriv, ptr %568, i32 0, i32 8
  %570 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %569, i64 0, i64 7
  %571 = getelementptr inbounds %struct.TA_CandleSetting, ptr %570, i32 0, i32 1
  %572 = load i32, ptr %571, align 4, !tbaa !15
  %573 = icmp eq i32 %572, 2
  br i1 %573, label %574, label %648

574:                                              ; preds = %567
  %575 = load ptr, ptr %14, align 8, !tbaa !9
  %576 = load i32, ptr %24, align 4, !tbaa !5
  %577 = sub nsw i32 %576, 1
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds float, ptr %575, i64 %578
  %580 = load float, ptr %579, align 4, !tbaa !16
  %581 = load ptr, ptr %16, align 8, !tbaa !9
  %582 = load i32, ptr %24, align 4, !tbaa !5
  %583 = sub nsw i32 %582, 1
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds float, ptr %581, i64 %584
  %586 = load float, ptr %585, align 4, !tbaa !16
  %587 = load ptr, ptr %13, align 8, !tbaa !9
  %588 = load i32, ptr %24, align 4, !tbaa !5
  %589 = sub nsw i32 %588, 1
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds float, ptr %587, i64 %590
  %592 = load float, ptr %591, align 4, !tbaa !16
  %593 = fcmp oge float %586, %592
  br i1 %593, label %594, label %601

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

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

608:                                              ; preds = %601, %594
  %609 = phi float [ %600, %594 ], [ %607, %601 ]
  %610 = fsub float %580, %609
  %611 = load ptr, ptr %16, align 8, !tbaa !9
  %612 = load i32, ptr %24, align 4, !tbaa !5
  %613 = sub nsw i32 %612, 1
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds float, ptr %611, i64 %614
  %616 = load float, ptr %615, align 4, !tbaa !16
  %617 = load ptr, ptr %13, align 8, !tbaa !9
  %618 = load i32, ptr %24, align 4, !tbaa !5
  %619 = sub nsw i32 %618, 1
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds float, ptr %617, i64 %620
  %622 = load float, ptr %621, align 4, !tbaa !16
  %623 = fcmp oge float %616, %622
  br i1 %623, label %624, label %631

624:                                              ; preds = %608
  %625 = load ptr, ptr %13, align 8, !tbaa !9
  %626 = load i32, ptr %24, align 4, !tbaa !5
  %627 = sub nsw i32 %626, 1
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds float, ptr %625, i64 %628
  %630 = load float, ptr %629, align 4, !tbaa !16
  br label %638

631:                                              ; preds = %608
  %632 = load ptr, ptr %16, align 8, !tbaa !9
  %633 = load i32, ptr %24, align 4, !tbaa !5
  %634 = sub nsw i32 %633, 1
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds float, ptr %632, i64 %635
  %637 = load float, ptr %636, align 4, !tbaa !16
  br label %638

638:                                              ; preds = %631, %624
  %639 = phi float [ %630, %624 ], [ %637, %631 ]
  %640 = load ptr, ptr %15, align 8, !tbaa !9
  %641 = load i32, ptr %24, align 4, !tbaa !5
  %642 = sub nsw i32 %641, 1
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds float, ptr %640, i64 %643
  %645 = load float, ptr %644, align 4, !tbaa !16
  %646 = fsub float %639, %645
  %647 = fadd float %610, %646
  br label %649

648:                                              ; preds = %567
  br label %649

649:                                              ; preds = %648, %638
  %650 = phi float [ %647, %638 ], [ 0.000000e+00, %648 ]
  br label %651

651:                                              ; preds = %649, %553
  %652 = phi float [ %566, %553 ], [ %650, %649 ]
  %653 = fpext float %652 to double
  br label %654

654:                                              ; preds = %651, %530
  %655 = phi double [ %545, %530 ], [ %653, %651 ]
  %656 = load double, ptr %23, align 8, !tbaa !11
  %657 = fadd double %656, %655
  store double %657, ptr %23, align 8, !tbaa !11
  %658 = load i32, ptr %24, align 4, !tbaa !5
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr %24, align 4, !tbaa !5
  br label %519, !llvm.loop !21

660:                                              ; preds = %519
  %661 = load i32, ptr %30, align 4, !tbaa !5
  store i32 %661, ptr %24, align 4, !tbaa !5
  br label %662

662:                                              ; preds = %932, %660
  %663 = load i32, ptr %24, align 4, !tbaa !5
  %664 = load i32, ptr %11, align 4, !tbaa !5
  %665 = icmp slt i32 %663, %664
  br i1 %665, label %666, label %939

666:                                              ; preds = %662
  %667 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %668 = getelementptr inbounds %struct.TA_LibcPriv, ptr %667, i32 0, i32 8
  %669 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %668, i64 0, i64 8
  %670 = getelementptr inbounds %struct.TA_CandleSetting, ptr %669, i32 0, i32 1
  %671 = load i32, ptr %670, align 4, !tbaa !15
  %672 = icmp eq i32 %671, 0
  br i1 %672, label %673, label %689

673:                                              ; preds = %666
  %674 = load ptr, ptr %16, align 8, !tbaa !9
  %675 = load i32, ptr %24, align 4, !tbaa !5
  %676 = sub nsw i32 %675, 2
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %674, i64 %677
  %679 = load float, ptr %678, align 4, !tbaa !16
  %680 = load ptr, ptr %13, align 8, !tbaa !9
  %681 = load i32, ptr %24, align 4, !tbaa !5
  %682 = sub nsw i32 %681, 2
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds float, ptr %680, i64 %683
  %685 = load float, ptr %684, align 4, !tbaa !16
  %686 = fsub float %679, %685
  %687 = fpext float %686 to double
  %688 = call double @llvm.fabs.f64(double %687)
  br label %797

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

696:                                              ; preds = %689
  %697 = load ptr, ptr %14, align 8, !tbaa !9
  %698 = load i32, ptr %24, align 4, !tbaa !5
  %699 = sub nsw i32 %698, 2
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds float, ptr %697, i64 %700
  %702 = load float, ptr %701, align 4, !tbaa !16
  %703 = load ptr, ptr %15, align 8, !tbaa !9
  %704 = load i32, ptr %24, align 4, !tbaa !5
  %705 = sub nsw i32 %704, 2
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds float, ptr %703, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !16
  %709 = fsub float %702, %708
  br label %794

710:                                              ; preds = %689
  %711 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %712 = getelementptr inbounds %struct.TA_LibcPriv, ptr %711, i32 0, i32 8
  %713 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %712, i64 0, i64 8
  %714 = getelementptr inbounds %struct.TA_CandleSetting, ptr %713, i32 0, i32 1
  %715 = load i32, ptr %714, align 4, !tbaa !15
  %716 = icmp eq i32 %715, 2
  br i1 %716, label %717, label %791

717:                                              ; preds = %710
  %718 = load ptr, ptr %14, align 8, !tbaa !9
  %719 = load i32, ptr %24, align 4, !tbaa !5
  %720 = sub nsw i32 %719, 2
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds float, ptr %718, i64 %721
  %723 = load float, ptr %722, align 4, !tbaa !16
  %724 = load ptr, ptr %16, align 8, !tbaa !9
  %725 = load i32, ptr %24, align 4, !tbaa !5
  %726 = sub nsw i32 %725, 2
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds float, ptr %724, i64 %727
  %729 = load float, ptr %728, align 4, !tbaa !16
  %730 = load ptr, ptr %13, align 8, !tbaa !9
  %731 = load i32, ptr %24, align 4, !tbaa !5
  %732 = sub nsw i32 %731, 2
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds float, ptr %730, i64 %733
  %735 = load float, ptr %734, align 4, !tbaa !16
  %736 = fcmp oge float %729, %735
  br i1 %736, label %737, label %744

737:                                              ; preds = %717
  %738 = load ptr, ptr %16, align 8, !tbaa !9
  %739 = load i32, ptr %24, align 4, !tbaa !5
  %740 = sub nsw i32 %739, 2
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds float, ptr %738, i64 %741
  %743 = load float, ptr %742, align 4, !tbaa !16
  br label %751

744:                                              ; preds = %717
  %745 = load ptr, ptr %13, align 8, !tbaa !9
  %746 = load i32, ptr %24, align 4, !tbaa !5
  %747 = sub nsw i32 %746, 2
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds float, ptr %745, i64 %748
  %750 = load float, ptr %749, align 4, !tbaa !16
  br label %751

751:                                              ; preds = %744, %737
  %752 = phi float [ %743, %737 ], [ %750, %744 ]
  %753 = fsub float %723, %752
  %754 = load ptr, ptr %16, align 8, !tbaa !9
  %755 = load i32, ptr %24, align 4, !tbaa !5
  %756 = sub nsw i32 %755, 2
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds float, ptr %754, i64 %757
  %759 = load float, ptr %758, align 4, !tbaa !16
  %760 = load ptr, ptr %13, align 8, !tbaa !9
  %761 = load i32, ptr %24, align 4, !tbaa !5
  %762 = sub nsw i32 %761, 2
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds float, ptr %760, i64 %763
  %765 = load float, ptr %764, align 4, !tbaa !16
  %766 = fcmp oge float %759, %765
  br i1 %766, label %767, label %774

767:                                              ; preds = %751
  %768 = load ptr, ptr %13, align 8, !tbaa !9
  %769 = load i32, ptr %24, align 4, !tbaa !5
  %770 = sub nsw i32 %769, 2
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds float, ptr %768, i64 %771
  %773 = load float, ptr %772, align 4, !tbaa !16
  br label %781

774:                                              ; preds = %751
  %775 = load ptr, ptr %16, align 8, !tbaa !9
  %776 = load i32, ptr %24, align 4, !tbaa !5
  %777 = sub nsw i32 %776, 2
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds float, ptr %775, i64 %778
  %780 = load float, ptr %779, align 4, !tbaa !16
  br label %781

781:                                              ; preds = %774, %767
  %782 = phi float [ %773, %767 ], [ %780, %774 ]
  %783 = load ptr, ptr %15, align 8, !tbaa !9
  %784 = load i32, ptr %24, align 4, !tbaa !5
  %785 = sub nsw i32 %784, 2
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds float, ptr %783, i64 %786
  %788 = load float, ptr %787, align 4, !tbaa !16
  %789 = fsub float %782, %788
  %790 = fadd float %753, %789
  br label %792

791:                                              ; preds = %710
  br label %792

792:                                              ; preds = %791, %781
  %793 = phi float [ %790, %781 ], [ 0.000000e+00, %791 ]
  br label %794

794:                                              ; preds = %792, %696
  %795 = phi float [ %709, %696 ], [ %793, %792 ]
  %796 = fpext float %795 to double
  br label %797

797:                                              ; preds = %794, %673
  %798 = phi double [ %688, %673 ], [ %796, %794 ]
  %799 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  %800 = load double, ptr %799, align 16, !tbaa !11
  %801 = fadd double %800, %798
  store double %801, ptr %799, align 16, !tbaa !11
  %802 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %803 = getelementptr inbounds %struct.TA_LibcPriv, ptr %802, i32 0, i32 8
  %804 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %803, i64 0, i64 8
  %805 = getelementptr inbounds %struct.TA_CandleSetting, ptr %804, i32 0, i32 1
  %806 = load i32, ptr %805, align 4, !tbaa !15
  %807 = icmp eq i32 %806, 0
  br i1 %807, label %808, label %824

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

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

831:                                              ; preds = %824
  %832 = load ptr, ptr %14, align 8, !tbaa !9
  %833 = load i32, ptr %24, align 4, !tbaa !5
  %834 = sub nsw i32 %833, 1
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds float, ptr %832, i64 %835
  %837 = load float, ptr %836, align 4, !tbaa !16
  %838 = load ptr, ptr %15, align 8, !tbaa !9
  %839 = load i32, ptr %24, align 4, !tbaa !5
  %840 = sub nsw i32 %839, 1
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds float, ptr %838, i64 %841
  %843 = load float, ptr %842, align 4, !tbaa !16
  %844 = fsub float %837, %843
  br label %929

845:                                              ; preds = %824
  %846 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %847 = getelementptr inbounds %struct.TA_LibcPriv, ptr %846, i32 0, i32 8
  %848 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %847, i64 0, i64 8
  %849 = getelementptr inbounds %struct.TA_CandleSetting, ptr %848, i32 0, i32 1
  %850 = load i32, ptr %849, align 4, !tbaa !15
  %851 = icmp eq i32 %850, 2
  br i1 %851, label %852, label %926

852:                                              ; preds = %845
  %853 = load ptr, ptr %14, align 8, !tbaa !9
  %854 = load i32, ptr %24, align 4, !tbaa !5
  %855 = sub nsw i32 %854, 1
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %853, i64 %856
  %858 = load float, ptr %857, align 4, !tbaa !16
  %859 = load ptr, ptr %16, align 8, !tbaa !9
  %860 = load i32, ptr %24, align 4, !tbaa !5
  %861 = sub nsw i32 %860, 1
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds float, ptr %859, i64 %862
  %864 = load float, ptr %863, align 4, !tbaa !16
  %865 = load ptr, ptr %13, align 8, !tbaa !9
  %866 = load i32, ptr %24, align 4, !tbaa !5
  %867 = sub nsw i32 %866, 1
  %868 = sext i32 %867 to i64
  %869 = getelementptr inbounds float, ptr %865, i64 %868
  %870 = load float, ptr %869, align 4, !tbaa !16
  %871 = fcmp oge float %864, %870
  br i1 %871, label %872, label %879

872:                                              ; preds = %852
  %873 = load ptr, ptr %16, align 8, !tbaa !9
  %874 = load i32, ptr %24, align 4, !tbaa !5
  %875 = sub nsw i32 %874, 1
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds float, ptr %873, i64 %876
  %878 = load float, ptr %877, align 4, !tbaa !16
  br label %886

879:                                              ; preds = %852
  %880 = load ptr, ptr %13, align 8, !tbaa !9
  %881 = load i32, ptr %24, align 4, !tbaa !5
  %882 = sub nsw i32 %881, 1
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds float, ptr %880, i64 %883
  %885 = load float, ptr %884, align 4, !tbaa !16
  br label %886

886:                                              ; preds = %879, %872
  %887 = phi float [ %878, %872 ], [ %885, %879 ]
  %888 = fsub float %858, %887
  %889 = load ptr, ptr %16, align 8, !tbaa !9
  %890 = load i32, ptr %24, align 4, !tbaa !5
  %891 = sub nsw i32 %890, 1
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds float, ptr %889, i64 %892
  %894 = load float, ptr %893, align 4, !tbaa !16
  %895 = load ptr, ptr %13, align 8, !tbaa !9
  %896 = load i32, ptr %24, align 4, !tbaa !5
  %897 = sub nsw i32 %896, 1
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds float, ptr %895, i64 %898
  %900 = load float, ptr %899, align 4, !tbaa !16
  %901 = fcmp oge float %894, %900
  br i1 %901, label %902, label %909

902:                                              ; preds = %886
  %903 = load ptr, ptr %13, align 8, !tbaa !9
  %904 = load i32, ptr %24, align 4, !tbaa !5
  %905 = sub nsw i32 %904, 1
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds float, ptr %903, i64 %906
  %908 = load float, ptr %907, align 4, !tbaa !16
  br label %916

909:                                              ; preds = %886
  %910 = load ptr, ptr %16, align 8, !tbaa !9
  %911 = load i32, ptr %24, align 4, !tbaa !5
  %912 = sub nsw i32 %911, 1
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %910, i64 %913
  %915 = load float, ptr %914, align 4, !tbaa !16
  br label %916

916:                                              ; preds = %909, %902
  %917 = phi float [ %908, %902 ], [ %915, %909 ]
  %918 = load ptr, ptr %15, align 8, !tbaa !9
  %919 = load i32, ptr %24, align 4, !tbaa !5
  %920 = sub nsw i32 %919, 1
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds float, ptr %918, i64 %921
  %923 = load float, ptr %922, align 4, !tbaa !16
  %924 = fsub float %917, %923
  %925 = fadd float %888, %924
  br label %927

926:                                              ; preds = %845
  br label %927

927:                                              ; preds = %926, %916
  %928 = phi float [ %925, %916 ], [ 0.000000e+00, %926 ]
  br label %929

929:                                              ; preds = %927, %831
  %930 = phi float [ %844, %831 ], [ %928, %927 ]
  %931 = fpext float %930 to double
  br label %932

932:                                              ; preds = %929, %808
  %933 = phi double [ %823, %808 ], [ %931, %929 ]
  %934 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %935 = load double, ptr %934, align 8, !tbaa !11
  %936 = fadd double %935, %933
  store double %936, ptr %934, align 8, !tbaa !11
  %937 = load i32, ptr %24, align 4, !tbaa !5
  %938 = add nsw i32 %937, 1
  store i32 %938, ptr %24, align 4, !tbaa !5
  br label %662, !llvm.loop !22

939:                                              ; preds = %662
  %940 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %940, ptr %24, align 4, !tbaa !5
  store i32 0, ptr %25, align 4, !tbaa !5
  br label %941

941:                                              ; preds = %3285, %939
  %942 = load ptr, ptr %16, align 8, !tbaa !9
  %943 = load i32, ptr %24, align 4, !tbaa !5
  %944 = sub nsw i32 %943, 2
  %945 = sext i32 %944 to i64
  %946 = getelementptr inbounds float, ptr %942, i64 %945
  %947 = load float, ptr %946, align 4, !tbaa !16
  %948 = load ptr, ptr %13, align 8, !tbaa !9
  %949 = load i32, ptr %24, align 4, !tbaa !5
  %950 = sub nsw i32 %949, 2
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds float, ptr %948, i64 %951
  %953 = load float, ptr %952, align 4, !tbaa !16
  %954 = fcmp oge float %947, %953
  %955 = zext i1 %954 to i64
  %956 = select i1 %954, i32 1, i32 -1
  %957 = icmp eq i32 %956, 1
  br i1 %957, label %958, label %2158

958:                                              ; preds = %941
  %959 = load ptr, ptr %16, align 8, !tbaa !9
  %960 = load i32, ptr %24, align 4, !tbaa !5
  %961 = sub nsw i32 %960, 1
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds float, ptr %959, i64 %962
  %964 = load float, ptr %963, align 4, !tbaa !16
  %965 = load ptr, ptr %13, align 8, !tbaa !9
  %966 = load i32, ptr %24, align 4, !tbaa !5
  %967 = sub nsw i32 %966, 1
  %968 = sext i32 %967 to i64
  %969 = getelementptr inbounds float, ptr %965, i64 %968
  %970 = load float, ptr %969, align 4, !tbaa !16
  %971 = fcmp oge float %964, %970
  %972 = zext i1 %971 to i64
  %973 = select i1 %971, i32 1, i32 -1
  %974 = icmp eq i32 %973, 1
  br i1 %974, label %975, label %2158

975:                                              ; preds = %958
  %976 = load ptr, ptr %16, align 8, !tbaa !9
  %977 = load i32, ptr %24, align 4, !tbaa !5
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds float, ptr %976, i64 %978
  %980 = load float, ptr %979, align 4, !tbaa !16
  %981 = load ptr, ptr %13, align 8, !tbaa !9
  %982 = load i32, ptr %24, align 4, !tbaa !5
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds float, ptr %981, i64 %983
  %985 = load float, ptr %984, align 4, !tbaa !16
  %986 = fcmp oge float %980, %985
  %987 = zext i1 %986 to i64
  %988 = select i1 %986, i32 1, i32 -1
  %989 = icmp eq i32 %988, 1
  br i1 %989, label %990, label %2158

990:                                              ; preds = %975
  %991 = load ptr, ptr %16, align 8, !tbaa !9
  %992 = load i32, ptr %24, align 4, !tbaa !5
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds float, ptr %991, i64 %993
  %995 = load float, ptr %994, align 4, !tbaa !16
  %996 = load ptr, ptr %16, 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 ogt float %995, %1001
  br i1 %1002, label %1003, label %2158

1003:                                             ; preds = %990
  %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
  %1010 = load ptr, ptr %16, align 8, !tbaa !9
  %1011 = load i32, ptr %24, align 4, !tbaa !5
  %1012 = sub nsw i32 %1011, 2
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds float, ptr %1010, i64 %1013
  %1015 = load float, ptr %1014, align 4, !tbaa !16
  %1016 = fcmp ogt float %1009, %1015
  br i1 %1016, label %1017, label %2158

1017:                                             ; preds = %1003
  %1018 = load ptr, ptr %16, align 8, !tbaa !9
  %1019 = load i32, ptr %24, align 4, !tbaa !5
  %1020 = sub nsw i32 %1019, 2
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds float, ptr %1018, i64 %1021
  %1023 = load float, ptr %1022, align 4, !tbaa !16
  %1024 = load ptr, ptr %13, align 8, !tbaa !9
  %1025 = load i32, ptr %24, align 4, !tbaa !5
  %1026 = sub nsw i32 %1025, 2
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds float, ptr %1024, i64 %1027
  %1029 = load float, ptr %1028, align 4, !tbaa !16
  %1030 = fsub float %1023, %1029
  %1031 = fpext float %1030 to double
  %1032 = call double @llvm.fabs.f64(double %1031)
  %1033 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1034 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1033, i32 0, i32 8
  %1035 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1034, i64 0, i64 0
  %1036 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1035, i32 0, i32 3
  %1037 = load double, ptr %1036, align 8, !tbaa !23
  %1038 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1039 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1038, i32 0, i32 8
  %1040 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1039, i64 0, i64 0
  %1041 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1040, i32 0, i32 2
  %1042 = load i32, ptr %1041, align 8, !tbaa !13
  %1043 = sitofp i32 %1042 to double
  %1044 = fcmp une double %1043, 0.000000e+00
  br i1 %1044, label %1045, label %1055

1045:                                             ; preds = %1017
  %1046 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 2
  %1047 = load double, ptr %1046, align 16, !tbaa !11
  %1048 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1049 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1048, i32 0, i32 8
  %1050 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1049, i64 0, i64 0
  %1051 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1050, i32 0, i32 2
  %1052 = load i32, ptr %1051, align 8, !tbaa !13
  %1053 = sitofp i32 %1052 to double
  %1054 = fdiv double %1047, %1053
  br label %1188

1055:                                             ; preds = %1017
  %1056 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1057 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1056, i32 0, i32 8
  %1058 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1057, i64 0, i64 0
  %1059 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1058, i32 0, i32 1
  %1060 = load i32, ptr %1059, align 4, !tbaa !15
  %1061 = icmp eq i32 %1060, 0
  br i1 %1061, label %1062, label %1078

1062:                                             ; preds = %1055
  %1063 = load ptr, ptr %16, align 8, !tbaa !9
  %1064 = load i32, ptr %24, align 4, !tbaa !5
  %1065 = sub nsw i32 %1064, 2
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds float, ptr %1063, i64 %1066
  %1068 = load float, ptr %1067, align 4, !tbaa !16
  %1069 = load ptr, ptr %13, align 8, !tbaa !9
  %1070 = load i32, ptr %24, align 4, !tbaa !5
  %1071 = sub nsw i32 %1070, 2
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds float, ptr %1069, i64 %1072
  %1074 = load float, ptr %1073, align 4, !tbaa !16
  %1075 = fsub float %1068, %1074
  %1076 = fpext float %1075 to double
  %1077 = call double @llvm.fabs.f64(double %1076)
  br label %1186

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

1085:                                             ; preds = %1078
  %1086 = load ptr, ptr %14, align 8, !tbaa !9
  %1087 = load i32, ptr %24, align 4, !tbaa !5
  %1088 = sub nsw i32 %1087, 2
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds float, ptr %1086, i64 %1089
  %1091 = load float, ptr %1090, align 4, !tbaa !16
  %1092 = load ptr, ptr %15, align 8, !tbaa !9
  %1093 = load i32, ptr %24, align 4, !tbaa !5
  %1094 = sub nsw i32 %1093, 2
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds float, ptr %1092, i64 %1095
  %1097 = load float, ptr %1096, align 4, !tbaa !16
  %1098 = fsub float %1091, %1097
  br label %1183

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

1106:                                             ; preds = %1099
  %1107 = load ptr, ptr %14, align 8, !tbaa !9
  %1108 = load i32, ptr %24, align 4, !tbaa !5
  %1109 = sub nsw i32 %1108, 2
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds float, ptr %1107, i64 %1110
  %1112 = load float, ptr %1111, align 4, !tbaa !16
  %1113 = load ptr, ptr %16, align 8, !tbaa !9
  %1114 = load i32, ptr %24, align 4, !tbaa !5
  %1115 = sub nsw i32 %1114, 2
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds float, ptr %1113, i64 %1116
  %1118 = load float, ptr %1117, align 4, !tbaa !16
  %1119 = load ptr, ptr %13, align 8, !tbaa !9
  %1120 = load i32, ptr %24, align 4, !tbaa !5
  %1121 = sub nsw i32 %1120, 2
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds float, ptr %1119, i64 %1122
  %1124 = load float, ptr %1123, align 4, !tbaa !16
  %1125 = fcmp oge float %1118, %1124
  br i1 %1125, label %1126, label %1133

1126:                                             ; preds = %1106
  %1127 = load ptr, ptr %16, align 8, !tbaa !9
  %1128 = load i32, ptr %24, align 4, !tbaa !5
  %1129 = sub nsw i32 %1128, 2
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds float, ptr %1127, i64 %1130
  %1132 = load float, ptr %1131, align 4, !tbaa !16
  br label %1140

1133:                                             ; preds = %1106
  %1134 = load ptr, ptr %13, align 8, !tbaa !9
  %1135 = load i32, ptr %24, align 4, !tbaa !5
  %1136 = sub nsw i32 %1135, 2
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds float, ptr %1134, i64 %1137
  %1139 = load float, ptr %1138, align 4, !tbaa !16
  br label %1140

1140:                                             ; preds = %1133, %1126
  %1141 = phi float [ %1132, %1126 ], [ %1139, %1133 ]
  %1142 = fsub float %1112, %1141
  %1143 = load ptr, ptr %16, align 8, !tbaa !9
  %1144 = load i32, ptr %24, align 4, !tbaa !5
  %1145 = sub nsw i32 %1144, 2
  %1146 = sext i32 %1145 to i64
  %1147 = getelementptr inbounds float, ptr %1143, i64 %1146
  %1148 = load float, ptr %1147, align 4, !tbaa !16
  %1149 = load ptr, ptr %13, align 8, !tbaa !9
  %1150 = load i32, ptr %24, align 4, !tbaa !5
  %1151 = sub nsw i32 %1150, 2
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds float, ptr %1149, i64 %1152
  %1154 = load float, ptr %1153, align 4, !tbaa !16
  %1155 = fcmp oge float %1148, %1154
  br i1 %1155, label %1156, label %1163

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

1163:                                             ; preds = %1140
  %1164 = load ptr, ptr %16, align 8, !tbaa !9
  %1165 = load i32, ptr %24, align 4, !tbaa !5
  %1166 = sub nsw i32 %1165, 2
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds float, ptr %1164, i64 %1167
  %1169 = load float, ptr %1168, align 4, !tbaa !16
  br label %1170

1170:                                             ; preds = %1163, %1156
  %1171 = phi float [ %1162, %1156 ], [ %1169, %1163 ]
  %1172 = load ptr, ptr %15, align 8, !tbaa !9
  %1173 = load i32, ptr %24, align 4, !tbaa !5
  %1174 = sub nsw i32 %1173, 2
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds float, ptr %1172, i64 %1175
  %1177 = load float, ptr %1176, align 4, !tbaa !16
  %1178 = fsub float %1171, %1177
  %1179 = fadd float %1142, %1178
  br label %1181

1180:                                             ; preds = %1099
  br label %1181

1181:                                             ; preds = %1180, %1170
  %1182 = phi float [ %1179, %1170 ], [ 0.000000e+00, %1180 ]
  br label %1183

1183:                                             ; preds = %1181, %1085
  %1184 = phi float [ %1098, %1085 ], [ %1182, %1181 ]
  %1185 = fpext float %1184 to double
  br label %1186

1186:                                             ; preds = %1183, %1062
  %1187 = phi double [ %1077, %1062 ], [ %1185, %1183 ]
  br label %1188

1188:                                             ; preds = %1186, %1045
  %1189 = phi double [ %1054, %1045 ], [ %1187, %1186 ]
  %1190 = fmul double %1037, %1189
  %1191 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1192 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1191, i32 0, i32 8
  %1193 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1192, i64 0, i64 0
  %1194 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1193, i32 0, i32 1
  %1195 = load i32, ptr %1194, align 4, !tbaa !15
  %1196 = icmp eq i32 %1195, 2
  %1197 = zext i1 %1196 to i64
  %1198 = select i1 %1196, double 2.000000e+00, double 1.000000e+00
  %1199 = fdiv double %1190, %1198
  %1200 = fcmp ogt double %1032, %1199
  br i1 %1200, label %1201, label %2158

1201:                                             ; preds = %1188
  %1202 = load ptr, ptr %16, align 8, !tbaa !9
  %1203 = load i32, ptr %24, align 4, !tbaa !5
  %1204 = sub nsw i32 %1203, 1
  %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, 1
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds float, ptr %1208, i64 %1211
  %1213 = load float, ptr %1212, align 4, !tbaa !16
  %1214 = fsub float %1207, %1213
  %1215 = fpext float %1214 to double
  %1216 = call double @llvm.fabs.f64(double %1215)
  %1217 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1218 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1217, i32 0, i32 8
  %1219 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1218, i64 0, i64 0
  %1220 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1219, i32 0, i32 3
  %1221 = load double, ptr %1220, align 8, !tbaa !23
  %1222 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1223 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1222, i32 0, i32 8
  %1224 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1223, i64 0, i64 0
  %1225 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1224, i32 0, i32 2
  %1226 = load i32, ptr %1225, align 8, !tbaa !13
  %1227 = sitofp i32 %1226 to double
  %1228 = fcmp une double %1227, 0.000000e+00
  br i1 %1228, label %1229, label %1239

1229:                                             ; preds = %1201
  %1230 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  %1231 = load double, ptr %1230, align 8, !tbaa !11
  %1232 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1233 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1232, i32 0, i32 8
  %1234 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1233, i64 0, i64 0
  %1235 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1234, i32 0, i32 2
  %1236 = load i32, ptr %1235, align 8, !tbaa !13
  %1237 = sitofp i32 %1236 to double
  %1238 = fdiv double %1231, %1237
  br label %1372

1239:                                             ; preds = %1201
  %1240 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1241 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1240, i32 0, i32 8
  %1242 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1241, i64 0, i64 0
  %1243 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1242, i32 0, i32 1
  %1244 = load i32, ptr %1243, align 4, !tbaa !15
  %1245 = icmp eq i32 %1244, 0
  br i1 %1245, label %1246, label %1262

1246:                                             ; preds = %1239
  %1247 = load ptr, ptr %16, align 8, !tbaa !9
  %1248 = load i32, ptr %24, align 4, !tbaa !5
  %1249 = sub nsw i32 %1248, 1
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr inbounds float, ptr %1247, i64 %1250
  %1252 = load float, ptr %1251, align 4, !tbaa !16
  %1253 = load ptr, ptr %13, align 8, !tbaa !9
  %1254 = load i32, ptr %24, align 4, !tbaa !5
  %1255 = sub nsw i32 %1254, 1
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds float, ptr %1253, i64 %1256
  %1258 = load float, ptr %1257, align 4, !tbaa !16
  %1259 = fsub float %1252, %1258
  %1260 = fpext float %1259 to double
  %1261 = call double @llvm.fabs.f64(double %1260)
  br label %1370

1262:                                             ; preds = %1239
  %1263 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1264 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1263, i32 0, i32 8
  %1265 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1264, i64 0, i64 0
  %1266 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1265, i32 0, i32 1
  %1267 = load i32, ptr %1266, align 4, !tbaa !15
  %1268 = icmp eq i32 %1267, 1
  br i1 %1268, label %1269, label %1283

1269:                                             ; preds = %1262
  %1270 = load ptr, ptr %14, align 8, !tbaa !9
  %1271 = load i32, ptr %24, align 4, !tbaa !5
  %1272 = sub nsw i32 %1271, 1
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds float, ptr %1270, i64 %1273
  %1275 = load float, ptr %1274, align 4, !tbaa !16
  %1276 = load ptr, ptr %15, align 8, !tbaa !9
  %1277 = load i32, ptr %24, align 4, !tbaa !5
  %1278 = sub nsw i32 %1277, 1
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds float, ptr %1276, i64 %1279
  %1281 = load float, ptr %1280, align 4, !tbaa !16
  %1282 = fsub float %1275, %1281
  br label %1367

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

1290:                                             ; preds = %1283
  %1291 = load ptr, ptr %14, align 8, !tbaa !9
  %1292 = load i32, ptr %24, align 4, !tbaa !5
  %1293 = sub nsw i32 %1292, 1
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds float, ptr %1291, i64 %1294
  %1296 = load float, ptr %1295, align 4, !tbaa !16
  %1297 = load ptr, ptr %16, align 8, !tbaa !9
  %1298 = load i32, ptr %24, align 4, !tbaa !5
  %1299 = sub nsw i32 %1298, 1
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds float, ptr %1297, i64 %1300
  %1302 = load float, ptr %1301, align 4, !tbaa !16
  %1303 = load ptr, ptr %13, align 8, !tbaa !9
  %1304 = load i32, ptr %24, align 4, !tbaa !5
  %1305 = sub nsw i32 %1304, 1
  %1306 = sext i32 %1305 to i64
  %1307 = getelementptr inbounds float, ptr %1303, i64 %1306
  %1308 = load float, ptr %1307, align 4, !tbaa !16
  %1309 = fcmp oge float %1302, %1308
  br i1 %1309, label %1310, label %1317

1310:                                             ; preds = %1290
  %1311 = load ptr, ptr %16, align 8, !tbaa !9
  %1312 = load i32, ptr %24, align 4, !tbaa !5
  %1313 = sub nsw i32 %1312, 1
  %1314 = sext i32 %1313 to i64
  %1315 = getelementptr inbounds float, ptr %1311, i64 %1314
  %1316 = load float, ptr %1315, align 4, !tbaa !16
  br label %1324

1317:                                             ; preds = %1290
  %1318 = load ptr, ptr %13, align 8, !tbaa !9
  %1319 = load i32, ptr %24, align 4, !tbaa !5
  %1320 = sub nsw i32 %1319, 1
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds float, ptr %1318, i64 %1321
  %1323 = load float, ptr %1322, align 4, !tbaa !16
  br label %1324

1324:                                             ; preds = %1317, %1310
  %1325 = phi float [ %1316, %1310 ], [ %1323, %1317 ]
  %1326 = fsub float %1296, %1325
  %1327 = load ptr, ptr %16, align 8, !tbaa !9
  %1328 = load i32, ptr %24, align 4, !tbaa !5
  %1329 = sub nsw i32 %1328, 1
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds float, ptr %1327, i64 %1330
  %1332 = load float, ptr %1331, align 4, !tbaa !16
  %1333 = load ptr, ptr %13, align 8, !tbaa !9
  %1334 = load i32, ptr %24, align 4, !tbaa !5
  %1335 = sub nsw i32 %1334, 1
  %1336 = sext i32 %1335 to i64
  %1337 = getelementptr inbounds float, ptr %1333, i64 %1336
  %1338 = load float, ptr %1337, align 4, !tbaa !16
  %1339 = fcmp oge float %1332, %1338
  br i1 %1339, label %1340, label %1347

1340:                                             ; preds = %1324
  %1341 = load ptr, ptr %13, align 8, !tbaa !9
  %1342 = load i32, ptr %24, align 4, !tbaa !5
  %1343 = sub nsw i32 %1342, 1
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds float, ptr %1341, i64 %1344
  %1346 = load float, ptr %1345, align 4, !tbaa !16
  br label %1354

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

1354:                                             ; preds = %1347, %1340
  %1355 = phi float [ %1346, %1340 ], [ %1353, %1347 ]
  %1356 = load ptr, ptr %15, align 8, !tbaa !9
  %1357 = load i32, ptr %24, align 4, !tbaa !5
  %1358 = sub nsw i32 %1357, 1
  %1359 = sext i32 %1358 to i64
  %1360 = getelementptr inbounds float, ptr %1356, i64 %1359
  %1361 = load float, ptr %1360, align 4, !tbaa !16
  %1362 = fsub float %1355, %1361
  %1363 = fadd float %1326, %1362
  br label %1365

1364:                                             ; preds = %1283
  br label %1365

1365:                                             ; preds = %1364, %1354
  %1366 = phi float [ %1363, %1354 ], [ 0.000000e+00, %1364 ]
  br label %1367

1367:                                             ; preds = %1365, %1269
  %1368 = phi float [ %1282, %1269 ], [ %1366, %1365 ]
  %1369 = fpext float %1368 to double
  br label %1370

1370:                                             ; preds = %1367, %1246
  %1371 = phi double [ %1261, %1246 ], [ %1369, %1367 ]
  br label %1372

1372:                                             ; preds = %1370, %1229
  %1373 = phi double [ %1238, %1229 ], [ %1371, %1370 ]
  %1374 = fmul double %1221, %1373
  %1375 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1376 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1375, i32 0, i32 8
  %1377 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1376, i64 0, i64 0
  %1378 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1377, i32 0, i32 1
  %1379 = load i32, ptr %1378, align 4, !tbaa !15
  %1380 = icmp eq i32 %1379, 2
  %1381 = zext i1 %1380 to i64
  %1382 = select i1 %1380, double 2.000000e+00, double 1.000000e+00
  %1383 = fdiv double %1374, %1382
  %1384 = fcmp ogt double %1216, %1383
  br i1 %1384, label %1385, label %2158

1385:                                             ; preds = %1372
  %1386 = load ptr, ptr %14, align 8, !tbaa !9
  %1387 = load i32, ptr %24, align 4, !tbaa !5
  %1388 = sub nsw i32 %1387, 1
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds float, ptr %1386, i64 %1389
  %1391 = load float, ptr %1390, align 4, !tbaa !16
  %1392 = load ptr, ptr %16, align 8, !tbaa !9
  %1393 = load i32, ptr %24, align 4, !tbaa !5
  %1394 = sub nsw i32 %1393, 1
  %1395 = sext i32 %1394 to i64
  %1396 = getelementptr inbounds float, ptr %1392, i64 %1395
  %1397 = load float, ptr %1396, align 4, !tbaa !16
  %1398 = load ptr, ptr %13, align 8, !tbaa !9
  %1399 = load i32, ptr %24, align 4, !tbaa !5
  %1400 = sub nsw i32 %1399, 1
  %1401 = sext i32 %1400 to i64
  %1402 = getelementptr inbounds float, ptr %1398, i64 %1401
  %1403 = load float, ptr %1402, align 4, !tbaa !16
  %1404 = fcmp oge float %1397, %1403
  br i1 %1404, label %1405, label %1412

1405:                                             ; preds = %1385
  %1406 = load ptr, ptr %16, align 8, !tbaa !9
  %1407 = load i32, ptr %24, align 4, !tbaa !5
  %1408 = sub nsw i32 %1407, 1
  %1409 = sext i32 %1408 to i64
  %1410 = getelementptr inbounds float, ptr %1406, i64 %1409
  %1411 = load float, ptr %1410, align 4, !tbaa !16
  br label %1419

1412:                                             ; preds = %1385
  %1413 = load ptr, ptr %13, align 8, !tbaa !9
  %1414 = load i32, ptr %24, align 4, !tbaa !5
  %1415 = sub nsw i32 %1414, 1
  %1416 = sext i32 %1415 to i64
  %1417 = getelementptr inbounds float, ptr %1413, i64 %1416
  %1418 = load float, ptr %1417, align 4, !tbaa !16
  br label %1419

1419:                                             ; preds = %1412, %1405
  %1420 = phi float [ %1411, %1405 ], [ %1418, %1412 ]
  %1421 = fsub float %1391, %1420
  %1422 = fpext float %1421 to double
  %1423 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1424 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1423, i32 0, i32 8
  %1425 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1424, i64 0, i64 7
  %1426 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1425, i32 0, i32 3
  %1427 = load double, ptr %1426, align 8, !tbaa !23
  %1428 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1429 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1428, i32 0, i32 8
  %1430 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1429, i64 0, i64 7
  %1431 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1430, i32 0, i32 2
  %1432 = load i32, ptr %1431, align 8, !tbaa !13
  %1433 = sitofp i32 %1432 to double
  %1434 = fcmp une double %1433, 0.000000e+00
  br i1 %1434, label %1435, label %1444

1435:                                             ; preds = %1419
  %1436 = load double, ptr %23, align 8, !tbaa !11
  %1437 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1438 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1437, i32 0, i32 8
  %1439 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1438, i64 0, i64 7
  %1440 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1439, i32 0, i32 2
  %1441 = load i32, ptr %1440, align 8, !tbaa !13
  %1442 = sitofp i32 %1441 to double
  %1443 = fdiv double %1436, %1442
  br label %1577

1444:                                             ; preds = %1419
  %1445 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1446 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1445, i32 0, i32 8
  %1447 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1446, i64 0, i64 7
  %1448 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1447, i32 0, i32 1
  %1449 = load i32, ptr %1448, align 4, !tbaa !15
  %1450 = icmp eq i32 %1449, 0
  br i1 %1450, label %1451, label %1467

1451:                                             ; preds = %1444
  %1452 = load ptr, ptr %16, align 8, !tbaa !9
  %1453 = load i32, ptr %24, align 4, !tbaa !5
  %1454 = sub nsw i32 %1453, 1
  %1455 = sext i32 %1454 to i64
  %1456 = getelementptr inbounds float, ptr %1452, i64 %1455
  %1457 = load float, ptr %1456, align 4, !tbaa !16
  %1458 = load ptr, ptr %13, align 8, !tbaa !9
  %1459 = load i32, ptr %24, align 4, !tbaa !5
  %1460 = sub nsw i32 %1459, 1
  %1461 = sext i32 %1460 to i64
  %1462 = getelementptr inbounds float, ptr %1458, i64 %1461
  %1463 = load float, ptr %1462, align 4, !tbaa !16
  %1464 = fsub float %1457, %1463
  %1465 = fpext float %1464 to double
  %1466 = call double @llvm.fabs.f64(double %1465)
  br label %1575

1467:                                             ; preds = %1444
  %1468 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1469 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1468, i32 0, i32 8
  %1470 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1469, i64 0, i64 7
  %1471 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1470, i32 0, i32 1
  %1472 = load i32, ptr %1471, align 4, !tbaa !15
  %1473 = icmp eq i32 %1472, 1
  br i1 %1473, label %1474, label %1488

1474:                                             ; preds = %1467
  %1475 = load ptr, ptr %14, align 8, !tbaa !9
  %1476 = load i32, ptr %24, align 4, !tbaa !5
  %1477 = sub nsw i32 %1476, 1
  %1478 = sext i32 %1477 to i64
  %1479 = getelementptr inbounds float, ptr %1475, i64 %1478
  %1480 = load float, ptr %1479, align 4, !tbaa !16
  %1481 = load ptr, ptr %15, align 8, !tbaa !9
  %1482 = load i32, ptr %24, align 4, !tbaa !5
  %1483 = sub nsw i32 %1482, 1
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds float, ptr %1481, i64 %1484
  %1486 = load float, ptr %1485, align 4, !tbaa !16
  %1487 = fsub float %1480, %1486
  br label %1572

1488:                                             ; preds = %1467
  %1489 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1490 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1489, i32 0, i32 8
  %1491 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1490, i64 0, i64 7
  %1492 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1491, i32 0, i32 1
  %1493 = load i32, ptr %1492, align 4, !tbaa !15
  %1494 = icmp eq i32 %1493, 2
  br i1 %1494, label %1495, label %1569

1495:                                             ; preds = %1488
  %1496 = load ptr, ptr %14, align 8, !tbaa !9
  %1497 = load i32, ptr %24, align 4, !tbaa !5
  %1498 = sub nsw i32 %1497, 1
  %1499 = sext i32 %1498 to i64
  %1500 = getelementptr inbounds float, ptr %1496, i64 %1499
  %1501 = load float, ptr %1500, align 4, !tbaa !16
  %1502 = load ptr, ptr %16, align 8, !tbaa !9
  %1503 = load i32, ptr %24, align 4, !tbaa !5
  %1504 = sub nsw i32 %1503, 1
  %1505 = sext i32 %1504 to i64
  %1506 = getelementptr inbounds float, ptr %1502, i64 %1505
  %1507 = load float, ptr %1506, align 4, !tbaa !16
  %1508 = load ptr, ptr %13, align 8, !tbaa !9
  %1509 = load i32, ptr %24, align 4, !tbaa !5
  %1510 = sub nsw i32 %1509, 1
  %1511 = sext i32 %1510 to i64
  %1512 = getelementptr inbounds float, ptr %1508, i64 %1511
  %1513 = load float, ptr %1512, align 4, !tbaa !16
  %1514 = fcmp oge float %1507, %1513
  br i1 %1514, label %1515, label %1522

1515:                                             ; preds = %1495
  %1516 = load ptr, ptr %16, align 8, !tbaa !9
  %1517 = load i32, ptr %24, align 4, !tbaa !5
  %1518 = sub nsw i32 %1517, 1
  %1519 = sext i32 %1518 to i64
  %1520 = getelementptr inbounds float, ptr %1516, i64 %1519
  %1521 = load float, ptr %1520, align 4, !tbaa !16
  br label %1529

1522:                                             ; preds = %1495
  %1523 = load ptr, ptr %13, align 8, !tbaa !9
  %1524 = load i32, ptr %24, align 4, !tbaa !5
  %1525 = sub nsw i32 %1524, 1
  %1526 = sext i32 %1525 to i64
  %1527 = getelementptr inbounds float, ptr %1523, i64 %1526
  %1528 = load float, ptr %1527, align 4, !tbaa !16
  br label %1529

1529:                                             ; preds = %1522, %1515
  %1530 = phi float [ %1521, %1515 ], [ %1528, %1522 ]
  %1531 = fsub float %1501, %1530
  %1532 = load ptr, ptr %16, 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 %13, 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 = fcmp oge float %1537, %1543
  br i1 %1544, label %1545, label %1552

1545:                                             ; preds = %1529
  %1546 = load ptr, ptr %13, align 8, !tbaa !9
  %1547 = load i32, ptr %24, align 4, !tbaa !5
  %1548 = sub nsw i32 %1547, 1
  %1549 = sext i32 %1548 to i64
  %1550 = getelementptr inbounds float, ptr %1546, i64 %1549
  %1551 = load float, ptr %1550, align 4, !tbaa !16
  br label %1559

1552:                                             ; preds = %1529
  %1553 = load ptr, ptr %16, 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
  br label %1559

1559:                                             ; preds = %1552, %1545
  %1560 = phi float [ %1551, %1545 ], [ %1558, %1552 ]
  %1561 = load ptr, ptr %15, align 8, !tbaa !9
  %1562 = load i32, ptr %24, align 4, !tbaa !5
  %1563 = sub nsw i32 %1562, 1
  %1564 = sext i32 %1563 to i64
  %1565 = getelementptr inbounds float, ptr %1561, i64 %1564
  %1566 = load float, ptr %1565, align 4, !tbaa !16
  %1567 = fsub float %1560, %1566
  %1568 = fadd float %1531, %1567
  br label %1570

1569:                                             ; preds = %1488
  br label %1570

1570:                                             ; preds = %1569, %1559
  %1571 = phi float [ %1568, %1559 ], [ 0.000000e+00, %1569 ]
  br label %1572

1572:                                             ; preds = %1570, %1474
  %1573 = phi float [ %1487, %1474 ], [ %1571, %1570 ]
  %1574 = fpext float %1573 to double
  br label %1575

1575:                                             ; preds = %1572, %1451
  %1576 = phi double [ %1466, %1451 ], [ %1574, %1572 ]
  br label %1577

1577:                                             ; preds = %1575, %1435
  %1578 = phi double [ %1443, %1435 ], [ %1576, %1575 ]
  %1579 = fmul double %1427, %1578
  %1580 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1581 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1580, i32 0, i32 8
  %1582 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1581, i64 0, i64 7
  %1583 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1582, i32 0, i32 1
  %1584 = load i32, ptr %1583, align 4, !tbaa !15
  %1585 = icmp eq i32 %1584, 2
  %1586 = zext i1 %1585 to i64
  %1587 = select i1 %1585, double 2.000000e+00, double 1.000000e+00
  %1588 = fdiv double %1579, %1587
  %1589 = fcmp olt double %1422, %1588
  br i1 %1589, label %1590, label %2158

1590:                                             ; preds = %1577
  %1591 = load ptr, ptr %13, align 8, !tbaa !9
  %1592 = load i32, ptr %24, align 4, !tbaa !5
  %1593 = sub nsw i32 %1592, 1
  %1594 = sext i32 %1593 to i64
  %1595 = getelementptr inbounds float, ptr %1591, i64 %1594
  %1596 = load float, ptr %1595, align 4, !tbaa !16
  %1597 = load ptr, ptr %13, align 8, !tbaa !9
  %1598 = load i32, ptr %24, align 4, !tbaa !5
  %1599 = sub nsw i32 %1598, 2
  %1600 = sext i32 %1599 to i64
  %1601 = getelementptr inbounds float, ptr %1597, i64 %1600
  %1602 = load float, ptr %1601, align 4, !tbaa !16
  %1603 = fcmp ogt float %1596, %1602
  br i1 %1603, label %1604, label %2158

1604:                                             ; preds = %1590
  %1605 = load ptr, ptr %13, align 8, !tbaa !9
  %1606 = load i32, ptr %24, align 4, !tbaa !5
  %1607 = sub nsw i32 %1606, 1
  %1608 = sext i32 %1607 to i64
  %1609 = getelementptr inbounds float, ptr %1605, i64 %1608
  %1610 = load float, ptr %1609, align 4, !tbaa !16
  %1611 = fpext float %1610 to double
  %1612 = load ptr, ptr %16, align 8, !tbaa !9
  %1613 = load i32, ptr %24, align 4, !tbaa !5
  %1614 = sub nsw i32 %1613, 2
  %1615 = sext i32 %1614 to i64
  %1616 = getelementptr inbounds float, ptr %1612, i64 %1615
  %1617 = load float, ptr %1616, align 4, !tbaa !16
  %1618 = fpext float %1617 to double
  %1619 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1620 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1619, i32 0, i32 8
  %1621 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1620, i64 0, i64 8
  %1622 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1621, i32 0, i32 3
  %1623 = load double, ptr %1622, align 8, !tbaa !23
  %1624 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1625 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1624, i32 0, i32 8
  %1626 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1625, i64 0, i64 8
  %1627 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1626, i32 0, i32 2
  %1628 = load i32, ptr %1627, align 8, !tbaa !13
  %1629 = sitofp i32 %1628 to double
  %1630 = fcmp une double %1629, 0.000000e+00
  br i1 %1630, label %1631, label %1641

1631:                                             ; preds = %1604
  %1632 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  %1633 = load double, ptr %1632, align 16, !tbaa !11
  %1634 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1635 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1634, i32 0, i32 8
  %1636 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1635, i64 0, i64 8
  %1637 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1636, i32 0, i32 2
  %1638 = load i32, ptr %1637, align 8, !tbaa !13
  %1639 = sitofp i32 %1638 to double
  %1640 = fdiv double %1633, %1639
  br label %1774

1641:                                             ; preds = %1604
  %1642 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1643 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1642, i32 0, i32 8
  %1644 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1643, i64 0, i64 8
  %1645 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1644, i32 0, i32 1
  %1646 = load i32, ptr %1645, align 4, !tbaa !15
  %1647 = icmp eq i32 %1646, 0
  br i1 %1647, label %1648, label %1664

1648:                                             ; preds = %1641
  %1649 = load ptr, ptr %16, align 8, !tbaa !9
  %1650 = load i32, ptr %24, align 4, !tbaa !5
  %1651 = sub nsw i32 %1650, 2
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds float, ptr %1649, i64 %1652
  %1654 = load float, ptr %1653, align 4, !tbaa !16
  %1655 = load ptr, ptr %13, align 8, !tbaa !9
  %1656 = load i32, ptr %24, align 4, !tbaa !5
  %1657 = sub nsw i32 %1656, 2
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds float, ptr %1655, i64 %1658
  %1660 = load float, ptr %1659, align 4, !tbaa !16
  %1661 = fsub float %1654, %1660
  %1662 = fpext float %1661 to double
  %1663 = call double @llvm.fabs.f64(double %1662)
  br label %1772

1664:                                             ; preds = %1641
  %1665 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1666 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1665, i32 0, i32 8
  %1667 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1666, i64 0, i64 8
  %1668 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1667, i32 0, i32 1
  %1669 = load i32, ptr %1668, align 4, !tbaa !15
  %1670 = icmp eq i32 %1669, 1
  br i1 %1670, label %1671, label %1685

1671:                                             ; preds = %1664
  %1672 = load ptr, ptr %14, align 8, !tbaa !9
  %1673 = load i32, ptr %24, align 4, !tbaa !5
  %1674 = sub nsw i32 %1673, 2
  %1675 = sext i32 %1674 to i64
  %1676 = getelementptr inbounds float, ptr %1672, i64 %1675
  %1677 = load float, ptr %1676, align 4, !tbaa !16
  %1678 = load ptr, ptr %15, align 8, !tbaa !9
  %1679 = load i32, ptr %24, align 4, !tbaa !5
  %1680 = sub nsw i32 %1679, 2
  %1681 = sext i32 %1680 to i64
  %1682 = getelementptr inbounds float, ptr %1678, i64 %1681
  %1683 = load float, ptr %1682, align 4, !tbaa !16
  %1684 = fsub float %1677, %1683
  br label %1769

1685:                                             ; preds = %1664
  %1686 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1687 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1686, i32 0, i32 8
  %1688 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1687, i64 0, i64 8
  %1689 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1688, i32 0, i32 1
  %1690 = load i32, ptr %1689, align 4, !tbaa !15
  %1691 = icmp eq i32 %1690, 2
  br i1 %1691, label %1692, label %1766

1692:                                             ; preds = %1685
  %1693 = load ptr, ptr %14, align 8, !tbaa !9
  %1694 = load i32, ptr %24, align 4, !tbaa !5
  %1695 = sub nsw i32 %1694, 2
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds float, ptr %1693, i64 %1696
  %1698 = load float, ptr %1697, align 4, !tbaa !16
  %1699 = load ptr, ptr %16, align 8, !tbaa !9
  %1700 = load i32, ptr %24, align 4, !tbaa !5
  %1701 = sub nsw i32 %1700, 2
  %1702 = sext i32 %1701 to i64
  %1703 = getelementptr inbounds float, ptr %1699, i64 %1702
  %1704 = load float, ptr %1703, align 4, !tbaa !16
  %1705 = load ptr, ptr %13, align 8, !tbaa !9
  %1706 = load i32, ptr %24, align 4, !tbaa !5
  %1707 = sub nsw i32 %1706, 2
  %1708 = sext i32 %1707 to i64
  %1709 = getelementptr inbounds float, ptr %1705, i64 %1708
  %1710 = load float, ptr %1709, align 4, !tbaa !16
  %1711 = fcmp oge float %1704, %1710
  br i1 %1711, label %1712, label %1719

1712:                                             ; preds = %1692
  %1713 = load ptr, ptr %16, align 8, !tbaa !9
  %1714 = load i32, ptr %24, align 4, !tbaa !5
  %1715 = sub nsw i32 %1714, 2
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds float, ptr %1713, i64 %1716
  %1718 = load float, ptr %1717, align 4, !tbaa !16
  br label %1726

1719:                                             ; preds = %1692
  %1720 = load ptr, ptr %13, align 8, !tbaa !9
  %1721 = load i32, ptr %24, align 4, !tbaa !5
  %1722 = sub nsw i32 %1721, 2
  %1723 = sext i32 %1722 to i64
  %1724 = getelementptr inbounds float, ptr %1720, i64 %1723
  %1725 = load float, ptr %1724, align 4, !tbaa !16
  br label %1726

1726:                                             ; preds = %1719, %1712
  %1727 = phi float [ %1718, %1712 ], [ %1725, %1719 ]
  %1728 = fsub float %1698, %1727
  %1729 = load ptr, ptr %16, align 8, !tbaa !9
  %1730 = load i32, ptr %24, align 4, !tbaa !5
  %1731 = sub nsw i32 %1730, 2
  %1732 = sext i32 %1731 to i64
  %1733 = getelementptr inbounds float, ptr %1729, i64 %1732
  %1734 = load float, ptr %1733, align 4, !tbaa !16
  %1735 = load ptr, ptr %13, align 8, !tbaa !9
  %1736 = load i32, ptr %24, align 4, !tbaa !5
  %1737 = sub nsw i32 %1736, 2
  %1738 = sext i32 %1737 to i64
  %1739 = getelementptr inbounds float, ptr %1735, i64 %1738
  %1740 = load float, ptr %1739, align 4, !tbaa !16
  %1741 = fcmp oge float %1734, %1740
  br i1 %1741, label %1742, label %1749

1742:                                             ; preds = %1726
  %1743 = load ptr, ptr %13, align 8, !tbaa !9
  %1744 = load i32, ptr %24, align 4, !tbaa !5
  %1745 = sub nsw i32 %1744, 2
  %1746 = sext i32 %1745 to i64
  %1747 = getelementptr inbounds float, ptr %1743, i64 %1746
  %1748 = load float, ptr %1747, align 4, !tbaa !16
  br label %1756

1749:                                             ; preds = %1726
  %1750 = load ptr, ptr %16, align 8, !tbaa !9
  %1751 = load i32, ptr %24, align 4, !tbaa !5
  %1752 = sub nsw i32 %1751, 2
  %1753 = sext i32 %1752 to i64
  %1754 = getelementptr inbounds float, ptr %1750, i64 %1753
  %1755 = load float, ptr %1754, align 4, !tbaa !16
  br label %1756

1756:                                             ; preds = %1749, %1742
  %1757 = phi float [ %1748, %1742 ], [ %1755, %1749 ]
  %1758 = load ptr, ptr %15, align 8, !tbaa !9
  %1759 = load i32, ptr %24, align 4, !tbaa !5
  %1760 = sub nsw i32 %1759, 2
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds float, ptr %1758, i64 %1761
  %1763 = load float, ptr %1762, align 4, !tbaa !16
  %1764 = fsub float %1757, %1763
  %1765 = fadd float %1728, %1764
  br label %1767

1766:                                             ; preds = %1685
  br label %1767

1767:                                             ; preds = %1766, %1756
  %1768 = phi float [ %1765, %1756 ], [ 0.000000e+00, %1766 ]
  br label %1769

1769:                                             ; preds = %1767, %1671
  %1770 = phi float [ %1684, %1671 ], [ %1768, %1767 ]
  %1771 = fpext float %1770 to double
  br label %1772

1772:                                             ; preds = %1769, %1648
  %1773 = phi double [ %1663, %1648 ], [ %1771, %1769 ]
  br label %1774

1774:                                             ; preds = %1772, %1631
  %1775 = phi double [ %1640, %1631 ], [ %1773, %1772 ]
  %1776 = fmul double %1623, %1775
  %1777 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1778 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1777, i32 0, i32 8
  %1779 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1778, i64 0, i64 8
  %1780 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1779, i32 0, i32 1
  %1781 = load i32, ptr %1780, align 4, !tbaa !15
  %1782 = icmp eq i32 %1781, 2
  %1783 = zext i1 %1782 to i64
  %1784 = select i1 %1782, double 2.000000e+00, double 1.000000e+00
  %1785 = fdiv double %1776, %1784
  %1786 = fadd double %1618, %1785
  %1787 = fcmp ole double %1611, %1786
  br i1 %1787, label %1788, label %2158

1788:                                             ; preds = %1774
  %1789 = load ptr, ptr %16, align 8, !tbaa !9
  %1790 = load i32, ptr %24, align 4, !tbaa !5
  %1791 = sext i32 %1790 to i64
  %1792 = getelementptr inbounds float, ptr %1789, i64 %1791
  %1793 = load float, ptr %1792, align 4, !tbaa !16
  %1794 = load ptr, ptr %13, align 8, !tbaa !9
  %1795 = load i32, ptr %24, align 4, !tbaa !5
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds float, ptr %1794, i64 %1796
  %1798 = load float, ptr %1797, align 4, !tbaa !16
  %1799 = fsub float %1793, %1798
  %1800 = fpext float %1799 to double
  %1801 = call double @llvm.fabs.f64(double %1800)
  %1802 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1803 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1802, i32 0, i32 8
  %1804 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1803, i64 0, i64 2
  %1805 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1804, i32 0, i32 3
  %1806 = load double, ptr %1805, align 8, !tbaa !23
  %1807 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1808 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1807, i32 0, i32 8
  %1809 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1808, i64 0, i64 2
  %1810 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1809, i32 0, i32 2
  %1811 = load i32, ptr %1810, align 8, !tbaa !13
  %1812 = sitofp i32 %1811 to double
  %1813 = fcmp une double %1812, 0.000000e+00
  br i1 %1813, label %1814, label %1823

1814:                                             ; preds = %1788
  %1815 = load double, ptr %22, align 8, !tbaa !11
  %1816 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1817 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1816, i32 0, i32 8
  %1818 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1817, i64 0, i64 2
  %1819 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1818, i32 0, i32 2
  %1820 = load i32, ptr %1819, align 8, !tbaa !13
  %1821 = sitofp i32 %1820 to double
  %1822 = fdiv double %1815, %1821
  br label %1942

1823:                                             ; preds = %1788
  %1824 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1825 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1824, i32 0, i32 8
  %1826 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1825, i64 0, i64 2
  %1827 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1826, i32 0, i32 1
  %1828 = load i32, ptr %1827, align 4, !tbaa !15
  %1829 = icmp eq i32 %1828, 0
  br i1 %1829, label %1830, label %1844

1830:                                             ; preds = %1823
  %1831 = load ptr, ptr %16, align 8, !tbaa !9
  %1832 = load i32, ptr %24, align 4, !tbaa !5
  %1833 = sext i32 %1832 to i64
  %1834 = getelementptr inbounds float, ptr %1831, i64 %1833
  %1835 = load float, ptr %1834, align 4, !tbaa !16
  %1836 = load ptr, ptr %13, align 8, !tbaa !9
  %1837 = load i32, ptr %24, align 4, !tbaa !5
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds float, ptr %1836, i64 %1838
  %1840 = load float, ptr %1839, align 4, !tbaa !16
  %1841 = fsub float %1835, %1840
  %1842 = fpext float %1841 to double
  %1843 = call double @llvm.fabs.f64(double %1842)
  br label %1940

1844:                                             ; preds = %1823
  %1845 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1846 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1845, i32 0, i32 8
  %1847 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1846, i64 0, i64 2
  %1848 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1847, i32 0, i32 1
  %1849 = load i32, ptr %1848, align 4, !tbaa !15
  %1850 = icmp eq i32 %1849, 1
  br i1 %1850, label %1851, label %1863

1851:                                             ; preds = %1844
  %1852 = load ptr, ptr %14, align 8, !tbaa !9
  %1853 = load i32, ptr %24, align 4, !tbaa !5
  %1854 = sext i32 %1853 to i64
  %1855 = getelementptr inbounds float, ptr %1852, i64 %1854
  %1856 = load float, ptr %1855, align 4, !tbaa !16
  %1857 = load ptr, ptr %15, align 8, !tbaa !9
  %1858 = load i32, ptr %24, align 4, !tbaa !5
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds float, ptr %1857, i64 %1859
  %1861 = load float, ptr %1860, align 4, !tbaa !16
  %1862 = fsub float %1856, %1861
  br label %1937

1863:                                             ; preds = %1844
  %1864 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1865 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1864, i32 0, i32 8
  %1866 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1865, i64 0, i64 2
  %1867 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1866, i32 0, i32 1
  %1868 = load i32, ptr %1867, align 4, !tbaa !15
  %1869 = icmp eq i32 %1868, 2
  br i1 %1869, label %1870, label %1934

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

1887:                                             ; preds = %1870
  %1888 = load ptr, ptr %16, align 8, !tbaa !9
  %1889 = load i32, ptr %24, align 4, !tbaa !5
  %1890 = sext i32 %1889 to i64
  %1891 = getelementptr inbounds float, ptr %1888, i64 %1890
  %1892 = load float, ptr %1891, align 4, !tbaa !16
  br label %1899

1893:                                             ; preds = %1870
  %1894 = load ptr, ptr %13, align 8, !tbaa !9
  %1895 = load i32, ptr %24, align 4, !tbaa !5
  %1896 = sext i32 %1895 to i64
  %1897 = getelementptr inbounds float, ptr %1894, i64 %1896
  %1898 = load float, ptr %1897, align 4, !tbaa !16
  br label %1899

1899:                                             ; preds = %1893, %1887
  %1900 = phi float [ %1892, %1887 ], [ %1898, %1893 ]
  %1901 = fsub float %1875, %1900
  %1902 = load ptr, ptr %16, align 8, !tbaa !9
  %1903 = load i32, ptr %24, align 4, !tbaa !5
  %1904 = sext i32 %1903 to i64
  %1905 = getelementptr inbounds float, ptr %1902, i64 %1904
  %1906 = load float, ptr %1905, align 4, !tbaa !16
  %1907 = load ptr, ptr %13, align 8, !tbaa !9
  %1908 = load i32, ptr %24, align 4, !tbaa !5
  %1909 = sext i32 %1908 to i64
  %1910 = getelementptr inbounds float, ptr %1907, i64 %1909
  %1911 = load float, ptr %1910, align 4, !tbaa !16
  %1912 = fcmp oge float %1906, %1911
  br i1 %1912, label %1913, label %1919

1913:                                             ; preds = %1899
  %1914 = load ptr, ptr %13, align 8, !tbaa !9
  %1915 = load i32, ptr %24, align 4, !tbaa !5
  %1916 = sext i32 %1915 to i64
  %1917 = getelementptr inbounds float, ptr %1914, i64 %1916
  %1918 = load float, ptr %1917, align 4, !tbaa !16
  br label %1925

1919:                                             ; preds = %1899
  %1920 = load ptr, ptr %16, align 8, !tbaa !9
  %1921 = load i32, ptr %24, align 4, !tbaa !5
  %1922 = sext i32 %1921 to i64
  %1923 = getelementptr inbounds float, ptr %1920, i64 %1922
  %1924 = load float, ptr %1923, align 4, !tbaa !16
  br label %1925

1925:                                             ; preds = %1919, %1913
  %1926 = phi float [ %1918, %1913 ], [ %1924, %1919 ]
  %1927 = load ptr, ptr %15, align 8, !tbaa !9
  %1928 = load i32, ptr %24, align 4, !tbaa !5
  %1929 = sext i32 %1928 to i64
  %1930 = getelementptr inbounds float, ptr %1927, i64 %1929
  %1931 = load float, ptr %1930, align 4, !tbaa !16
  %1932 = fsub float %1926, %1931
  %1933 = fadd float %1901, %1932
  br label %1935

1934:                                             ; preds = %1863
  br label %1935

1935:                                             ; preds = %1934, %1925
  %1936 = phi float [ %1933, %1925 ], [ 0.000000e+00, %1934 ]
  br label %1937

1937:                                             ; preds = %1935, %1851
  %1938 = phi float [ %1862, %1851 ], [ %1936, %1935 ]
  %1939 = fpext float %1938 to double
  br label %1940

1940:                                             ; preds = %1937, %1830
  %1941 = phi double [ %1843, %1830 ], [ %1939, %1937 ]
  br label %1942

1942:                                             ; preds = %1940, %1814
  %1943 = phi double [ %1822, %1814 ], [ %1941, %1940 ]
  %1944 = fmul double %1806, %1943
  %1945 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1946 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1945, i32 0, i32 8
  %1947 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1946, i64 0, i64 2
  %1948 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1947, i32 0, i32 1
  %1949 = load i32, ptr %1948, align 4, !tbaa !15
  %1950 = icmp eq i32 %1949, 2
  %1951 = zext i1 %1950 to i64
  %1952 = select i1 %1950, double 2.000000e+00, double 1.000000e+00
  %1953 = fdiv double %1944, %1952
  %1954 = fcmp olt double %1801, %1953
  br i1 %1954, label %1955, label %2158

1955:                                             ; preds = %1942
  %1956 = load ptr, ptr %13, align 8, !tbaa !9
  %1957 = load i32, ptr %24, align 4, !tbaa !5
  %1958 = sext i32 %1957 to i64
  %1959 = getelementptr inbounds float, ptr %1956, i64 %1958
  %1960 = load float, ptr %1959, align 4, !tbaa !16
  %1961 = fpext float %1960 to double
  %1962 = load ptr, ptr %16, align 8, !tbaa !9
  %1963 = load i32, ptr %24, align 4, !tbaa !5
  %1964 = sub nsw i32 %1963, 1
  %1965 = sext i32 %1964 to i64
  %1966 = getelementptr inbounds float, ptr %1962, i64 %1965
  %1967 = load float, ptr %1966, align 4, !tbaa !16
  %1968 = fpext float %1967 to double
  %1969 = load ptr, ptr %16, align 8, !tbaa !9
  %1970 = load i32, ptr %24, align 4, !tbaa !5
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds float, ptr %1969, i64 %1971
  %1973 = load float, ptr %1972, align 4, !tbaa !16
  %1974 = load ptr, ptr %13, align 8, !tbaa !9
  %1975 = load i32, ptr %24, align 4, !tbaa !5
  %1976 = sext i32 %1975 to i64
  %1977 = getelementptr inbounds float, ptr %1974, i64 %1976
  %1978 = load float, ptr %1977, align 4, !tbaa !16
  %1979 = fsub float %1973, %1978
  %1980 = fpext float %1979 to double
  %1981 = call double @llvm.fabs.f64(double %1980)
  %1982 = fsub double %1968, %1981
  %1983 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1984 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1983, i32 0, i32 8
  %1985 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1984, i64 0, i64 8
  %1986 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1985, i32 0, i32 3
  %1987 = load double, ptr %1986, align 8, !tbaa !23
  %1988 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1989 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1988, i32 0, i32 8
  %1990 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1989, i64 0, i64 8
  %1991 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1990, i32 0, i32 2
  %1992 = load i32, ptr %1991, align 8, !tbaa !13
  %1993 = sitofp i32 %1992 to double
  %1994 = fcmp une double %1993, 0.000000e+00
  br i1 %1994, label %1995, label %2005

1995:                                             ; preds = %1955
  %1996 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %1997 = load double, ptr %1996, align 8, !tbaa !11
  %1998 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1999 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1998, i32 0, i32 8
  %2000 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1999, i64 0, i64 8
  %2001 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2000, i32 0, i32 2
  %2002 = load i32, ptr %2001, align 8, !tbaa !13
  %2003 = sitofp i32 %2002 to double
  %2004 = fdiv double %1997, %2003
  br label %2138

2005:                                             ; preds = %1955
  %2006 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2007 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2006, i32 0, i32 8
  %2008 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2007, i64 0, i64 8
  %2009 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2008, i32 0, i32 1
  %2010 = load i32, ptr %2009, align 4, !tbaa !15
  %2011 = icmp eq i32 %2010, 0
  br i1 %2011, label %2012, label %2028

2012:                                             ; preds = %2005
  %2013 = load ptr, ptr %16, align 8, !tbaa !9
  %2014 = load i32, ptr %24, align 4, !tbaa !5
  %2015 = sub nsw i32 %2014, 1
  %2016 = sext i32 %2015 to i64
  %2017 = getelementptr inbounds float, ptr %2013, i64 %2016
  %2018 = load float, ptr %2017, align 4, !tbaa !16
  %2019 = load ptr, ptr %13, align 8, !tbaa !9
  %2020 = load i32, ptr %24, align 4, !tbaa !5
  %2021 = sub nsw i32 %2020, 1
  %2022 = sext i32 %2021 to i64
  %2023 = getelementptr inbounds float, ptr %2019, i64 %2022
  %2024 = load float, ptr %2023, align 4, !tbaa !16
  %2025 = fsub float %2018, %2024
  %2026 = fpext float %2025 to double
  %2027 = call double @llvm.fabs.f64(double %2026)
  br label %2136

2028:                                             ; preds = %2005
  %2029 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2030 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2029, i32 0, i32 8
  %2031 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2030, i64 0, i64 8
  %2032 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2031, i32 0, i32 1
  %2033 = load i32, ptr %2032, align 4, !tbaa !15
  %2034 = icmp eq i32 %2033, 1
  br i1 %2034, label %2035, label %2049

2035:                                             ; preds = %2028
  %2036 = load ptr, ptr %14, align 8, !tbaa !9
  %2037 = load i32, ptr %24, align 4, !tbaa !5
  %2038 = sub nsw i32 %2037, 1
  %2039 = sext i32 %2038 to i64
  %2040 = getelementptr inbounds float, ptr %2036, i64 %2039
  %2041 = load float, ptr %2040, align 4, !tbaa !16
  %2042 = load ptr, ptr %15, align 8, !tbaa !9
  %2043 = load i32, ptr %24, align 4, !tbaa !5
  %2044 = sub nsw i32 %2043, 1
  %2045 = sext i32 %2044 to i64
  %2046 = getelementptr inbounds float, ptr %2042, i64 %2045
  %2047 = load float, ptr %2046, align 4, !tbaa !16
  %2048 = fsub float %2041, %2047
  br label %2133

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

2056:                                             ; preds = %2049
  %2057 = load ptr, ptr %14, align 8, !tbaa !9
  %2058 = load i32, ptr %24, align 4, !tbaa !5
  %2059 = sub nsw i32 %2058, 1
  %2060 = sext i32 %2059 to i64
  %2061 = getelementptr inbounds float, ptr %2057, i64 %2060
  %2062 = load float, ptr %2061, align 4, !tbaa !16
  %2063 = load ptr, ptr %16, align 8, !tbaa !9
  %2064 = load i32, ptr %24, align 4, !tbaa !5
  %2065 = sub nsw i32 %2064, 1
  %2066 = sext i32 %2065 to i64
  %2067 = getelementptr inbounds float, ptr %2063, i64 %2066
  %2068 = load float, ptr %2067, align 4, !tbaa !16
  %2069 = load ptr, ptr %13, align 8, !tbaa !9
  %2070 = load i32, ptr %24, align 4, !tbaa !5
  %2071 = sub nsw i32 %2070, 1
  %2072 = sext i32 %2071 to i64
  %2073 = getelementptr inbounds float, ptr %2069, i64 %2072
  %2074 = load float, ptr %2073, align 4, !tbaa !16
  %2075 = fcmp oge float %2068, %2074
  br i1 %2075, label %2076, label %2083

2076:                                             ; preds = %2056
  %2077 = load ptr, ptr %16, align 8, !tbaa !9
  %2078 = load i32, ptr %24, align 4, !tbaa !5
  %2079 = sub nsw i32 %2078, 1
  %2080 = sext i32 %2079 to i64
  %2081 = getelementptr inbounds float, ptr %2077, i64 %2080
  %2082 = load float, ptr %2081, align 4, !tbaa !16
  br label %2090

2083:                                             ; preds = %2056
  %2084 = load ptr, ptr %13, align 8, !tbaa !9
  %2085 = load i32, ptr %24, align 4, !tbaa !5
  %2086 = sub nsw i32 %2085, 1
  %2087 = sext i32 %2086 to i64
  %2088 = getelementptr inbounds float, ptr %2084, i64 %2087
  %2089 = load float, ptr %2088, align 4, !tbaa !16
  br label %2090

2090:                                             ; preds = %2083, %2076
  %2091 = phi float [ %2082, %2076 ], [ %2089, %2083 ]
  %2092 = fsub float %2062, %2091
  %2093 = load ptr, ptr %16, align 8, !tbaa !9
  %2094 = load i32, ptr %24, align 4, !tbaa !5
  %2095 = sub nsw i32 %2094, 1
  %2096 = sext i32 %2095 to i64
  %2097 = getelementptr inbounds float, ptr %2093, i64 %2096
  %2098 = load float, ptr %2097, align 4, !tbaa !16
  %2099 = load ptr, ptr %13, align 8, !tbaa !9
  %2100 = load i32, ptr %24, align 4, !tbaa !5
  %2101 = sub nsw i32 %2100, 1
  %2102 = sext i32 %2101 to i64
  %2103 = getelementptr inbounds float, ptr %2099, i64 %2102
  %2104 = load float, ptr %2103, align 4, !tbaa !16
  %2105 = fcmp oge float %2098, %2104
  br i1 %2105, label %2106, label %2113

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

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

2120:                                             ; preds = %2113, %2106
  %2121 = phi float [ %2112, %2106 ], [ %2119, %2113 ]
  %2122 = load ptr, ptr %15, align 8, !tbaa !9
  %2123 = load i32, ptr %24, align 4, !tbaa !5
  %2124 = sub nsw i32 %2123, 1
  %2125 = sext i32 %2124 to i64
  %2126 = getelementptr inbounds float, ptr %2122, i64 %2125
  %2127 = load float, ptr %2126, align 4, !tbaa !16
  %2128 = fsub float %2121, %2127
  %2129 = fadd float %2092, %2128
  br label %2131

2130:                                             ; preds = %2049
  br label %2131

2131:                                             ; preds = %2130, %2120
  %2132 = phi float [ %2129, %2120 ], [ 0.000000e+00, %2130 ]
  br label %2133

2133:                                             ; preds = %2131, %2035
  %2134 = phi float [ %2048, %2035 ], [ %2132, %2131 ]
  %2135 = fpext float %2134 to double
  br label %2136

2136:                                             ; preds = %2133, %2012
  %2137 = phi double [ %2027, %2012 ], [ %2135, %2133 ]
  br label %2138

2138:                                             ; preds = %2136, %1995
  %2139 = phi double [ %2004, %1995 ], [ %2137, %2136 ]
  %2140 = fmul double %1987, %2139
  %2141 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2142 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2141, i32 0, i32 8
  %2143 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2142, i64 0, i64 8
  %2144 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2143, i32 0, i32 1
  %2145 = load i32, ptr %2144, align 4, !tbaa !15
  %2146 = icmp eq i32 %2145, 2
  %2147 = zext i1 %2146 to i64
  %2148 = select i1 %2146, double 2.000000e+00, double 1.000000e+00
  %2149 = fdiv double %2140, %2148
  %2150 = fsub double %1982, %2149
  %2151 = fcmp oge double %1961, %2150
  br i1 %2151, label %2152, label %2158

2152:                                             ; preds = %2138
  %2153 = load ptr, ptr %19, align 8, !tbaa !9
  %2154 = load i32, ptr %25, align 4, !tbaa !5
  %2155 = add nsw i32 %2154, 1
  store i32 %2155, ptr %25, align 4, !tbaa !5
  %2156 = sext i32 %2154 to i64
  %2157 = getelementptr inbounds i32, ptr %2153, i64 %2156
  store i32 -100, ptr %2157, align 4, !tbaa !5
  br label %2164

2158:                                             ; preds = %2138, %1942, %1774, %1590, %1577, %1372, %1188, %1003, %990, %975, %958, %941
  %2159 = load ptr, ptr %19, align 8, !tbaa !9
  %2160 = load i32, ptr %25, align 4, !tbaa !5
  %2161 = add nsw i32 %2160, 1
  store i32 %2161, ptr %25, align 4, !tbaa !5
  %2162 = sext i32 %2160 to i64
  %2163 = getelementptr inbounds i32, ptr %2159, i64 %2162
  store i32 0, ptr %2163, align 4, !tbaa !5
  br label %2164

2164:                                             ; preds = %2158, %2152
  store i32 2, ptr %26, align 4, !tbaa !5
  br label %2165

2165:                                             ; preds = %2765, %2164
  %2166 = load i32, ptr %26, align 4, !tbaa !5
  %2167 = icmp sge i32 %2166, 1
  br i1 %2167, label %2168, label %2768

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

2175:                                             ; preds = %2168
  %2176 = load ptr, ptr %16, align 8, !tbaa !9
  %2177 = load i32, ptr %24, align 4, !tbaa !5
  %2178 = load i32, ptr %26, align 4, !tbaa !5
  %2179 = sub nsw i32 %2177, %2178
  %2180 = sext i32 %2179 to i64
  %2181 = getelementptr inbounds float, ptr %2176, i64 %2180
  %2182 = load float, ptr %2181, align 4, !tbaa !16
  %2183 = load ptr, ptr %13, align 8, !tbaa !9
  %2184 = load i32, ptr %24, align 4, !tbaa !5
  %2185 = load i32, ptr %26, align 4, !tbaa !5
  %2186 = sub nsw i32 %2184, %2185
  %2187 = sext i32 %2186 to i64
  %2188 = getelementptr inbounds float, ptr %2183, i64 %2187
  %2189 = load float, ptr %2188, align 4, !tbaa !16
  %2190 = fsub float %2182, %2189
  %2191 = fpext float %2190 to double
  %2192 = call double @llvm.fabs.f64(double %2191)
  br label %2313

2193:                                             ; preds = %2168
  %2194 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2195 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2194, i32 0, i32 8
  %2196 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2195, i64 0, i64 0
  %2197 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2196, i32 0, i32 1
  %2198 = load i32, ptr %2197, align 4, !tbaa !15
  %2199 = icmp eq i32 %2198, 1
  br i1 %2199, label %2200, label %2216

2200:                                             ; preds = %2193
  %2201 = load ptr, ptr %14, align 8, !tbaa !9
  %2202 = load i32, ptr %24, align 4, !tbaa !5
  %2203 = load i32, ptr %26, align 4, !tbaa !5
  %2204 = sub nsw i32 %2202, %2203
  %2205 = sext i32 %2204 to i64
  %2206 = getelementptr inbounds float, ptr %2201, i64 %2205
  %2207 = load float, ptr %2206, align 4, !tbaa !16
  %2208 = load ptr, ptr %15, align 8, !tbaa !9
  %2209 = load i32, ptr %24, align 4, !tbaa !5
  %2210 = load i32, ptr %26, align 4, !tbaa !5
  %2211 = sub nsw i32 %2209, %2210
  %2212 = sext i32 %2211 to i64
  %2213 = getelementptr inbounds float, ptr %2208, i64 %2212
  %2214 = load float, ptr %2213, align 4, !tbaa !16
  %2215 = fsub float %2207, %2214
  br label %2310

2216:                                             ; preds = %2193
  %2217 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2218 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2217, i32 0, i32 8
  %2219 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2218, i64 0, i64 0
  %2220 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2219, i32 0, i32 1
  %2221 = load i32, ptr %2220, align 4, !tbaa !15
  %2222 = icmp eq i32 %2221, 2
  br i1 %2222, label %2223, label %2307

2223:                                             ; preds = %2216
  %2224 = load ptr, ptr %14, align 8, !tbaa !9
  %2225 = load i32, ptr %24, align 4, !tbaa !5
  %2226 = load i32, ptr %26, align 4, !tbaa !5
  %2227 = sub nsw i32 %2225, %2226
  %2228 = sext i32 %2227 to i64
  %2229 = getelementptr inbounds float, ptr %2224, i64 %2228
  %2230 = load float, ptr %2229, align 4, !tbaa !16
  %2231 = load ptr, ptr %16, align 8, !tbaa !9
  %2232 = load i32, ptr %24, align 4, !tbaa !5
  %2233 = load i32, ptr %26, align 4, !tbaa !5
  %2234 = sub nsw i32 %2232, %2233
  %2235 = sext i32 %2234 to i64
  %2236 = getelementptr inbounds float, ptr %2231, i64 %2235
  %2237 = load float, ptr %2236, align 4, !tbaa !16
  %2238 = load ptr, ptr %13, align 8, !tbaa !9
  %2239 = load i32, ptr %24, align 4, !tbaa !5
  %2240 = load i32, ptr %26, align 4, !tbaa !5
  %2241 = sub nsw i32 %2239, %2240
  %2242 = sext i32 %2241 to i64
  %2243 = getelementptr inbounds float, ptr %2238, i64 %2242
  %2244 = load float, ptr %2243, align 4, !tbaa !16
  %2245 = fcmp oge float %2237, %2244
  br i1 %2245, label %2246, label %2254

2246:                                             ; preds = %2223
  %2247 = load ptr, ptr %16, align 8, !tbaa !9
  %2248 = load i32, ptr %24, align 4, !tbaa !5
  %2249 = load i32, ptr %26, align 4, !tbaa !5
  %2250 = sub nsw i32 %2248, %2249
  %2251 = sext i32 %2250 to i64
  %2252 = getelementptr inbounds float, ptr %2247, i64 %2251
  %2253 = load float, ptr %2252, align 4, !tbaa !16
  br label %2262

2254:                                             ; preds = %2223
  %2255 = load ptr, ptr %13, align 8, !tbaa !9
  %2256 = load i32, ptr %24, align 4, !tbaa !5
  %2257 = load i32, ptr %26, align 4, !tbaa !5
  %2258 = sub nsw i32 %2256, %2257
  %2259 = sext i32 %2258 to i64
  %2260 = getelementptr inbounds float, ptr %2255, i64 %2259
  %2261 = load float, ptr %2260, align 4, !tbaa !16
  br label %2262

2262:                                             ; preds = %2254, %2246
  %2263 = phi float [ %2253, %2246 ], [ %2261, %2254 ]
  %2264 = fsub float %2230, %2263
  %2265 = load ptr, ptr %16, align 8, !tbaa !9
  %2266 = load i32, ptr %24, align 4, !tbaa !5
  %2267 = load i32, ptr %26, align 4, !tbaa !5
  %2268 = sub nsw i32 %2266, %2267
  %2269 = sext i32 %2268 to i64
  %2270 = getelementptr inbounds float, ptr %2265, i64 %2269
  %2271 = load float, ptr %2270, align 4, !tbaa !16
  %2272 = load ptr, ptr %13, align 8, !tbaa !9
  %2273 = load i32, ptr %24, align 4, !tbaa !5
  %2274 = load i32, ptr %26, align 4, !tbaa !5
  %2275 = sub nsw i32 %2273, %2274
  %2276 = sext i32 %2275 to i64
  %2277 = getelementptr inbounds float, ptr %2272, i64 %2276
  %2278 = load float, ptr %2277, align 4, !tbaa !16
  %2279 = fcmp oge float %2271, %2278
  br i1 %2279, label %2280, label %2288

2280:                                             ; preds = %2262
  %2281 = load ptr, ptr %13, align 8, !tbaa !9
  %2282 = load i32, ptr %24, align 4, !tbaa !5
  %2283 = load i32, ptr %26, align 4, !tbaa !5
  %2284 = sub nsw i32 %2282, %2283
  %2285 = sext i32 %2284 to i64
  %2286 = getelementptr inbounds float, ptr %2281, i64 %2285
  %2287 = load float, ptr %2286, align 4, !tbaa !16
  br label %2296

2288:                                             ; preds = %2262
  %2289 = load ptr, ptr %16, align 8, !tbaa !9
  %2290 = load i32, ptr %24, align 4, !tbaa !5
  %2291 = load i32, ptr %26, align 4, !tbaa !5
  %2292 = sub nsw i32 %2290, %2291
  %2293 = sext i32 %2292 to i64
  %2294 = getelementptr inbounds float, ptr %2289, i64 %2293
  %2295 = load float, ptr %2294, align 4, !tbaa !16
  br label %2296

2296:                                             ; preds = %2288, %2280
  %2297 = phi float [ %2287, %2280 ], [ %2295, %2288 ]
  %2298 = load ptr, ptr %15, align 8, !tbaa !9
  %2299 = load i32, ptr %24, align 4, !tbaa !5
  %2300 = load i32, ptr %26, align 4, !tbaa !5
  %2301 = sub nsw i32 %2299, %2300
  %2302 = sext i32 %2301 to i64
  %2303 = getelementptr inbounds float, ptr %2298, i64 %2302
  %2304 = load float, ptr %2303, align 4, !tbaa !16
  %2305 = fsub float %2297, %2304
  %2306 = fadd float %2264, %2305
  br label %2308

2307:                                             ; preds = %2216
  br label %2308

2308:                                             ; preds = %2307, %2296
  %2309 = phi float [ %2306, %2296 ], [ 0.000000e+00, %2307 ]
  br label %2310

2310:                                             ; preds = %2308, %2200
  %2311 = phi float [ %2215, %2200 ], [ %2309, %2308 ]
  %2312 = fpext float %2311 to double
  br label %2313

2313:                                             ; preds = %2310, %2175
  %2314 = phi double [ %2192, %2175 ], [ %2312, %2310 ]
  %2315 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2316 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2315, i32 0, i32 8
  %2317 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2316, i64 0, i64 0
  %2318 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2317, i32 0, i32 1
  %2319 = load i32, ptr %2318, align 4, !tbaa !15
  %2320 = icmp eq i32 %2319, 0
  br i1 %2320, label %2321, label %2339

2321:                                             ; preds = %2313
  %2322 = load ptr, ptr %16, align 8, !tbaa !9
  %2323 = load i32, ptr %27, align 4, !tbaa !5
  %2324 = load i32, ptr %26, align 4, !tbaa !5
  %2325 = sub nsw i32 %2323, %2324
  %2326 = sext i32 %2325 to i64
  %2327 = getelementptr inbounds float, ptr %2322, i64 %2326
  %2328 = load float, ptr %2327, align 4, !tbaa !16
  %2329 = load ptr, ptr %13, align 8, !tbaa !9
  %2330 = load i32, ptr %27, align 4, !tbaa !5
  %2331 = load i32, ptr %26, align 4, !tbaa !5
  %2332 = sub nsw i32 %2330, %2331
  %2333 = sext i32 %2332 to i64
  %2334 = getelementptr inbounds float, ptr %2329, i64 %2333
  %2335 = load float, ptr %2334, align 4, !tbaa !16
  %2336 = fsub float %2328, %2335
  %2337 = fpext float %2336 to double
  %2338 = call double @llvm.fabs.f64(double %2337)
  br label %2459

2339:                                             ; preds = %2313
  %2340 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2341 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2340, i32 0, i32 8
  %2342 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2341, i64 0, i64 0
  %2343 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2342, i32 0, i32 1
  %2344 = load i32, ptr %2343, align 4, !tbaa !15
  %2345 = icmp eq i32 %2344, 1
  br i1 %2345, label %2346, label %2362

2346:                                             ; preds = %2339
  %2347 = load ptr, ptr %14, align 8, !tbaa !9
  %2348 = load i32, ptr %27, align 4, !tbaa !5
  %2349 = load i32, ptr %26, align 4, !tbaa !5
  %2350 = sub nsw i32 %2348, %2349
  %2351 = sext i32 %2350 to i64
  %2352 = getelementptr inbounds float, ptr %2347, i64 %2351
  %2353 = load float, ptr %2352, align 4, !tbaa !16
  %2354 = load ptr, ptr %15, align 8, !tbaa !9
  %2355 = load i32, ptr %27, align 4, !tbaa !5
  %2356 = load i32, ptr %26, align 4, !tbaa !5
  %2357 = sub nsw i32 %2355, %2356
  %2358 = sext i32 %2357 to i64
  %2359 = getelementptr inbounds float, ptr %2354, i64 %2358
  %2360 = load float, ptr %2359, align 4, !tbaa !16
  %2361 = fsub float %2353, %2360
  br label %2456

2362:                                             ; preds = %2339
  %2363 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2364 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2363, i32 0, i32 8
  %2365 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2364, i64 0, i64 0
  %2366 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2365, i32 0, i32 1
  %2367 = load i32, ptr %2366, align 4, !tbaa !15
  %2368 = icmp eq i32 %2367, 2
  br i1 %2368, label %2369, label %2453

2369:                                             ; preds = %2362
  %2370 = load ptr, ptr %14, align 8, !tbaa !9
  %2371 = load i32, ptr %27, align 4, !tbaa !5
  %2372 = load i32, ptr %26, align 4, !tbaa !5
  %2373 = sub nsw i32 %2371, %2372
  %2374 = sext i32 %2373 to i64
  %2375 = getelementptr inbounds float, ptr %2370, i64 %2374
  %2376 = load float, ptr %2375, align 4, !tbaa !16
  %2377 = load ptr, ptr %16, align 8, !tbaa !9
  %2378 = load i32, ptr %27, align 4, !tbaa !5
  %2379 = load i32, ptr %26, align 4, !tbaa !5
  %2380 = sub nsw i32 %2378, %2379
  %2381 = sext i32 %2380 to i64
  %2382 = getelementptr inbounds float, ptr %2377, i64 %2381
  %2383 = load float, ptr %2382, align 4, !tbaa !16
  %2384 = load ptr, ptr %13, align 8, !tbaa !9
  %2385 = load i32, ptr %27, align 4, !tbaa !5
  %2386 = load i32, ptr %26, align 4, !tbaa !5
  %2387 = sub nsw i32 %2385, %2386
  %2388 = sext i32 %2387 to i64
  %2389 = getelementptr inbounds float, ptr %2384, i64 %2388
  %2390 = load float, ptr %2389, align 4, !tbaa !16
  %2391 = fcmp oge float %2383, %2390
  br i1 %2391, label %2392, label %2400

2392:                                             ; preds = %2369
  %2393 = load ptr, ptr %16, align 8, !tbaa !9
  %2394 = load i32, ptr %27, align 4, !tbaa !5
  %2395 = load i32, ptr %26, align 4, !tbaa !5
  %2396 = sub nsw i32 %2394, %2395
  %2397 = sext i32 %2396 to i64
  %2398 = getelementptr inbounds float, ptr %2393, i64 %2397
  %2399 = load float, ptr %2398, align 4, !tbaa !16
  br label %2408

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

2408:                                             ; preds = %2400, %2392
  %2409 = phi float [ %2399, %2392 ], [ %2407, %2400 ]
  %2410 = fsub float %2376, %2409
  %2411 = load ptr, ptr %16, align 8, !tbaa !9
  %2412 = load i32, ptr %27, align 4, !tbaa !5
  %2413 = load i32, ptr %26, align 4, !tbaa !5
  %2414 = sub nsw i32 %2412, %2413
  %2415 = sext i32 %2414 to i64
  %2416 = getelementptr inbounds float, ptr %2411, i64 %2415
  %2417 = load float, ptr %2416, align 4, !tbaa !16
  %2418 = load ptr, ptr %13, align 8, !tbaa !9
  %2419 = load i32, ptr %27, align 4, !tbaa !5
  %2420 = load i32, ptr %26, align 4, !tbaa !5
  %2421 = sub nsw i32 %2419, %2420
  %2422 = sext i32 %2421 to i64
  %2423 = getelementptr inbounds float, ptr %2418, i64 %2422
  %2424 = load float, ptr %2423, align 4, !tbaa !16
  %2425 = fcmp oge float %2417, %2424
  br i1 %2425, label %2426, label %2434

2426:                                             ; preds = %2408
  %2427 = load ptr, ptr %13, align 8, !tbaa !9
  %2428 = load i32, ptr %27, align 4, !tbaa !5
  %2429 = load i32, ptr %26, align 4, !tbaa !5
  %2430 = sub nsw i32 %2428, %2429
  %2431 = sext i32 %2430 to i64
  %2432 = getelementptr inbounds float, ptr %2427, i64 %2431
  %2433 = load float, ptr %2432, align 4, !tbaa !16
  br label %2442

2434:                                             ; preds = %2408
  %2435 = load ptr, ptr %16, align 8, !tbaa !9
  %2436 = load i32, ptr %27, align 4, !tbaa !5
  %2437 = load i32, ptr %26, align 4, !tbaa !5
  %2438 = sub nsw i32 %2436, %2437
  %2439 = sext i32 %2438 to i64
  %2440 = getelementptr inbounds float, ptr %2435, i64 %2439
  %2441 = load float, ptr %2440, align 4, !tbaa !16
  br label %2442

2442:                                             ; preds = %2434, %2426
  %2443 = phi float [ %2433, %2426 ], [ %2441, %2434 ]
  %2444 = load ptr, ptr %15, align 8, !tbaa !9
  %2445 = load i32, ptr %27, align 4, !tbaa !5
  %2446 = load i32, ptr %26, align 4, !tbaa !5
  %2447 = sub nsw i32 %2445, %2446
  %2448 = sext i32 %2447 to i64
  %2449 = getelementptr inbounds float, ptr %2444, i64 %2448
  %2450 = load float, ptr %2449, align 4, !tbaa !16
  %2451 = fsub float %2443, %2450
  %2452 = fadd float %2410, %2451
  br label %2454

2453:                                             ; preds = %2362
  br label %2454

2454:                                             ; preds = %2453, %2442
  %2455 = phi float [ %2452, %2442 ], [ 0.000000e+00, %2453 ]
  br label %2456

2456:                                             ; preds = %2454, %2346
  %2457 = phi float [ %2361, %2346 ], [ %2455, %2454 ]
  %2458 = fpext float %2457 to double
  br label %2459

2459:                                             ; preds = %2456, %2321
  %2460 = phi double [ %2338, %2321 ], [ %2458, %2456 ]
  %2461 = fsub double %2314, %2460
  %2462 = load i32, ptr %26, align 4, !tbaa !5
  %2463 = sext i32 %2462 to i64
  %2464 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 %2463
  %2465 = load double, ptr %2464, align 8, !tbaa !11
  %2466 = fadd double %2465, %2461
  store double %2466, ptr %2464, align 8, !tbaa !11
  %2467 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2468 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2467, i32 0, i32 8
  %2469 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2468, i64 0, i64 8
  %2470 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2469, i32 0, i32 1
  %2471 = load i32, ptr %2470, align 4, !tbaa !15
  %2472 = icmp eq i32 %2471, 0
  br i1 %2472, label %2473, label %2491

2473:                                             ; preds = %2459
  %2474 = load ptr, ptr %16, align 8, !tbaa !9
  %2475 = load i32, ptr %24, align 4, !tbaa !5
  %2476 = load i32, ptr %26, align 4, !tbaa !5
  %2477 = sub nsw i32 %2475, %2476
  %2478 = sext i32 %2477 to i64
  %2479 = getelementptr inbounds float, ptr %2474, i64 %2478
  %2480 = load float, ptr %2479, align 4, !tbaa !16
  %2481 = load ptr, ptr %13, align 8, !tbaa !9
  %2482 = load i32, ptr %24, align 4, !tbaa !5
  %2483 = load i32, ptr %26, align 4, !tbaa !5
  %2484 = sub nsw i32 %2482, %2483
  %2485 = sext i32 %2484 to i64
  %2486 = getelementptr inbounds float, ptr %2481, i64 %2485
  %2487 = load float, ptr %2486, align 4, !tbaa !16
  %2488 = fsub float %2480, %2487
  %2489 = fpext float %2488 to double
  %2490 = call double @llvm.fabs.f64(double %2489)
  br label %2611

2491:                                             ; preds = %2459
  %2492 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2493 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2492, i32 0, i32 8
  %2494 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2493, i64 0, i64 8
  %2495 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2494, i32 0, i32 1
  %2496 = load i32, ptr %2495, align 4, !tbaa !15
  %2497 = icmp eq i32 %2496, 1
  br i1 %2497, label %2498, label %2514

2498:                                             ; preds = %2491
  %2499 = load ptr, ptr %14, align 8, !tbaa !9
  %2500 = load i32, ptr %24, align 4, !tbaa !5
  %2501 = load i32, ptr %26, align 4, !tbaa !5
  %2502 = sub nsw i32 %2500, %2501
  %2503 = sext i32 %2502 to i64
  %2504 = getelementptr inbounds float, ptr %2499, i64 %2503
  %2505 = load float, ptr %2504, align 4, !tbaa !16
  %2506 = load ptr, ptr %15, align 8, !tbaa !9
  %2507 = load i32, ptr %24, align 4, !tbaa !5
  %2508 = load i32, ptr %26, align 4, !tbaa !5
  %2509 = sub nsw i32 %2507, %2508
  %2510 = sext i32 %2509 to i64
  %2511 = getelementptr inbounds float, ptr %2506, i64 %2510
  %2512 = load float, ptr %2511, align 4, !tbaa !16
  %2513 = fsub float %2505, %2512
  br label %2608

2514:                                             ; preds = %2491
  %2515 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2516 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2515, i32 0, i32 8
  %2517 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2516, i64 0, i64 8
  %2518 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2517, i32 0, i32 1
  %2519 = load i32, ptr %2518, align 4, !tbaa !15
  %2520 = icmp eq i32 %2519, 2
  br i1 %2520, label %2521, label %2605

2521:                                             ; preds = %2514
  %2522 = load ptr, ptr %14, align 8, !tbaa !9
  %2523 = load i32, ptr %24, align 4, !tbaa !5
  %2524 = load i32, ptr %26, align 4, !tbaa !5
  %2525 = sub nsw i32 %2523, %2524
  %2526 = sext i32 %2525 to i64
  %2527 = getelementptr inbounds float, ptr %2522, i64 %2526
  %2528 = load float, ptr %2527, align 4, !tbaa !16
  %2529 = load ptr, ptr %16, align 8, !tbaa !9
  %2530 = load i32, ptr %24, align 4, !tbaa !5
  %2531 = load i32, ptr %26, align 4, !tbaa !5
  %2532 = sub nsw i32 %2530, %2531
  %2533 = sext i32 %2532 to i64
  %2534 = getelementptr inbounds float, ptr %2529, i64 %2533
  %2535 = load float, ptr %2534, align 4, !tbaa !16
  %2536 = load ptr, ptr %13, align 8, !tbaa !9
  %2537 = load i32, ptr %24, align 4, !tbaa !5
  %2538 = load i32, ptr %26, align 4, !tbaa !5
  %2539 = sub nsw i32 %2537, %2538
  %2540 = sext i32 %2539 to i64
  %2541 = getelementptr inbounds float, ptr %2536, i64 %2540
  %2542 = load float, ptr %2541, align 4, !tbaa !16
  %2543 = fcmp oge float %2535, %2542
  br i1 %2543, label %2544, label %2552

2544:                                             ; preds = %2521
  %2545 = load ptr, ptr %16, align 8, !tbaa !9
  %2546 = load i32, ptr %24, align 4, !tbaa !5
  %2547 = load i32, ptr %26, align 4, !tbaa !5
  %2548 = sub nsw i32 %2546, %2547
  %2549 = sext i32 %2548 to i64
  %2550 = getelementptr inbounds float, ptr %2545, i64 %2549
  %2551 = load float, ptr %2550, align 4, !tbaa !16
  br label %2560

2552:                                             ; preds = %2521
  %2553 = load ptr, ptr %13, align 8, !tbaa !9
  %2554 = load i32, ptr %24, align 4, !tbaa !5
  %2555 = load i32, ptr %26, align 4, !tbaa !5
  %2556 = sub nsw i32 %2554, %2555
  %2557 = sext i32 %2556 to i64
  %2558 = getelementptr inbounds float, ptr %2553, i64 %2557
  %2559 = load float, ptr %2558, align 4, !tbaa !16
  br label %2560

2560:                                             ; preds = %2552, %2544
  %2561 = phi float [ %2551, %2544 ], [ %2559, %2552 ]
  %2562 = fsub float %2528, %2561
  %2563 = load ptr, ptr %16, align 8, !tbaa !9
  %2564 = load i32, ptr %24, align 4, !tbaa !5
  %2565 = load i32, ptr %26, align 4, !tbaa !5
  %2566 = sub nsw i32 %2564, %2565
  %2567 = sext i32 %2566 to i64
  %2568 = getelementptr inbounds float, ptr %2563, i64 %2567
  %2569 = load float, ptr %2568, align 4, !tbaa !16
  %2570 = load ptr, ptr %13, align 8, !tbaa !9
  %2571 = load i32, ptr %24, align 4, !tbaa !5
  %2572 = load i32, ptr %26, align 4, !tbaa !5
  %2573 = sub nsw i32 %2571, %2572
  %2574 = sext i32 %2573 to i64
  %2575 = getelementptr inbounds float, ptr %2570, i64 %2574
  %2576 = load float, ptr %2575, align 4, !tbaa !16
  %2577 = fcmp oge float %2569, %2576
  br i1 %2577, label %2578, label %2586

2578:                                             ; preds = %2560
  %2579 = load ptr, ptr %13, align 8, !tbaa !9
  %2580 = load i32, ptr %24, align 4, !tbaa !5
  %2581 = load i32, ptr %26, align 4, !tbaa !5
  %2582 = sub nsw i32 %2580, %2581
  %2583 = sext i32 %2582 to i64
  %2584 = getelementptr inbounds float, ptr %2579, i64 %2583
  %2585 = load float, ptr %2584, align 4, !tbaa !16
  br label %2594

2586:                                             ; preds = %2560
  %2587 = load ptr, ptr %16, align 8, !tbaa !9
  %2588 = load i32, ptr %24, align 4, !tbaa !5
  %2589 = load i32, ptr %26, align 4, !tbaa !5
  %2590 = sub nsw i32 %2588, %2589
  %2591 = sext i32 %2590 to i64
  %2592 = getelementptr inbounds float, ptr %2587, i64 %2591
  %2593 = load float, ptr %2592, align 4, !tbaa !16
  br label %2594

2594:                                             ; preds = %2586, %2578
  %2595 = phi float [ %2585, %2578 ], [ %2593, %2586 ]
  %2596 = load ptr, ptr %15, align 8, !tbaa !9
  %2597 = load i32, ptr %24, align 4, !tbaa !5
  %2598 = load i32, ptr %26, align 4, !tbaa !5
  %2599 = sub nsw i32 %2597, %2598
  %2600 = sext i32 %2599 to i64
  %2601 = getelementptr inbounds float, ptr %2596, i64 %2600
  %2602 = load float, ptr %2601, align 4, !tbaa !16
  %2603 = fsub float %2595, %2602
  %2604 = fadd float %2562, %2603
  br label %2606

2605:                                             ; preds = %2514
  br label %2606

2606:                                             ; preds = %2605, %2594
  %2607 = phi float [ %2604, %2594 ], [ 0.000000e+00, %2605 ]
  br label %2608

2608:                                             ; preds = %2606, %2498
  %2609 = phi float [ %2513, %2498 ], [ %2607, %2606 ]
  %2610 = fpext float %2609 to double
  br label %2611

2611:                                             ; preds = %2608, %2473
  %2612 = phi double [ %2490, %2473 ], [ %2610, %2608 ]
  %2613 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2614 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2613, i32 0, i32 8
  %2615 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2614, i64 0, i64 8
  %2616 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2615, i32 0, i32 1
  %2617 = load i32, ptr %2616, align 4, !tbaa !15
  %2618 = icmp eq i32 %2617, 0
  br i1 %2618, label %2619, label %2637

2619:                                             ; preds = %2611
  %2620 = load ptr, ptr %16, align 8, !tbaa !9
  %2621 = load i32, ptr %30, align 4, !tbaa !5
  %2622 = load i32, ptr %26, align 4, !tbaa !5
  %2623 = sub nsw i32 %2621, %2622
  %2624 = sext i32 %2623 to i64
  %2625 = getelementptr inbounds float, ptr %2620, i64 %2624
  %2626 = load float, ptr %2625, align 4, !tbaa !16
  %2627 = load ptr, ptr %13, align 8, !tbaa !9
  %2628 = load i32, ptr %30, align 4, !tbaa !5
  %2629 = load i32, ptr %26, align 4, !tbaa !5
  %2630 = sub nsw i32 %2628, %2629
  %2631 = sext i32 %2630 to i64
  %2632 = getelementptr inbounds float, ptr %2627, i64 %2631
  %2633 = load float, ptr %2632, align 4, !tbaa !16
  %2634 = fsub float %2626, %2633
  %2635 = fpext float %2634 to double
  %2636 = call double @llvm.fabs.f64(double %2635)
  br label %2757

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

2644:                                             ; preds = %2637
  %2645 = load ptr, ptr %14, align 8, !tbaa !9
  %2646 = load i32, ptr %30, align 4, !tbaa !5
  %2647 = load i32, ptr %26, align 4, !tbaa !5
  %2648 = sub nsw i32 %2646, %2647
  %2649 = sext i32 %2648 to i64
  %2650 = getelementptr inbounds float, ptr %2645, i64 %2649
  %2651 = load float, ptr %2650, align 4, !tbaa !16
  %2652 = load ptr, ptr %15, align 8, !tbaa !9
  %2653 = load i32, ptr %30, align 4, !tbaa !5
  %2654 = load i32, ptr %26, align 4, !tbaa !5
  %2655 = sub nsw i32 %2653, %2654
  %2656 = sext i32 %2655 to i64
  %2657 = getelementptr inbounds float, ptr %2652, i64 %2656
  %2658 = load float, ptr %2657, align 4, !tbaa !16
  %2659 = fsub float %2651, %2658
  br label %2754

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

2667:                                             ; preds = %2660
  %2668 = load ptr, ptr %14, align 8, !tbaa !9
  %2669 = load i32, ptr %30, align 4, !tbaa !5
  %2670 = load i32, ptr %26, align 4, !tbaa !5
  %2671 = sub nsw i32 %2669, %2670
  %2672 = sext i32 %2671 to i64
  %2673 = getelementptr inbounds float, ptr %2668, i64 %2672
  %2674 = load float, ptr %2673, align 4, !tbaa !16
  %2675 = load ptr, ptr %16, align 8, !tbaa !9
  %2676 = load i32, ptr %30, align 4, !tbaa !5
  %2677 = load i32, ptr %26, align 4, !tbaa !5
  %2678 = sub nsw i32 %2676, %2677
  %2679 = sext i32 %2678 to i64
  %2680 = getelementptr inbounds float, ptr %2675, i64 %2679
  %2681 = load float, ptr %2680, align 4, !tbaa !16
  %2682 = load ptr, ptr %13, align 8, !tbaa !9
  %2683 = load i32, ptr %30, align 4, !tbaa !5
  %2684 = load i32, ptr %26, align 4, !tbaa !5
  %2685 = sub nsw i32 %2683, %2684
  %2686 = sext i32 %2685 to i64
  %2687 = getelementptr inbounds float, ptr %2682, i64 %2686
  %2688 = load float, ptr %2687, align 4, !tbaa !16
  %2689 = fcmp oge float %2681, %2688
  br i1 %2689, label %2690, label %2698

2690:                                             ; preds = %2667
  %2691 = load ptr, ptr %16, align 8, !tbaa !9
  %2692 = load i32, ptr %30, align 4, !tbaa !5
  %2693 = load i32, ptr %26, align 4, !tbaa !5
  %2694 = sub nsw i32 %2692, %2693
  %2695 = sext i32 %2694 to i64
  %2696 = getelementptr inbounds float, ptr %2691, i64 %2695
  %2697 = load float, ptr %2696, align 4, !tbaa !16
  br label %2706

2698:                                             ; preds = %2667
  %2699 = load ptr, ptr %13, align 8, !tbaa !9
  %2700 = load i32, ptr %30, align 4, !tbaa !5
  %2701 = load i32, ptr %26, align 4, !tbaa !5
  %2702 = sub nsw i32 %2700, %2701
  %2703 = sext i32 %2702 to i64
  %2704 = getelementptr inbounds float, ptr %2699, i64 %2703
  %2705 = load float, ptr %2704, align 4, !tbaa !16
  br label %2706

2706:                                             ; preds = %2698, %2690
  %2707 = phi float [ %2697, %2690 ], [ %2705, %2698 ]
  %2708 = fsub float %2674, %2707
  %2709 = load ptr, ptr %16, align 8, !tbaa !9
  %2710 = load i32, ptr %30, align 4, !tbaa !5
  %2711 = load i32, ptr %26, align 4, !tbaa !5
  %2712 = sub nsw i32 %2710, %2711
  %2713 = sext i32 %2712 to i64
  %2714 = getelementptr inbounds float, ptr %2709, i64 %2713
  %2715 = load float, ptr %2714, align 4, !tbaa !16
  %2716 = load ptr, ptr %13, align 8, !tbaa !9
  %2717 = load i32, ptr %30, align 4, !tbaa !5
  %2718 = load i32, ptr %26, align 4, !tbaa !5
  %2719 = sub nsw i32 %2717, %2718
  %2720 = sext i32 %2719 to i64
  %2721 = getelementptr inbounds float, ptr %2716, i64 %2720
  %2722 = load float, ptr %2721, align 4, !tbaa !16
  %2723 = fcmp oge float %2715, %2722
  br i1 %2723, label %2724, label %2732

2724:                                             ; preds = %2706
  %2725 = load ptr, ptr %13, align 8, !tbaa !9
  %2726 = load i32, ptr %30, align 4, !tbaa !5
  %2727 = load i32, ptr %26, align 4, !tbaa !5
  %2728 = sub nsw i32 %2726, %2727
  %2729 = sext i32 %2728 to i64
  %2730 = getelementptr inbounds float, ptr %2725, i64 %2729
  %2731 = load float, ptr %2730, align 4, !tbaa !16
  br label %2740

2732:                                             ; preds = %2706
  %2733 = load ptr, ptr %16, align 8, !tbaa !9
  %2734 = load i32, ptr %30, align 4, !tbaa !5
  %2735 = load i32, ptr %26, align 4, !tbaa !5
  %2736 = sub nsw i32 %2734, %2735
  %2737 = sext i32 %2736 to i64
  %2738 = getelementptr inbounds float, ptr %2733, i64 %2737
  %2739 = load float, ptr %2738, align 4, !tbaa !16
  br label %2740

2740:                                             ; preds = %2732, %2724
  %2741 = phi float [ %2731, %2724 ], [ %2739, %2732 ]
  %2742 = load ptr, ptr %15, align 8, !tbaa !9
  %2743 = load i32, ptr %30, align 4, !tbaa !5
  %2744 = load i32, ptr %26, align 4, !tbaa !5
  %2745 = sub nsw i32 %2743, %2744
  %2746 = sext i32 %2745 to i64
  %2747 = getelementptr inbounds float, ptr %2742, i64 %2746
  %2748 = load float, ptr %2747, align 4, !tbaa !16
  %2749 = fsub float %2741, %2748
  %2750 = fadd float %2708, %2749
  br label %2752

2751:                                             ; preds = %2660
  br label %2752

2752:                                             ; preds = %2751, %2740
  %2753 = phi float [ %2750, %2740 ], [ 0.000000e+00, %2751 ]
  br label %2754

2754:                                             ; preds = %2752, %2644
  %2755 = phi float [ %2659, %2644 ], [ %2753, %2752 ]
  %2756 = fpext float %2755 to double
  br label %2757

2757:                                             ; preds = %2754, %2619
  %2758 = phi double [ %2636, %2619 ], [ %2756, %2754 ]
  %2759 = fsub double %2612, %2758
  %2760 = load i32, ptr %26, align 4, !tbaa !5
  %2761 = sext i32 %2760 to i64
  %2762 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 %2761
  %2763 = load double, ptr %2762, align 8, !tbaa !11
  %2764 = fadd double %2763, %2759
  store double %2764, ptr %2762, align 8, !tbaa !11
  br label %2765

2765:                                             ; preds = %2757
  %2766 = load i32, ptr %26, align 4, !tbaa !5
  %2767 = add nsw i32 %2766, -1
  store i32 %2767, ptr %26, align 4, !tbaa !5
  br label %2165, !llvm.loop !24

2768:                                             ; preds = %2165
  %2769 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2770 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2769, i32 0, i32 8
  %2771 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2770, i64 0, i64 2
  %2772 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2771, i32 0, i32 1
  %2773 = load i32, ptr %2772, align 4, !tbaa !15
  %2774 = icmp eq i32 %2773, 0
  br i1 %2774, label %2775, label %2789

2775:                                             ; preds = %2768
  %2776 = load ptr, ptr %16, align 8, !tbaa !9
  %2777 = load i32, ptr %24, align 4, !tbaa !5
  %2778 = sext i32 %2777 to i64
  %2779 = getelementptr inbounds float, ptr %2776, i64 %2778
  %2780 = load float, ptr %2779, align 4, !tbaa !16
  %2781 = load ptr, ptr %13, align 8, !tbaa !9
  %2782 = load i32, ptr %24, align 4, !tbaa !5
  %2783 = sext i32 %2782 to i64
  %2784 = getelementptr inbounds float, ptr %2781, i64 %2783
  %2785 = load float, ptr %2784, align 4, !tbaa !16
  %2786 = fsub float %2780, %2785
  %2787 = fpext float %2786 to double
  %2788 = call double @llvm.fabs.f64(double %2787)
  br label %2885

2789:                                             ; preds = %2768
  %2790 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2791 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2790, i32 0, i32 8
  %2792 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2791, i64 0, i64 2
  %2793 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2792, i32 0, i32 1
  %2794 = load i32, ptr %2793, align 4, !tbaa !15
  %2795 = icmp eq i32 %2794, 1
  br i1 %2795, label %2796, label %2808

2796:                                             ; preds = %2789
  %2797 = load ptr, ptr %14, align 8, !tbaa !9
  %2798 = load i32, ptr %24, align 4, !tbaa !5
  %2799 = sext i32 %2798 to i64
  %2800 = getelementptr inbounds float, ptr %2797, i64 %2799
  %2801 = load float, ptr %2800, align 4, !tbaa !16
  %2802 = load ptr, ptr %15, align 8, !tbaa !9
  %2803 = load i32, ptr %24, align 4, !tbaa !5
  %2804 = sext i32 %2803 to i64
  %2805 = getelementptr inbounds float, ptr %2802, i64 %2804
  %2806 = load float, ptr %2805, align 4, !tbaa !16
  %2807 = fsub float %2801, %2806
  br label %2882

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

2815:                                             ; preds = %2808
  %2816 = load ptr, ptr %14, align 8, !tbaa !9
  %2817 = load i32, ptr %24, align 4, !tbaa !5
  %2818 = sext i32 %2817 to i64
  %2819 = getelementptr inbounds float, ptr %2816, i64 %2818
  %2820 = load float, ptr %2819, align 4, !tbaa !16
  %2821 = load ptr, ptr %16, align 8, !tbaa !9
  %2822 = load i32, ptr %24, align 4, !tbaa !5
  %2823 = sext i32 %2822 to i64
  %2824 = getelementptr inbounds float, ptr %2821, i64 %2823
  %2825 = load float, ptr %2824, align 4, !tbaa !16
  %2826 = load ptr, ptr %13, align 8, !tbaa !9
  %2827 = load i32, ptr %24, align 4, !tbaa !5
  %2828 = sext i32 %2827 to i64
  %2829 = getelementptr inbounds float, ptr %2826, i64 %2828
  %2830 = load float, ptr %2829, align 4, !tbaa !16
  %2831 = fcmp oge float %2825, %2830
  br i1 %2831, label %2832, label %2838

2832:                                             ; preds = %2815
  %2833 = load ptr, ptr %16, align 8, !tbaa !9
  %2834 = load i32, ptr %24, align 4, !tbaa !5
  %2835 = sext i32 %2834 to i64
  %2836 = getelementptr inbounds float, ptr %2833, i64 %2835
  %2837 = load float, ptr %2836, align 4, !tbaa !16
  br label %2844

2838:                                             ; preds = %2815
  %2839 = load ptr, ptr %13, align 8, !tbaa !9
  %2840 = load i32, ptr %24, align 4, !tbaa !5
  %2841 = sext i32 %2840 to i64
  %2842 = getelementptr inbounds float, ptr %2839, i64 %2841
  %2843 = load float, ptr %2842, align 4, !tbaa !16
  br label %2844

2844:                                             ; preds = %2838, %2832
  %2845 = phi float [ %2837, %2832 ], [ %2843, %2838 ]
  %2846 = fsub float %2820, %2845
  %2847 = load ptr, ptr %16, align 8, !tbaa !9
  %2848 = load i32, ptr %24, align 4, !tbaa !5
  %2849 = sext i32 %2848 to i64
  %2850 = getelementptr inbounds float, ptr %2847, i64 %2849
  %2851 = load float, ptr %2850, align 4, !tbaa !16
  %2852 = load ptr, ptr %13, align 8, !tbaa !9
  %2853 = load i32, ptr %24, align 4, !tbaa !5
  %2854 = sext i32 %2853 to i64
  %2855 = getelementptr inbounds float, ptr %2852, i64 %2854
  %2856 = load float, ptr %2855, align 4, !tbaa !16
  %2857 = fcmp oge float %2851, %2856
  br i1 %2857, label %2858, label %2864

2858:                                             ; preds = %2844
  %2859 = load ptr, ptr %13, align 8, !tbaa !9
  %2860 = load i32, ptr %24, align 4, !tbaa !5
  %2861 = sext i32 %2860 to i64
  %2862 = getelementptr inbounds float, ptr %2859, i64 %2861
  %2863 = load float, ptr %2862, align 4, !tbaa !16
  br label %2870

2864:                                             ; preds = %2844
  %2865 = load ptr, ptr %16, align 8, !tbaa !9
  %2866 = load i32, ptr %24, align 4, !tbaa !5
  %2867 = sext i32 %2866 to i64
  %2868 = getelementptr inbounds float, ptr %2865, i64 %2867
  %2869 = load float, ptr %2868, align 4, !tbaa !16
  br label %2870

2870:                                             ; preds = %2864, %2858
  %2871 = phi float [ %2863, %2858 ], [ %2869, %2864 ]
  %2872 = load ptr, ptr %15, align 8, !tbaa !9
  %2873 = load i32, ptr %24, align 4, !tbaa !5
  %2874 = sext i32 %2873 to i64
  %2875 = getelementptr inbounds float, ptr %2872, i64 %2874
  %2876 = load float, ptr %2875, align 4, !tbaa !16
  %2877 = fsub float %2871, %2876
  %2878 = fadd float %2846, %2877
  br label %2880

2879:                                             ; preds = %2808
  br label %2880

2880:                                             ; preds = %2879, %2870
  %2881 = phi float [ %2878, %2870 ], [ 0.000000e+00, %2879 ]
  br label %2882

2882:                                             ; preds = %2880, %2796
  %2883 = phi float [ %2807, %2796 ], [ %2881, %2880 ]
  %2884 = fpext float %2883 to double
  br label %2885

2885:                                             ; preds = %2882, %2775
  %2886 = phi double [ %2788, %2775 ], [ %2884, %2882 ]
  %2887 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2888 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2887, i32 0, i32 8
  %2889 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2888, i64 0, i64 2
  %2890 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2889, i32 0, i32 1
  %2891 = load i32, ptr %2890, align 4, !tbaa !15
  %2892 = icmp eq i32 %2891, 0
  br i1 %2892, label %2893, label %2907

2893:                                             ; preds = %2885
  %2894 = load ptr, ptr %16, align 8, !tbaa !9
  %2895 = load i32, ptr %28, align 4, !tbaa !5
  %2896 = sext i32 %2895 to i64
  %2897 = getelementptr inbounds float, ptr %2894, i64 %2896
  %2898 = load float, ptr %2897, align 4, !tbaa !16
  %2899 = load ptr, ptr %13, align 8, !tbaa !9
  %2900 = load i32, ptr %28, align 4, !tbaa !5
  %2901 = sext i32 %2900 to i64
  %2902 = getelementptr inbounds float, ptr %2899, i64 %2901
  %2903 = load float, ptr %2902, align 4, !tbaa !16
  %2904 = fsub float %2898, %2903
  %2905 = fpext float %2904 to double
  %2906 = call double @llvm.fabs.f64(double %2905)
  br label %3003

2907:                                             ; preds = %2885
  %2908 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2909 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2908, i32 0, i32 8
  %2910 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2909, i64 0, i64 2
  %2911 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2910, i32 0, i32 1
  %2912 = load i32, ptr %2911, align 4, !tbaa !15
  %2913 = icmp eq i32 %2912, 1
  br i1 %2913, label %2914, label %2926

2914:                                             ; preds = %2907
  %2915 = load ptr, ptr %14, align 8, !tbaa !9
  %2916 = load i32, ptr %28, align 4, !tbaa !5
  %2917 = sext i32 %2916 to i64
  %2918 = getelementptr inbounds float, ptr %2915, i64 %2917
  %2919 = load float, ptr %2918, align 4, !tbaa !16
  %2920 = load ptr, ptr %15, align 8, !tbaa !9
  %2921 = load i32, ptr %28, align 4, !tbaa !5
  %2922 = sext i32 %2921 to i64
  %2923 = getelementptr inbounds float, ptr %2920, i64 %2922
  %2924 = load float, ptr %2923, align 4, !tbaa !16
  %2925 = fsub float %2919, %2924
  br label %3000

2926:                                             ; preds = %2907
  %2927 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2928 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2927, i32 0, i32 8
  %2929 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2928, i64 0, i64 2
  %2930 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2929, i32 0, i32 1
  %2931 = load i32, ptr %2930, align 4, !tbaa !15
  %2932 = icmp eq i32 %2931, 2
  br i1 %2932, label %2933, label %2997

2933:                                             ; preds = %2926
  %2934 = load ptr, ptr %14, align 8, !tbaa !9
  %2935 = load i32, ptr %28, align 4, !tbaa !5
  %2936 = sext i32 %2935 to i64
  %2937 = getelementptr inbounds float, ptr %2934, i64 %2936
  %2938 = load float, ptr %2937, align 4, !tbaa !16
  %2939 = load ptr, ptr %16, align 8, !tbaa !9
  %2940 = load i32, ptr %28, align 4, !tbaa !5
  %2941 = sext i32 %2940 to i64
  %2942 = getelementptr inbounds float, ptr %2939, i64 %2941
  %2943 = load float, ptr %2942, align 4, !tbaa !16
  %2944 = load ptr, ptr %13, align 8, !tbaa !9
  %2945 = load i32, ptr %28, align 4, !tbaa !5
  %2946 = sext i32 %2945 to i64
  %2947 = getelementptr inbounds float, ptr %2944, i64 %2946
  %2948 = load float, ptr %2947, align 4, !tbaa !16
  %2949 = fcmp oge float %2943, %2948
  br i1 %2949, label %2950, label %2956

2950:                                             ; preds = %2933
  %2951 = load ptr, ptr %16, align 8, !tbaa !9
  %2952 = load i32, ptr %28, align 4, !tbaa !5
  %2953 = sext i32 %2952 to i64
  %2954 = getelementptr inbounds float, ptr %2951, i64 %2953
  %2955 = load float, ptr %2954, align 4, !tbaa !16
  br label %2962

2956:                                             ; preds = %2933
  %2957 = load ptr, ptr %13, align 8, !tbaa !9
  %2958 = load i32, ptr %28, align 4, !tbaa !5
  %2959 = sext i32 %2958 to i64
  %2960 = getelementptr inbounds float, ptr %2957, i64 %2959
  %2961 = load float, ptr %2960, align 4, !tbaa !16
  br label %2962

2962:                                             ; preds = %2956, %2950
  %2963 = phi float [ %2955, %2950 ], [ %2961, %2956 ]
  %2964 = fsub float %2938, %2963
  %2965 = load ptr, ptr %16, align 8, !tbaa !9
  %2966 = load i32, ptr %28, align 4, !tbaa !5
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds float, ptr %2965, i64 %2967
  %2969 = load float, ptr %2968, align 4, !tbaa !16
  %2970 = load ptr, ptr %13, align 8, !tbaa !9
  %2971 = load i32, ptr %28, align 4, !tbaa !5
  %2972 = sext i32 %2971 to i64
  %2973 = getelementptr inbounds float, ptr %2970, i64 %2972
  %2974 = load float, ptr %2973, align 4, !tbaa !16
  %2975 = fcmp oge float %2969, %2974
  br i1 %2975, label %2976, label %2982

2976:                                             ; preds = %2962
  %2977 = load ptr, ptr %13, align 8, !tbaa !9
  %2978 = load i32, ptr %28, align 4, !tbaa !5
  %2979 = sext i32 %2978 to i64
  %2980 = getelementptr inbounds float, ptr %2977, i64 %2979
  %2981 = load float, ptr %2980, align 4, !tbaa !16
  br label %2988

2982:                                             ; preds = %2962
  %2983 = load ptr, ptr %16, align 8, !tbaa !9
  %2984 = load i32, ptr %28, align 4, !tbaa !5
  %2985 = sext i32 %2984 to i64
  %2986 = getelementptr inbounds float, ptr %2983, i64 %2985
  %2987 = load float, ptr %2986, align 4, !tbaa !16
  br label %2988

2988:                                             ; preds = %2982, %2976
  %2989 = phi float [ %2981, %2976 ], [ %2987, %2982 ]
  %2990 = load ptr, ptr %15, align 8, !tbaa !9
  %2991 = load i32, ptr %28, align 4, !tbaa !5
  %2992 = sext i32 %2991 to i64
  %2993 = getelementptr inbounds float, ptr %2990, i64 %2992
  %2994 = load float, ptr %2993, align 4, !tbaa !16
  %2995 = fsub float %2989, %2994
  %2996 = fadd float %2964, %2995
  br label %2998

2997:                                             ; preds = %2926
  br label %2998

2998:                                             ; preds = %2997, %2988
  %2999 = phi float [ %2996, %2988 ], [ 0.000000e+00, %2997 ]
  br label %3000

3000:                                             ; preds = %2998, %2914
  %3001 = phi float [ %2925, %2914 ], [ %2999, %2998 ]
  %3002 = fpext float %3001 to double
  br label %3003

3003:                                             ; preds = %3000, %2893
  %3004 = phi double [ %2906, %2893 ], [ %3002, %3000 ]
  %3005 = fsub double %2886, %3004
  %3006 = load double, ptr %22, align 8, !tbaa !11
  %3007 = fadd double %3006, %3005
  store double %3007, ptr %22, align 8, !tbaa !11
  %3008 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3009 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3008, i32 0, i32 8
  %3010 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3009, i64 0, i64 7
  %3011 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3010, i32 0, i32 1
  %3012 = load i32, ptr %3011, align 4, !tbaa !15
  %3013 = icmp eq i32 %3012, 0
  br i1 %3013, label %3014, label %3030

3014:                                             ; preds = %3003
  %3015 = load ptr, ptr %16, align 8, !tbaa !9
  %3016 = load i32, ptr %24, align 4, !tbaa !5
  %3017 = sub nsw i32 %3016, 1
  %3018 = sext i32 %3017 to i64
  %3019 = getelementptr inbounds float, ptr %3015, i64 %3018
  %3020 = load float, ptr %3019, align 4, !tbaa !16
  %3021 = load ptr, ptr %13, align 8, !tbaa !9
  %3022 = load i32, ptr %24, align 4, !tbaa !5
  %3023 = sub nsw i32 %3022, 1
  %3024 = sext i32 %3023 to i64
  %3025 = getelementptr inbounds float, ptr %3021, i64 %3024
  %3026 = load float, ptr %3025, align 4, !tbaa !16
  %3027 = fsub float %3020, %3026
  %3028 = fpext float %3027 to double
  %3029 = call double @llvm.fabs.f64(double %3028)
  br label %3138

3030:                                             ; preds = %3003
  %3031 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3032 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3031, i32 0, i32 8
  %3033 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3032, i64 0, i64 7
  %3034 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3033, i32 0, i32 1
  %3035 = load i32, ptr %3034, align 4, !tbaa !15
  %3036 = icmp eq i32 %3035, 1
  br i1 %3036, label %3037, label %3051

3037:                                             ; preds = %3030
  %3038 = load ptr, ptr %14, align 8, !tbaa !9
  %3039 = load i32, ptr %24, align 4, !tbaa !5
  %3040 = sub nsw i32 %3039, 1
  %3041 = sext i32 %3040 to i64
  %3042 = getelementptr inbounds float, ptr %3038, i64 %3041
  %3043 = load float, ptr %3042, align 4, !tbaa !16
  %3044 = load ptr, ptr %15, align 8, !tbaa !9
  %3045 = load i32, ptr %24, align 4, !tbaa !5
  %3046 = sub nsw i32 %3045, 1
  %3047 = sext i32 %3046 to i64
  %3048 = getelementptr inbounds float, ptr %3044, i64 %3047
  %3049 = load float, ptr %3048, align 4, !tbaa !16
  %3050 = fsub float %3043, %3049
  br label %3135

3051:                                             ; preds = %3030
  %3052 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3053 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3052, i32 0, i32 8
  %3054 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3053, i64 0, i64 7
  %3055 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3054, i32 0, i32 1
  %3056 = load i32, ptr %3055, align 4, !tbaa !15
  %3057 = icmp eq i32 %3056, 2
  br i1 %3057, label %3058, label %3132

3058:                                             ; preds = %3051
  %3059 = load ptr, ptr %14, align 8, !tbaa !9
  %3060 = load i32, ptr %24, align 4, !tbaa !5
  %3061 = sub nsw i32 %3060, 1
  %3062 = sext i32 %3061 to i64
  %3063 = getelementptr inbounds float, ptr %3059, i64 %3062
  %3064 = load float, ptr %3063, align 4, !tbaa !16
  %3065 = load ptr, ptr %16, align 8, !tbaa !9
  %3066 = load i32, ptr %24, align 4, !tbaa !5
  %3067 = sub nsw i32 %3066, 1
  %3068 = sext i32 %3067 to i64
  %3069 = getelementptr inbounds float, ptr %3065, i64 %3068
  %3070 = load float, ptr %3069, align 4, !tbaa !16
  %3071 = load ptr, ptr %13, align 8, !tbaa !9
  %3072 = load i32, ptr %24, align 4, !tbaa !5
  %3073 = sub nsw i32 %3072, 1
  %3074 = sext i32 %3073 to i64
  %3075 = getelementptr inbounds float, ptr %3071, i64 %3074
  %3076 = load float, ptr %3075, align 4, !tbaa !16
  %3077 = fcmp oge float %3070, %3076
  br i1 %3077, label %3078, label %3085

3078:                                             ; preds = %3058
  %3079 = load ptr, ptr %16, align 8, !tbaa !9
  %3080 = load i32, ptr %24, align 4, !tbaa !5
  %3081 = sub nsw i32 %3080, 1
  %3082 = sext i32 %3081 to i64
  %3083 = getelementptr inbounds float, ptr %3079, i64 %3082
  %3084 = load float, ptr %3083, align 4, !tbaa !16
  br label %3092

3085:                                             ; preds = %3058
  %3086 = load ptr, ptr %13, align 8, !tbaa !9
  %3087 = load i32, ptr %24, align 4, !tbaa !5
  %3088 = sub nsw i32 %3087, 1
  %3089 = sext i32 %3088 to i64
  %3090 = getelementptr inbounds float, ptr %3086, i64 %3089
  %3091 = load float, ptr %3090, align 4, !tbaa !16
  br label %3092

3092:                                             ; preds = %3085, %3078
  %3093 = phi float [ %3084, %3078 ], [ %3091, %3085 ]
  %3094 = fsub float %3064, %3093
  %3095 = load ptr, ptr %16, align 8, !tbaa !9
  %3096 = load i32, ptr %24, align 4, !tbaa !5
  %3097 = sub nsw i32 %3096, 1
  %3098 = sext i32 %3097 to i64
  %3099 = getelementptr inbounds float, ptr %3095, i64 %3098
  %3100 = load float, ptr %3099, align 4, !tbaa !16
  %3101 = load ptr, ptr %13, align 8, !tbaa !9
  %3102 = load i32, ptr %24, align 4, !tbaa !5
  %3103 = sub nsw i32 %3102, 1
  %3104 = sext i32 %3103 to i64
  %3105 = getelementptr inbounds float, ptr %3101, i64 %3104
  %3106 = load float, ptr %3105, align 4, !tbaa !16
  %3107 = fcmp oge float %3100, %3106
  br i1 %3107, label %3108, label %3115

3108:                                             ; preds = %3092
  %3109 = load ptr, ptr %13, align 8, !tbaa !9
  %3110 = load i32, ptr %24, align 4, !tbaa !5
  %3111 = sub nsw i32 %3110, 1
  %3112 = sext i32 %3111 to i64
  %3113 = getelementptr inbounds float, ptr %3109, i64 %3112
  %3114 = load float, ptr %3113, align 4, !tbaa !16
  br label %3122

3115:                                             ; preds = %3092
  %3116 = load ptr, ptr %16, align 8, !tbaa !9
  %3117 = load i32, ptr %24, align 4, !tbaa !5
  %3118 = sub nsw i32 %3117, 1
  %3119 = sext i32 %3118 to i64
  %3120 = getelementptr inbounds float, ptr %3116, i64 %3119
  %3121 = load float, ptr %3120, align 4, !tbaa !16
  br label %3122

3122:                                             ; preds = %3115, %3108
  %3123 = phi float [ %3114, %3108 ], [ %3121, %3115 ]
  %3124 = load ptr, ptr %15, align 8, !tbaa !9
  %3125 = load i32, ptr %24, align 4, !tbaa !5
  %3126 = sub nsw i32 %3125, 1
  %3127 = sext i32 %3126 to i64
  %3128 = getelementptr inbounds float, ptr %3124, i64 %3127
  %3129 = load float, ptr %3128, align 4, !tbaa !16
  %3130 = fsub float %3123, %3129
  %3131 = fadd float %3094, %3130
  br label %3133

3132:                                             ; preds = %3051
  br label %3133

3133:                                             ; preds = %3132, %3122
  %3134 = phi float [ %3131, %3122 ], [ 0.000000e+00, %3132 ]
  br label %3135

3135:                                             ; preds = %3133, %3037
  %3136 = phi float [ %3050, %3037 ], [ %3134, %3133 ]
  %3137 = fpext float %3136 to double
  br label %3138

3138:                                             ; preds = %3135, %3014
  %3139 = phi double [ %3029, %3014 ], [ %3137, %3135 ]
  %3140 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3141 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3140, i32 0, i32 8
  %3142 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3141, i64 0, i64 7
  %3143 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3142, i32 0, i32 1
  %3144 = load i32, ptr %3143, align 4, !tbaa !15
  %3145 = icmp eq i32 %3144, 0
  br i1 %3145, label %3146, label %3162

3146:                                             ; preds = %3138
  %3147 = load ptr, ptr %16, align 8, !tbaa !9
  %3148 = load i32, ptr %29, align 4, !tbaa !5
  %3149 = sub nsw i32 %3148, 1
  %3150 = sext i32 %3149 to i64
  %3151 = getelementptr inbounds float, ptr %3147, i64 %3150
  %3152 = load float, ptr %3151, align 4, !tbaa !16
  %3153 = load ptr, ptr %13, align 8, !tbaa !9
  %3154 = load i32, ptr %29, align 4, !tbaa !5
  %3155 = sub nsw i32 %3154, 1
  %3156 = sext i32 %3155 to i64
  %3157 = getelementptr inbounds float, ptr %3153, i64 %3156
  %3158 = load float, ptr %3157, align 4, !tbaa !16
  %3159 = fsub float %3152, %3158
  %3160 = fpext float %3159 to double
  %3161 = call double @llvm.fabs.f64(double %3160)
  br label %3270

3162:                                             ; preds = %3138
  %3163 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %3164 = getelementptr inbounds %struct.TA_LibcPriv, ptr %3163, i32 0, i32 8
  %3165 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %3164, i64 0, i64 7
  %3166 = getelementptr inbounds %struct.TA_CandleSetting, ptr %3165, i32 0, i32 1
  %3167 = load i32, ptr %3166, align 4, !tbaa !15
  %3168 = icmp eq i32 %3167, 1
  br i1 %3168, label %3169, label %3183

3169:                                             ; preds = %3162
  %3170 = load ptr, ptr %14, align 8, !tbaa !9
  %3171 = load i32, ptr %29, align 4, !tbaa !5
  %3172 = sub nsw i32 %3171, 1
  %3173 = sext i32 %3172 to i64
  %3174 = getelementptr inbounds float, ptr %3170, i64 %3173
  %3175 = load float, ptr %3174, align 4, !tbaa !16
  %3176 = load ptr, ptr %15, align 8, !tbaa !9
  %3177 = load i32, ptr %29, align 4, !tbaa !5
  %3178 = sub nsw i32 %3177, 1
  %3179 = sext i32 %3178 to i64
  %3180 = getelementptr inbounds float, ptr %3176, i64 %3179
  %3181 = load float, ptr %3180, align 4, !tbaa !16
  %3182 = fsub float %3175, %3181
  br label %3267

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

3190:                                             ; preds = %3183
  %3191 = load ptr, ptr %14, align 8, !tbaa !9
  %3192 = load i32, ptr %29, align 4, !tbaa !5
  %3193 = sub nsw i32 %3192, 1
  %3194 = sext i32 %3193 to i64
  %3195 = getelementptr inbounds float, ptr %3191, i64 %3194
  %3196 = load float, ptr %3195, align 4, !tbaa !16
  %3197 = load ptr, ptr %16, align 8, !tbaa !9
  %3198 = load i32, ptr %29, align 4, !tbaa !5
  %3199 = sub nsw i32 %3198, 1
  %3200 = sext i32 %3199 to i64
  %3201 = getelementptr inbounds float, ptr %3197, i64 %3200
  %3202 = load float, ptr %3201, align 4, !tbaa !16
  %3203 = load ptr, ptr %13, align 8, !tbaa !9
  %3204 = load i32, ptr %29, align 4, !tbaa !5
  %3205 = sub nsw i32 %3204, 1
  %3206 = sext i32 %3205 to i64
  %3207 = getelementptr inbounds float, ptr %3203, i64 %3206
  %3208 = load float, ptr %3207, align 4, !tbaa !16
  %3209 = fcmp oge float %3202, %3208
  br i1 %3209, label %3210, label %3217

3210:                                             ; preds = %3190
  %3211 = load ptr, ptr %16, align 8, !tbaa !9
  %3212 = load i32, ptr %29, align 4, !tbaa !5
  %3213 = sub nsw i32 %3212, 1
  %3214 = sext i32 %3213 to i64
  %3215 = getelementptr inbounds float, ptr %3211, i64 %3214
  %3216 = load float, ptr %3215, align 4, !tbaa !16
  br label %3224

3217:                                             ; preds = %3190
  %3218 = load ptr, ptr %13, align 8, !tbaa !9
  %3219 = load i32, ptr %29, align 4, !tbaa !5
  %3220 = sub nsw i32 %3219, 1
  %3221 = sext i32 %3220 to i64
  %3222 = getelementptr inbounds float, ptr %3218, i64 %3221
  %3223 = load float, ptr %3222, align 4, !tbaa !16
  br label %3224

3224:                                             ; preds = %3217, %3210
  %3225 = phi float [ %3216, %3210 ], [ %3223, %3217 ]
  %3226 = fsub float %3196, %3225
  %3227 = load ptr, ptr %16, align 8, !tbaa !9
  %3228 = load i32, ptr %29, align 4, !tbaa !5
  %3229 = sub nsw i32 %3228, 1
  %3230 = sext i32 %3229 to i64
  %3231 = getelementptr inbounds float, ptr %3227, i64 %3230
  %3232 = load float, ptr %3231, align 4, !tbaa !16
  %3233 = load ptr, ptr %13, align 8, !tbaa !9
  %3234 = load i32, ptr %29, align 4, !tbaa !5
  %3235 = sub nsw i32 %3234, 1
  %3236 = sext i32 %3235 to i64
  %3237 = getelementptr inbounds float, ptr %3233, i64 %3236
  %3238 = load float, ptr %3237, align 4, !tbaa !16
  %3239 = fcmp oge float %3232, %3238
  br i1 %3239, label %3240, label %3247

3240:                                             ; preds = %3224
  %3241 = load ptr, ptr %13, align 8, !tbaa !9
  %3242 = load i32, ptr %29, align 4, !tbaa !5
  %3243 = sub nsw i32 %3242, 1
  %3244 = sext i32 %3243 to i64
  %3245 = getelementptr inbounds float, ptr %3241, i64 %3244
  %3246 = load float, ptr %3245, align 4, !tbaa !16
  br label %3254

3247:                                             ; preds = %3224
  %3248 = load ptr, ptr %16, align 8, !tbaa !9
  %3249 = load i32, ptr %29, align 4, !tbaa !5
  %3250 = sub nsw i32 %3249, 1
  %3251 = sext i32 %3250 to i64
  %3252 = getelementptr inbounds float, ptr %3248, i64 %3251
  %3253 = load float, ptr %3252, align 4, !tbaa !16
  br label %3254

3254:                                             ; preds = %3247, %3240
  %3255 = phi float [ %3246, %3240 ], [ %3253, %3247 ]
  %3256 = load ptr, ptr %15, align 8, !tbaa !9
  %3257 = load i32, ptr %29, align 4, !tbaa !5
  %3258 = sub nsw i32 %3257, 1
  %3259 = sext i32 %3258 to i64
  %3260 = getelementptr inbounds float, ptr %3256, i64 %3259
  %3261 = load float, ptr %3260, align 4, !tbaa !16
  %3262 = fsub float %3255, %3261
  %3263 = fadd float %3226, %3262
  br label %3265

3264:                                             ; preds = %3183
  br label %3265

3265:                                             ; preds = %3264, %3254
  %3266 = phi float [ %3263, %3254 ], [ 0.000000e+00, %3264 ]
  br label %3267

3267:                                             ; preds = %3265, %3169
  %3268 = phi float [ %3182, %3169 ], [ %3266, %3265 ]
  %3269 = fpext float %3268 to double
  br label %3270

3270:                                             ; preds = %3267, %3146
  %3271 = phi double [ %3161, %3146 ], [ %3269, %3267 ]
  %3272 = fsub double %3139, %3271
  %3273 = load double, ptr %23, align 8, !tbaa !11
  %3274 = fadd double %3273, %3272
  store double %3274, ptr %23, align 8, !tbaa !11
  %3275 = load i32, ptr %24, align 4, !tbaa !5
  %3276 = add nsw i32 %3275, 1
  store i32 %3276, ptr %24, align 4, !tbaa !5
  %3277 = load i32, ptr %27, align 4, !tbaa !5
  %3278 = add nsw i32 %3277, 1
  store i32 %3278, ptr %27, align 4, !tbaa !5
  %3279 = load i32, ptr %28, align 4, !tbaa !5
  %3280 = add nsw i32 %3279, 1
  store i32 %3280, ptr %28, align 4, !tbaa !5
  %3281 = load i32, ptr %29, align 4, !tbaa !5
  %3282 = add nsw i32 %3281, 1
  store i32 %3282, ptr %29, align 4, !tbaa !5
  %3283 = load i32, ptr %30, align 4, !tbaa !5
  %3284 = add nsw i32 %3283, 1
  store i32 %3284, ptr %30, align 4, !tbaa !5
  br label %3285

3285:                                             ; preds = %3270
  %3286 = load i32, ptr %24, align 4, !tbaa !5
  %3287 = load i32, ptr %12, align 4, !tbaa !5
  %3288 = icmp sle i32 %3286, %3287
  br i1 %3288, label %941, label %3289, !llvm.loop !25

3289:                                             ; preds = %3285
  %3290 = load i32, ptr %25, align 4, !tbaa !5
  %3291 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %3290, ptr %3291, align 4, !tbaa !5
  %3292 = load i32, ptr %11, align 4, !tbaa !5
  %3293 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %3292, ptr %3293, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %32, align 4
  br label %3294

3294:                                             ; preds = %3289, %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 8, 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
  %3295 = load i32, ptr %10, align 4
  ret i32 %3295
}

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

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

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


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

@TA_Globals = external local_unnamed_addr global ptr, align 8

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

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

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

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

25:                                               ; preds = %21
  %26 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %27 = getelementptr inbounds i8, ptr %26, i64 216
  %28 = load i32, ptr %27, align 8, !tbaa !11
  %29 = sub i32 %spec.select, %28
  %30 = getelementptr inbounds i8, ptr %26, i64 264
  %31 = load i32, ptr %30, align 8, !tbaa !11
  %32 = sub i32 %spec.select, %31
  %33 = getelementptr inbounds i8, ptr %26, i64 384
  %34 = load i32, ptr %33, align 8, !tbaa !11
  %35 = sub i32 %spec.select, %34
  %36 = getelementptr inbounds i8, ptr %26, i64 408
  %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 %.preheader962

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

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

.thread918.us.preheader:                          ; preds = %.lr.ph
  %44 = sext i32 %29 to i64
  %45 = zext nneg i32 %spec.select to i64
  br label %.thread918.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.iv1018 = phi i64 [ %46, %.thread.us.preheader ], [ %indvars.iv.next1019, %.thread.us ]
  %48 = phi <2 x double> [ zeroinitializer, %.thread.us.preheader ], [ %57, %.thread.us ]
  %49 = add nsw i64 %indvars.iv1018, -2
  %50 = getelementptr inbounds float, ptr %5, i64 %49
  %51 = getelementptr inbounds float, ptr %2, i64 %49
  %52 = load <2 x float>, ptr %50, align 4, !tbaa !15
  %53 = load <2 x float>, ptr %51, align 4, !tbaa !15
  %54 = fsub <2 x float> %52, %53
  %55 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %54)
  %56 = fpext <2 x float> %55 to <2 x double>
  %57 = fadd <2 x double> %48, %56
  %indvars.iv.next1019 = add nsw i64 %indvars.iv1018, 1
  %58 = icmp slt i64 %indvars.iv.next1019, %47
  br i1 %58, label %.thread.us, label %.preheader962, !llvm.loop !17

.thread918.us:                                    ; preds = %.thread918.us.preheader, %.thread918.us
  %indvars.iv1015 = phi i64 [ %44, %.thread918.us.preheader ], [ %indvars.iv.next1016, %.thread918.us ]
  %59 = phi <2 x double> [ zeroinitializer, %.thread918.us.preheader ], [ %67, %.thread918.us ]
  %60 = add nsw i64 %indvars.iv1015, -2
  %61 = getelementptr inbounds float, ptr %3, i64 %60
  %62 = getelementptr inbounds float, ptr %4, i64 %60
  %63 = load <2 x float>, ptr %61, align 4, !tbaa !15
  %64 = load <2 x float>, ptr %62, align 4, !tbaa !15
  %65 = fsub <2 x float> %63, %64
  %66 = fpext <2 x float> %65 to <2 x double>
  %67 = fadd <2 x double> %59, %66
  %indvars.iv.next1016 = add nsw i64 %indvars.iv1015, 1
  %68 = icmp slt i64 %indvars.iv.next1016, %45
  br i1 %68, label %.thread918.us, label %.preheader962, !llvm.loop !17

.thread920.us:                                    ; preds = %.thread920.us.preheader, %.thread920.us
  %indvars.iv = phi i64 [ %42, %.thread920.us.preheader ], [ %indvars.iv.next, %.thread920.us ]
  %69 = phi <2 x double> [ zeroinitializer, %.thread920.us.preheader ], [ %86, %.thread920.us ]
  %70 = add nsw i64 %indvars.iv, -2
  %71 = getelementptr inbounds float, ptr %3, i64 %70
  %72 = getelementptr inbounds float, ptr %5, i64 %70
  %73 = getelementptr inbounds float, ptr %2, i64 %70
  %74 = getelementptr inbounds float, ptr %4, i64 %70
  %75 = load <2 x float>, ptr %71, align 4, !tbaa !15
  %76 = load <2 x float>, ptr %72, align 4, !tbaa !15
  %77 = load <2 x float>, ptr %73, align 4, !tbaa !15
  %78 = fcmp ult <2 x float> %76, %77
  %79 = select <2 x i1> %78, <2 x float> %77, <2 x float> %76
  %80 = fsub <2 x float> %75, %79
  %81 = select <2 x i1> %78, <2 x float> %76, <2 x float> %77
  %82 = load <2 x float>, ptr %74, align 4, !tbaa !15
  %83 = fsub <2 x float> %81, %82
  %84 = fadd <2 x float> %80, %83
  %85 = fpext <2 x float> %84 to <2 x double>
  %86 = fadd <2 x double> %69, %85
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %87 = icmp slt i64 %indvars.iv.next, %43
  br i1 %87, label %.thread920.us, label %.preheader962, !llvm.loop !17

.preheader962:                                    ; preds = %.thread920.us, %.thread918.us, %.thread.us, %.lr.ph, %25
  %88 = phi <2 x double> [ zeroinitializer, %25 ], [ zeroinitializer, %.lr.ph ], [ %57, %.thread.us ], [ %67, %.thread918.us ], [ %86, %.thread920.us ]
  %89 = icmp sgt i32 %31, 0
  br i1 %89, label %.lr.ph984, label %.preheader961

.lr.ph984:                                        ; preds = %.preheader962
  %90 = getelementptr inbounds i8, ptr %26, i64 260
  %91 = load i32, ptr %90, align 4, !tbaa !14
  %92 = sext i32 %32 to i64
  %93 = zext nneg i32 %spec.select to i64
  br label %99

.preheader961:                                    ; preds = %127, %.preheader962
  %.0751.lcssa = phi double [ 0.000000e+00, %.preheader962 ], [ %129, %127 ]
  %94 = icmp sgt i32 %34, 0
  br i1 %94, label %.lr.ph988, label %.preheader960

.lr.ph988:                                        ; preds = %.preheader961
  %95 = getelementptr inbounds i8, ptr %26, i64 380
  %96 = load i32, ptr %95, align 4, !tbaa !14
  %97 = sext i32 %35 to i64
  %98 = zext nneg i32 %spec.select to i64
  br label %136

99:                                               ; preds = %.lr.ph984, %127
  %indvars.iv1021 = phi i64 [ %92, %.lr.ph984 ], [ %indvars.iv.next1022, %127 ]
  %.0751982 = phi double [ 0.000000e+00, %.lr.ph984 ], [ %129, %127 ]
  switch i32 %91, label %127 [
    i32 0, label %100
    i32 1, label %107
    i32 2, label %113
  ]

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

107:                                              ; preds = %99
  %108 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1021
  %109 = load float, ptr %108, align 4, !tbaa !15
  %110 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1021
  %111 = load float, ptr %110, align 4, !tbaa !15
  %112 = fsub float %109, %111
  br label %127

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

127:                                              ; preds = %107, %113, %99, %100
  %.in891 = phi float [ %106, %100 ], [ %112, %107 ], [ %126, %113 ], [ 0.000000e+00, %99 ]
  %128 = fpext float %.in891 to double
  %129 = fadd double %.0751982, %128
  %indvars.iv.next1022 = add nsw i64 %indvars.iv1021, 1
  %130 = icmp slt i64 %indvars.iv.next1022, %93
  br i1 %130, label %99, label %.preheader961, !llvm.loop !19

.preheader960:                                    ; preds = %167, %.preheader961
  %.0749.lcssa = phi double [ 0.000000e+00, %.preheader961 ], [ %169, %167 ]
  %131 = icmp sgt i32 %37, 0
  br i1 %131, label %.lr.ph995, label %.preheader960..preheader_crit_edge

.preheader960..preheader_crit_edge:               ; preds = %.preheader960
  %.pre1064 = sext i32 %38 to i64
  br label %.preheader

.lr.ph995:                                        ; preds = %.preheader960
  %132 = getelementptr inbounds i8, ptr %26, i64 404
  %133 = load i32, ptr %132, align 4, !tbaa !14
  %134 = sext i32 %38 to i64
  %135 = zext nneg i32 %spec.select to i64
  br label %185

136:                                              ; preds = %.lr.ph988, %167
  %indvars.iv1024 = phi i64 [ %97, %.lr.ph988 ], [ %indvars.iv.next1025, %167 ]
  %.0749986 = phi double [ 0.000000e+00, %.lr.ph988 ], [ %169, %167 ]
  switch i32 %96, label %167 [
    i32 0, label %137
    i32 1, label %145
    i32 2, label %152
  ]

137:                                              ; preds = %136
  %138 = add nsw i64 %indvars.iv1024, -1
  %139 = getelementptr inbounds float, ptr %5, i64 %138
  %140 = load float, ptr %139, align 4, !tbaa !15
  %141 = getelementptr inbounds float, ptr %2, i64 %138
  %142 = load float, ptr %141, align 4, !tbaa !15
  %143 = fsub float %140, %142
  %144 = tail call float @llvm.fabs.f32(float %143)
  br label %167

145:                                              ; preds = %136
  %146 = add nsw i64 %indvars.iv1024, -1
  %147 = getelementptr inbounds float, ptr %3, i64 %146
  %148 = load float, ptr %147, align 4, !tbaa !15
  %149 = getelementptr inbounds float, ptr %4, i64 %146
  %150 = load float, ptr %149, align 4, !tbaa !15
  %151 = fsub float %148, %150
  br label %167

152:                                              ; preds = %136
  %153 = add nsw i64 %indvars.iv1024, -1
  %154 = getelementptr inbounds float, ptr %3, i64 %153
  %155 = load float, ptr %154, align 4, !tbaa !15
  %156 = getelementptr inbounds float, ptr %5, i64 %153
  %157 = load float, ptr %156, align 4, !tbaa !15
  %158 = getelementptr inbounds float, ptr %2, i64 %153
  %159 = load float, ptr %158, align 4, !tbaa !15
  %160 = fcmp ult float %157, %159
  %.897 = select i1 %160, float %159, float %157
  %161 = fsub float %155, %.897
  %162 = select i1 %160, float %157, float %159
  %163 = getelementptr inbounds float, ptr %4, i64 %153
  %164 = load float, ptr %163, align 4, !tbaa !15
  %165 = fsub float %162, %164
  %166 = fadd float %161, %165
  br label %167

167:                                              ; preds = %145, %152, %136, %137
  %.in890 = phi float [ %144, %137 ], [ %151, %145 ], [ %166, %152 ], [ 0.000000e+00, %136 ]
  %168 = fpext float %.in890 to double
  %169 = fadd double %.0749986, %168
  %indvars.iv.next1025 = add nsw i64 %indvars.iv1024, 1
  %170 = icmp slt i64 %indvars.iv.next1025, %98
  br i1 %170, label %136, label %.preheader960, !llvm.loop !20

.preheader:                                       ; preds = %245, %.preheader960..preheader_crit_edge
  %.pre-phi = phi i64 [ %.pre1064, %.preheader960..preheader_crit_edge ], [ %134, %245 ]
  %.lcssa993 = phi double [ 0.000000e+00, %.preheader960..preheader_crit_edge ], [ %248, %245 ]
  %.lcssa991 = phi double [ 0.000000e+00, %.preheader960..preheader_crit_edge ], [ %246, %245 ]
  %171 = getelementptr inbounds i8, ptr %26, i64 212
  %172 = getelementptr inbounds i8, ptr %26, i64 404
  %173 = getelementptr inbounds i8, ptr %26, i64 260
  %174 = getelementptr inbounds i8, ptr %26, i64 380
  %175 = getelementptr inbounds i8, ptr %26, i64 224
  %176 = getelementptr inbounds i8, ptr %26, i64 392
  %177 = getelementptr inbounds i8, ptr %26, i64 416
  %178 = getelementptr inbounds i8, ptr %26, i64 272
  %179 = sext i32 %22 to i64
  %180 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %179, i64 %180)
  %181 = sext i32 %1 to i64
  %182 = sext i32 %29 to i64
  %183 = sext i32 %32 to i64
  %184 = sext i32 %35 to i64
  br label %250

185:                                              ; preds = %.lr.ph995, %245
  %indvars.iv1027 = phi i64 [ %134, %.lr.ph995 ], [ %indvars.iv.next1028, %245 ]
  %186 = phi double [ 0.000000e+00, %.lr.ph995 ], [ %246, %245 ]
  %187 = phi double [ 0.000000e+00, %.lr.ph995 ], [ %248, %245 ]
  switch i32 %133, label %245 [
    i32 0, label %.thread922
    i32 1, label %.thread924
    i32 2, label %.thread926
  ]

.thread922:                                       ; preds = %185
  %188 = add nsw i64 %indvars.iv1027, -2
  %189 = getelementptr inbounds float, ptr %5, i64 %188
  %190 = load float, ptr %189, align 4, !tbaa !15
  %191 = getelementptr inbounds float, ptr %2, i64 %188
  %192 = load float, ptr %191, align 4, !tbaa !15
  %193 = fsub float %190, %192
  %194 = tail call float @llvm.fabs.f32(float %193)
  %195 = fpext float %194 to double
  %196 = add nsw i64 %indvars.iv1027, -1
  %197 = getelementptr inbounds float, ptr %5, i64 %196
  %198 = load float, ptr %197, align 4, !tbaa !15
  %199 = getelementptr inbounds float, ptr %2, i64 %196
  %200 = load float, ptr %199, align 4, !tbaa !15
  %201 = fsub float %198, %200
  %202 = tail call float @llvm.fabs.f32(float %201)
  br label %245

.thread924:                                       ; preds = %185
  %203 = add nsw i64 %indvars.iv1027, -2
  %204 = getelementptr inbounds float, ptr %3, i64 %203
  %205 = load float, ptr %204, align 4, !tbaa !15
  %206 = getelementptr inbounds float, ptr %4, i64 %203
  %207 = load float, ptr %206, align 4, !tbaa !15
  %208 = fsub float %205, %207
  %209 = fpext float %208 to double
  %210 = add nsw i64 %indvars.iv1027, -1
  %211 = getelementptr inbounds float, ptr %3, i64 %210
  %212 = load float, ptr %211, align 4, !tbaa !15
  %213 = getelementptr inbounds float, ptr %4, i64 %210
  %214 = load float, ptr %213, align 4, !tbaa !15
  %215 = fsub float %212, %214
  br label %245

.thread926:                                       ; preds = %185
  %216 = add nsw i64 %indvars.iv1027, -2
  %217 = getelementptr inbounds float, ptr %3, i64 %216
  %218 = load float, ptr %217, align 4, !tbaa !15
  %219 = getelementptr inbounds float, ptr %5, i64 %216
  %220 = load float, ptr %219, align 4, !tbaa !15
  %221 = getelementptr inbounds float, ptr %2, i64 %216
  %222 = load float, ptr %221, align 4, !tbaa !15
  %223 = fcmp ult float %220, %222
  %.898 = select i1 %223, float %222, float %220
  %224 = fsub float %218, %.898
  %225 = select i1 %223, float %220, float %222
  %226 = getelementptr inbounds float, ptr %4, i64 %216
  %227 = load float, ptr %226, align 4, !tbaa !15
  %228 = fsub float %225, %227
  %229 = fadd float %224, %228
  %230 = fpext float %229 to double
  %231 = add nsw i64 %indvars.iv1027, -1
  %232 = getelementptr inbounds float, ptr %3, i64 %231
  %233 = load float, ptr %232, align 4, !tbaa !15
  %234 = getelementptr inbounds float, ptr %5, i64 %231
  %235 = load float, ptr %234, align 4, !tbaa !15
  %236 = getelementptr inbounds float, ptr %2, i64 %231
  %237 = load float, ptr %236, align 4, !tbaa !15
  %238 = fcmp ult float %235, %237
  %.899 = select i1 %238, float %237, float %235
  %239 = fsub float %233, %.899
  %240 = select i1 %238, float %235, float %237
  %241 = getelementptr inbounds float, ptr %4, i64 %231
  %242 = load float, ptr %241, align 4, !tbaa !15
  %243 = fsub float %240, %242
  %244 = fadd float %239, %243
  br label %245

245:                                              ; preds = %185, %.thread924, %.thread926, %.thread922
  %.pn = phi double [ %195, %.thread922 ], [ %209, %.thread924 ], [ %230, %.thread926 ], [ 0.000000e+00, %185 ]
  %.in889 = phi float [ %202, %.thread922 ], [ %215, %.thread924 ], [ %244, %.thread926 ], [ 0.000000e+00, %185 ]
  %246 = fadd double %186, %.pn
  %247 = fpext float %.in889 to double
  %248 = fadd double %187, %247
  %indvars.iv.next1028 = add nsw i64 %indvars.iv1027, 1
  %249 = icmp slt i64 %indvars.iv.next1028, %135
  br i1 %249, label %185, label %.preheader, !llvm.loop !21

250:                                              ; preds = %.preheader, %847
  %.sroa.9.0 = phi double [ %.lcssa991, %.preheader ], [ %606, %847 ]
  %.sroa.3.0 = phi double [ %.lcssa993, %.preheader ], [ %731, %847 ]
  %indvars.iv1043 = phi i64 [ %.pre-phi, %.preheader ], [ %indvars.iv.next1044, %847 ]
  %indvars.iv1041 = phi i64 [ %184, %.preheader ], [ %indvars.iv.next1042, %847 ]
  %indvars.iv1039 = phi i64 [ %183, %.preheader ], [ %indvars.iv.next1040, %847 ]
  %indvars.iv1037 = phi i64 [ %182, %.preheader ], [ %indvars.iv.next1038, %847 ]
  %indvars.iv1035 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next1036, %847 ]
  %indvars.iv1033 = phi i64 [ %smax, %.preheader ], [ %indvars.iv.next1034, %847 ]
  %.1752 = phi double [ %.0751.lcssa, %.preheader ], [ %788, %847 ]
  %.1750 = phi double [ %.0749.lcssa, %.preheader ], [ %851, %847 ]
  %251 = phi <2 x double> [ %88, %.preheader ], [ %853, %847 ]
  %252 = add nsw i64 %indvars.iv1033, -2
  %253 = getelementptr inbounds float, ptr %5, i64 %252
  %254 = load float, ptr %253, align 4, !tbaa !15
  %255 = getelementptr inbounds float, ptr %2, i64 %252
  %256 = load float, ptr %255, align 4, !tbaa !15
  %257 = fcmp ult float %254, %256
  br i1 %257, label %477, label %258

258:                                              ; preds = %250
  %259 = add nsw i64 %indvars.iv1033, -1
  %260 = getelementptr inbounds float, ptr %5, i64 %259
  %261 = load float, ptr %260, align 4, !tbaa !15
  %262 = getelementptr inbounds float, ptr %2, i64 %259
  %263 = load float, ptr %262, align 4, !tbaa !15
  %264 = fcmp ult float %261, %263
  br i1 %264, label %477, label %265

265:                                              ; preds = %258
  %266 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1033
  %267 = load float, ptr %266, align 4, !tbaa !15
  %268 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1033
  %269 = load float, ptr %268, align 4, !tbaa !15
  %270 = fcmp oge float %267, %269
  %271 = fcmp ogt float %267, %261
  %or.cond900 = and i1 %271, %270
  %272 = fcmp ogt float %261, %254
  %or.cond901 = and i1 %272, %or.cond900
  br i1 %or.cond901, label %273, label %477

273:                                              ; preds = %265
  %274 = fsub float %254, %256
  %275 = tail call float @llvm.fabs.f32(float %274)
  %276 = fpext float %275 to double
  %277 = load double, ptr %175, align 8, !tbaa !22
  %278 = load i32, ptr %27, align 8, !tbaa !11
  %.not874 = icmp eq i32 %278, 0
  br i1 %.not874, label %283, label %279

279:                                              ; preds = %273
  %280 = sitofp i32 %278 to double
  %281 = extractelement <2 x double> %251, i64 0
  %282 = fdiv double %281, %280
  %.pre = load i32, ptr %171, align 4, !tbaa !14
  br label %302

283:                                              ; preds = %273
  %284 = load i32, ptr %171, align 4, !tbaa !14
  switch i32 %284, label %299 [
    i32 0, label %302
    i32 1, label %285
    i32 2, label %291
  ]

285:                                              ; preds = %283
  %286 = getelementptr inbounds float, ptr %3, i64 %252
  %287 = load float, ptr %286, align 4, !tbaa !15
  %288 = getelementptr inbounds float, ptr %4, i64 %252
  %289 = load float, ptr %288, align 4, !tbaa !15
  %290 = fsub float %287, %289
  br label %299

291:                                              ; preds = %283
  %292 = getelementptr inbounds float, ptr %3, i64 %252
  %293 = load float, ptr %292, align 4, !tbaa !15
  %294 = fsub float %293, %254
  %295 = getelementptr inbounds float, ptr %4, i64 %252
  %296 = load float, ptr %295, align 4, !tbaa !15
  %297 = fsub float %256, %296
  %298 = fadd float %294, %297
  br label %299

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

302:                                              ; preds = %283, %299, %279
  %303 = phi i32 [ %.pre, %279 ], [ %284, %299 ], [ %284, %283 ]
  %304 = phi double [ %282, %279 ], [ %301, %299 ], [ %276, %283 ]
  %305 = fmul double %277, %304
  %306 = icmp eq i32 %303, 2
  %307 = select i1 %306, double 2.000000e+00, double 1.000000e+00
  %308 = fdiv double %305, %307
  %309 = fcmp olt double %308, %276
  br i1 %309, label %310, label %477

310:                                              ; preds = %302
  %311 = fsub float %261, %263
  %312 = tail call float @llvm.fabs.f32(float %311)
  %313 = fpext float %312 to double
  br i1 %.not874, label %318, label %314

314:                                              ; preds = %310
  %315 = sitofp i32 %278 to double
  %316 = extractelement <2 x double> %251, i64 1
  %317 = fdiv double %316, %315
  br label %337

318:                                              ; preds = %310
  switch i32 %303, label %325 [
    i32 0, label %337
    i32 1, label %319
  ]

319:                                              ; preds = %318
  %320 = getelementptr inbounds float, ptr %3, i64 %259
  %321 = load float, ptr %320, align 4, !tbaa !15
  %322 = getelementptr inbounds float, ptr %4, i64 %259
  %323 = load float, ptr %322, align 4, !tbaa !15
  %324 = fsub float %321, %323
  br label %334

325:                                              ; preds = %318
  br i1 %306, label %326, label %334

326:                                              ; preds = %325
  %327 = getelementptr inbounds float, ptr %3, i64 %259
  %328 = load float, ptr %327, align 4, !tbaa !15
  %329 = fsub float %328, %261
  %330 = getelementptr inbounds float, ptr %4, i64 %259
  %331 = load float, ptr %330, align 4, !tbaa !15
  %332 = fsub float %263, %331
  %333 = fadd float %329, %332
  br label %334

334:                                              ; preds = %326, %325, %319
  %335 = phi float [ %324, %319 ], [ %333, %326 ], [ 0.000000e+00, %325 ]
  %336 = fpext float %335 to double
  br label %337

337:                                              ; preds = %318, %334, %314
  %338 = phi double [ %317, %314 ], [ %336, %334 ], [ %313, %318 ]
  %339 = fmul double %277, %338
  %340 = fdiv double %339, %307
  %341 = fcmp olt double %340, %313
  br i1 %341, label %342, label %477

342:                                              ; preds = %337
  %343 = getelementptr inbounds float, ptr %3, i64 %259
  %344 = load float, ptr %343, align 4, !tbaa !15
  %345 = fsub float %344, %261
  %346 = fpext float %345 to double
  %347 = load double, ptr %176, align 8, !tbaa !22
  %348 = load i32, ptr %33, align 8, !tbaa !11
  %.not876 = icmp eq i32 %348, 0
  br i1 %.not876, label %352, label %349

349:                                              ; preds = %342
  %350 = sitofp i32 %348 to double
  %351 = fdiv double %.1750, %350
  %.pre1061 = load i32, ptr %174, align 4, !tbaa !14
  br label %366

352:                                              ; preds = %342
  %353 = load i32, ptr %174, align 4, !tbaa !14
  switch i32 %353, label %363 [
    i32 0, label %.thread
    i32 1, label %354
    i32 2, label %358
  ]

354:                                              ; preds = %352
  %355 = getelementptr inbounds float, ptr %4, i64 %259
  %356 = load float, ptr %355, align 4, !tbaa !15
  %357 = fsub float %344, %356
  br label %363

358:                                              ; preds = %352
  %359 = getelementptr inbounds float, ptr %4, i64 %259
  %360 = load float, ptr %359, align 4, !tbaa !15
  %361 = fsub float %263, %360
  %362 = fadd float %345, %361
  br label %363

363:                                              ; preds = %352, %358, %354
  %364 = phi float [ %357, %354 ], [ %362, %358 ], [ 0.000000e+00, %352 ]
  %365 = fpext float %364 to double
  br label %366

366:                                              ; preds = %363, %349
  %367 = phi i32 [ %.pre1061, %349 ], [ %353, %363 ]
  %368 = phi double [ %351, %349 ], [ %365, %363 ]
  %.fr = freeze i32 %367
  %369 = icmp eq i32 %.fr, 2
  br i1 %369, label %370, label %.thread

370:                                              ; preds = %366
  br label %.thread

.thread:                                          ; preds = %352, %366, %370
  %.pn1086 = phi double [ %368, %370 ], [ %368, %366 ], [ %313, %352 ]
  %371 = phi double [ 2.000000e+00, %370 ], [ 1.000000e+00, %366 ], [ 1.000000e+00, %352 ]
  %372 = fmul double %347, %.pn1086
  %373 = fdiv double %372, %371
  %374 = fcmp ogt double %373, %346
  %375 = fcmp ogt float %263, %256
  %or.cond952 = and i1 %375, %374
  br i1 %or.cond952, label %376, label %477

376:                                              ; preds = %.thread
  %377 = fpext float %263 to double
  %378 = fpext float %254 to double
  %379 = load double, ptr %177, align 8, !tbaa !22
  %380 = load i32, ptr %36, align 8, !tbaa !11
  %.not877 = icmp eq i32 %380, 0
  br i1 %.not877, label %384, label %381

381:                                              ; preds = %376
  %382 = sitofp i32 %380 to double
  %383 = fdiv double %.sroa.9.0, %382
  %.pre1062 = load i32, ptr %172, align 4, !tbaa !14
  br label %403

384:                                              ; preds = %376
  %385 = load i32, ptr %172, align 4, !tbaa !14
  switch i32 %385, label %400 [
    i32 0, label %.thread1067
    i32 1, label %386
    i32 2, label %392
  ]

386:                                              ; preds = %384
  %387 = getelementptr inbounds float, ptr %3, i64 %252
  %388 = load float, ptr %387, align 4, !tbaa !15
  %389 = getelementptr inbounds float, ptr %4, i64 %252
  %390 = load float, ptr %389, align 4, !tbaa !15
  %391 = fsub float %388, %390
  br label %400

392:                                              ; preds = %384
  %393 = getelementptr inbounds float, ptr %3, i64 %252
  %394 = load float, ptr %393, align 4, !tbaa !15
  %395 = fsub float %394, %254
  %396 = getelementptr inbounds float, ptr %4, i64 %252
  %397 = load float, ptr %396, align 4, !tbaa !15
  %398 = fsub float %256, %397
  %399 = fadd float %395, %398
  br label %400

400:                                              ; preds = %384, %392, %386
  %401 = phi float [ %391, %386 ], [ %399, %392 ], [ 0.000000e+00, %384 ]
  %402 = fpext float %401 to double
  br label %403

403:                                              ; preds = %400, %381
  %404 = phi i32 [ %.pre1062, %381 ], [ %385, %400 ]
  %405 = phi double [ %383, %381 ], [ %402, %400 ]
  %.fr1087 = freeze i32 %404
  %406 = icmp eq i32 %.fr1087, 2
  br i1 %406, label %407, label %.thread1067

407:                                              ; preds = %403
  br label %.thread1067

.thread1067:                                      ; preds = %384, %403, %407
  %.pn1088 = phi double [ %405, %407 ], [ %405, %403 ], [ %276, %384 ]
  %408 = phi i32 [ %.fr1087, %407 ], [ %.fr1087, %403 ], [ %385, %384 ]
  %409 = phi double [ 2.000000e+00, %407 ], [ 1.000000e+00, %403 ], [ 1.000000e+00, %384 ]
  %410 = fmul double %379, %.pn1088
  %411 = fdiv double %410, %409
  %412 = fadd double %411, %378
  %413 = fcmp ult double %412, %377
  br i1 %413, label %477, label %414

414:                                              ; preds = %.thread1067
  %415 = fsub float %267, %269
  %416 = tail call float @llvm.fabs.f32(float %415)
  %417 = fpext float %416 to double
  %418 = load double, ptr %178, align 8, !tbaa !22
  %419 = load i32, ptr %30, align 8, !tbaa !11
  %.not878 = icmp eq i32 %419, 0
  br i1 %.not878, label %423, label %420

420:                                              ; preds = %414
  %421 = sitofp i32 %419 to double
  %422 = fdiv double %.1752, %421
  %.pre1063 = load i32, ptr %173, align 4, !tbaa !14
  br label %442

423:                                              ; preds = %414
  %424 = load i32, ptr %173, align 4, !tbaa !14
  switch i32 %424, label %439 [
    i32 0, label %.thread1070
    i32 1, label %425
    i32 2, label %431
  ]

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

431:                                              ; preds = %423
  %432 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1033
  %433 = load float, ptr %432, align 4, !tbaa !15
  %434 = fsub float %433, %267
  %435 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1033
  %436 = load float, ptr %435, align 4, !tbaa !15
  %437 = fsub float %269, %436
  %438 = fadd float %434, %437
  br label %439

439:                                              ; preds = %423, %431, %425
  %440 = phi float [ %430, %425 ], [ %438, %431 ], [ 0.000000e+00, %423 ]
  %441 = fpext float %440 to double
  br label %442

442:                                              ; preds = %439, %420
  %443 = phi i32 [ %.pre1063, %420 ], [ %424, %439 ]
  %444 = phi double [ %422, %420 ], [ %441, %439 ]
  %.fr1089 = freeze i32 %443
  %445 = icmp eq i32 %.fr1089, 2
  br i1 %445, label %446, label %.thread1070

446:                                              ; preds = %442
  br label %.thread1070

.thread1070:                                      ; preds = %423, %442, %446
  %.pn1090 = phi double [ %444, %446 ], [ %444, %442 ], [ %417, %423 ]
  %447 = phi double [ 2.000000e+00, %446 ], [ 1.000000e+00, %442 ], [ 1.000000e+00, %423 ]
  %448 = fmul double %418, %.pn1090
  %449 = fdiv double %448, %447
  %450 = fcmp ogt double %449, %417
  br i1 %450, label %451, label %477

451:                                              ; preds = %.thread1070
  %452 = fpext float %269 to double
  %453 = fpext float %261 to double
  %454 = fsub double %453, %417
  br i1 %.not877, label %458, label %455

455:                                              ; preds = %451
  %456 = sitofp i32 %380 to double
  %457 = fdiv double %.sroa.3.0, %456
  br label %471

458:                                              ; preds = %451
  switch i32 %408, label %468 [
    i32 0, label %471
    i32 1, label %459
    i32 2, label %463
  ]

459:                                              ; preds = %458
  %460 = getelementptr inbounds float, ptr %4, i64 %259
  %461 = load float, ptr %460, align 4, !tbaa !15
  %462 = fsub float %344, %461
  br label %468

463:                                              ; preds = %458
  %464 = getelementptr inbounds float, ptr %4, i64 %259
  %465 = load float, ptr %464, align 4, !tbaa !15
  %466 = fsub float %263, %465
  %467 = fadd float %345, %466
  br label %468

468:                                              ; preds = %458, %463, %459
  %469 = phi float [ %462, %459 ], [ %467, %463 ], [ 0.000000e+00, %458 ]
  %470 = fpext float %469 to double
  br label %471

471:                                              ; preds = %458, %468, %455
  %472 = phi double [ %457, %455 ], [ %470, %468 ], [ %313, %458 ]
  %473 = fmul double %379, %472
  %474 = fdiv double %473, %409
  %475 = fsub double %454, %474
  %476 = fcmp ugt double %475, %452
  br i1 %476, label %477, label %478

477:                                              ; preds = %471, %.thread1070, %.thread1067, %.thread, %337, %302, %265, %258, %250
  br label %478

478:                                              ; preds = %471, %477
  %.sink = phi i32 [ 0, %477 ], [ -100, %471 ]
  %479 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv1035
  store i32 %.sink, ptr %479, align 4, !tbaa !5
  %480 = load i32, ptr %171, align 4, !tbaa !14
  %481 = load i32, ptr %172, align 4, !tbaa !14
  switch i32 %480, label %539 [
    i32 0, label %.thread928
    i32 1, label %.thread930
    i32 2, label %.thread932
  ]

.thread928:                                       ; preds = %478
  %482 = add nsw i64 %indvars.iv1033, -2
  %483 = getelementptr inbounds float, ptr %5, i64 %482
  %484 = load float, ptr %483, align 4, !tbaa !15
  %485 = getelementptr inbounds float, ptr %2, i64 %482
  %486 = load float, ptr %485, align 4, !tbaa !15
  %487 = fsub float %484, %486
  %488 = tail call float @llvm.fabs.f32(float %487)
  %489 = fpext float %488 to double
  %490 = add nsw i64 %indvars.iv1037, -2
  %491 = getelementptr inbounds float, ptr %5, i64 %490
  %492 = load float, ptr %491, align 4, !tbaa !15
  %493 = getelementptr inbounds float, ptr %2, i64 %490
  %494 = load float, ptr %493, align 4, !tbaa !15
  %495 = fsub float %492, %494
  %496 = tail call float @llvm.fabs.f32(float %495)
  br label %539

.thread930:                                       ; preds = %478
  %497 = add nsw i64 %indvars.iv1033, -2
  %498 = getelementptr inbounds float, ptr %3, i64 %497
  %499 = load float, ptr %498, align 4, !tbaa !15
  %500 = getelementptr inbounds float, ptr %4, i64 %497
  %501 = load float, ptr %500, align 4, !tbaa !15
  %502 = fsub float %499, %501
  %503 = fpext float %502 to double
  %504 = add nsw i64 %indvars.iv1037, -2
  %505 = getelementptr inbounds float, ptr %3, i64 %504
  %506 = load float, ptr %505, align 4, !tbaa !15
  %507 = getelementptr inbounds float, ptr %4, i64 %504
  %508 = load float, ptr %507, align 4, !tbaa !15
  %509 = fsub float %506, %508
  br label %539

.thread932:                                       ; preds = %478
  %510 = add nsw i64 %indvars.iv1033, -2
  %511 = getelementptr inbounds float, ptr %3, i64 %510
  %512 = load float, ptr %511, align 4, !tbaa !15
  %513 = getelementptr inbounds float, ptr %5, i64 %510
  %514 = load float, ptr %513, align 4, !tbaa !15
  %515 = getelementptr inbounds float, ptr %2, i64 %510
  %516 = load float, ptr %515, align 4, !tbaa !15
  %517 = fcmp ult float %514, %516
  %.908 = select i1 %517, float %516, float %514
  %518 = fsub float %512, %.908
  %519 = select i1 %517, float %514, float %516
  %520 = getelementptr inbounds float, ptr %4, i64 %510
  %521 = load float, ptr %520, align 4, !tbaa !15
  %522 = fsub float %519, %521
  %523 = fadd float %518, %522
  %524 = fpext float %523 to double
  %525 = add nsw i64 %indvars.iv1037, -2
  %526 = getelementptr inbounds float, ptr %3, i64 %525
  %527 = load float, ptr %526, align 4, !tbaa !15
  %528 = getelementptr inbounds float, ptr %5, i64 %525
  %529 = load float, ptr %528, align 4, !tbaa !15
  %530 = getelementptr inbounds float, ptr %2, i64 %525
  %531 = load float, ptr %530, align 4, !tbaa !15
  %532 = fcmp ult float %529, %531
  %.909 = select i1 %532, float %531, float %529
  %533 = fsub float %527, %.909
  %534 = select i1 %532, float %529, float %531
  %535 = getelementptr inbounds float, ptr %4, i64 %525
  %536 = load float, ptr %535, align 4, !tbaa !15
  %537 = fsub float %534, %536
  %538 = fadd float %533, %537
  br label %539

539:                                              ; preds = %478, %.thread930, %.thread932, %.thread928
  %540 = phi double [ %489, %.thread928 ], [ %503, %.thread930 ], [ %524, %.thread932 ], [ 0.000000e+00, %478 ]
  %.in885 = phi float [ %496, %.thread928 ], [ %509, %.thread930 ], [ %538, %.thread932 ], [ 0.000000e+00, %478 ]
  %541 = fpext float %.in885 to double
  %542 = fsub double %540, %541
  %543 = extractelement <2 x double> %251, i64 0
  %544 = fadd double %543, %542
  switch i32 %481, label %602 [
    i32 0, label %.thread934
    i32 1, label %.thread936
    i32 2, label %.thread938
  ]

.thread934:                                       ; preds = %539
  %545 = add nsw i64 %indvars.iv1033, -2
  %546 = getelementptr inbounds float, ptr %5, i64 %545
  %547 = load float, ptr %546, align 4, !tbaa !15
  %548 = getelementptr inbounds float, ptr %2, i64 %545
  %549 = load float, ptr %548, align 4, !tbaa !15
  %550 = fsub float %547, %549
  %551 = tail call float @llvm.fabs.f32(float %550)
  %552 = fpext float %551 to double
  %553 = add nsw i64 %indvars.iv1043, -2
  %554 = getelementptr inbounds float, ptr %5, i64 %553
  %555 = load float, ptr %554, align 4, !tbaa !15
  %556 = getelementptr inbounds float, ptr %2, i64 %553
  %557 = load float, ptr %556, align 4, !tbaa !15
  %558 = fsub float %555, %557
  %559 = tail call float @llvm.fabs.f32(float %558)
  br label %602

.thread936:                                       ; preds = %539
  %560 = add nsw i64 %indvars.iv1033, -2
  %561 = getelementptr inbounds float, ptr %3, i64 %560
  %562 = load float, ptr %561, align 4, !tbaa !15
  %563 = getelementptr inbounds float, ptr %4, i64 %560
  %564 = load float, ptr %563, align 4, !tbaa !15
  %565 = fsub float %562, %564
  %566 = fpext float %565 to double
  %567 = add nsw i64 %indvars.iv1043, -2
  %568 = getelementptr inbounds float, ptr %3, i64 %567
  %569 = load float, ptr %568, align 4, !tbaa !15
  %570 = getelementptr inbounds float, ptr %4, i64 %567
  %571 = load float, ptr %570, align 4, !tbaa !15
  %572 = fsub float %569, %571
  br label %602

.thread938:                                       ; preds = %539
  %573 = add nsw i64 %indvars.iv1033, -2
  %574 = getelementptr inbounds float, ptr %3, i64 %573
  %575 = load float, ptr %574, align 4, !tbaa !15
  %576 = getelementptr inbounds float, ptr %5, i64 %573
  %577 = load float, ptr %576, align 4, !tbaa !15
  %578 = getelementptr inbounds float, ptr %2, i64 %573
  %579 = load float, ptr %578, align 4, !tbaa !15
  %580 = fcmp ult float %577, %579
  %.910 = select i1 %580, float %579, float %577
  %581 = fsub float %575, %.910
  %582 = select i1 %580, float %577, float %579
  %583 = getelementptr inbounds float, ptr %4, i64 %573
  %584 = load float, ptr %583, align 4, !tbaa !15
  %585 = fsub float %582, %584
  %586 = fadd float %581, %585
  %587 = fpext float %586 to double
  %588 = add nsw i64 %indvars.iv1043, -2
  %589 = getelementptr inbounds float, ptr %3, i64 %588
  %590 = load float, ptr %589, align 4, !tbaa !15
  %591 = getelementptr inbounds float, ptr %5, i64 %588
  %592 = load float, ptr %591, align 4, !tbaa !15
  %593 = getelementptr inbounds float, ptr %2, i64 %588
  %594 = load float, ptr %593, align 4, !tbaa !15
  %595 = fcmp ult float %592, %594
  %.911 = select i1 %595, float %594, float %592
  %596 = fsub float %590, %.911
  %597 = select i1 %595, float %592, float %594
  %598 = getelementptr inbounds float, ptr %4, i64 %588
  %599 = load float, ptr %598, align 4, !tbaa !15
  %600 = fsub float %597, %599
  %601 = fadd float %596, %600
  br label %602

602:                                              ; preds = %539, %.thread936, %.thread938, %.thread934
  %603 = phi double [ %552, %.thread934 ], [ %566, %.thread936 ], [ %587, %.thread938 ], [ 0.000000e+00, %539 ]
  %.in887 = phi float [ %559, %.thread934 ], [ %572, %.thread936 ], [ %601, %.thread938 ], [ 0.000000e+00, %539 ]
  %604 = fpext float %.in887 to double
  %605 = fsub double %603, %604
  %606 = fadd double %.sroa.9.0, %605
  switch i32 %480, label %664 [
    i32 0, label %.thread928.1
    i32 1, label %.thread930.1
    i32 2, label %.thread932.1
  ]

.thread932.1:                                     ; preds = %602
  %607 = add nsw i64 %indvars.iv1033, -1
  %608 = getelementptr inbounds float, ptr %3, i64 %607
  %609 = load float, ptr %608, align 4, !tbaa !15
  %610 = getelementptr inbounds float, ptr %5, i64 %607
  %611 = load float, ptr %610, align 4, !tbaa !15
  %612 = getelementptr inbounds float, ptr %2, i64 %607
  %613 = load float, ptr %612, align 4, !tbaa !15
  %614 = fcmp ult float %611, %613
  %.908.1 = select i1 %614, float %613, float %611
  %615 = fsub float %609, %.908.1
  %616 = select i1 %614, float %611, float %613
  %617 = getelementptr inbounds float, ptr %4, i64 %607
  %618 = load float, ptr %617, align 4, !tbaa !15
  %619 = fsub float %616, %618
  %620 = fadd float %615, %619
  %621 = fpext float %620 to double
  %622 = add nsw i64 %indvars.iv1037, -1
  %623 = getelementptr inbounds float, ptr %3, i64 %622
  %624 = load float, ptr %623, align 4, !tbaa !15
  %625 = getelementptr inbounds float, ptr %5, i64 %622
  %626 = load float, ptr %625, align 4, !tbaa !15
  %627 = getelementptr inbounds float, ptr %2, i64 %622
  %628 = load float, ptr %627, align 4, !tbaa !15
  %629 = fcmp ult float %626, %628
  %.909.1 = select i1 %629, float %628, float %626
  %630 = fsub float %624, %.909.1
  %631 = select i1 %629, float %626, float %628
  %632 = getelementptr inbounds float, ptr %4, i64 %622
  %633 = load float, ptr %632, align 4, !tbaa !15
  %634 = fsub float %631, %633
  %635 = fadd float %630, %634
  br label %664

.thread930.1:                                     ; preds = %602
  %636 = add nsw i64 %indvars.iv1033, -1
  %637 = getelementptr inbounds float, ptr %3, i64 %636
  %638 = load float, ptr %637, align 4, !tbaa !15
  %639 = getelementptr inbounds float, ptr %4, i64 %636
  %640 = load float, ptr %639, align 4, !tbaa !15
  %641 = fsub float %638, %640
  %642 = fpext float %641 to double
  %643 = add nsw i64 %indvars.iv1037, -1
  %644 = getelementptr inbounds float, ptr %3, i64 %643
  %645 = load float, ptr %644, align 4, !tbaa !15
  %646 = getelementptr inbounds float, ptr %4, i64 %643
  %647 = load float, ptr %646, align 4, !tbaa !15
  %648 = fsub float %645, %647
  br label %664

.thread928.1:                                     ; preds = %602
  %649 = add nsw i64 %indvars.iv1033, -1
  %650 = getelementptr inbounds float, ptr %5, i64 %649
  %651 = load float, ptr %650, align 4, !tbaa !15
  %652 = getelementptr inbounds float, ptr %2, i64 %649
  %653 = load float, ptr %652, align 4, !tbaa !15
  %654 = fsub float %651, %653
  %655 = tail call float @llvm.fabs.f32(float %654)
  %656 = fpext float %655 to double
  %657 = add nsw i64 %indvars.iv1037, -1
  %658 = getelementptr inbounds float, ptr %5, i64 %657
  %659 = load float, ptr %658, align 4, !tbaa !15
  %660 = getelementptr inbounds float, ptr %2, i64 %657
  %661 = load float, ptr %660, align 4, !tbaa !15
  %662 = fsub float %659, %661
  %663 = tail call float @llvm.fabs.f32(float %662)
  br label %664

664:                                              ; preds = %.thread928.1, %.thread930.1, %.thread932.1, %602
  %665 = phi double [ %656, %.thread928.1 ], [ %642, %.thread930.1 ], [ %621, %.thread932.1 ], [ 0.000000e+00, %602 ]
  %.in885.1 = phi float [ %663, %.thread928.1 ], [ %648, %.thread930.1 ], [ %635, %.thread932.1 ], [ 0.000000e+00, %602 ]
  %666 = fpext float %.in885.1 to double
  %667 = fsub double %665, %666
  %668 = extractelement <2 x double> %251, i64 1
  %669 = fadd double %668, %667
  switch i32 %481, label %727 [
    i32 0, label %.thread934.1
    i32 1, label %.thread936.1
    i32 2, label %.thread938.1
  ]

.thread938.1:                                     ; preds = %664
  %670 = add nsw i64 %indvars.iv1033, -1
  %671 = getelementptr inbounds float, ptr %3, i64 %670
  %672 = load float, ptr %671, align 4, !tbaa !15
  %673 = getelementptr inbounds float, ptr %5, i64 %670
  %674 = load float, ptr %673, align 4, !tbaa !15
  %675 = getelementptr inbounds float, ptr %2, i64 %670
  %676 = load float, ptr %675, align 4, !tbaa !15
  %677 = fcmp ult float %674, %676
  %.910.1 = select i1 %677, float %676, float %674
  %678 = fsub float %672, %.910.1
  %679 = select i1 %677, float %674, float %676
  %680 = getelementptr inbounds float, ptr %4, i64 %670
  %681 = load float, ptr %680, align 4, !tbaa !15
  %682 = fsub float %679, %681
  %683 = fadd float %678, %682
  %684 = fpext float %683 to double
  %685 = add nsw i64 %indvars.iv1043, -1
  %686 = getelementptr inbounds float, ptr %3, i64 %685
  %687 = load float, ptr %686, align 4, !tbaa !15
  %688 = getelementptr inbounds float, ptr %5, i64 %685
  %689 = load float, ptr %688, align 4, !tbaa !15
  %690 = getelementptr inbounds float, ptr %2, i64 %685
  %691 = load float, ptr %690, align 4, !tbaa !15
  %692 = fcmp ult float %689, %691
  %.911.1 = select i1 %692, float %691, float %689
  %693 = fsub float %687, %.911.1
  %694 = select i1 %692, float %689, float %691
  %695 = getelementptr inbounds float, ptr %4, i64 %685
  %696 = load float, ptr %695, align 4, !tbaa !15
  %697 = fsub float %694, %696
  %698 = fadd float %693, %697
  br label %727

.thread936.1:                                     ; preds = %664
  %699 = add nsw i64 %indvars.iv1033, -1
  %700 = getelementptr inbounds float, ptr %3, i64 %699
  %701 = load float, ptr %700, align 4, !tbaa !15
  %702 = getelementptr inbounds float, ptr %4, i64 %699
  %703 = load float, ptr %702, align 4, !tbaa !15
  %704 = fsub float %701, %703
  %705 = fpext float %704 to double
  %706 = add nsw i64 %indvars.iv1043, -1
  %707 = getelementptr inbounds float, ptr %3, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !15
  %709 = getelementptr inbounds float, ptr %4, i64 %706
  %710 = load float, ptr %709, align 4, !tbaa !15
  %711 = fsub float %708, %710
  br label %727

.thread934.1:                                     ; preds = %664
  %712 = add nsw i64 %indvars.iv1033, -1
  %713 = getelementptr inbounds float, ptr %5, i64 %712
  %714 = load float, ptr %713, align 4, !tbaa !15
  %715 = getelementptr inbounds float, ptr %2, i64 %712
  %716 = load float, ptr %715, align 4, !tbaa !15
  %717 = fsub float %714, %716
  %718 = tail call float @llvm.fabs.f32(float %717)
  %719 = fpext float %718 to double
  %720 = add nsw i64 %indvars.iv1043, -1
  %721 = getelementptr inbounds float, ptr %5, i64 %720
  %722 = load float, ptr %721, align 4, !tbaa !15
  %723 = getelementptr inbounds float, ptr %2, i64 %720
  %724 = load float, ptr %723, align 4, !tbaa !15
  %725 = fsub float %722, %724
  %726 = tail call float @llvm.fabs.f32(float %725)
  br label %727

727:                                              ; preds = %.thread934.1, %.thread936.1, %.thread938.1, %664
  %728 = phi double [ %719, %.thread934.1 ], [ %705, %.thread936.1 ], [ %684, %.thread938.1 ], [ 0.000000e+00, %664 ]
  %.in887.1 = phi float [ %726, %.thread934.1 ], [ %711, %.thread936.1 ], [ %698, %.thread938.1 ], [ 0.000000e+00, %664 ]
  %729 = fpext float %.in887.1 to double
  %730 = fsub double %728, %729
  %731 = fadd double %.sroa.3.0, %730
  %indvars.iv.next1036 = add nuw nsw i64 %indvars.iv1035, 1
  %732 = load i32, ptr %173, align 4, !tbaa !14
  switch i32 %732, label %784 [
    i32 0, label %.thread940
    i32 1, label %.thread942
    i32 2, label %.thread944
  ]

.thread940:                                       ; preds = %727
  %733 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1033
  %734 = load float, ptr %733, align 4, !tbaa !15
  %735 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1033
  %736 = load float, ptr %735, align 4, !tbaa !15
  %737 = fsub float %734, %736
  %738 = tail call float @llvm.fabs.f32(float %737)
  %739 = fpext float %738 to double
  %740 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1039
  %741 = load float, ptr %740, align 4, !tbaa !15
  %742 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1039
  %743 = load float, ptr %742, align 4, !tbaa !15
  %744 = fsub float %741, %743
  %745 = tail call float @llvm.fabs.f32(float %744)
  br label %784

.thread942:                                       ; preds = %727
  %746 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1033
  %747 = load float, ptr %746, align 4, !tbaa !15
  %748 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1033
  %749 = load float, ptr %748, align 4, !tbaa !15
  %750 = fsub float %747, %749
  %751 = fpext float %750 to double
  %752 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1039
  %753 = load float, ptr %752, align 4, !tbaa !15
  %754 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1039
  %755 = load float, ptr %754, align 4, !tbaa !15
  %756 = fsub float %753, %755
  br label %784

.thread944:                                       ; preds = %727
  %757 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1033
  %758 = load float, ptr %757, align 4, !tbaa !15
  %759 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1033
  %760 = load float, ptr %759, align 4, !tbaa !15
  %761 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1033
  %762 = load float, ptr %761, align 4, !tbaa !15
  %763 = fcmp ult float %760, %762
  %.912 = select i1 %763, float %762, float %760
  %764 = fsub float %758, %.912
  %765 = select i1 %763, float %760, float %762
  %766 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1033
  %767 = load float, ptr %766, align 4, !tbaa !15
  %768 = fsub float %765, %767
  %769 = fadd float %764, %768
  %770 = fpext float %769 to double
  %771 = getelementptr inbounds float, ptr %3, i64 %indvars.iv1039
  %772 = load float, ptr %771, align 4, !tbaa !15
  %773 = getelementptr inbounds float, ptr %5, i64 %indvars.iv1039
  %774 = load float, ptr %773, align 4, !tbaa !15
  %775 = getelementptr inbounds float, ptr %2, i64 %indvars.iv1039
  %776 = load float, ptr %775, align 4, !tbaa !15
  %777 = fcmp ult float %774, %776
  %.913 = select i1 %777, float %776, float %774
  %778 = fsub float %772, %.913
  %779 = select i1 %777, float %774, float %776
  %780 = getelementptr inbounds float, ptr %4, i64 %indvars.iv1039
  %781 = load float, ptr %780, align 4, !tbaa !15
  %782 = fsub float %779, %781
  %783 = fadd float %778, %782
  br label %784

784:                                              ; preds = %727, %.thread942, %.thread944, %.thread940
  %785 = phi double [ %739, %.thread940 ], [ %751, %.thread942 ], [ %770, %.thread944 ], [ 0.000000e+00, %727 ]
  %.in880 = phi float [ %745, %.thread940 ], [ %756, %.thread942 ], [ %783, %.thread944 ], [ 0.000000e+00, %727 ]
  %786 = fpext float %.in880 to double
  %787 = fsub double %785, %786
  %788 = fadd double %.1752, %787
  %789 = load i32, ptr %174, align 4, !tbaa !14
  switch i32 %789, label %847 [
    i32 0, label %.thread946
    i32 1, label %.thread948
    i32 2, label %.thread950
  ]

.thread946:                                       ; preds = %784
  %790 = add nsw i64 %indvars.iv1033, -1
  %791 = getelementptr inbounds float, ptr %5, i64 %790
  %792 = load float, ptr %791, align 4, !tbaa !15
  %793 = getelementptr inbounds float, ptr %2, i64 %790
  %794 = load float, ptr %793, align 4, !tbaa !15
  %795 = fsub float %792, %794
  %796 = tail call float @llvm.fabs.f32(float %795)
  %797 = fpext float %796 to double
  %798 = add nsw i64 %indvars.iv1041, -1
  %799 = getelementptr inbounds float, ptr %5, i64 %798
  %800 = load float, ptr %799, align 4, !tbaa !15
  %801 = getelementptr inbounds float, ptr %2, i64 %798
  %802 = load float, ptr %801, align 4, !tbaa !15
  %803 = fsub float %800, %802
  %804 = tail call float @llvm.fabs.f32(float %803)
  br label %847

.thread948:                                       ; preds = %784
  %805 = add nsw i64 %indvars.iv1033, -1
  %806 = getelementptr inbounds float, ptr %3, i64 %805
  %807 = load float, ptr %806, align 4, !tbaa !15
  %808 = getelementptr inbounds float, ptr %4, i64 %805
  %809 = load float, ptr %808, align 4, !tbaa !15
  %810 = fsub float %807, %809
  %811 = fpext float %810 to double
  %812 = add nsw i64 %indvars.iv1041, -1
  %813 = getelementptr inbounds float, ptr %3, i64 %812
  %814 = load float, ptr %813, align 4, !tbaa !15
  %815 = getelementptr inbounds float, ptr %4, i64 %812
  %816 = load float, ptr %815, align 4, !tbaa !15
  %817 = fsub float %814, %816
  br label %847

.thread950:                                       ; preds = %784
  %818 = add nsw i64 %indvars.iv1033, -1
  %819 = getelementptr inbounds float, ptr %3, i64 %818
  %820 = load float, ptr %819, align 4, !tbaa !15
  %821 = getelementptr inbounds float, ptr %5, i64 %818
  %822 = load float, ptr %821, align 4, !tbaa !15
  %823 = getelementptr inbounds float, ptr %2, i64 %818
  %824 = load float, ptr %823, align 4, !tbaa !15
  %825 = fcmp ult float %822, %824
  %.914 = select i1 %825, float %824, float %822
  %826 = fsub float %820, %.914
  %827 = select i1 %825, float %822, float %824
  %828 = getelementptr inbounds float, ptr %4, i64 %818
  %829 = load float, ptr %828, align 4, !tbaa !15
  %830 = fsub float %827, %829
  %831 = fadd float %826, %830
  %832 = fpext float %831 to double
  %833 = add nsw i64 %indvars.iv1041, -1
  %834 = getelementptr inbounds float, ptr %3, i64 %833
  %835 = load float, ptr %834, align 4, !tbaa !15
  %836 = getelementptr inbounds float, ptr %5, i64 %833
  %837 = load float, ptr %836, align 4, !tbaa !15
  %838 = getelementptr inbounds float, ptr %2, i64 %833
  %839 = load float, ptr %838, align 4, !tbaa !15
  %840 = fcmp ult float %837, %839
  %.915 = select i1 %840, float %839, float %837
  %841 = fsub float %835, %.915
  %842 = select i1 %840, float %837, float %839
  %843 = getelementptr inbounds float, ptr %4, i64 %833
  %844 = load float, ptr %843, align 4, !tbaa !15
  %845 = fsub float %842, %844
  %846 = fadd float %841, %845
  br label %847

847:                                              ; preds = %784, %.thread948, %.thread950, %.thread946
  %848 = phi double [ %797, %.thread946 ], [ %811, %.thread948 ], [ %832, %.thread950 ], [ 0.000000e+00, %784 ]
  %.in882 = phi float [ %804, %.thread946 ], [ %817, %.thread948 ], [ %846, %.thread950 ], [ 0.000000e+00, %784 ]
  %849 = fpext float %.in882 to double
  %850 = fsub double %848, %849
  %851 = fadd double %.1750, %850
  %indvars.iv.next1034 = add nuw nsw i64 %indvars.iv1033, 1
  %indvars.iv.next1038 = add nsw i64 %indvars.iv1037, 1
  %indvars.iv.next1040 = add nsw i64 %indvars.iv1039, 1
  %indvars.iv.next1042 = add nsw i64 %indvars.iv1041, 1
  %indvars.iv.next1044 = add nsw i64 %indvars.iv1043, 1
  %.not883.not = icmp slt i64 %indvars.iv1033, %181
  %852 = insertelement <2 x double> poison, double %544, i64 0
  %853 = insertelement <2 x double> %852, double %669, i64 1
  br i1 %.not883.not, label %250, label %854, !llvm.loop !23

854:                                              ; preds = %847
  %855 = trunc nuw i64 %indvars.iv.next1036 to i32
  store i32 %855, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %856

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