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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

71:                                               ; preds = %64
  %72 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 2
  store double 0.000000e+00, ptr %72, align 16, !tbaa !11
  %73 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  store double 0.000000e+00, ptr %73, align 8, !tbaa !11
  %74 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 0
  store double 0.000000e+00, ptr %74, align 16, !tbaa !11
  %75 = load i32, ptr %11, align 4, !tbaa !5
  %76 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %77 = getelementptr inbounds %struct.TA_LibcPriv, ptr %76, i32 0, i32 8
  %78 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %77, i64 0, i64 7
  %79 = getelementptr inbounds %struct.TA_CandleSetting, ptr %78, i32 0, i32 2
  %80 = load i32, ptr %79, align 8, !tbaa !13
  %81 = sub nsw i32 %75, %80
  store i32 %81, ptr %25, align 4, !tbaa !5
  %82 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  store double 0.000000e+00, ptr %82, align 16, !tbaa !11
  %83 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  store double 0.000000e+00, ptr %83, align 8, !tbaa !11
  %84 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 0
  store double 0.000000e+00, ptr %84, align 16, !tbaa !11
  %85 = load i32, ptr %11, align 4, !tbaa !5
  %86 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %87 = getelementptr inbounds %struct.TA_LibcPriv, ptr %86, i32 0, i32 8
  %88 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %87, i64 0, i64 10
  %89 = getelementptr inbounds %struct.TA_CandleSetting, ptr %88, i32 0, i32 2
  %90 = load i32, ptr %89, align 8, !tbaa !13
  %91 = sub nsw i32 %85, %90
  store i32 %91, ptr %26, align 4, !tbaa !5
  %92 = load i32, ptr %25, align 4, !tbaa !5
  store i32 %92, ptr %22, align 4, !tbaa !5
  br label %93

93:                                               ; preds = %484, %71
  %94 = load i32, ptr %22, align 4, !tbaa !5
  %95 = load i32, ptr %11, align 4, !tbaa !5
  %96 = icmp slt i32 %94, %95
  br i1 %96, label %97, label %491

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

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

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

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

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

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

168:                                              ; preds = %148
  %169 = load ptr, ptr %16, align 8, !tbaa !9
  %170 = load i32, ptr %22, align 4, !tbaa !5
  %171 = sub nsw i32 %170, 2
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds float, ptr %169, i64 %172
  %174 = load float, ptr %173, align 4, !tbaa !16
  br label %182

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

182:                                              ; preds = %175, %168
  %183 = phi float [ %174, %168 ], [ %181, %175 ]
  %184 = fsub float %154, %183
  %185 = load ptr, ptr %16, align 8, !tbaa !9
  %186 = load i32, ptr %22, align 4, !tbaa !5
  %187 = sub nsw i32 %186, 2
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds float, ptr %185, i64 %188
  %190 = load float, ptr %189, align 4, !tbaa !16
  %191 = load ptr, ptr %13, align 8, !tbaa !9
  %192 = load i32, ptr %22, align 4, !tbaa !5
  %193 = sub nsw i32 %192, 2
  %194 = sext i32 %193 to i64
  %195 = getelementptr inbounds float, ptr %191, i64 %194
  %196 = load float, ptr %195, align 4, !tbaa !16
  %197 = fcmp oge float %190, %196
  br i1 %197, label %198, label %205

198:                                              ; preds = %182
  %199 = load ptr, ptr %13, align 8, !tbaa !9
  %200 = load i32, ptr %22, align 4, !tbaa !5
  %201 = sub nsw i32 %200, 2
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds float, ptr %199, i64 %202
  %204 = load float, ptr %203, align 4, !tbaa !16
  br label %212

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

212:                                              ; preds = %205, %198
  %213 = phi float [ %204, %198 ], [ %211, %205 ]
  %214 = load ptr, ptr %15, align 8, !tbaa !9
  %215 = load i32, ptr %22, align 4, !tbaa !5
  %216 = sub nsw i32 %215, 2
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds float, ptr %214, i64 %217
  %219 = load float, ptr %218, align 4, !tbaa !16
  %220 = fsub float %213, %219
  %221 = fadd float %184, %220
  br label %223

222:                                              ; preds = %141
  br label %223

223:                                              ; preds = %222, %212
  %224 = phi float [ %221, %212 ], [ 0.000000e+00, %222 ]
  br label %225

225:                                              ; preds = %223, %127
  %226 = phi float [ %140, %127 ], [ %224, %223 ]
  %227 = fpext float %226 to double
  br label %228

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

239:                                              ; preds = %228
  %240 = load ptr, ptr %16, align 8, !tbaa !9
  %241 = load i32, ptr %22, align 4, !tbaa !5
  %242 = sub nsw i32 %241, 1
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds float, ptr %240, i64 %243
  %245 = load float, ptr %244, align 4, !tbaa !16
  %246 = load ptr, ptr %13, align 8, !tbaa !9
  %247 = load i32, ptr %22, align 4, !tbaa !5
  %248 = sub nsw i32 %247, 1
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds float, ptr %246, i64 %249
  %251 = load float, ptr %250, align 4, !tbaa !16
  %252 = fsub float %245, %251
  %253 = fpext float %252 to double
  %254 = call double @llvm.fabs.f64(double %253)
  br label %363

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

262:                                              ; preds = %255
  %263 = load ptr, ptr %14, align 8, !tbaa !9
  %264 = load i32, ptr %22, align 4, !tbaa !5
  %265 = sub nsw i32 %264, 1
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds float, ptr %263, i64 %266
  %268 = load float, ptr %267, align 4, !tbaa !16
  %269 = load ptr, ptr %15, align 8, !tbaa !9
  %270 = load i32, ptr %22, align 4, !tbaa !5
  %271 = sub nsw i32 %270, 1
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds float, ptr %269, i64 %272
  %274 = load float, ptr %273, align 4, !tbaa !16
  %275 = fsub float %268, %274
  br label %360

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

283:                                              ; preds = %276
  %284 = load ptr, ptr %14, align 8, !tbaa !9
  %285 = load i32, ptr %22, align 4, !tbaa !5
  %286 = sub nsw i32 %285, 1
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds float, ptr %284, i64 %287
  %289 = load float, ptr %288, align 4, !tbaa !16
  %290 = load ptr, ptr %16, align 8, !tbaa !9
  %291 = load i32, ptr %22, align 4, !tbaa !5
  %292 = sub nsw i32 %291, 1
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds float, ptr %290, i64 %293
  %295 = load float, ptr %294, align 4, !tbaa !16
  %296 = load ptr, ptr %13, align 8, !tbaa !9
  %297 = load i32, ptr %22, align 4, !tbaa !5
  %298 = sub nsw i32 %297, 1
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds float, ptr %296, i64 %299
  %301 = load float, ptr %300, align 4, !tbaa !16
  %302 = fcmp oge float %295, %301
  br i1 %302, label %303, label %310

303:                                              ; preds = %283
  %304 = load ptr, ptr %16, align 8, !tbaa !9
  %305 = load i32, ptr %22, align 4, !tbaa !5
  %306 = sub nsw i32 %305, 1
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds float, ptr %304, i64 %307
  %309 = load float, ptr %308, align 4, !tbaa !16
  br label %317

310:                                              ; preds = %283
  %311 = load ptr, ptr %13, align 8, !tbaa !9
  %312 = load i32, ptr %22, align 4, !tbaa !5
  %313 = sub nsw i32 %312, 1
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds float, ptr %311, i64 %314
  %316 = load float, ptr %315, align 4, !tbaa !16
  br label %317

317:                                              ; preds = %310, %303
  %318 = phi float [ %309, %303 ], [ %316, %310 ]
  %319 = fsub float %289, %318
  %320 = load ptr, ptr %16, align 8, !tbaa !9
  %321 = load i32, ptr %22, align 4, !tbaa !5
  %322 = sub nsw i32 %321, 1
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds float, ptr %320, i64 %323
  %325 = load float, ptr %324, align 4, !tbaa !16
  %326 = load ptr, ptr %13, align 8, !tbaa !9
  %327 = load i32, ptr %22, align 4, !tbaa !5
  %328 = sub nsw i32 %327, 1
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds float, ptr %326, i64 %329
  %331 = load float, ptr %330, align 4, !tbaa !16
  %332 = fcmp oge float %325, %331
  br i1 %332, label %333, label %340

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

340:                                              ; preds = %317
  %341 = load ptr, ptr %16, align 8, !tbaa !9
  %342 = load i32, ptr %22, align 4, !tbaa !5
  %343 = sub nsw i32 %342, 1
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds float, ptr %341, i64 %344
  %346 = load float, ptr %345, align 4, !tbaa !16
  br label %347

347:                                              ; preds = %340, %333
  %348 = phi float [ %339, %333 ], [ %346, %340 ]
  %349 = load ptr, ptr %15, align 8, !tbaa !9
  %350 = load i32, ptr %22, align 4, !tbaa !5
  %351 = sub nsw i32 %350, 1
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds float, ptr %349, i64 %352
  %354 = load float, ptr %353, align 4, !tbaa !16
  %355 = fsub float %348, %354
  %356 = fadd float %319, %355
  br label %358

357:                                              ; preds = %276
  br label %358

358:                                              ; preds = %357, %347
  %359 = phi float [ %356, %347 ], [ 0.000000e+00, %357 ]
  br label %360

360:                                              ; preds = %358, %262
  %361 = phi float [ %275, %262 ], [ %359, %358 ]
  %362 = fpext float %361 to double
  br label %363

363:                                              ; preds = %360, %239
  %364 = phi double [ %254, %239 ], [ %362, %360 ]
  %365 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  %366 = load double, ptr %365, align 8, !tbaa !11
  %367 = fadd double %366, %364
  store double %367, ptr %365, align 8, !tbaa !11
  %368 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %369 = getelementptr inbounds %struct.TA_LibcPriv, ptr %368, i32 0, i32 8
  %370 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %369, i64 0, i64 7
  %371 = getelementptr inbounds %struct.TA_CandleSetting, ptr %370, i32 0, i32 1
  %372 = load i32, ptr %371, align 4, !tbaa !15
  %373 = icmp eq i32 %372, 0
  br i1 %373, label %374, label %388

374:                                              ; preds = %363
  %375 = load ptr, ptr %16, align 8, !tbaa !9
  %376 = load i32, ptr %22, align 4, !tbaa !5
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds float, ptr %375, i64 %377
  %379 = load float, ptr %378, align 4, !tbaa !16
  %380 = load ptr, ptr %13, align 8, !tbaa !9
  %381 = load i32, ptr %22, align 4, !tbaa !5
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds float, ptr %380, i64 %382
  %384 = load float, ptr %383, align 4, !tbaa !16
  %385 = fsub float %379, %384
  %386 = fpext float %385 to double
  %387 = call double @llvm.fabs.f64(double %386)
  br label %484

388:                                              ; preds = %363
  %389 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %390 = getelementptr inbounds %struct.TA_LibcPriv, ptr %389, i32 0, i32 8
  %391 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %390, i64 0, i64 7
  %392 = getelementptr inbounds %struct.TA_CandleSetting, ptr %391, i32 0, i32 1
  %393 = load i32, ptr %392, align 4, !tbaa !15
  %394 = icmp eq i32 %393, 1
  br i1 %394, label %395, label %407

395:                                              ; preds = %388
  %396 = load ptr, ptr %14, align 8, !tbaa !9
  %397 = load i32, ptr %22, align 4, !tbaa !5
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds float, ptr %396, i64 %398
  %400 = load float, ptr %399, align 4, !tbaa !16
  %401 = load ptr, ptr %15, align 8, !tbaa !9
  %402 = load i32, ptr %22, align 4, !tbaa !5
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds float, ptr %401, i64 %403
  %405 = load float, ptr %404, align 4, !tbaa !16
  %406 = fsub float %400, %405
  br label %481

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

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

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

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

443:                                              ; preds = %437, %431
  %444 = phi float [ %436, %431 ], [ %442, %437 ]
  %445 = fsub float %419, %444
  %446 = load ptr, ptr %16, align 8, !tbaa !9
  %447 = load i32, ptr %22, align 4, !tbaa !5
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %446, i64 %448
  %450 = load float, ptr %449, align 4, !tbaa !16
  %451 = load ptr, ptr %13, align 8, !tbaa !9
  %452 = load i32, ptr %22, align 4, !tbaa !5
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %451, i64 %453
  %455 = load float, ptr %454, align 4, !tbaa !16
  %456 = fcmp oge float %450, %455
  br i1 %456, label %457, label %463

457:                                              ; preds = %443
  %458 = load ptr, ptr %13, align 8, !tbaa !9
  %459 = load i32, ptr %22, align 4, !tbaa !5
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds float, ptr %458, i64 %460
  %462 = load float, ptr %461, align 4, !tbaa !16
  br label %469

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

469:                                              ; preds = %463, %457
  %470 = phi float [ %462, %457 ], [ %468, %463 ]
  %471 = load ptr, ptr %15, align 8, !tbaa !9
  %472 = load i32, ptr %22, align 4, !tbaa !5
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds float, ptr %471, i64 %473
  %475 = load float, ptr %474, align 4, !tbaa !16
  %476 = fsub float %470, %475
  %477 = fadd float %445, %476
  br label %479

478:                                              ; preds = %407
  br label %479

479:                                              ; preds = %478, %469
  %480 = phi float [ %477, %469 ], [ 0.000000e+00, %478 ]
  br label %481

481:                                              ; preds = %479, %395
  %482 = phi float [ %406, %395 ], [ %480, %479 ]
  %483 = fpext float %482 to double
  br label %484

484:                                              ; preds = %481, %374
  %485 = phi double [ %387, %374 ], [ %483, %481 ]
  %486 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 0
  %487 = load double, ptr %486, align 16, !tbaa !11
  %488 = fadd double %487, %485
  store double %488, ptr %486, align 16, !tbaa !11
  %489 = load i32, ptr %22, align 4, !tbaa !5
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr %22, align 4, !tbaa !5
  br label %93, !llvm.loop !18

491:                                              ; preds = %93
  %492 = load i32, ptr %26, align 4, !tbaa !5
  store i32 %492, ptr %22, align 4, !tbaa !5
  br label %493

493:                                              ; preds = %763, %491
  %494 = load i32, ptr %22, align 4, !tbaa !5
  %495 = load i32, ptr %11, align 4, !tbaa !5
  %496 = icmp slt i32 %494, %495
  br i1 %496, label %497, label %770

497:                                              ; preds = %493
  %498 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %499 = getelementptr inbounds %struct.TA_LibcPriv, ptr %498, i32 0, i32 8
  %500 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %499, i64 0, i64 10
  %501 = getelementptr inbounds %struct.TA_CandleSetting, ptr %500, i32 0, i32 1
  %502 = load i32, ptr %501, align 4, !tbaa !15
  %503 = icmp eq i32 %502, 0
  br i1 %503, label %504, label %520

504:                                              ; preds = %497
  %505 = load ptr, ptr %16, align 8, !tbaa !9
  %506 = load i32, ptr %22, align 4, !tbaa !5
  %507 = sub nsw i32 %506, 2
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds float, ptr %505, i64 %508
  %510 = load float, ptr %509, align 4, !tbaa !16
  %511 = load ptr, ptr %13, align 8, !tbaa !9
  %512 = load i32, ptr %22, align 4, !tbaa !5
  %513 = sub nsw i32 %512, 2
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds float, ptr %511, i64 %514
  %516 = load float, ptr %515, align 4, !tbaa !16
  %517 = fsub float %510, %516
  %518 = fpext float %517 to double
  %519 = call double @llvm.fabs.f64(double %518)
  br label %628

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

527:                                              ; preds = %520
  %528 = load ptr, ptr %14, align 8, !tbaa !9
  %529 = load i32, ptr %22, align 4, !tbaa !5
  %530 = sub nsw i32 %529, 2
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds float, ptr %528, i64 %531
  %533 = load float, ptr %532, align 4, !tbaa !16
  %534 = load ptr, ptr %15, align 8, !tbaa !9
  %535 = load i32, ptr %22, align 4, !tbaa !5
  %536 = sub nsw i32 %535, 2
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds float, ptr %534, i64 %537
  %539 = load float, ptr %538, align 4, !tbaa !16
  %540 = fsub float %533, %539
  br label %625

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

548:                                              ; preds = %541
  %549 = load ptr, ptr %14, align 8, !tbaa !9
  %550 = load i32, ptr %22, align 4, !tbaa !5
  %551 = sub nsw i32 %550, 2
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds float, ptr %549, i64 %552
  %554 = load float, ptr %553, align 4, !tbaa !16
  %555 = load ptr, ptr %16, align 8, !tbaa !9
  %556 = load i32, ptr %22, align 4, !tbaa !5
  %557 = sub nsw i32 %556, 2
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds float, ptr %555, i64 %558
  %560 = load float, ptr %559, align 4, !tbaa !16
  %561 = load ptr, ptr %13, align 8, !tbaa !9
  %562 = load i32, ptr %22, align 4, !tbaa !5
  %563 = sub nsw i32 %562, 2
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds float, ptr %561, i64 %564
  %566 = load float, ptr %565, align 4, !tbaa !16
  %567 = fcmp oge float %560, %566
  br i1 %567, label %568, label %575

568:                                              ; preds = %548
  %569 = load ptr, ptr %16, align 8, !tbaa !9
  %570 = load i32, ptr %22, align 4, !tbaa !5
  %571 = sub nsw i32 %570, 2
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds float, ptr %569, i64 %572
  %574 = load float, ptr %573, align 4, !tbaa !16
  br label %582

575:                                              ; preds = %548
  %576 = load ptr, ptr %13, align 8, !tbaa !9
  %577 = load i32, ptr %22, align 4, !tbaa !5
  %578 = sub nsw i32 %577, 2
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %576, i64 %579
  %581 = load float, ptr %580, align 4, !tbaa !16
  br label %582

582:                                              ; preds = %575, %568
  %583 = phi float [ %574, %568 ], [ %581, %575 ]
  %584 = fsub float %554, %583
  %585 = load ptr, ptr %16, align 8, !tbaa !9
  %586 = load i32, ptr %22, align 4, !tbaa !5
  %587 = sub nsw i32 %586, 2
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds float, ptr %585, i64 %588
  %590 = load float, ptr %589, align 4, !tbaa !16
  %591 = load ptr, ptr %13, align 8, !tbaa !9
  %592 = load i32, ptr %22, align 4, !tbaa !5
  %593 = sub nsw i32 %592, 2
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %591, i64 %594
  %596 = load float, ptr %595, align 4, !tbaa !16
  %597 = fcmp oge float %590, %596
  br i1 %597, label %598, label %605

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

605:                                              ; preds = %582
  %606 = load ptr, ptr %16, align 8, !tbaa !9
  %607 = load i32, ptr %22, align 4, !tbaa !5
  %608 = sub nsw i32 %607, 2
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds float, ptr %606, i64 %609
  %611 = load float, ptr %610, align 4, !tbaa !16
  br label %612

612:                                              ; preds = %605, %598
  %613 = phi float [ %604, %598 ], [ %611, %605 ]
  %614 = load ptr, ptr %15, align 8, !tbaa !9
  %615 = load i32, ptr %22, align 4, !tbaa !5
  %616 = sub nsw i32 %615, 2
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds float, ptr %614, i64 %617
  %619 = load float, ptr %618, align 4, !tbaa !16
  %620 = fsub float %613, %619
  %621 = fadd float %584, %620
  br label %623

622:                                              ; preds = %541
  br label %623

623:                                              ; preds = %622, %612
  %624 = phi float [ %621, %612 ], [ 0.000000e+00, %622 ]
  br label %625

625:                                              ; preds = %623, %527
  %626 = phi float [ %540, %527 ], [ %624, %623 ]
  %627 = fpext float %626 to double
  br label %628

628:                                              ; preds = %625, %504
  %629 = phi double [ %519, %504 ], [ %627, %625 ]
  %630 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  %631 = load double, ptr %630, align 16, !tbaa !11
  %632 = fadd double %631, %629
  store double %632, ptr %630, align 16, !tbaa !11
  %633 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %634 = getelementptr inbounds %struct.TA_LibcPriv, ptr %633, i32 0, i32 8
  %635 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %634, i64 0, i64 10
  %636 = getelementptr inbounds %struct.TA_CandleSetting, ptr %635, i32 0, i32 1
  %637 = load i32, ptr %636, align 4, !tbaa !15
  %638 = icmp eq i32 %637, 0
  br i1 %638, label %639, label %655

639:                                              ; preds = %628
  %640 = load ptr, ptr %16, align 8, !tbaa !9
  %641 = load i32, ptr %22, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %647 = load i32, ptr %22, align 4, !tbaa !5
  %648 = sub nsw i32 %647, 1
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds float, ptr %646, i64 %649
  %651 = load float, ptr %650, align 4, !tbaa !16
  %652 = fsub float %645, %651
  %653 = fpext float %652 to double
  %654 = call double @llvm.fabs.f64(double %653)
  br label %763

655:                                              ; preds = %628
  %656 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %657 = getelementptr inbounds %struct.TA_LibcPriv, ptr %656, i32 0, i32 8
  %658 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %657, i64 0, i64 10
  %659 = getelementptr inbounds %struct.TA_CandleSetting, ptr %658, i32 0, i32 1
  %660 = load i32, ptr %659, align 4, !tbaa !15
  %661 = icmp eq i32 %660, 1
  br i1 %661, label %662, label %676

662:                                              ; preds = %655
  %663 = load ptr, ptr %14, align 8, !tbaa !9
  %664 = load i32, ptr %22, align 4, !tbaa !5
  %665 = sub nsw i32 %664, 1
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds float, ptr %663, i64 %666
  %668 = load float, ptr %667, align 4, !tbaa !16
  %669 = load ptr, ptr %15, align 8, !tbaa !9
  %670 = load i32, ptr %22, align 4, !tbaa !5
  %671 = sub nsw i32 %670, 1
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds float, ptr %669, i64 %672
  %674 = load float, ptr %673, align 4, !tbaa !16
  %675 = fsub float %668, %674
  br label %760

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

683:                                              ; preds = %676
  %684 = load ptr, ptr %14, align 8, !tbaa !9
  %685 = load i32, ptr %22, align 4, !tbaa !5
  %686 = sub nsw i32 %685, 1
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %684, i64 %687
  %689 = load float, ptr %688, align 4, !tbaa !16
  %690 = load ptr, ptr %16, align 8, !tbaa !9
  %691 = load i32, ptr %22, align 4, !tbaa !5
  %692 = sub nsw i32 %691, 1
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds float, ptr %690, i64 %693
  %695 = load float, ptr %694, align 4, !tbaa !16
  %696 = load ptr, ptr %13, align 8, !tbaa !9
  %697 = load i32, ptr %22, align 4, !tbaa !5
  %698 = sub nsw i32 %697, 1
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds float, ptr %696, i64 %699
  %701 = load float, ptr %700, align 4, !tbaa !16
  %702 = fcmp oge float %695, %701
  br i1 %702, label %703, label %710

703:                                              ; preds = %683
  %704 = load ptr, ptr %16, align 8, !tbaa !9
  %705 = load i32, ptr %22, align 4, !tbaa !5
  %706 = sub nsw i32 %705, 1
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds float, ptr %704, i64 %707
  %709 = load float, ptr %708, align 4, !tbaa !16
  br label %717

710:                                              ; preds = %683
  %711 = load ptr, ptr %13, align 8, !tbaa !9
  %712 = load i32, ptr %22, align 4, !tbaa !5
  %713 = sub nsw i32 %712, 1
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds float, ptr %711, i64 %714
  %716 = load float, ptr %715, align 4, !tbaa !16
  br label %717

717:                                              ; preds = %710, %703
  %718 = phi float [ %709, %703 ], [ %716, %710 ]
  %719 = fsub float %689, %718
  %720 = load ptr, ptr %16, align 8, !tbaa !9
  %721 = load i32, ptr %22, align 4, !tbaa !5
  %722 = sub nsw i32 %721, 1
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds float, ptr %720, i64 %723
  %725 = load float, ptr %724, align 4, !tbaa !16
  %726 = load ptr, ptr %13, align 8, !tbaa !9
  %727 = load i32, ptr %22, align 4, !tbaa !5
  %728 = sub nsw i32 %727, 1
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds float, ptr %726, i64 %729
  %731 = load float, ptr %730, align 4, !tbaa !16
  %732 = fcmp oge float %725, %731
  br i1 %732, label %733, label %740

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

740:                                              ; preds = %717
  %741 = load ptr, ptr %16, align 8, !tbaa !9
  %742 = load i32, ptr %22, align 4, !tbaa !5
  %743 = sub nsw i32 %742, 1
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds float, ptr %741, i64 %744
  %746 = load float, ptr %745, align 4, !tbaa !16
  br label %747

747:                                              ; preds = %740, %733
  %748 = phi float [ %739, %733 ], [ %746, %740 ]
  %749 = load ptr, ptr %15, align 8, !tbaa !9
  %750 = load i32, ptr %22, align 4, !tbaa !5
  %751 = sub nsw i32 %750, 1
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds float, ptr %749, i64 %752
  %754 = load float, ptr %753, align 4, !tbaa !16
  %755 = fsub float %748, %754
  %756 = fadd float %719, %755
  br label %758

757:                                              ; preds = %676
  br label %758

758:                                              ; preds = %757, %747
  %759 = phi float [ %756, %747 ], [ 0.000000e+00, %757 ]
  br label %760

760:                                              ; preds = %758, %662
  %761 = phi float [ %675, %662 ], [ %759, %758 ]
  %762 = fpext float %761 to double
  br label %763

763:                                              ; preds = %760, %639
  %764 = phi double [ %654, %639 ], [ %762, %760 ]
  %765 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %766 = load double, ptr %765, align 8, !tbaa !11
  %767 = fadd double %766, %764
  store double %767, ptr %765, align 8, !tbaa !11
  %768 = load i32, ptr %22, align 4, !tbaa !5
  %769 = add nsw i32 %768, 1
  store i32 %769, ptr %22, align 4, !tbaa !5
  br label %493, !llvm.loop !20

770:                                              ; preds = %493
  %771 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %771, ptr %22, align 4, !tbaa !5
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %772

772:                                              ; preds = %2812, %770
  %773 = load ptr, ptr %16, align 8, !tbaa !9
  %774 = load i32, ptr %22, align 4, !tbaa !5
  %775 = sub nsw i32 %774, 2
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds float, ptr %773, i64 %776
  %778 = load float, ptr %777, align 4, !tbaa !16
  %779 = load ptr, ptr %13, align 8, !tbaa !9
  %780 = load i32, ptr %22, align 4, !tbaa !5
  %781 = sub nsw i32 %780, 2
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds float, ptr %779, i64 %782
  %784 = load float, ptr %783, align 4, !tbaa !16
  %785 = fcmp oge float %778, %784
  %786 = zext i1 %785 to i64
  %787 = select i1 %785, i32 1, i32 -1
  %788 = icmp eq i32 %787, -1
  br i1 %788, label %789, label %2187

789:                                              ; preds = %772
  %790 = load ptr, ptr %16, align 8, !tbaa !9
  %791 = load i32, ptr %22, align 4, !tbaa !5
  %792 = sub nsw i32 %791, 2
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds float, ptr %790, i64 %793
  %795 = load float, ptr %794, align 4, !tbaa !16
  %796 = load ptr, ptr %13, align 8, !tbaa !9
  %797 = load i32, ptr %22, align 4, !tbaa !5
  %798 = sub nsw i32 %797, 2
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds float, ptr %796, i64 %799
  %801 = load float, ptr %800, align 4, !tbaa !16
  %802 = fcmp oge float %795, %801
  br i1 %802, label %803, label %810

803:                                              ; preds = %789
  %804 = load ptr, ptr %13, align 8, !tbaa !9
  %805 = load i32, ptr %22, align 4, !tbaa !5
  %806 = sub nsw i32 %805, 2
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds float, ptr %804, i64 %807
  %809 = load float, ptr %808, align 4, !tbaa !16
  br label %817

810:                                              ; preds = %789
  %811 = load ptr, ptr %16, align 8, !tbaa !9
  %812 = load i32, ptr %22, align 4, !tbaa !5
  %813 = sub nsw i32 %812, 2
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds float, ptr %811, i64 %814
  %816 = load float, ptr %815, align 4, !tbaa !16
  br label %817

817:                                              ; preds = %810, %803
  %818 = phi float [ %809, %803 ], [ %816, %810 ]
  %819 = load ptr, ptr %15, align 8, !tbaa !9
  %820 = load i32, ptr %22, align 4, !tbaa !5
  %821 = sub nsw i32 %820, 2
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %819, i64 %822
  %824 = load float, ptr %823, align 4, !tbaa !16
  %825 = fsub float %818, %824
  %826 = fpext float %825 to double
  %827 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %828 = getelementptr inbounds %struct.TA_LibcPriv, ptr %827, i32 0, i32 8
  %829 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %828, i64 0, i64 7
  %830 = getelementptr inbounds %struct.TA_CandleSetting, ptr %829, i32 0, i32 3
  %831 = load double, ptr %830, align 8, !tbaa !21
  %832 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %833 = getelementptr inbounds %struct.TA_LibcPriv, ptr %832, i32 0, i32 8
  %834 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %833, i64 0, i64 7
  %835 = getelementptr inbounds %struct.TA_CandleSetting, ptr %834, i32 0, i32 2
  %836 = load i32, ptr %835, align 8, !tbaa !13
  %837 = sitofp i32 %836 to double
  %838 = fcmp une double %837, 0.000000e+00
  br i1 %838, label %839, label %849

839:                                              ; preds = %817
  %840 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 2
  %841 = load double, ptr %840, align 16, !tbaa !11
  %842 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %843 = getelementptr inbounds %struct.TA_LibcPriv, ptr %842, i32 0, i32 8
  %844 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %843, i64 0, i64 7
  %845 = getelementptr inbounds %struct.TA_CandleSetting, ptr %844, i32 0, i32 2
  %846 = load i32, ptr %845, align 8, !tbaa !13
  %847 = sitofp i32 %846 to double
  %848 = fdiv double %841, %847
  br label %982

849:                                              ; preds = %817
  %850 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %851 = getelementptr inbounds %struct.TA_LibcPriv, ptr %850, i32 0, i32 8
  %852 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %851, i64 0, i64 7
  %853 = getelementptr inbounds %struct.TA_CandleSetting, ptr %852, i32 0, i32 1
  %854 = load i32, ptr %853, align 4, !tbaa !15
  %855 = icmp eq i32 %854, 0
  br i1 %855, label %856, label %872

856:                                              ; preds = %849
  %857 = load ptr, ptr %16, align 8, !tbaa !9
  %858 = load i32, ptr %22, align 4, !tbaa !5
  %859 = sub nsw i32 %858, 2
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds float, ptr %857, i64 %860
  %862 = load float, ptr %861, align 4, !tbaa !16
  %863 = load ptr, ptr %13, align 8, !tbaa !9
  %864 = load i32, ptr %22, align 4, !tbaa !5
  %865 = sub nsw i32 %864, 2
  %866 = sext i32 %865 to i64
  %867 = getelementptr inbounds float, ptr %863, i64 %866
  %868 = load float, ptr %867, align 4, !tbaa !16
  %869 = fsub float %862, %868
  %870 = fpext float %869 to double
  %871 = call double @llvm.fabs.f64(double %870)
  br label %980

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

879:                                              ; preds = %872
  %880 = load ptr, ptr %14, align 8, !tbaa !9
  %881 = load i32, ptr %22, align 4, !tbaa !5
  %882 = sub nsw i32 %881, 2
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds float, ptr %880, i64 %883
  %885 = load float, ptr %884, align 4, !tbaa !16
  %886 = load ptr, ptr %15, align 8, !tbaa !9
  %887 = load i32, ptr %22, align 4, !tbaa !5
  %888 = sub nsw i32 %887, 2
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds float, ptr %886, i64 %889
  %891 = load float, ptr %890, align 4, !tbaa !16
  %892 = fsub float %885, %891
  br label %977

893:                                              ; preds = %872
  %894 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %895 = getelementptr inbounds %struct.TA_LibcPriv, ptr %894, i32 0, i32 8
  %896 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %895, i64 0, i64 7
  %897 = getelementptr inbounds %struct.TA_CandleSetting, ptr %896, i32 0, i32 1
  %898 = load i32, ptr %897, align 4, !tbaa !15
  %899 = icmp eq i32 %898, 2
  br i1 %899, label %900, label %974

900:                                              ; preds = %893
  %901 = load ptr, ptr %14, align 8, !tbaa !9
  %902 = load i32, ptr %22, align 4, !tbaa !5
  %903 = sub nsw i32 %902, 2
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds float, ptr %901, i64 %904
  %906 = load float, ptr %905, align 4, !tbaa !16
  %907 = load ptr, ptr %16, align 8, !tbaa !9
  %908 = load i32, ptr %22, align 4, !tbaa !5
  %909 = sub nsw i32 %908, 2
  %910 = sext i32 %909 to i64
  %911 = getelementptr inbounds float, ptr %907, i64 %910
  %912 = load float, ptr %911, align 4, !tbaa !16
  %913 = load ptr, ptr %13, align 8, !tbaa !9
  %914 = load i32, ptr %22, align 4, !tbaa !5
  %915 = sub nsw i32 %914, 2
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds float, ptr %913, i64 %916
  %918 = load float, ptr %917, align 4, !tbaa !16
  %919 = fcmp oge float %912, %918
  br i1 %919, label %920, label %927

920:                                              ; preds = %900
  %921 = load ptr, ptr %16, align 8, !tbaa !9
  %922 = load i32, ptr %22, align 4, !tbaa !5
  %923 = sub nsw i32 %922, 2
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds float, ptr %921, i64 %924
  %926 = load float, ptr %925, align 4, !tbaa !16
  br label %934

927:                                              ; preds = %900
  %928 = load ptr, ptr %13, align 8, !tbaa !9
  %929 = load i32, ptr %22, align 4, !tbaa !5
  %930 = sub nsw i32 %929, 2
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds float, ptr %928, i64 %931
  %933 = load float, ptr %932, align 4, !tbaa !16
  br label %934

934:                                              ; preds = %927, %920
  %935 = phi float [ %926, %920 ], [ %933, %927 ]
  %936 = fsub float %906, %935
  %937 = load ptr, ptr %16, align 8, !tbaa !9
  %938 = load i32, ptr %22, align 4, !tbaa !5
  %939 = sub nsw i32 %938, 2
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds float, ptr %937, i64 %940
  %942 = load float, ptr %941, align 4, !tbaa !16
  %943 = load ptr, ptr %13, align 8, !tbaa !9
  %944 = load i32, ptr %22, align 4, !tbaa !5
  %945 = sub nsw i32 %944, 2
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds float, ptr %943, i64 %946
  %948 = load float, ptr %947, align 4, !tbaa !16
  %949 = fcmp oge float %942, %948
  br i1 %949, label %950, label %957

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

957:                                              ; preds = %934
  %958 = load ptr, ptr %16, align 8, !tbaa !9
  %959 = load i32, ptr %22, align 4, !tbaa !5
  %960 = sub nsw i32 %959, 2
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds float, ptr %958, i64 %961
  %963 = load float, ptr %962, align 4, !tbaa !16
  br label %964

964:                                              ; preds = %957, %950
  %965 = phi float [ %956, %950 ], [ %963, %957 ]
  %966 = load ptr, ptr %15, align 8, !tbaa !9
  %967 = load i32, ptr %22, align 4, !tbaa !5
  %968 = sub nsw i32 %967, 2
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds float, ptr %966, i64 %969
  %971 = load float, ptr %970, align 4, !tbaa !16
  %972 = fsub float %965, %971
  %973 = fadd float %936, %972
  br label %975

974:                                              ; preds = %893
  br label %975

975:                                              ; preds = %974, %964
  %976 = phi float [ %973, %964 ], [ 0.000000e+00, %974 ]
  br label %977

977:                                              ; preds = %975, %879
  %978 = phi float [ %892, %879 ], [ %976, %975 ]
  %979 = fpext float %978 to double
  br label %980

980:                                              ; preds = %977, %856
  %981 = phi double [ %871, %856 ], [ %979, %977 ]
  br label %982

982:                                              ; preds = %980, %839
  %983 = phi double [ %848, %839 ], [ %981, %980 ]
  %984 = fmul double %831, %983
  %985 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %986 = getelementptr inbounds %struct.TA_LibcPriv, ptr %985, i32 0, i32 8
  %987 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %986, i64 0, i64 7
  %988 = getelementptr inbounds %struct.TA_CandleSetting, ptr %987, i32 0, i32 1
  %989 = load i32, ptr %988, align 4, !tbaa !15
  %990 = icmp eq i32 %989, 2
  %991 = zext i1 %990 to i64
  %992 = select i1 %990, double 2.000000e+00, double 1.000000e+00
  %993 = fdiv double %984, %992
  %994 = fcmp olt double %826, %993
  br i1 %994, label %995, label %2187

995:                                              ; preds = %982
  %996 = load ptr, ptr %16, align 8, !tbaa !9
  %997 = load i32, ptr %22, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %1003 = load i32, ptr %22, align 4, !tbaa !5
  %1004 = sub nsw i32 %1003, 1
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds float, ptr %1002, i64 %1005
  %1007 = load float, ptr %1006, align 4, !tbaa !16
  %1008 = fcmp oge float %1001, %1007
  %1009 = zext i1 %1008 to i64
  %1010 = select i1 %1008, i32 1, i32 -1
  %1011 = icmp eq i32 %1010, -1
  br i1 %1011, label %1012, label %2187

1012:                                             ; preds = %995
  %1013 = load ptr, ptr %16, align 8, !tbaa !9
  %1014 = load i32, ptr %22, align 4, !tbaa !5
  %1015 = sub nsw i32 %1014, 1
  %1016 = sext i32 %1015 to i64
  %1017 = getelementptr inbounds float, ptr %1013, i64 %1016
  %1018 = load float, ptr %1017, align 4, !tbaa !16
  %1019 = load ptr, ptr %13, align 8, !tbaa !9
  %1020 = load i32, ptr %22, align 4, !tbaa !5
  %1021 = sub nsw i32 %1020, 1
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds float, ptr %1019, i64 %1022
  %1024 = load float, ptr %1023, align 4, !tbaa !16
  %1025 = fcmp oge float %1018, %1024
  br i1 %1025, label %1026, label %1033

1026:                                             ; preds = %1012
  %1027 = load ptr, ptr %13, align 8, !tbaa !9
  %1028 = load i32, ptr %22, align 4, !tbaa !5
  %1029 = sub nsw i32 %1028, 1
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds float, ptr %1027, i64 %1030
  %1032 = load float, ptr %1031, align 4, !tbaa !16
  br label %1040

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

1040:                                             ; preds = %1033, %1026
  %1041 = phi float [ %1032, %1026 ], [ %1039, %1033 ]
  %1042 = load ptr, ptr %15, align 8, !tbaa !9
  %1043 = load i32, ptr %22, align 4, !tbaa !5
  %1044 = sub nsw i32 %1043, 1
  %1045 = sext i32 %1044 to i64
  %1046 = getelementptr inbounds float, ptr %1042, i64 %1045
  %1047 = load float, ptr %1046, align 4, !tbaa !16
  %1048 = fsub float %1041, %1047
  %1049 = fpext float %1048 to double
  %1050 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1051 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1050, i32 0, i32 8
  %1052 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1051, i64 0, i64 7
  %1053 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1052, i32 0, i32 3
  %1054 = load double, ptr %1053, align 8, !tbaa !21
  %1055 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1056 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1055, i32 0, i32 8
  %1057 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1056, i64 0, i64 7
  %1058 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1057, i32 0, i32 2
  %1059 = load i32, ptr %1058, align 8, !tbaa !13
  %1060 = sitofp i32 %1059 to double
  %1061 = fcmp une double %1060, 0.000000e+00
  br i1 %1061, label %1062, label %1072

1062:                                             ; preds = %1040
  %1063 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  %1064 = load double, ptr %1063, align 8, !tbaa !11
  %1065 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1066 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1065, i32 0, i32 8
  %1067 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1066, i64 0, i64 7
  %1068 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1067, i32 0, i32 2
  %1069 = load i32, ptr %1068, align 8, !tbaa !13
  %1070 = sitofp i32 %1069 to double
  %1071 = fdiv double %1064, %1070
  br label %1205

1072:                                             ; preds = %1040
  %1073 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1074 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1073, i32 0, i32 8
  %1075 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1074, i64 0, i64 7
  %1076 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1075, i32 0, i32 1
  %1077 = load i32, ptr %1076, align 4, !tbaa !15
  %1078 = icmp eq i32 %1077, 0
  br i1 %1078, label %1079, label %1095

1079:                                             ; preds = %1072
  %1080 = load ptr, ptr %16, align 8, !tbaa !9
  %1081 = load i32, ptr %22, align 4, !tbaa !5
  %1082 = sub nsw i32 %1081, 1
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds float, ptr %1080, i64 %1083
  %1085 = load float, ptr %1084, align 4, !tbaa !16
  %1086 = load ptr, ptr %13, align 8, !tbaa !9
  %1087 = load i32, ptr %22, align 4, !tbaa !5
  %1088 = sub nsw i32 %1087, 1
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds float, ptr %1086, i64 %1089
  %1091 = load float, ptr %1090, align 4, !tbaa !16
  %1092 = fsub float %1085, %1091
  %1093 = fpext float %1092 to double
  %1094 = call double @llvm.fabs.f64(double %1093)
  br label %1203

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

1102:                                             ; preds = %1095
  %1103 = load ptr, ptr %14, align 8, !tbaa !9
  %1104 = load i32, ptr %22, align 4, !tbaa !5
  %1105 = sub nsw i32 %1104, 1
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds float, ptr %1103, i64 %1106
  %1108 = load float, ptr %1107, align 4, !tbaa !16
  %1109 = load ptr, ptr %15, align 8, !tbaa !9
  %1110 = load i32, ptr %22, align 4, !tbaa !5
  %1111 = sub nsw i32 %1110, 1
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds float, ptr %1109, i64 %1112
  %1114 = load float, ptr %1113, align 4, !tbaa !16
  %1115 = fsub float %1108, %1114
  br label %1200

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

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

1143:                                             ; preds = %1123
  %1144 = load ptr, ptr %16, align 8, !tbaa !9
  %1145 = load i32, ptr %22, align 4, !tbaa !5
  %1146 = sub nsw i32 %1145, 1
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds float, ptr %1144, i64 %1147
  %1149 = load float, ptr %1148, align 4, !tbaa !16
  br label %1157

1150:                                             ; preds = %1123
  %1151 = load ptr, ptr %13, align 8, !tbaa !9
  %1152 = load i32, ptr %22, align 4, !tbaa !5
  %1153 = sub nsw i32 %1152, 1
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds float, ptr %1151, i64 %1154
  %1156 = load float, ptr %1155, align 4, !tbaa !16
  br label %1157

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

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

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

1187:                                             ; preds = %1180, %1173
  %1188 = phi float [ %1179, %1173 ], [ %1186, %1180 ]
  %1189 = load ptr, ptr %15, align 8, !tbaa !9
  %1190 = load i32, ptr %22, align 4, !tbaa !5
  %1191 = sub nsw i32 %1190, 1
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds float, ptr %1189, i64 %1192
  %1194 = load float, ptr %1193, align 4, !tbaa !16
  %1195 = fsub float %1188, %1194
  %1196 = fadd float %1159, %1195
  br label %1198

1197:                                             ; preds = %1116
  br label %1198

1198:                                             ; preds = %1197, %1187
  %1199 = phi float [ %1196, %1187 ], [ 0.000000e+00, %1197 ]
  br label %1200

1200:                                             ; preds = %1198, %1102
  %1201 = phi float [ %1115, %1102 ], [ %1199, %1198 ]
  %1202 = fpext float %1201 to double
  br label %1203

1203:                                             ; preds = %1200, %1079
  %1204 = phi double [ %1094, %1079 ], [ %1202, %1200 ]
  br label %1205

1205:                                             ; preds = %1203, %1062
  %1206 = phi double [ %1071, %1062 ], [ %1204, %1203 ]
  %1207 = fmul double %1054, %1206
  %1208 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1209 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1208, i32 0, i32 8
  %1210 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1209, i64 0, i64 7
  %1211 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1210, i32 0, i32 1
  %1212 = load i32, ptr %1211, align 4, !tbaa !15
  %1213 = icmp eq i32 %1212, 2
  %1214 = zext i1 %1213 to i64
  %1215 = select i1 %1213, double 2.000000e+00, double 1.000000e+00
  %1216 = fdiv double %1207, %1215
  %1217 = fcmp olt double %1049, %1216
  br i1 %1217, label %1218, label %2187

1218:                                             ; preds = %1205
  %1219 = load ptr, ptr %16, align 8, !tbaa !9
  %1220 = load i32, ptr %22, align 4, !tbaa !5
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds float, ptr %1219, i64 %1221
  %1223 = load float, ptr %1222, align 4, !tbaa !16
  %1224 = load ptr, ptr %13, align 8, !tbaa !9
  %1225 = load i32, ptr %22, align 4, !tbaa !5
  %1226 = sext i32 %1225 to i64
  %1227 = getelementptr inbounds float, ptr %1224, i64 %1226
  %1228 = load float, ptr %1227, align 4, !tbaa !16
  %1229 = fcmp oge float %1223, %1228
  %1230 = zext i1 %1229 to i64
  %1231 = select i1 %1229, i32 1, i32 -1
  %1232 = icmp eq i32 %1231, -1
  br i1 %1232, label %1233, label %2187

1233:                                             ; preds = %1218
  %1234 = load ptr, ptr %16, align 8, !tbaa !9
  %1235 = load i32, ptr %22, align 4, !tbaa !5
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds float, ptr %1234, i64 %1236
  %1238 = load float, ptr %1237, align 4, !tbaa !16
  %1239 = load ptr, ptr %13, align 8, !tbaa !9
  %1240 = load i32, ptr %22, align 4, !tbaa !5
  %1241 = sext i32 %1240 to i64
  %1242 = getelementptr inbounds float, ptr %1239, i64 %1241
  %1243 = load float, ptr %1242, align 4, !tbaa !16
  %1244 = fcmp oge float %1238, %1243
  br i1 %1244, label %1245, label %1251

1245:                                             ; preds = %1233
  %1246 = load ptr, ptr %13, align 8, !tbaa !9
  %1247 = load i32, ptr %22, align 4, !tbaa !5
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds float, ptr %1246, i64 %1248
  %1250 = load float, ptr %1249, align 4, !tbaa !16
  br label %1257

1251:                                             ; preds = %1233
  %1252 = load ptr, ptr %16, align 8, !tbaa !9
  %1253 = load i32, ptr %22, align 4, !tbaa !5
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds float, ptr %1252, i64 %1254
  %1256 = load float, ptr %1255, align 4, !tbaa !16
  br label %1257

1257:                                             ; preds = %1251, %1245
  %1258 = phi float [ %1250, %1245 ], [ %1256, %1251 ]
  %1259 = load ptr, ptr %15, align 8, !tbaa !9
  %1260 = load i32, ptr %22, align 4, !tbaa !5
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds float, ptr %1259, i64 %1261
  %1263 = load float, ptr %1262, align 4, !tbaa !16
  %1264 = fsub float %1258, %1263
  %1265 = fpext float %1264 to double
  %1266 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1267 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1266, i32 0, i32 8
  %1268 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1267, i64 0, i64 7
  %1269 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1268, i32 0, i32 3
  %1270 = load double, ptr %1269, align 8, !tbaa !21
  %1271 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1272 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1271, i32 0, i32 8
  %1273 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1272, i64 0, i64 7
  %1274 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1273, i32 0, i32 2
  %1275 = load i32, ptr %1274, align 8, !tbaa !13
  %1276 = sitofp i32 %1275 to double
  %1277 = fcmp une double %1276, 0.000000e+00
  br i1 %1277, label %1278, label %1288

1278:                                             ; preds = %1257
  %1279 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 0
  %1280 = load double, ptr %1279, align 16, !tbaa !11
  %1281 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1282 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1281, i32 0, i32 8
  %1283 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1282, i64 0, i64 7
  %1284 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1283, i32 0, i32 2
  %1285 = load i32, ptr %1284, align 8, !tbaa !13
  %1286 = sitofp i32 %1285 to double
  %1287 = fdiv double %1280, %1286
  br label %1407

1288:                                             ; preds = %1257
  %1289 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1290 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1289, i32 0, i32 8
  %1291 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1290, i64 0, i64 7
  %1292 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1291, i32 0, i32 1
  %1293 = load i32, ptr %1292, align 4, !tbaa !15
  %1294 = icmp eq i32 %1293, 0
  br i1 %1294, label %1295, label %1309

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

1309:                                             ; preds = %1288
  %1310 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1311 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1310, i32 0, i32 8
  %1312 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1311, i64 0, i64 7
  %1313 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1312, i32 0, i32 1
  %1314 = load i32, ptr %1313, align 4, !tbaa !15
  %1315 = icmp eq i32 %1314, 1
  br i1 %1315, label %1316, label %1328

1316:                                             ; preds = %1309
  %1317 = load ptr, ptr %14, align 8, !tbaa !9
  %1318 = load i32, ptr %22, align 4, !tbaa !5
  %1319 = sext i32 %1318 to i64
  %1320 = getelementptr inbounds float, ptr %1317, i64 %1319
  %1321 = load float, ptr %1320, align 4, !tbaa !16
  %1322 = load ptr, ptr %15, align 8, !tbaa !9
  %1323 = load i32, ptr %22, align 4, !tbaa !5
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds float, ptr %1322, i64 %1324
  %1326 = load float, ptr %1325, align 4, !tbaa !16
  %1327 = fsub float %1321, %1326
  br label %1402

1328:                                             ; preds = %1309
  %1329 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1330 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1329, i32 0, i32 8
  %1331 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1330, i64 0, i64 7
  %1332 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1331, i32 0, i32 1
  %1333 = load i32, ptr %1332, align 4, !tbaa !15
  %1334 = icmp eq i32 %1333, 2
  br i1 %1334, label %1335, label %1399

1335:                                             ; preds = %1328
  %1336 = load ptr, ptr %14, align 8, !tbaa !9
  %1337 = load i32, ptr %22, align 4, !tbaa !5
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds float, ptr %1336, i64 %1338
  %1340 = load float, ptr %1339, align 4, !tbaa !16
  %1341 = load ptr, ptr %16, align 8, !tbaa !9
  %1342 = load i32, ptr %22, align 4, !tbaa !5
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds float, ptr %1341, i64 %1343
  %1345 = load float, ptr %1344, align 4, !tbaa !16
  %1346 = load ptr, ptr %13, align 8, !tbaa !9
  %1347 = load i32, ptr %22, align 4, !tbaa !5
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds float, ptr %1346, i64 %1348
  %1350 = load float, ptr %1349, align 4, !tbaa !16
  %1351 = fcmp oge float %1345, %1350
  br i1 %1351, label %1352, label %1358

1352:                                             ; preds = %1335
  %1353 = load ptr, ptr %16, align 8, !tbaa !9
  %1354 = load i32, ptr %22, align 4, !tbaa !5
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds float, ptr %1353, i64 %1355
  %1357 = load float, ptr %1356, align 4, !tbaa !16
  br label %1364

1358:                                             ; preds = %1335
  %1359 = load ptr, ptr %13, align 8, !tbaa !9
  %1360 = load i32, ptr %22, align 4, !tbaa !5
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds float, ptr %1359, i64 %1361
  %1363 = load float, ptr %1362, align 4, !tbaa !16
  br label %1364

1364:                                             ; preds = %1358, %1352
  %1365 = phi float [ %1357, %1352 ], [ %1363, %1358 ]
  %1366 = fsub float %1340, %1365
  %1367 = load ptr, ptr %16, align 8, !tbaa !9
  %1368 = load i32, ptr %22, align 4, !tbaa !5
  %1369 = sext i32 %1368 to i64
  %1370 = getelementptr inbounds float, ptr %1367, i64 %1369
  %1371 = load float, ptr %1370, align 4, !tbaa !16
  %1372 = load ptr, ptr %13, align 8, !tbaa !9
  %1373 = load i32, ptr %22, align 4, !tbaa !5
  %1374 = sext i32 %1373 to i64
  %1375 = getelementptr inbounds float, ptr %1372, i64 %1374
  %1376 = load float, ptr %1375, align 4, !tbaa !16
  %1377 = fcmp oge float %1371, %1376
  br i1 %1377, label %1378, label %1384

1378:                                             ; preds = %1364
  %1379 = load ptr, ptr %13, align 8, !tbaa !9
  %1380 = load i32, ptr %22, align 4, !tbaa !5
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds float, ptr %1379, i64 %1381
  %1383 = load float, ptr %1382, align 4, !tbaa !16
  br label %1390

1384:                                             ; preds = %1364
  %1385 = load ptr, ptr %16, align 8, !tbaa !9
  %1386 = load i32, ptr %22, align 4, !tbaa !5
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds float, ptr %1385, i64 %1387
  %1389 = load float, ptr %1388, align 4, !tbaa !16
  br label %1390

1390:                                             ; preds = %1384, %1378
  %1391 = phi float [ %1383, %1378 ], [ %1389, %1384 ]
  %1392 = load ptr, ptr %15, align 8, !tbaa !9
  %1393 = load i32, ptr %22, align 4, !tbaa !5
  %1394 = sext i32 %1393 to i64
  %1395 = getelementptr inbounds float, ptr %1392, i64 %1394
  %1396 = load float, ptr %1395, align 4, !tbaa !16
  %1397 = fsub float %1391, %1396
  %1398 = fadd float %1366, %1397
  br label %1400

1399:                                             ; preds = %1328
  br label %1400

1400:                                             ; preds = %1399, %1390
  %1401 = phi float [ %1398, %1390 ], [ 0.000000e+00, %1399 ]
  br label %1402

1402:                                             ; preds = %1400, %1316
  %1403 = phi float [ %1327, %1316 ], [ %1401, %1400 ]
  %1404 = fpext float %1403 to double
  br label %1405

1405:                                             ; preds = %1402, %1295
  %1406 = phi double [ %1308, %1295 ], [ %1404, %1402 ]
  br label %1407

1407:                                             ; preds = %1405, %1278
  %1408 = phi double [ %1287, %1278 ], [ %1406, %1405 ]
  %1409 = fmul double %1270, %1408
  %1410 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1411 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1410, i32 0, i32 8
  %1412 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1411, i64 0, i64 7
  %1413 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1412, i32 0, i32 1
  %1414 = load i32, ptr %1413, align 4, !tbaa !15
  %1415 = icmp eq i32 %1414, 2
  %1416 = zext i1 %1415 to i64
  %1417 = select i1 %1415, double 2.000000e+00, double 1.000000e+00
  %1418 = fdiv double %1409, %1417
  %1419 = fcmp olt double %1265, %1418
  br i1 %1419, label %1420, label %2187

1420:                                             ; preds = %1407
  %1421 = load ptr, ptr %16, align 8, !tbaa !9
  %1422 = load i32, ptr %22, align 4, !tbaa !5
  %1423 = sub nsw i32 %1422, 2
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds float, ptr %1421, i64 %1424
  %1426 = load float, ptr %1425, align 4, !tbaa !16
  %1427 = load ptr, ptr %16, align 8, !tbaa !9
  %1428 = load i32, ptr %22, align 4, !tbaa !5
  %1429 = sub nsw i32 %1428, 1
  %1430 = sext i32 %1429 to i64
  %1431 = getelementptr inbounds float, ptr %1427, i64 %1430
  %1432 = load float, ptr %1431, align 4, !tbaa !16
  %1433 = fcmp ogt float %1426, %1432
  br i1 %1433, label %1434, label %2187

1434:                                             ; preds = %1420
  %1435 = load ptr, ptr %16, align 8, !tbaa !9
  %1436 = load i32, ptr %22, align 4, !tbaa !5
  %1437 = sub nsw i32 %1436, 1
  %1438 = sext i32 %1437 to i64
  %1439 = getelementptr inbounds float, ptr %1435, i64 %1438
  %1440 = load float, ptr %1439, align 4, !tbaa !16
  %1441 = load ptr, ptr %16, align 8, !tbaa !9
  %1442 = load i32, ptr %22, align 4, !tbaa !5
  %1443 = sext i32 %1442 to i64
  %1444 = getelementptr inbounds float, ptr %1441, i64 %1443
  %1445 = load float, ptr %1444, align 4, !tbaa !16
  %1446 = fcmp ogt float %1440, %1445
  br i1 %1446, label %1447, label %2187

1447:                                             ; preds = %1434
  %1448 = load ptr, ptr %13, align 8, !tbaa !9
  %1449 = load i32, ptr %22, align 4, !tbaa !5
  %1450 = sub nsw i32 %1449, 1
  %1451 = sext i32 %1450 to i64
  %1452 = getelementptr inbounds float, ptr %1448, i64 %1451
  %1453 = load float, ptr %1452, align 4, !tbaa !16
  %1454 = fpext float %1453 to double
  %1455 = load ptr, ptr %16, align 8, !tbaa !9
  %1456 = load i32, ptr %22, align 4, !tbaa !5
  %1457 = sub nsw i32 %1456, 2
  %1458 = sext i32 %1457 to i64
  %1459 = getelementptr inbounds float, ptr %1455, i64 %1458
  %1460 = load float, ptr %1459, align 4, !tbaa !16
  %1461 = fpext float %1460 to double
  %1462 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1463 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1462, i32 0, i32 8
  %1464 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1463, i64 0, i64 10
  %1465 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1464, i32 0, i32 3
  %1466 = load double, ptr %1465, align 8, !tbaa !21
  %1467 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1468 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1467, i32 0, i32 8
  %1469 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1468, i64 0, i64 10
  %1470 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1469, i32 0, i32 2
  %1471 = load i32, ptr %1470, align 8, !tbaa !13
  %1472 = sitofp i32 %1471 to double
  %1473 = fcmp une double %1472, 0.000000e+00
  br i1 %1473, label %1474, label %1484

1474:                                             ; preds = %1447
  %1475 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  %1476 = load double, ptr %1475, align 16, !tbaa !11
  %1477 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1478 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1477, i32 0, i32 8
  %1479 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1478, i64 0, i64 10
  %1480 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1479, i32 0, i32 2
  %1481 = load i32, ptr %1480, align 8, !tbaa !13
  %1482 = sitofp i32 %1481 to double
  %1483 = fdiv double %1476, %1482
  br label %1617

1484:                                             ; preds = %1447
  %1485 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1486 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1485, i32 0, i32 8
  %1487 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1486, i64 0, i64 10
  %1488 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1487, i32 0, i32 1
  %1489 = load i32, ptr %1488, align 4, !tbaa !15
  %1490 = icmp eq i32 %1489, 0
  br i1 %1490, label %1491, label %1507

1491:                                             ; preds = %1484
  %1492 = load ptr, ptr %16, align 8, !tbaa !9
  %1493 = load i32, ptr %22, align 4, !tbaa !5
  %1494 = sub nsw i32 %1493, 2
  %1495 = sext i32 %1494 to i64
  %1496 = getelementptr inbounds float, ptr %1492, i64 %1495
  %1497 = load float, ptr %1496, align 4, !tbaa !16
  %1498 = load ptr, ptr %13, align 8, !tbaa !9
  %1499 = load i32, ptr %22, align 4, !tbaa !5
  %1500 = sub nsw i32 %1499, 2
  %1501 = sext i32 %1500 to i64
  %1502 = getelementptr inbounds float, ptr %1498, i64 %1501
  %1503 = load float, ptr %1502, align 4, !tbaa !16
  %1504 = fsub float %1497, %1503
  %1505 = fpext float %1504 to double
  %1506 = call double @llvm.fabs.f64(double %1505)
  br label %1615

1507:                                             ; preds = %1484
  %1508 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1509 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1508, i32 0, i32 8
  %1510 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1509, i64 0, i64 10
  %1511 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1510, i32 0, i32 1
  %1512 = load i32, ptr %1511, align 4, !tbaa !15
  %1513 = icmp eq i32 %1512, 1
  br i1 %1513, label %1514, label %1528

1514:                                             ; preds = %1507
  %1515 = load ptr, ptr %14, align 8, !tbaa !9
  %1516 = load i32, ptr %22, align 4, !tbaa !5
  %1517 = sub nsw i32 %1516, 2
  %1518 = sext i32 %1517 to i64
  %1519 = getelementptr inbounds float, ptr %1515, i64 %1518
  %1520 = load float, ptr %1519, align 4, !tbaa !16
  %1521 = load ptr, ptr %15, align 8, !tbaa !9
  %1522 = load i32, ptr %22, align 4, !tbaa !5
  %1523 = sub nsw i32 %1522, 2
  %1524 = sext i32 %1523 to i64
  %1525 = getelementptr inbounds float, ptr %1521, i64 %1524
  %1526 = load float, ptr %1525, align 4, !tbaa !16
  %1527 = fsub float %1520, %1526
  br label %1612

1528:                                             ; preds = %1507
  %1529 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1530 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1529, i32 0, i32 8
  %1531 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1530, i64 0, i64 10
  %1532 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1531, i32 0, i32 1
  %1533 = load i32, ptr %1532, align 4, !tbaa !15
  %1534 = icmp eq i32 %1533, 2
  br i1 %1534, label %1535, label %1609

1535:                                             ; preds = %1528
  %1536 = load ptr, ptr %14, align 8, !tbaa !9
  %1537 = load i32, ptr %22, align 4, !tbaa !5
  %1538 = sub nsw i32 %1537, 2
  %1539 = sext i32 %1538 to i64
  %1540 = getelementptr inbounds float, ptr %1536, i64 %1539
  %1541 = load float, ptr %1540, align 4, !tbaa !16
  %1542 = load ptr, ptr %16, align 8, !tbaa !9
  %1543 = load i32, ptr %22, align 4, !tbaa !5
  %1544 = sub nsw i32 %1543, 2
  %1545 = sext i32 %1544 to i64
  %1546 = getelementptr inbounds float, ptr %1542, i64 %1545
  %1547 = load float, ptr %1546, align 4, !tbaa !16
  %1548 = load ptr, ptr %13, align 8, !tbaa !9
  %1549 = load i32, ptr %22, align 4, !tbaa !5
  %1550 = sub nsw i32 %1549, 2
  %1551 = sext i32 %1550 to i64
  %1552 = getelementptr inbounds float, ptr %1548, i64 %1551
  %1553 = load float, ptr %1552, align 4, !tbaa !16
  %1554 = fcmp oge float %1547, %1553
  br i1 %1554, label %1555, label %1562

1555:                                             ; preds = %1535
  %1556 = load ptr, ptr %16, align 8, !tbaa !9
  %1557 = load i32, ptr %22, align 4, !tbaa !5
  %1558 = sub nsw i32 %1557, 2
  %1559 = sext i32 %1558 to i64
  %1560 = getelementptr inbounds float, ptr %1556, i64 %1559
  %1561 = load float, ptr %1560, align 4, !tbaa !16
  br label %1569

1562:                                             ; preds = %1535
  %1563 = load ptr, ptr %13, align 8, !tbaa !9
  %1564 = load i32, ptr %22, align 4, !tbaa !5
  %1565 = sub nsw i32 %1564, 2
  %1566 = sext i32 %1565 to i64
  %1567 = getelementptr inbounds float, ptr %1563, i64 %1566
  %1568 = load float, ptr %1567, align 4, !tbaa !16
  br label %1569

1569:                                             ; preds = %1562, %1555
  %1570 = phi float [ %1561, %1555 ], [ %1568, %1562 ]
  %1571 = fsub float %1541, %1570
  %1572 = load ptr, ptr %16, align 8, !tbaa !9
  %1573 = load i32, ptr %22, align 4, !tbaa !5
  %1574 = sub nsw i32 %1573, 2
  %1575 = sext i32 %1574 to i64
  %1576 = getelementptr inbounds float, ptr %1572, i64 %1575
  %1577 = load float, ptr %1576, align 4, !tbaa !16
  %1578 = load ptr, ptr %13, align 8, !tbaa !9
  %1579 = load i32, ptr %22, align 4, !tbaa !5
  %1580 = sub nsw i32 %1579, 2
  %1581 = sext i32 %1580 to i64
  %1582 = getelementptr inbounds float, ptr %1578, i64 %1581
  %1583 = load float, ptr %1582, align 4, !tbaa !16
  %1584 = fcmp oge float %1577, %1583
  br i1 %1584, label %1585, label %1592

1585:                                             ; preds = %1569
  %1586 = load ptr, ptr %13, align 8, !tbaa !9
  %1587 = load i32, ptr %22, align 4, !tbaa !5
  %1588 = sub nsw i32 %1587, 2
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds float, ptr %1586, i64 %1589
  %1591 = load float, ptr %1590, align 4, !tbaa !16
  br label %1599

1592:                                             ; preds = %1569
  %1593 = load ptr, ptr %16, align 8, !tbaa !9
  %1594 = load i32, ptr %22, align 4, !tbaa !5
  %1595 = sub nsw i32 %1594, 2
  %1596 = sext i32 %1595 to i64
  %1597 = getelementptr inbounds float, ptr %1593, i64 %1596
  %1598 = load float, ptr %1597, align 4, !tbaa !16
  br label %1599

1599:                                             ; preds = %1592, %1585
  %1600 = phi float [ %1591, %1585 ], [ %1598, %1592 ]
  %1601 = load ptr, ptr %15, align 8, !tbaa !9
  %1602 = load i32, ptr %22, align 4, !tbaa !5
  %1603 = sub nsw i32 %1602, 2
  %1604 = sext i32 %1603 to i64
  %1605 = getelementptr inbounds float, ptr %1601, i64 %1604
  %1606 = load float, ptr %1605, align 4, !tbaa !16
  %1607 = fsub float %1600, %1606
  %1608 = fadd float %1571, %1607
  br label %1610

1609:                                             ; preds = %1528
  br label %1610

1610:                                             ; preds = %1609, %1599
  %1611 = phi float [ %1608, %1599 ], [ 0.000000e+00, %1609 ]
  br label %1612

1612:                                             ; preds = %1610, %1514
  %1613 = phi float [ %1527, %1514 ], [ %1611, %1610 ]
  %1614 = fpext float %1613 to double
  br label %1615

1615:                                             ; preds = %1612, %1491
  %1616 = phi double [ %1506, %1491 ], [ %1614, %1612 ]
  br label %1617

1617:                                             ; preds = %1615, %1474
  %1618 = phi double [ %1483, %1474 ], [ %1616, %1615 ]
  %1619 = fmul double %1466, %1618
  %1620 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1621 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1620, i32 0, i32 8
  %1622 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1621, i64 0, i64 10
  %1623 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1622, i32 0, i32 1
  %1624 = load i32, ptr %1623, align 4, !tbaa !15
  %1625 = icmp eq i32 %1624, 2
  %1626 = zext i1 %1625 to i64
  %1627 = select i1 %1625, double 2.000000e+00, double 1.000000e+00
  %1628 = fdiv double %1619, %1627
  %1629 = fadd double %1461, %1628
  %1630 = fcmp ole double %1454, %1629
  br i1 %1630, label %1631, label %2187

1631:                                             ; preds = %1617
  %1632 = load ptr, ptr %13, align 8, !tbaa !9
  %1633 = load i32, ptr %22, align 4, !tbaa !5
  %1634 = sub nsw i32 %1633, 1
  %1635 = sext i32 %1634 to i64
  %1636 = getelementptr inbounds float, ptr %1632, i64 %1635
  %1637 = load float, ptr %1636, align 4, !tbaa !16
  %1638 = fpext float %1637 to double
  %1639 = load ptr, ptr %16, align 8, !tbaa !9
  %1640 = load i32, ptr %22, align 4, !tbaa !5
  %1641 = sub nsw i32 %1640, 2
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds float, ptr %1639, i64 %1642
  %1644 = load float, ptr %1643, align 4, !tbaa !16
  %1645 = fpext float %1644 to double
  %1646 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1647 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1646, i32 0, i32 8
  %1648 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1647, i64 0, i64 10
  %1649 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1648, i32 0, i32 3
  %1650 = load double, ptr %1649, align 8, !tbaa !21
  %1651 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1652 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1651, i32 0, i32 8
  %1653 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1652, i64 0, i64 10
  %1654 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1653, i32 0, i32 2
  %1655 = load i32, ptr %1654, align 8, !tbaa !13
  %1656 = sitofp i32 %1655 to double
  %1657 = fcmp une double %1656, 0.000000e+00
  br i1 %1657, label %1658, label %1668

1658:                                             ; preds = %1631
  %1659 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  %1660 = load double, ptr %1659, align 16, !tbaa !11
  %1661 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1662 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1661, i32 0, i32 8
  %1663 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1662, i64 0, i64 10
  %1664 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1663, i32 0, i32 2
  %1665 = load i32, ptr %1664, align 8, !tbaa !13
  %1666 = sitofp i32 %1665 to double
  %1667 = fdiv double %1660, %1666
  br label %1801

1668:                                             ; preds = %1631
  %1669 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1670 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1669, i32 0, i32 8
  %1671 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1670, i64 0, i64 10
  %1672 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1671, i32 0, i32 1
  %1673 = load i32, ptr %1672, align 4, !tbaa !15
  %1674 = icmp eq i32 %1673, 0
  br i1 %1674, label %1675, label %1691

1675:                                             ; preds = %1668
  %1676 = load ptr, ptr %16, align 8, !tbaa !9
  %1677 = load i32, ptr %22, align 4, !tbaa !5
  %1678 = sub nsw i32 %1677, 2
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds float, ptr %1676, i64 %1679
  %1681 = load float, ptr %1680, align 4, !tbaa !16
  %1682 = load ptr, ptr %13, align 8, !tbaa !9
  %1683 = load i32, ptr %22, align 4, !tbaa !5
  %1684 = sub nsw i32 %1683, 2
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds float, ptr %1682, i64 %1685
  %1687 = load float, ptr %1686, align 4, !tbaa !16
  %1688 = fsub float %1681, %1687
  %1689 = fpext float %1688 to double
  %1690 = call double @llvm.fabs.f64(double %1689)
  br label %1799

1691:                                             ; preds = %1668
  %1692 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1693 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1692, i32 0, i32 8
  %1694 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1693, i64 0, i64 10
  %1695 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1694, i32 0, i32 1
  %1696 = load i32, ptr %1695, align 4, !tbaa !15
  %1697 = icmp eq i32 %1696, 1
  br i1 %1697, label %1698, label %1712

1698:                                             ; preds = %1691
  %1699 = load ptr, ptr %14, align 8, !tbaa !9
  %1700 = load i32, ptr %22, 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 %15, align 8, !tbaa !9
  %1706 = load i32, ptr %22, 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 = fsub float %1704, %1710
  br label %1796

1712:                                             ; preds = %1691
  %1713 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1714 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1713, i32 0, i32 8
  %1715 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1714, i64 0, i64 10
  %1716 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1715, i32 0, i32 1
  %1717 = load i32, ptr %1716, align 4, !tbaa !15
  %1718 = icmp eq i32 %1717, 2
  br i1 %1718, label %1719, label %1793

1719:                                             ; preds = %1712
  %1720 = load ptr, ptr %14, align 8, !tbaa !9
  %1721 = load i32, ptr %22, 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
  %1726 = load ptr, ptr %16, align 8, !tbaa !9
  %1727 = load i32, ptr %22, align 4, !tbaa !5
  %1728 = sub nsw i32 %1727, 2
  %1729 = sext i32 %1728 to i64
  %1730 = getelementptr inbounds float, ptr %1726, i64 %1729
  %1731 = load float, ptr %1730, align 4, !tbaa !16
  %1732 = load ptr, ptr %13, align 8, !tbaa !9
  %1733 = load i32, ptr %22, align 4, !tbaa !5
  %1734 = sub nsw i32 %1733, 2
  %1735 = sext i32 %1734 to i64
  %1736 = getelementptr inbounds float, ptr %1732, i64 %1735
  %1737 = load float, ptr %1736, align 4, !tbaa !16
  %1738 = fcmp oge float %1731, %1737
  br i1 %1738, label %1739, label %1746

1739:                                             ; preds = %1719
  %1740 = load ptr, ptr %16, align 8, !tbaa !9
  %1741 = load i32, ptr %22, align 4, !tbaa !5
  %1742 = sub nsw i32 %1741, 2
  %1743 = sext i32 %1742 to i64
  %1744 = getelementptr inbounds float, ptr %1740, i64 %1743
  %1745 = load float, ptr %1744, align 4, !tbaa !16
  br label %1753

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

1753:                                             ; preds = %1746, %1739
  %1754 = phi float [ %1745, %1739 ], [ %1752, %1746 ]
  %1755 = fsub float %1725, %1754
  %1756 = load ptr, ptr %16, align 8, !tbaa !9
  %1757 = load i32, ptr %22, align 4, !tbaa !5
  %1758 = sub nsw i32 %1757, 2
  %1759 = sext i32 %1758 to i64
  %1760 = getelementptr inbounds float, ptr %1756, i64 %1759
  %1761 = load float, ptr %1760, align 4, !tbaa !16
  %1762 = load ptr, ptr %13, align 8, !tbaa !9
  %1763 = load i32, ptr %22, align 4, !tbaa !5
  %1764 = sub nsw i32 %1763, 2
  %1765 = sext i32 %1764 to i64
  %1766 = getelementptr inbounds float, ptr %1762, i64 %1765
  %1767 = load float, ptr %1766, align 4, !tbaa !16
  %1768 = fcmp oge float %1761, %1767
  br i1 %1768, label %1769, label %1776

1769:                                             ; preds = %1753
  %1770 = load ptr, ptr %13, align 8, !tbaa !9
  %1771 = load i32, ptr %22, align 4, !tbaa !5
  %1772 = sub nsw i32 %1771, 2
  %1773 = sext i32 %1772 to i64
  %1774 = getelementptr inbounds float, ptr %1770, i64 %1773
  %1775 = load float, ptr %1774, align 4, !tbaa !16
  br label %1783

1776:                                             ; preds = %1753
  %1777 = load ptr, ptr %16, align 8, !tbaa !9
  %1778 = load i32, ptr %22, align 4, !tbaa !5
  %1779 = sub nsw i32 %1778, 2
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds float, ptr %1777, i64 %1780
  %1782 = load float, ptr %1781, align 4, !tbaa !16
  br label %1783

1783:                                             ; preds = %1776, %1769
  %1784 = phi float [ %1775, %1769 ], [ %1782, %1776 ]
  %1785 = load ptr, ptr %15, align 8, !tbaa !9
  %1786 = load i32, ptr %22, align 4, !tbaa !5
  %1787 = sub nsw i32 %1786, 2
  %1788 = sext i32 %1787 to i64
  %1789 = getelementptr inbounds float, ptr %1785, i64 %1788
  %1790 = load float, ptr %1789, align 4, !tbaa !16
  %1791 = fsub float %1784, %1790
  %1792 = fadd float %1755, %1791
  br label %1794

1793:                                             ; preds = %1712
  br label %1794

1794:                                             ; preds = %1793, %1783
  %1795 = phi float [ %1792, %1783 ], [ 0.000000e+00, %1793 ]
  br label %1796

1796:                                             ; preds = %1794, %1698
  %1797 = phi float [ %1711, %1698 ], [ %1795, %1794 ]
  %1798 = fpext float %1797 to double
  br label %1799

1799:                                             ; preds = %1796, %1675
  %1800 = phi double [ %1690, %1675 ], [ %1798, %1796 ]
  br label %1801

1801:                                             ; preds = %1799, %1658
  %1802 = phi double [ %1667, %1658 ], [ %1800, %1799 ]
  %1803 = fmul double %1650, %1802
  %1804 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1805 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1804, i32 0, i32 8
  %1806 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1805, i64 0, i64 10
  %1807 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1806, i32 0, i32 1
  %1808 = load i32, ptr %1807, align 4, !tbaa !15
  %1809 = icmp eq i32 %1808, 2
  %1810 = zext i1 %1809 to i64
  %1811 = select i1 %1809, double 2.000000e+00, double 1.000000e+00
  %1812 = fdiv double %1803, %1811
  %1813 = fsub double %1645, %1812
  %1814 = fcmp oge double %1638, %1813
  br i1 %1814, label %1815, label %2187

1815:                                             ; preds = %1801
  %1816 = load ptr, ptr %13, align 8, !tbaa !9
  %1817 = load i32, ptr %22, align 4, !tbaa !5
  %1818 = sext i32 %1817 to i64
  %1819 = getelementptr inbounds float, ptr %1816, i64 %1818
  %1820 = load float, ptr %1819, align 4, !tbaa !16
  %1821 = fpext float %1820 to double
  %1822 = load ptr, ptr %16, align 8, !tbaa !9
  %1823 = load i32, ptr %22, align 4, !tbaa !5
  %1824 = sub nsw i32 %1823, 1
  %1825 = sext i32 %1824 to i64
  %1826 = getelementptr inbounds float, ptr %1822, i64 %1825
  %1827 = load float, ptr %1826, align 4, !tbaa !16
  %1828 = fpext float %1827 to double
  %1829 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1830 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1829, i32 0, i32 8
  %1831 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1830, i64 0, i64 10
  %1832 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1831, i32 0, i32 3
  %1833 = load double, ptr %1832, align 8, !tbaa !21
  %1834 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1835 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1834, i32 0, i32 8
  %1836 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1835, i64 0, i64 10
  %1837 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1836, i32 0, i32 2
  %1838 = load i32, ptr %1837, align 8, !tbaa !13
  %1839 = sitofp i32 %1838 to double
  %1840 = fcmp une double %1839, 0.000000e+00
  br i1 %1840, label %1841, label %1851

1841:                                             ; preds = %1815
  %1842 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %1843 = load double, ptr %1842, align 8, !tbaa !11
  %1844 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1845 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1844, i32 0, i32 8
  %1846 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1845, i64 0, i64 10
  %1847 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1846, i32 0, i32 2
  %1848 = load i32, ptr %1847, align 8, !tbaa !13
  %1849 = sitofp i32 %1848 to double
  %1850 = fdiv double %1843, %1849
  br label %1984

1851:                                             ; preds = %1815
  %1852 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1853 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1852, i32 0, i32 8
  %1854 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1853, i64 0, i64 10
  %1855 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1854, i32 0, i32 1
  %1856 = load i32, ptr %1855, align 4, !tbaa !15
  %1857 = icmp eq i32 %1856, 0
  br i1 %1857, label %1858, label %1874

1858:                                             ; preds = %1851
  %1859 = load ptr, ptr %16, align 8, !tbaa !9
  %1860 = load i32, ptr %22, align 4, !tbaa !5
  %1861 = sub nsw i32 %1860, 1
  %1862 = sext i32 %1861 to i64
  %1863 = getelementptr inbounds float, ptr %1859, i64 %1862
  %1864 = load float, ptr %1863, align 4, !tbaa !16
  %1865 = load ptr, ptr %13, align 8, !tbaa !9
  %1866 = load i32, ptr %22, align 4, !tbaa !5
  %1867 = sub nsw i32 %1866, 1
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds float, ptr %1865, i64 %1868
  %1870 = load float, ptr %1869, align 4, !tbaa !16
  %1871 = fsub float %1864, %1870
  %1872 = fpext float %1871 to double
  %1873 = call double @llvm.fabs.f64(double %1872)
  br label %1982

1874:                                             ; preds = %1851
  %1875 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1876 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1875, i32 0, i32 8
  %1877 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1876, i64 0, i64 10
  %1878 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1877, i32 0, i32 1
  %1879 = load i32, ptr %1878, align 4, !tbaa !15
  %1880 = icmp eq i32 %1879, 1
  br i1 %1880, label %1881, label %1895

1881:                                             ; preds = %1874
  %1882 = load ptr, ptr %14, align 8, !tbaa !9
  %1883 = load i32, ptr %22, align 4, !tbaa !5
  %1884 = sub nsw i32 %1883, 1
  %1885 = sext i32 %1884 to i64
  %1886 = getelementptr inbounds float, ptr %1882, i64 %1885
  %1887 = load float, ptr %1886, align 4, !tbaa !16
  %1888 = load ptr, ptr %15, align 8, !tbaa !9
  %1889 = load i32, ptr %22, align 4, !tbaa !5
  %1890 = sub nsw i32 %1889, 1
  %1891 = sext i32 %1890 to i64
  %1892 = getelementptr inbounds float, ptr %1888, i64 %1891
  %1893 = load float, ptr %1892, align 4, !tbaa !16
  %1894 = fsub float %1887, %1893
  br label %1979

1895:                                             ; preds = %1874
  %1896 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1897 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1896, i32 0, i32 8
  %1898 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1897, i64 0, i64 10
  %1899 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1898, i32 0, i32 1
  %1900 = load i32, ptr %1899, align 4, !tbaa !15
  %1901 = icmp eq i32 %1900, 2
  br i1 %1901, label %1902, label %1976

1902:                                             ; preds = %1895
  %1903 = load ptr, ptr %14, align 8, !tbaa !9
  %1904 = load i32, ptr %22, align 4, !tbaa !5
  %1905 = sub nsw i32 %1904, 1
  %1906 = sext i32 %1905 to i64
  %1907 = getelementptr inbounds float, ptr %1903, i64 %1906
  %1908 = load float, ptr %1907, align 4, !tbaa !16
  %1909 = load ptr, ptr %16, align 8, !tbaa !9
  %1910 = load i32, ptr %22, align 4, !tbaa !5
  %1911 = sub nsw i32 %1910, 1
  %1912 = sext i32 %1911 to i64
  %1913 = getelementptr inbounds float, ptr %1909, i64 %1912
  %1914 = load float, ptr %1913, align 4, !tbaa !16
  %1915 = load ptr, ptr %13, align 8, !tbaa !9
  %1916 = load i32, ptr %22, align 4, !tbaa !5
  %1917 = sub nsw i32 %1916, 1
  %1918 = sext i32 %1917 to i64
  %1919 = getelementptr inbounds float, ptr %1915, i64 %1918
  %1920 = load float, ptr %1919, align 4, !tbaa !16
  %1921 = fcmp oge float %1914, %1920
  br i1 %1921, label %1922, label %1929

1922:                                             ; preds = %1902
  %1923 = load ptr, ptr %16, align 8, !tbaa !9
  %1924 = load i32, ptr %22, align 4, !tbaa !5
  %1925 = sub nsw i32 %1924, 1
  %1926 = sext i32 %1925 to i64
  %1927 = getelementptr inbounds float, ptr %1923, i64 %1926
  %1928 = load float, ptr %1927, align 4, !tbaa !16
  br label %1936

1929:                                             ; preds = %1902
  %1930 = load ptr, ptr %13, align 8, !tbaa !9
  %1931 = load i32, ptr %22, align 4, !tbaa !5
  %1932 = sub nsw i32 %1931, 1
  %1933 = sext i32 %1932 to i64
  %1934 = getelementptr inbounds float, ptr %1930, i64 %1933
  %1935 = load float, ptr %1934, align 4, !tbaa !16
  br label %1936

1936:                                             ; preds = %1929, %1922
  %1937 = phi float [ %1928, %1922 ], [ %1935, %1929 ]
  %1938 = fsub float %1908, %1937
  %1939 = load ptr, ptr %16, align 8, !tbaa !9
  %1940 = load i32, ptr %22, align 4, !tbaa !5
  %1941 = sub nsw i32 %1940, 1
  %1942 = sext i32 %1941 to i64
  %1943 = getelementptr inbounds float, ptr %1939, i64 %1942
  %1944 = load float, ptr %1943, align 4, !tbaa !16
  %1945 = load ptr, ptr %13, align 8, !tbaa !9
  %1946 = load i32, ptr %22, align 4, !tbaa !5
  %1947 = sub nsw i32 %1946, 1
  %1948 = sext i32 %1947 to i64
  %1949 = getelementptr inbounds float, ptr %1945, i64 %1948
  %1950 = load float, ptr %1949, align 4, !tbaa !16
  %1951 = fcmp oge float %1944, %1950
  br i1 %1951, label %1952, label %1959

1952:                                             ; preds = %1936
  %1953 = load ptr, ptr %13, align 8, !tbaa !9
  %1954 = load i32, ptr %22, align 4, !tbaa !5
  %1955 = sub nsw i32 %1954, 1
  %1956 = sext i32 %1955 to i64
  %1957 = getelementptr inbounds float, ptr %1953, i64 %1956
  %1958 = load float, ptr %1957, align 4, !tbaa !16
  br label %1966

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

1966:                                             ; preds = %1959, %1952
  %1967 = phi float [ %1958, %1952 ], [ %1965, %1959 ]
  %1968 = load ptr, ptr %15, align 8, !tbaa !9
  %1969 = load i32, ptr %22, align 4, !tbaa !5
  %1970 = sub nsw i32 %1969, 1
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds float, ptr %1968, i64 %1971
  %1973 = load float, ptr %1972, align 4, !tbaa !16
  %1974 = fsub float %1967, %1973
  %1975 = fadd float %1938, %1974
  br label %1977

1976:                                             ; preds = %1895
  br label %1977

1977:                                             ; preds = %1976, %1966
  %1978 = phi float [ %1975, %1966 ], [ 0.000000e+00, %1976 ]
  br label %1979

1979:                                             ; preds = %1977, %1881
  %1980 = phi float [ %1894, %1881 ], [ %1978, %1977 ]
  %1981 = fpext float %1980 to double
  br label %1982

1982:                                             ; preds = %1979, %1858
  %1983 = phi double [ %1873, %1858 ], [ %1981, %1979 ]
  br label %1984

1984:                                             ; preds = %1982, %1841
  %1985 = phi double [ %1850, %1841 ], [ %1983, %1982 ]
  %1986 = fmul double %1833, %1985
  %1987 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1988 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1987, i32 0, i32 8
  %1989 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1988, i64 0, i64 10
  %1990 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1989, i32 0, i32 1
  %1991 = load i32, ptr %1990, align 4, !tbaa !15
  %1992 = icmp eq i32 %1991, 2
  %1993 = zext i1 %1992 to i64
  %1994 = select i1 %1992, double 2.000000e+00, double 1.000000e+00
  %1995 = fdiv double %1986, %1994
  %1996 = fadd double %1828, %1995
  %1997 = fcmp ole double %1821, %1996
  br i1 %1997, label %1998, label %2187

1998:                                             ; preds = %1984
  %1999 = load ptr, ptr %13, align 8, !tbaa !9
  %2000 = load i32, ptr %22, align 4, !tbaa !5
  %2001 = sext i32 %2000 to i64
  %2002 = getelementptr inbounds float, ptr %1999, i64 %2001
  %2003 = load float, ptr %2002, align 4, !tbaa !16
  %2004 = fpext float %2003 to double
  %2005 = load ptr, ptr %16, align 8, !tbaa !9
  %2006 = load i32, ptr %22, align 4, !tbaa !5
  %2007 = sub nsw i32 %2006, 1
  %2008 = sext i32 %2007 to i64
  %2009 = getelementptr inbounds float, ptr %2005, i64 %2008
  %2010 = load float, ptr %2009, align 4, !tbaa !16
  %2011 = fpext float %2010 to double
  %2012 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2013 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2012, i32 0, i32 8
  %2014 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2013, i64 0, i64 10
  %2015 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2014, i32 0, i32 3
  %2016 = load double, ptr %2015, align 8, !tbaa !21
  %2017 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2018 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2017, i32 0, i32 8
  %2019 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2018, i64 0, i64 10
  %2020 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2019, i32 0, i32 2
  %2021 = load i32, ptr %2020, align 8, !tbaa !13
  %2022 = sitofp i32 %2021 to double
  %2023 = fcmp une double %2022, 0.000000e+00
  br i1 %2023, label %2024, label %2034

2024:                                             ; preds = %1998
  %2025 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %2026 = load double, ptr %2025, align 8, !tbaa !11
  %2027 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2028 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2027, i32 0, i32 8
  %2029 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2028, i64 0, i64 10
  %2030 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2029, i32 0, i32 2
  %2031 = load i32, ptr %2030, align 8, !tbaa !13
  %2032 = sitofp i32 %2031 to double
  %2033 = fdiv double %2026, %2032
  br label %2167

2034:                                             ; preds = %1998
  %2035 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2036 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2035, i32 0, i32 8
  %2037 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2036, i64 0, i64 10
  %2038 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2037, i32 0, i32 1
  %2039 = load i32, ptr %2038, align 4, !tbaa !15
  %2040 = icmp eq i32 %2039, 0
  br i1 %2040, label %2041, label %2057

2041:                                             ; preds = %2034
  %2042 = load ptr, ptr %16, align 8, !tbaa !9
  %2043 = load i32, ptr %22, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %2049 = load i32, ptr %22, align 4, !tbaa !5
  %2050 = sub nsw i32 %2049, 1
  %2051 = sext i32 %2050 to i64
  %2052 = getelementptr inbounds float, ptr %2048, i64 %2051
  %2053 = load float, ptr %2052, align 4, !tbaa !16
  %2054 = fsub float %2047, %2053
  %2055 = fpext float %2054 to double
  %2056 = call double @llvm.fabs.f64(double %2055)
  br label %2165

2057:                                             ; preds = %2034
  %2058 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2059 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2058, i32 0, i32 8
  %2060 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2059, i64 0, i64 10
  %2061 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2060, i32 0, i32 1
  %2062 = load i32, ptr %2061, align 4, !tbaa !15
  %2063 = icmp eq i32 %2062, 1
  br i1 %2063, label %2064, label %2078

2064:                                             ; preds = %2057
  %2065 = load ptr, ptr %14, align 8, !tbaa !9
  %2066 = load i32, ptr %22, align 4, !tbaa !5
  %2067 = sub nsw i32 %2066, 1
  %2068 = sext i32 %2067 to i64
  %2069 = getelementptr inbounds float, ptr %2065, i64 %2068
  %2070 = load float, ptr %2069, align 4, !tbaa !16
  %2071 = load ptr, ptr %15, align 8, !tbaa !9
  %2072 = load i32, ptr %22, align 4, !tbaa !5
  %2073 = sub nsw i32 %2072, 1
  %2074 = sext i32 %2073 to i64
  %2075 = getelementptr inbounds float, ptr %2071, i64 %2074
  %2076 = load float, ptr %2075, align 4, !tbaa !16
  %2077 = fsub float %2070, %2076
  br label %2162

2078:                                             ; preds = %2057
  %2079 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2080 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2079, i32 0, i32 8
  %2081 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2080, i64 0, i64 10
  %2082 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2081, i32 0, i32 1
  %2083 = load i32, ptr %2082, align 4, !tbaa !15
  %2084 = icmp eq i32 %2083, 2
  br i1 %2084, label %2085, label %2159

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

2105:                                             ; preds = %2085
  %2106 = load ptr, ptr %16, align 8, !tbaa !9
  %2107 = load i32, ptr %22, align 4, !tbaa !5
  %2108 = sub nsw i32 %2107, 1
  %2109 = sext i32 %2108 to i64
  %2110 = getelementptr inbounds float, ptr %2106, i64 %2109
  %2111 = load float, ptr %2110, align 4, !tbaa !16
  br label %2119

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

2119:                                             ; preds = %2112, %2105
  %2120 = phi float [ %2111, %2105 ], [ %2118, %2112 ]
  %2121 = fsub float %2091, %2120
  %2122 = load ptr, ptr %16, align 8, !tbaa !9
  %2123 = load i32, ptr %22, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %2129 = load i32, ptr %22, align 4, !tbaa !5
  %2130 = sub nsw i32 %2129, 1
  %2131 = sext i32 %2130 to i64
  %2132 = getelementptr inbounds float, ptr %2128, i64 %2131
  %2133 = load float, ptr %2132, align 4, !tbaa !16
  %2134 = fcmp oge float %2127, %2133
  br i1 %2134, label %2135, label %2142

2135:                                             ; preds = %2119
  %2136 = load ptr, ptr %13, align 8, !tbaa !9
  %2137 = load i32, ptr %22, align 4, !tbaa !5
  %2138 = sub nsw i32 %2137, 1
  %2139 = sext i32 %2138 to i64
  %2140 = getelementptr inbounds float, ptr %2136, i64 %2139
  %2141 = load float, ptr %2140, align 4, !tbaa !16
  br label %2149

2142:                                             ; preds = %2119
  %2143 = load ptr, ptr %16, align 8, !tbaa !9
  %2144 = load i32, ptr %22, align 4, !tbaa !5
  %2145 = sub nsw i32 %2144, 1
  %2146 = sext i32 %2145 to i64
  %2147 = getelementptr inbounds float, ptr %2143, i64 %2146
  %2148 = load float, ptr %2147, align 4, !tbaa !16
  br label %2149

2149:                                             ; preds = %2142, %2135
  %2150 = phi float [ %2141, %2135 ], [ %2148, %2142 ]
  %2151 = load ptr, ptr %15, align 8, !tbaa !9
  %2152 = load i32, ptr %22, align 4, !tbaa !5
  %2153 = sub nsw i32 %2152, 1
  %2154 = sext i32 %2153 to i64
  %2155 = getelementptr inbounds float, ptr %2151, i64 %2154
  %2156 = load float, ptr %2155, align 4, !tbaa !16
  %2157 = fsub float %2150, %2156
  %2158 = fadd float %2121, %2157
  br label %2160

2159:                                             ; preds = %2078
  br label %2160

2160:                                             ; preds = %2159, %2149
  %2161 = phi float [ %2158, %2149 ], [ 0.000000e+00, %2159 ]
  br label %2162

2162:                                             ; preds = %2160, %2064
  %2163 = phi float [ %2077, %2064 ], [ %2161, %2160 ]
  %2164 = fpext float %2163 to double
  br label %2165

2165:                                             ; preds = %2162, %2041
  %2166 = phi double [ %2056, %2041 ], [ %2164, %2162 ]
  br label %2167

2167:                                             ; preds = %2165, %2024
  %2168 = phi double [ %2033, %2024 ], [ %2166, %2165 ]
  %2169 = fmul double %2016, %2168
  %2170 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2171 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2170, i32 0, i32 8
  %2172 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2171, i64 0, i64 10
  %2173 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2172, i32 0, i32 1
  %2174 = load i32, ptr %2173, align 4, !tbaa !15
  %2175 = icmp eq i32 %2174, 2
  %2176 = zext i1 %2175 to i64
  %2177 = select i1 %2175, double 2.000000e+00, double 1.000000e+00
  %2178 = fdiv double %2169, %2177
  %2179 = fsub double %2011, %2178
  %2180 = fcmp oge double %2004, %2179
  br i1 %2180, label %2181, label %2187

2181:                                             ; preds = %2167
  %2182 = load ptr, ptr %19, align 8, !tbaa !9
  %2183 = load i32, ptr %23, align 4, !tbaa !5
  %2184 = add nsw i32 %2183, 1
  store i32 %2184, ptr %23, align 4, !tbaa !5
  %2185 = sext i32 %2183 to i64
  %2186 = getelementptr inbounds i32, ptr %2182, i64 %2185
  store i32 -100, ptr %2186, align 4, !tbaa !5
  br label %2193

2187:                                             ; preds = %2167, %1984, %1801, %1617, %1434, %1420, %1407, %1218, %1205, %995, %982, %772
  %2188 = load ptr, ptr %19, align 8, !tbaa !9
  %2189 = load i32, ptr %23, align 4, !tbaa !5
  %2190 = add nsw i32 %2189, 1
  store i32 %2190, ptr %23, align 4, !tbaa !5
  %2191 = sext i32 %2189 to i64
  %2192 = getelementptr inbounds i32, ptr %2188, i64 %2191
  store i32 0, ptr %2192, align 4, !tbaa !5
  br label %2193

2193:                                             ; preds = %2187, %2181
  store i32 2, ptr %24, align 4, !tbaa !5
  br label %2194

2194:                                             ; preds = %2496, %2193
  %2195 = load i32, ptr %24, align 4, !tbaa !5
  %2196 = icmp sge i32 %2195, 0
  br i1 %2196, label %2197, label %2499

2197:                                             ; preds = %2194
  %2198 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2199 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2198, i32 0, i32 8
  %2200 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2199, i64 0, i64 7
  %2201 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2200, i32 0, i32 1
  %2202 = load i32, ptr %2201, align 4, !tbaa !15
  %2203 = icmp eq i32 %2202, 0
  br i1 %2203, label %2204, label %2222

2204:                                             ; preds = %2197
  %2205 = load ptr, ptr %16, align 8, !tbaa !9
  %2206 = load i32, ptr %22, align 4, !tbaa !5
  %2207 = load i32, ptr %24, align 4, !tbaa !5
  %2208 = sub nsw i32 %2206, %2207
  %2209 = sext i32 %2208 to i64
  %2210 = getelementptr inbounds float, ptr %2205, i64 %2209
  %2211 = load float, ptr %2210, align 4, !tbaa !16
  %2212 = load ptr, ptr %13, align 8, !tbaa !9
  %2213 = load i32, ptr %22, align 4, !tbaa !5
  %2214 = load i32, ptr %24, align 4, !tbaa !5
  %2215 = sub nsw i32 %2213, %2214
  %2216 = sext i32 %2215 to i64
  %2217 = getelementptr inbounds float, ptr %2212, i64 %2216
  %2218 = load float, ptr %2217, align 4, !tbaa !16
  %2219 = fsub float %2211, %2218
  %2220 = fpext float %2219 to double
  %2221 = call double @llvm.fabs.f64(double %2220)
  br label %2342

2222:                                             ; preds = %2197
  %2223 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2224 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2223, i32 0, i32 8
  %2225 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2224, i64 0, i64 7
  %2226 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2225, i32 0, i32 1
  %2227 = load i32, ptr %2226, align 4, !tbaa !15
  %2228 = icmp eq i32 %2227, 1
  br i1 %2228, label %2229, label %2245

2229:                                             ; preds = %2222
  %2230 = load ptr, ptr %14, align 8, !tbaa !9
  %2231 = load i32, ptr %22, align 4, !tbaa !5
  %2232 = load i32, ptr %24, align 4, !tbaa !5
  %2233 = sub nsw i32 %2231, %2232
  %2234 = sext i32 %2233 to i64
  %2235 = getelementptr inbounds float, ptr %2230, i64 %2234
  %2236 = load float, ptr %2235, align 4, !tbaa !16
  %2237 = load ptr, ptr %15, align 8, !tbaa !9
  %2238 = load i32, ptr %22, align 4, !tbaa !5
  %2239 = load i32, ptr %24, align 4, !tbaa !5
  %2240 = sub nsw i32 %2238, %2239
  %2241 = sext i32 %2240 to i64
  %2242 = getelementptr inbounds float, ptr %2237, i64 %2241
  %2243 = load float, ptr %2242, align 4, !tbaa !16
  %2244 = fsub float %2236, %2243
  br label %2339

2245:                                             ; preds = %2222
  %2246 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2247 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2246, i32 0, i32 8
  %2248 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2247, i64 0, i64 7
  %2249 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2248, i32 0, i32 1
  %2250 = load i32, ptr %2249, align 4, !tbaa !15
  %2251 = icmp eq i32 %2250, 2
  br i1 %2251, label %2252, label %2336

2252:                                             ; preds = %2245
  %2253 = load ptr, ptr %14, align 8, !tbaa !9
  %2254 = load i32, ptr %22, align 4, !tbaa !5
  %2255 = load i32, ptr %24, align 4, !tbaa !5
  %2256 = sub nsw i32 %2254, %2255
  %2257 = sext i32 %2256 to i64
  %2258 = getelementptr inbounds float, ptr %2253, i64 %2257
  %2259 = load float, ptr %2258, align 4, !tbaa !16
  %2260 = load ptr, ptr %16, align 8, !tbaa !9
  %2261 = load i32, ptr %22, align 4, !tbaa !5
  %2262 = load i32, ptr %24, align 4, !tbaa !5
  %2263 = sub nsw i32 %2261, %2262
  %2264 = sext i32 %2263 to i64
  %2265 = getelementptr inbounds float, ptr %2260, i64 %2264
  %2266 = load float, ptr %2265, align 4, !tbaa !16
  %2267 = load ptr, ptr %13, align 8, !tbaa !9
  %2268 = load i32, ptr %22, align 4, !tbaa !5
  %2269 = load i32, ptr %24, align 4, !tbaa !5
  %2270 = sub nsw i32 %2268, %2269
  %2271 = sext i32 %2270 to i64
  %2272 = getelementptr inbounds float, ptr %2267, i64 %2271
  %2273 = load float, ptr %2272, align 4, !tbaa !16
  %2274 = fcmp oge float %2266, %2273
  br i1 %2274, label %2275, label %2283

2275:                                             ; preds = %2252
  %2276 = load ptr, ptr %16, align 8, !tbaa !9
  %2277 = load i32, ptr %22, align 4, !tbaa !5
  %2278 = load i32, ptr %24, align 4, !tbaa !5
  %2279 = sub nsw i32 %2277, %2278
  %2280 = sext i32 %2279 to i64
  %2281 = getelementptr inbounds float, ptr %2276, i64 %2280
  %2282 = load float, ptr %2281, align 4, !tbaa !16
  br label %2291

2283:                                             ; preds = %2252
  %2284 = load ptr, ptr %13, align 8, !tbaa !9
  %2285 = load i32, ptr %22, align 4, !tbaa !5
  %2286 = load i32, ptr %24, align 4, !tbaa !5
  %2287 = sub nsw i32 %2285, %2286
  %2288 = sext i32 %2287 to i64
  %2289 = getelementptr inbounds float, ptr %2284, i64 %2288
  %2290 = load float, ptr %2289, align 4, !tbaa !16
  br label %2291

2291:                                             ; preds = %2283, %2275
  %2292 = phi float [ %2282, %2275 ], [ %2290, %2283 ]
  %2293 = fsub float %2259, %2292
  %2294 = load ptr, ptr %16, align 8, !tbaa !9
  %2295 = load i32, ptr %22, align 4, !tbaa !5
  %2296 = load i32, ptr %24, align 4, !tbaa !5
  %2297 = sub nsw i32 %2295, %2296
  %2298 = sext i32 %2297 to i64
  %2299 = getelementptr inbounds float, ptr %2294, i64 %2298
  %2300 = load float, ptr %2299, align 4, !tbaa !16
  %2301 = load ptr, ptr %13, align 8, !tbaa !9
  %2302 = load i32, ptr %22, align 4, !tbaa !5
  %2303 = load i32, ptr %24, align 4, !tbaa !5
  %2304 = sub nsw i32 %2302, %2303
  %2305 = sext i32 %2304 to i64
  %2306 = getelementptr inbounds float, ptr %2301, i64 %2305
  %2307 = load float, ptr %2306, align 4, !tbaa !16
  %2308 = fcmp oge float %2300, %2307
  br i1 %2308, label %2309, label %2317

2309:                                             ; preds = %2291
  %2310 = load ptr, ptr %13, align 8, !tbaa !9
  %2311 = load i32, ptr %22, align 4, !tbaa !5
  %2312 = load i32, ptr %24, align 4, !tbaa !5
  %2313 = sub nsw i32 %2311, %2312
  %2314 = sext i32 %2313 to i64
  %2315 = getelementptr inbounds float, ptr %2310, i64 %2314
  %2316 = load float, ptr %2315, align 4, !tbaa !16
  br label %2325

2317:                                             ; preds = %2291
  %2318 = load ptr, ptr %16, align 8, !tbaa !9
  %2319 = load i32, ptr %22, align 4, !tbaa !5
  %2320 = load i32, ptr %24, align 4, !tbaa !5
  %2321 = sub nsw i32 %2319, %2320
  %2322 = sext i32 %2321 to i64
  %2323 = getelementptr inbounds float, ptr %2318, i64 %2322
  %2324 = load float, ptr %2323, align 4, !tbaa !16
  br label %2325

2325:                                             ; preds = %2317, %2309
  %2326 = phi float [ %2316, %2309 ], [ %2324, %2317 ]
  %2327 = load ptr, ptr %15, align 8, !tbaa !9
  %2328 = load i32, ptr %22, align 4, !tbaa !5
  %2329 = load i32, ptr %24, align 4, !tbaa !5
  %2330 = sub nsw i32 %2328, %2329
  %2331 = sext i32 %2330 to i64
  %2332 = getelementptr inbounds float, ptr %2327, i64 %2331
  %2333 = load float, ptr %2332, align 4, !tbaa !16
  %2334 = fsub float %2326, %2333
  %2335 = fadd float %2293, %2334
  br label %2337

2336:                                             ; preds = %2245
  br label %2337

2337:                                             ; preds = %2336, %2325
  %2338 = phi float [ %2335, %2325 ], [ 0.000000e+00, %2336 ]
  br label %2339

2339:                                             ; preds = %2337, %2229
  %2340 = phi float [ %2244, %2229 ], [ %2338, %2337 ]
  %2341 = fpext float %2340 to double
  br label %2342

2342:                                             ; preds = %2339, %2204
  %2343 = phi double [ %2221, %2204 ], [ %2341, %2339 ]
  %2344 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2345 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2344, i32 0, i32 8
  %2346 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2345, i64 0, i64 7
  %2347 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2346, i32 0, i32 1
  %2348 = load i32, ptr %2347, align 4, !tbaa !15
  %2349 = icmp eq i32 %2348, 0
  br i1 %2349, label %2350, label %2368

2350:                                             ; preds = %2342
  %2351 = load ptr, ptr %16, align 8, !tbaa !9
  %2352 = load i32, ptr %25, align 4, !tbaa !5
  %2353 = load i32, ptr %24, align 4, !tbaa !5
  %2354 = sub nsw i32 %2352, %2353
  %2355 = sext i32 %2354 to i64
  %2356 = getelementptr inbounds float, ptr %2351, i64 %2355
  %2357 = load float, ptr %2356, align 4, !tbaa !16
  %2358 = load ptr, ptr %13, align 8, !tbaa !9
  %2359 = load i32, ptr %25, align 4, !tbaa !5
  %2360 = load i32, ptr %24, align 4, !tbaa !5
  %2361 = sub nsw i32 %2359, %2360
  %2362 = sext i32 %2361 to i64
  %2363 = getelementptr inbounds float, ptr %2358, i64 %2362
  %2364 = load float, ptr %2363, align 4, !tbaa !16
  %2365 = fsub float %2357, %2364
  %2366 = fpext float %2365 to double
  %2367 = call double @llvm.fabs.f64(double %2366)
  br label %2488

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

2375:                                             ; preds = %2368
  %2376 = load ptr, ptr %14, align 8, !tbaa !9
  %2377 = load i32, ptr %25, align 4, !tbaa !5
  %2378 = load i32, ptr %24, align 4, !tbaa !5
  %2379 = sub nsw i32 %2377, %2378
  %2380 = sext i32 %2379 to i64
  %2381 = getelementptr inbounds float, ptr %2376, i64 %2380
  %2382 = load float, ptr %2381, align 4, !tbaa !16
  %2383 = load ptr, ptr %15, align 8, !tbaa !9
  %2384 = load i32, ptr %25, align 4, !tbaa !5
  %2385 = load i32, ptr %24, align 4, !tbaa !5
  %2386 = sub nsw i32 %2384, %2385
  %2387 = sext i32 %2386 to i64
  %2388 = getelementptr inbounds float, ptr %2383, i64 %2387
  %2389 = load float, ptr %2388, align 4, !tbaa !16
  %2390 = fsub float %2382, %2389
  br label %2485

2391:                                             ; preds = %2368
  %2392 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2393 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2392, i32 0, i32 8
  %2394 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2393, i64 0, i64 7
  %2395 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2394, i32 0, i32 1
  %2396 = load i32, ptr %2395, align 4, !tbaa !15
  %2397 = icmp eq i32 %2396, 2
  br i1 %2397, label %2398, label %2482

2398:                                             ; preds = %2391
  %2399 = load ptr, ptr %14, align 8, !tbaa !9
  %2400 = load i32, ptr %25, align 4, !tbaa !5
  %2401 = load i32, ptr %24, align 4, !tbaa !5
  %2402 = sub nsw i32 %2400, %2401
  %2403 = sext i32 %2402 to i64
  %2404 = getelementptr inbounds float, ptr %2399, i64 %2403
  %2405 = load float, ptr %2404, align 4, !tbaa !16
  %2406 = load ptr, ptr %16, align 8, !tbaa !9
  %2407 = load i32, ptr %25, align 4, !tbaa !5
  %2408 = load i32, ptr %24, align 4, !tbaa !5
  %2409 = sub nsw i32 %2407, %2408
  %2410 = sext i32 %2409 to i64
  %2411 = getelementptr inbounds float, ptr %2406, i64 %2410
  %2412 = load float, ptr %2411, align 4, !tbaa !16
  %2413 = load ptr, ptr %13, align 8, !tbaa !9
  %2414 = load i32, ptr %25, align 4, !tbaa !5
  %2415 = load i32, ptr %24, align 4, !tbaa !5
  %2416 = sub nsw i32 %2414, %2415
  %2417 = sext i32 %2416 to i64
  %2418 = getelementptr inbounds float, ptr %2413, i64 %2417
  %2419 = load float, ptr %2418, align 4, !tbaa !16
  %2420 = fcmp oge float %2412, %2419
  br i1 %2420, label %2421, label %2429

2421:                                             ; preds = %2398
  %2422 = load ptr, ptr %16, align 8, !tbaa !9
  %2423 = load i32, ptr %25, align 4, !tbaa !5
  %2424 = load i32, ptr %24, align 4, !tbaa !5
  %2425 = sub nsw i32 %2423, %2424
  %2426 = sext i32 %2425 to i64
  %2427 = getelementptr inbounds float, ptr %2422, i64 %2426
  %2428 = load float, ptr %2427, align 4, !tbaa !16
  br label %2437

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

2437:                                             ; preds = %2429, %2421
  %2438 = phi float [ %2428, %2421 ], [ %2436, %2429 ]
  %2439 = fsub float %2405, %2438
  %2440 = load ptr, ptr %16, align 8, !tbaa !9
  %2441 = load i32, ptr %25, align 4, !tbaa !5
  %2442 = load i32, ptr %24, align 4, !tbaa !5
  %2443 = sub nsw i32 %2441, %2442
  %2444 = sext i32 %2443 to i64
  %2445 = getelementptr inbounds float, ptr %2440, i64 %2444
  %2446 = load float, ptr %2445, align 4, !tbaa !16
  %2447 = load ptr, ptr %13, align 8, !tbaa !9
  %2448 = load i32, ptr %25, align 4, !tbaa !5
  %2449 = load i32, ptr %24, align 4, !tbaa !5
  %2450 = sub nsw i32 %2448, %2449
  %2451 = sext i32 %2450 to i64
  %2452 = getelementptr inbounds float, ptr %2447, i64 %2451
  %2453 = load float, ptr %2452, align 4, !tbaa !16
  %2454 = fcmp oge float %2446, %2453
  br i1 %2454, label %2455, label %2463

2455:                                             ; preds = %2437
  %2456 = load ptr, ptr %13, align 8, !tbaa !9
  %2457 = load i32, ptr %25, align 4, !tbaa !5
  %2458 = load i32, ptr %24, align 4, !tbaa !5
  %2459 = sub nsw i32 %2457, %2458
  %2460 = sext i32 %2459 to i64
  %2461 = getelementptr inbounds float, ptr %2456, i64 %2460
  %2462 = load float, ptr %2461, align 4, !tbaa !16
  br label %2471

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

2471:                                             ; preds = %2463, %2455
  %2472 = phi float [ %2462, %2455 ], [ %2470, %2463 ]
  %2473 = load ptr, ptr %15, align 8, !tbaa !9
  %2474 = load i32, ptr %25, align 4, !tbaa !5
  %2475 = load i32, ptr %24, align 4, !tbaa !5
  %2476 = sub nsw i32 %2474, %2475
  %2477 = sext i32 %2476 to i64
  %2478 = getelementptr inbounds float, ptr %2473, i64 %2477
  %2479 = load float, ptr %2478, align 4, !tbaa !16
  %2480 = fsub float %2472, %2479
  %2481 = fadd float %2439, %2480
  br label %2483

2482:                                             ; preds = %2391
  br label %2483

2483:                                             ; preds = %2482, %2471
  %2484 = phi float [ %2481, %2471 ], [ 0.000000e+00, %2482 ]
  br label %2485

2485:                                             ; preds = %2483, %2375
  %2486 = phi float [ %2390, %2375 ], [ %2484, %2483 ]
  %2487 = fpext float %2486 to double
  br label %2488

2488:                                             ; preds = %2485, %2350
  %2489 = phi double [ %2367, %2350 ], [ %2487, %2485 ]
  %2490 = fsub double %2343, %2489
  %2491 = load i32, ptr %24, align 4, !tbaa !5
  %2492 = sext i32 %2491 to i64
  %2493 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 %2492
  %2494 = load double, ptr %2493, align 8, !tbaa !11
  %2495 = fadd double %2494, %2490
  store double %2495, ptr %2493, align 8, !tbaa !11
  br label %2496

2496:                                             ; preds = %2488
  %2497 = load i32, ptr %24, align 4, !tbaa !5
  %2498 = add nsw i32 %2497, -1
  store i32 %2498, ptr %24, align 4, !tbaa !5
  br label %2194, !llvm.loop !22

2499:                                             ; preds = %2194
  store i32 2, ptr %24, align 4, !tbaa !5
  br label %2500

2500:                                             ; preds = %2802, %2499
  %2501 = load i32, ptr %24, align 4, !tbaa !5
  %2502 = icmp sge i32 %2501, 1
  br i1 %2502, label %2503, label %2805

2503:                                             ; preds = %2500
  %2504 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2505 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2504, i32 0, i32 8
  %2506 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2505, i64 0, i64 10
  %2507 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2506, i32 0, i32 1
  %2508 = load i32, ptr %2507, align 4, !tbaa !15
  %2509 = icmp eq i32 %2508, 0
  br i1 %2509, label %2510, label %2528

2510:                                             ; preds = %2503
  %2511 = load ptr, ptr %16, align 8, !tbaa !9
  %2512 = load i32, ptr %22, align 4, !tbaa !5
  %2513 = load i32, ptr %24, align 4, !tbaa !5
  %2514 = sub nsw i32 %2512, %2513
  %2515 = sext i32 %2514 to i64
  %2516 = getelementptr inbounds float, ptr %2511, i64 %2515
  %2517 = load float, ptr %2516, align 4, !tbaa !16
  %2518 = load ptr, ptr %13, align 8, !tbaa !9
  %2519 = load i32, ptr %22, align 4, !tbaa !5
  %2520 = load i32, ptr %24, align 4, !tbaa !5
  %2521 = sub nsw i32 %2519, %2520
  %2522 = sext i32 %2521 to i64
  %2523 = getelementptr inbounds float, ptr %2518, i64 %2522
  %2524 = load float, ptr %2523, align 4, !tbaa !16
  %2525 = fsub float %2517, %2524
  %2526 = fpext float %2525 to double
  %2527 = call double @llvm.fabs.f64(double %2526)
  br label %2648

2528:                                             ; preds = %2503
  %2529 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2530 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2529, i32 0, i32 8
  %2531 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2530, i64 0, i64 10
  %2532 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2531, i32 0, i32 1
  %2533 = load i32, ptr %2532, align 4, !tbaa !15
  %2534 = icmp eq i32 %2533, 1
  br i1 %2534, label %2535, label %2551

2535:                                             ; preds = %2528
  %2536 = load ptr, ptr %14, align 8, !tbaa !9
  %2537 = load i32, ptr %22, align 4, !tbaa !5
  %2538 = load i32, ptr %24, 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 = load ptr, ptr %15, align 8, !tbaa !9
  %2544 = load i32, ptr %22, align 4, !tbaa !5
  %2545 = load i32, ptr %24, align 4, !tbaa !5
  %2546 = sub nsw i32 %2544, %2545
  %2547 = sext i32 %2546 to i64
  %2548 = getelementptr inbounds float, ptr %2543, i64 %2547
  %2549 = load float, ptr %2548, align 4, !tbaa !16
  %2550 = fsub float %2542, %2549
  br label %2645

2551:                                             ; preds = %2528
  %2552 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2553 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2552, i32 0, i32 8
  %2554 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2553, i64 0, i64 10
  %2555 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2554, i32 0, i32 1
  %2556 = load i32, ptr %2555, align 4, !tbaa !15
  %2557 = icmp eq i32 %2556, 2
  br i1 %2557, label %2558, label %2642

2558:                                             ; preds = %2551
  %2559 = load ptr, ptr %14, align 8, !tbaa !9
  %2560 = load i32, ptr %22, align 4, !tbaa !5
  %2561 = load i32, ptr %24, align 4, !tbaa !5
  %2562 = sub nsw i32 %2560, %2561
  %2563 = sext i32 %2562 to i64
  %2564 = getelementptr inbounds float, ptr %2559, i64 %2563
  %2565 = load float, ptr %2564, align 4, !tbaa !16
  %2566 = load ptr, ptr %16, align 8, !tbaa !9
  %2567 = load i32, ptr %22, align 4, !tbaa !5
  %2568 = load i32, ptr %24, align 4, !tbaa !5
  %2569 = sub nsw i32 %2567, %2568
  %2570 = sext i32 %2569 to i64
  %2571 = getelementptr inbounds float, ptr %2566, i64 %2570
  %2572 = load float, ptr %2571, align 4, !tbaa !16
  %2573 = load ptr, ptr %13, align 8, !tbaa !9
  %2574 = load i32, ptr %22, align 4, !tbaa !5
  %2575 = load i32, ptr %24, align 4, !tbaa !5
  %2576 = sub nsw i32 %2574, %2575
  %2577 = sext i32 %2576 to i64
  %2578 = getelementptr inbounds float, ptr %2573, i64 %2577
  %2579 = load float, ptr %2578, align 4, !tbaa !16
  %2580 = fcmp oge float %2572, %2579
  br i1 %2580, label %2581, label %2589

2581:                                             ; preds = %2558
  %2582 = load ptr, ptr %16, align 8, !tbaa !9
  %2583 = load i32, ptr %22, align 4, !tbaa !5
  %2584 = load i32, ptr %24, align 4, !tbaa !5
  %2585 = sub nsw i32 %2583, %2584
  %2586 = sext i32 %2585 to i64
  %2587 = getelementptr inbounds float, ptr %2582, i64 %2586
  %2588 = load float, ptr %2587, align 4, !tbaa !16
  br label %2597

2589:                                             ; preds = %2558
  %2590 = load ptr, ptr %13, align 8, !tbaa !9
  %2591 = load i32, ptr %22, align 4, !tbaa !5
  %2592 = load i32, ptr %24, align 4, !tbaa !5
  %2593 = sub nsw i32 %2591, %2592
  %2594 = sext i32 %2593 to i64
  %2595 = getelementptr inbounds float, ptr %2590, i64 %2594
  %2596 = load float, ptr %2595, align 4, !tbaa !16
  br label %2597

2597:                                             ; preds = %2589, %2581
  %2598 = phi float [ %2588, %2581 ], [ %2596, %2589 ]
  %2599 = fsub float %2565, %2598
  %2600 = load ptr, ptr %16, align 8, !tbaa !9
  %2601 = load i32, ptr %22, align 4, !tbaa !5
  %2602 = load i32, ptr %24, align 4, !tbaa !5
  %2603 = sub nsw i32 %2601, %2602
  %2604 = sext i32 %2603 to i64
  %2605 = getelementptr inbounds float, ptr %2600, i64 %2604
  %2606 = load float, ptr %2605, align 4, !tbaa !16
  %2607 = load ptr, ptr %13, align 8, !tbaa !9
  %2608 = load i32, ptr %22, align 4, !tbaa !5
  %2609 = load i32, ptr %24, align 4, !tbaa !5
  %2610 = sub nsw i32 %2608, %2609
  %2611 = sext i32 %2610 to i64
  %2612 = getelementptr inbounds float, ptr %2607, i64 %2611
  %2613 = load float, ptr %2612, align 4, !tbaa !16
  %2614 = fcmp oge float %2606, %2613
  br i1 %2614, label %2615, label %2623

2615:                                             ; preds = %2597
  %2616 = load ptr, ptr %13, align 8, !tbaa !9
  %2617 = load i32, ptr %22, align 4, !tbaa !5
  %2618 = load i32, ptr %24, align 4, !tbaa !5
  %2619 = sub nsw i32 %2617, %2618
  %2620 = sext i32 %2619 to i64
  %2621 = getelementptr inbounds float, ptr %2616, i64 %2620
  %2622 = load float, ptr %2621, align 4, !tbaa !16
  br label %2631

2623:                                             ; preds = %2597
  %2624 = load ptr, ptr %16, align 8, !tbaa !9
  %2625 = load i32, ptr %22, align 4, !tbaa !5
  %2626 = load i32, ptr %24, align 4, !tbaa !5
  %2627 = sub nsw i32 %2625, %2626
  %2628 = sext i32 %2627 to i64
  %2629 = getelementptr inbounds float, ptr %2624, i64 %2628
  %2630 = load float, ptr %2629, align 4, !tbaa !16
  br label %2631

2631:                                             ; preds = %2623, %2615
  %2632 = phi float [ %2622, %2615 ], [ %2630, %2623 ]
  %2633 = load ptr, ptr %15, align 8, !tbaa !9
  %2634 = load i32, ptr %22, align 4, !tbaa !5
  %2635 = load i32, ptr %24, align 4, !tbaa !5
  %2636 = sub nsw i32 %2634, %2635
  %2637 = sext i32 %2636 to i64
  %2638 = getelementptr inbounds float, ptr %2633, i64 %2637
  %2639 = load float, ptr %2638, align 4, !tbaa !16
  %2640 = fsub float %2632, %2639
  %2641 = fadd float %2599, %2640
  br label %2643

2642:                                             ; preds = %2551
  br label %2643

2643:                                             ; preds = %2642, %2631
  %2644 = phi float [ %2641, %2631 ], [ 0.000000e+00, %2642 ]
  br label %2645

2645:                                             ; preds = %2643, %2535
  %2646 = phi float [ %2550, %2535 ], [ %2644, %2643 ]
  %2647 = fpext float %2646 to double
  br label %2648

2648:                                             ; preds = %2645, %2510
  %2649 = phi double [ %2527, %2510 ], [ %2647, %2645 ]
  %2650 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2651 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2650, i32 0, i32 8
  %2652 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2651, i64 0, i64 10
  %2653 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2652, i32 0, i32 1
  %2654 = load i32, ptr %2653, align 4, !tbaa !15
  %2655 = icmp eq i32 %2654, 0
  br i1 %2655, label %2656, label %2674

2656:                                             ; preds = %2648
  %2657 = load ptr, ptr %16, align 8, !tbaa !9
  %2658 = load i32, ptr %26, align 4, !tbaa !5
  %2659 = load i32, ptr %24, align 4, !tbaa !5
  %2660 = sub nsw i32 %2658, %2659
  %2661 = sext i32 %2660 to i64
  %2662 = getelementptr inbounds float, ptr %2657, i64 %2661
  %2663 = load float, ptr %2662, align 4, !tbaa !16
  %2664 = load ptr, ptr %13, align 8, !tbaa !9
  %2665 = load i32, ptr %26, align 4, !tbaa !5
  %2666 = load i32, ptr %24, align 4, !tbaa !5
  %2667 = sub nsw i32 %2665, %2666
  %2668 = sext i32 %2667 to i64
  %2669 = getelementptr inbounds float, ptr %2664, i64 %2668
  %2670 = load float, ptr %2669, align 4, !tbaa !16
  %2671 = fsub float %2663, %2670
  %2672 = fpext float %2671 to double
  %2673 = call double @llvm.fabs.f64(double %2672)
  br label %2794

2674:                                             ; preds = %2648
  %2675 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2676 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2675, i32 0, i32 8
  %2677 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2676, i64 0, i64 10
  %2678 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2677, i32 0, i32 1
  %2679 = load i32, ptr %2678, align 4, !tbaa !15
  %2680 = icmp eq i32 %2679, 1
  br i1 %2680, label %2681, label %2697

2681:                                             ; preds = %2674
  %2682 = load ptr, ptr %14, align 8, !tbaa !9
  %2683 = load i32, ptr %26, align 4, !tbaa !5
  %2684 = load i32, ptr %24, 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 = load ptr, ptr %15, align 8, !tbaa !9
  %2690 = load i32, ptr %26, align 4, !tbaa !5
  %2691 = load i32, ptr %24, align 4, !tbaa !5
  %2692 = sub nsw i32 %2690, %2691
  %2693 = sext i32 %2692 to i64
  %2694 = getelementptr inbounds float, ptr %2689, i64 %2693
  %2695 = load float, ptr %2694, align 4, !tbaa !16
  %2696 = fsub float %2688, %2695
  br label %2791

2697:                                             ; preds = %2674
  %2698 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2699 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2698, i32 0, i32 8
  %2700 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2699, i64 0, i64 10
  %2701 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2700, i32 0, i32 1
  %2702 = load i32, ptr %2701, align 4, !tbaa !15
  %2703 = icmp eq i32 %2702, 2
  br i1 %2703, label %2704, label %2788

2704:                                             ; preds = %2697
  %2705 = load ptr, ptr %14, align 8, !tbaa !9
  %2706 = load i32, ptr %26, align 4, !tbaa !5
  %2707 = load i32, ptr %24, align 4, !tbaa !5
  %2708 = sub nsw i32 %2706, %2707
  %2709 = sext i32 %2708 to i64
  %2710 = getelementptr inbounds float, ptr %2705, i64 %2709
  %2711 = load float, ptr %2710, align 4, !tbaa !16
  %2712 = load ptr, ptr %16, align 8, !tbaa !9
  %2713 = load i32, ptr %26, align 4, !tbaa !5
  %2714 = load i32, ptr %24, align 4, !tbaa !5
  %2715 = sub nsw i32 %2713, %2714
  %2716 = sext i32 %2715 to i64
  %2717 = getelementptr inbounds float, ptr %2712, i64 %2716
  %2718 = load float, ptr %2717, align 4, !tbaa !16
  %2719 = load ptr, ptr %13, align 8, !tbaa !9
  %2720 = load i32, ptr %26, align 4, !tbaa !5
  %2721 = load i32, ptr %24, align 4, !tbaa !5
  %2722 = sub nsw i32 %2720, %2721
  %2723 = sext i32 %2722 to i64
  %2724 = getelementptr inbounds float, ptr %2719, i64 %2723
  %2725 = load float, ptr %2724, align 4, !tbaa !16
  %2726 = fcmp oge float %2718, %2725
  br i1 %2726, label %2727, label %2735

2727:                                             ; preds = %2704
  %2728 = load ptr, ptr %16, align 8, !tbaa !9
  %2729 = load i32, ptr %26, align 4, !tbaa !5
  %2730 = load i32, ptr %24, align 4, !tbaa !5
  %2731 = sub nsw i32 %2729, %2730
  %2732 = sext i32 %2731 to i64
  %2733 = getelementptr inbounds float, ptr %2728, i64 %2732
  %2734 = load float, ptr %2733, align 4, !tbaa !16
  br label %2743

2735:                                             ; preds = %2704
  %2736 = load ptr, ptr %13, align 8, !tbaa !9
  %2737 = load i32, ptr %26, align 4, !tbaa !5
  %2738 = load i32, ptr %24, align 4, !tbaa !5
  %2739 = sub nsw i32 %2737, %2738
  %2740 = sext i32 %2739 to i64
  %2741 = getelementptr inbounds float, ptr %2736, i64 %2740
  %2742 = load float, ptr %2741, align 4, !tbaa !16
  br label %2743

2743:                                             ; preds = %2735, %2727
  %2744 = phi float [ %2734, %2727 ], [ %2742, %2735 ]
  %2745 = fsub float %2711, %2744
  %2746 = load ptr, ptr %16, align 8, !tbaa !9
  %2747 = load i32, ptr %26, align 4, !tbaa !5
  %2748 = load i32, ptr %24, align 4, !tbaa !5
  %2749 = sub nsw i32 %2747, %2748
  %2750 = sext i32 %2749 to i64
  %2751 = getelementptr inbounds float, ptr %2746, i64 %2750
  %2752 = load float, ptr %2751, align 4, !tbaa !16
  %2753 = load ptr, ptr %13, align 8, !tbaa !9
  %2754 = load i32, ptr %26, align 4, !tbaa !5
  %2755 = load i32, ptr %24, align 4, !tbaa !5
  %2756 = sub nsw i32 %2754, %2755
  %2757 = sext i32 %2756 to i64
  %2758 = getelementptr inbounds float, ptr %2753, i64 %2757
  %2759 = load float, ptr %2758, align 4, !tbaa !16
  %2760 = fcmp oge float %2752, %2759
  br i1 %2760, label %2761, label %2769

2761:                                             ; preds = %2743
  %2762 = load ptr, ptr %13, align 8, !tbaa !9
  %2763 = load i32, ptr %26, align 4, !tbaa !5
  %2764 = load i32, ptr %24, align 4, !tbaa !5
  %2765 = sub nsw i32 %2763, %2764
  %2766 = sext i32 %2765 to i64
  %2767 = getelementptr inbounds float, ptr %2762, i64 %2766
  %2768 = load float, ptr %2767, align 4, !tbaa !16
  br label %2777

2769:                                             ; preds = %2743
  %2770 = load ptr, ptr %16, align 8, !tbaa !9
  %2771 = load i32, ptr %26, align 4, !tbaa !5
  %2772 = load i32, ptr %24, align 4, !tbaa !5
  %2773 = sub nsw i32 %2771, %2772
  %2774 = sext i32 %2773 to i64
  %2775 = getelementptr inbounds float, ptr %2770, i64 %2774
  %2776 = load float, ptr %2775, align 4, !tbaa !16
  br label %2777

2777:                                             ; preds = %2769, %2761
  %2778 = phi float [ %2768, %2761 ], [ %2776, %2769 ]
  %2779 = load ptr, ptr %15, align 8, !tbaa !9
  %2780 = load i32, ptr %26, align 4, !tbaa !5
  %2781 = load i32, ptr %24, align 4, !tbaa !5
  %2782 = sub nsw i32 %2780, %2781
  %2783 = sext i32 %2782 to i64
  %2784 = getelementptr inbounds float, ptr %2779, i64 %2783
  %2785 = load float, ptr %2784, align 4, !tbaa !16
  %2786 = fsub float %2778, %2785
  %2787 = fadd float %2745, %2786
  br label %2789

2788:                                             ; preds = %2697
  br label %2789

2789:                                             ; preds = %2788, %2777
  %2790 = phi float [ %2787, %2777 ], [ 0.000000e+00, %2788 ]
  br label %2791

2791:                                             ; preds = %2789, %2681
  %2792 = phi float [ %2696, %2681 ], [ %2790, %2789 ]
  %2793 = fpext float %2792 to double
  br label %2794

2794:                                             ; preds = %2791, %2656
  %2795 = phi double [ %2673, %2656 ], [ %2793, %2791 ]
  %2796 = fsub double %2649, %2795
  %2797 = load i32, ptr %24, align 4, !tbaa !5
  %2798 = sext i32 %2797 to i64
  %2799 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 %2798
  %2800 = load double, ptr %2799, align 8, !tbaa !11
  %2801 = fadd double %2800, %2796
  store double %2801, ptr %2799, align 8, !tbaa !11
  br label %2802

2802:                                             ; preds = %2794
  %2803 = load i32, ptr %24, align 4, !tbaa !5
  %2804 = add nsw i32 %2803, -1
  store i32 %2804, ptr %24, align 4, !tbaa !5
  br label %2500, !llvm.loop !23

2805:                                             ; preds = %2500
  %2806 = load i32, ptr %22, align 4, !tbaa !5
  %2807 = add nsw i32 %2806, 1
  store i32 %2807, ptr %22, align 4, !tbaa !5
  %2808 = load i32, ptr %25, align 4, !tbaa !5
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr %25, align 4, !tbaa !5
  %2810 = load i32, ptr %26, align 4, !tbaa !5
  %2811 = add nsw i32 %2810, 1
  store i32 %2811, ptr %26, align 4, !tbaa !5
  br label %2812

2812:                                             ; preds = %2805
  %2813 = load i32, ptr %22, align 4, !tbaa !5
  %2814 = load i32, ptr %12, align 4, !tbaa !5
  %2815 = icmp sle i32 %2813, %2814
  br i1 %2815, label %772, label %2816, !llvm.loop !24

2816:                                             ; preds = %2812
  %2817 = load i32, ptr %23, align 4, !tbaa !5
  %2818 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %2817, ptr %2818, align 4, !tbaa !5
  %2819 = load i32, ptr %11, align 4, !tbaa !5
  %2820 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %2819, ptr %2820, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2821

2821:                                             ; preds = %2816, %68, %56, %52, %39, %31
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #3
  %2822 = load i32, ptr %10, align 4
  ret i32 %2822
}

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

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

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

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

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

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

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

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

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

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

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

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

.thread766.us:                                    ; preds = %.thread766.us.preheader, %.thread766.us
  %indvars.iv865 = phi i64 [ %38, %.thread766.us.preheader ], [ %indvars.iv.next866, %.thread766.us ]
  %63 = phi double [ 0.000000e+00, %.thread766.us.preheader ], [ %72, %.thread766.us ]
  %64 = phi <2 x double> [ zeroinitializer, %.thread766.us.preheader ], [ %80, %.thread766.us ]
  %65 = add nsw i64 %indvars.iv865, -2
  %66 = getelementptr inbounds float, ptr %3, i64 %65
  %67 = load float, ptr %66, align 4, !tbaa !15
  %68 = getelementptr inbounds float, ptr %4, i64 %65
  %69 = load float, ptr %68, align 4, !tbaa !15
  %70 = fsub float %67, %69
  %71 = fpext float %70 to double
  %72 = fadd double %63, %71
  %73 = add nsw i64 %indvars.iv865, -1
  %74 = getelementptr inbounds float, ptr %3, i64 %73
  %75 = getelementptr inbounds float, ptr %4, i64 %73
  %76 = load <2 x float>, ptr %74, align 4, !tbaa !15
  %77 = load <2 x float>, ptr %75, align 4, !tbaa !15
  %78 = fsub <2 x float> %76, %77
  %79 = fpext <2 x float> %78 to <2 x double>
  %80 = fadd <2 x double> %64, %79
  %indvars.iv.next866 = add nsw i64 %indvars.iv865, 1
  %81 = icmp slt i64 %indvars.iv.next866, %39
  br i1 %81, label %.thread766.us, label %.preheader809, !llvm.loop !17

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

.preheader809:                                    ; preds = %.thread768.us, %.thread766.us, %.thread.us, %.lr.ph, %25
  %.lcssa = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %.lr.ph ], [ %52, %.thread.us ], [ %72, %.thread766.us ], [ %99, %.thread768.us ]
  %118 = phi <2 x double> [ zeroinitializer, %25 ], [ zeroinitializer, %.lr.ph ], [ %61, %.thread.us ], [ %80, %.thread766.us ], [ %116, %.thread768.us ]
  %119 = icmp sgt i32 %31, 0
  br i1 %119, label %.lr.ph842, label %.preheader809..preheader808_crit_edge

.preheader809..preheader808_crit_edge:            ; preds = %.preheader809
  %.pre902 = sext i32 %32 to i64
  br label %.preheader808

.lr.ph842:                                        ; preds = %.preheader809
  %120 = getelementptr inbounds i8, ptr %26, i64 452
  %121 = load i32, ptr %120, align 4, !tbaa !14
  %122 = sext i32 %32 to i64
  %123 = zext nneg i32 %spec.select to i64
  br label %133

.preheader808:                                    ; preds = %192, %.preheader809..preheader808_crit_edge
  %.pre-phi = phi i64 [ %.pre902, %.preheader809..preheader808_crit_edge ], [ %122, %192 ]
  %124 = phi <2 x double> [ zeroinitializer, %.preheader809..preheader808_crit_edge ], [ %196, %192 ]
  %125 = getelementptr inbounds i8, ptr %26, i64 380
  %126 = getelementptr inbounds i8, ptr %26, i64 452
  %127 = getelementptr inbounds i8, ptr %26, i64 392
  %128 = getelementptr inbounds i8, ptr %26, i64 464
  %129 = sext i32 %22 to i64
  %130 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %129, i64 %130)
  %131 = sext i32 %1 to i64
  %132 = sext i32 %29 to i64
  br label %198

133:                                              ; preds = %.lr.ph842, %192
  %indvars.iv871 = phi i64 [ %122, %.lr.ph842 ], [ %indvars.iv.next872, %192 ]
  %134 = phi <2 x double> [ zeroinitializer, %.lr.ph842 ], [ %196, %192 ]
  switch i32 %121, label %192 [
    i32 0, label %.thread776
    i32 1, label %.thread778
    i32 2, label %.thread780
  ]

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

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

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

192:                                              ; preds = %133, %.thread778, %.thread780, %.thread776
  %.pn = phi double [ %142, %.thread776 ], [ %156, %.thread778 ], [ %177, %.thread780 ], [ 0.000000e+00, %133 ]
  %.in744 = phi float [ %149, %.thread776 ], [ %162, %.thread778 ], [ %191, %.thread780 ], [ 0.000000e+00, %133 ]
  %193 = fpext float %.in744 to double
  %194 = insertelement <2 x double> poison, double %193, i64 0
  %195 = insertelement <2 x double> %194, double %.pn, i64 1
  %196 = fadd <2 x double> %134, %195
  %indvars.iv.next872 = add nsw i64 %indvars.iv871, 1
  %197 = icmp slt i64 %indvars.iv.next872, %123
  br i1 %197, label %133, label %.preheader808, !llvm.loop !19

198:                                              ; preds = %.preheader808, %770
  %.sroa.14.0 = phi double [ %.lcssa, %.preheader808 ], [ %637, %770 ]
  %indvars.iv886 = phi i64 [ %.pre-phi, %.preheader808 ], [ %indvars.iv.next887, %770 ]
  %indvars.iv884 = phi i64 [ %132, %.preheader808 ], [ %indvars.iv.next885, %770 ]
  %indvars.iv882 = phi i64 [ 0, %.preheader808 ], [ %indvars.iv.next883, %770 ]
  %indvars.iv880 = phi i64 [ %smax, %.preheader808 ], [ %indvars.iv.next881, %770 ]
  %199 = phi <2 x double> [ %124, %.preheader808 ], [ %776, %770 ]
  %200 = phi <2 x double> [ %118, %.preheader808 ], [ %642, %770 ]
  %201 = add nsw i64 %indvars.iv880, -2
  %202 = getelementptr inbounds float, ptr %5, i64 %201
  %203 = load float, ptr %202, align 4, !tbaa !15
  %204 = getelementptr inbounds float, ptr %2, i64 %201
  %205 = load float, ptr %204, align 4, !tbaa !15
  %206 = fcmp ult float %203, %205
  br i1 %206, label %207, label %443

207:                                              ; preds = %198
  %208 = getelementptr inbounds float, ptr %4, i64 %201
  %209 = load float, ptr %208, align 4, !tbaa !15
  %210 = fsub float %203, %209
  %211 = fpext float %210 to double
  %212 = load double, ptr %127, align 8, !tbaa !20
  %213 = load i32, ptr %27, align 8, !tbaa !11
  %.not732 = icmp eq i32 %213, 0
  br i1 %.not732, label %217, label %214

214:                                              ; preds = %207
  %215 = sitofp i32 %213 to double
  %216 = fdiv double %.sroa.14.0, %215
  %.pre = load i32, ptr %125, align 4, !tbaa !14
  br label %234

217:                                              ; preds = %207
  %218 = load i32, ptr %125, align 4, !tbaa !14
  switch i32 %218, label %231 [
    i32 0, label %.thread
    i32 1, label %222
    i32 2, label %226
  ]

.thread:                                          ; preds = %217
  %219 = fsub float %203, %205
  %220 = tail call float @llvm.fabs.f32(float %219)
  %221 = fpext float %220 to double
  br label %239

222:                                              ; preds = %217
  %223 = getelementptr inbounds float, ptr %3, i64 %201
  %224 = load float, ptr %223, align 4, !tbaa !15
  %225 = fsub float %224, %209
  br label %231

226:                                              ; preds = %217
  %227 = getelementptr inbounds float, ptr %3, i64 %201
  %228 = load float, ptr %227, align 4, !tbaa !15
  %229 = fsub float %228, %205
  %230 = fadd float %210, %229
  br label %231

231:                                              ; preds = %217, %226, %222
  %232 = phi float [ %225, %222 ], [ %230, %226 ], [ 0.000000e+00, %217 ]
  %233 = fpext float %232 to double
  br label %234

234:                                              ; preds = %231, %214
  %235 = phi i32 [ %.pre, %214 ], [ %218, %231 ]
  %236 = phi double [ %216, %214 ], [ %233, %231 ]
  %.fr = freeze i32 %235
  %237 = icmp eq i32 %.fr, 2
  br i1 %237, label %238, label %239

238:                                              ; preds = %234
  br label %239

239:                                              ; preds = %.thread, %234, %238
  %.pn940 = phi double [ %236, %238 ], [ %236, %234 ], [ %221, %.thread ]
  %240 = phi i32 [ %.fr, %238 ], [ %.fr, %234 ], [ 0, %.thread ]
  %241 = phi double [ 2.000000e+00, %238 ], [ 1.000000e+00, %234 ], [ 1.000000e+00, %.thread ]
  %242 = fmul double %212, %.pn940
  %243 = fdiv double %242, %241
  %244 = fcmp ogt double %243, %211
  br i1 %244, label %245, label %443

245:                                              ; preds = %239
  %246 = add nsw i64 %indvars.iv880, -1
  %247 = getelementptr inbounds float, ptr %5, i64 %246
  %248 = load float, ptr %247, align 4, !tbaa !15
  %249 = getelementptr inbounds float, ptr %2, i64 %246
  %250 = load float, ptr %249, align 4, !tbaa !15
  %251 = fcmp ult float %248, %250
  br i1 %251, label %252, label %443

252:                                              ; preds = %245
  %253 = getelementptr inbounds float, ptr %4, i64 %246
  %254 = load float, ptr %253, align 4, !tbaa !15
  %255 = fsub float %248, %254
  %256 = fpext float %255 to double
  br i1 %.not732, label %261, label %257

257:                                              ; preds = %252
  %258 = sitofp i32 %213 to double
  %259 = extractelement <2 x double> %200, i64 0
  %260 = fdiv double %259, %258
  br label %278

261:                                              ; preds = %252
  switch i32 %240, label %275 [
    i32 0, label %262
    i32 1, label %266
    i32 2, label %270
  ]

262:                                              ; preds = %261
  %263 = fsub float %248, %250
  %264 = tail call float @llvm.fabs.f32(float %263)
  %265 = fpext float %264 to double
  br label %278

266:                                              ; preds = %261
  %267 = getelementptr inbounds float, ptr %3, i64 %246
  %268 = load float, ptr %267, align 4, !tbaa !15
  %269 = fsub float %268, %254
  br label %275

270:                                              ; preds = %261
  %271 = getelementptr inbounds float, ptr %3, i64 %246
  %272 = load float, ptr %271, align 4, !tbaa !15
  %273 = fsub float %272, %250
  %274 = fadd float %255, %273
  br label %275

275:                                              ; preds = %261, %270, %266
  %276 = phi float [ %269, %266 ], [ %274, %270 ], [ 0.000000e+00, %261 ]
  %277 = fpext float %276 to double
  br label %278

278:                                              ; preds = %262, %275, %257
  %279 = phi double [ %260, %257 ], [ %265, %262 ], [ %277, %275 ]
  %280 = fmul double %212, %279
  %281 = fdiv double %280, %241
  %282 = fcmp ogt double %281, %256
  br i1 %282, label %283, label %443

283:                                              ; preds = %278
  %284 = getelementptr inbounds float, ptr %5, i64 %indvars.iv880
  %285 = load float, ptr %284, align 4, !tbaa !15
  %286 = getelementptr inbounds float, ptr %2, i64 %indvars.iv880
  %287 = load float, ptr %286, align 4, !tbaa !15
  %288 = fcmp ult float %285, %287
  br i1 %288, label %289, label %443

289:                                              ; preds = %283
  %290 = getelementptr inbounds float, ptr %4, i64 %indvars.iv880
  %291 = load float, ptr %290, align 4, !tbaa !15
  %292 = fsub float %285, %291
  %293 = fpext float %292 to double
  br i1 %.not732, label %298, label %294

294:                                              ; preds = %289
  %295 = sitofp i32 %213 to double
  %296 = extractelement <2 x double> %200, i64 1
  %297 = fdiv double %296, %295
  br label %315

298:                                              ; preds = %289
  switch i32 %240, label %312 [
    i32 0, label %299
    i32 1, label %303
    i32 2, label %307
  ]

299:                                              ; preds = %298
  %300 = fsub float %285, %287
  %301 = tail call float @llvm.fabs.f32(float %300)
  %302 = fpext float %301 to double
  br label %315

303:                                              ; preds = %298
  %304 = getelementptr inbounds float, ptr %3, i64 %indvars.iv880
  %305 = load float, ptr %304, align 4, !tbaa !15
  %306 = fsub float %305, %291
  br label %312

307:                                              ; preds = %298
  %308 = getelementptr inbounds float, ptr %3, i64 %indvars.iv880
  %309 = load float, ptr %308, align 4, !tbaa !15
  %310 = fsub float %309, %287
  %311 = fadd float %292, %310
  br label %312

312:                                              ; preds = %298, %307, %303
  %313 = phi float [ %306, %303 ], [ %311, %307 ], [ 0.000000e+00, %298 ]
  %314 = fpext float %313 to double
  br label %315

315:                                              ; preds = %299, %312, %294
  %316 = phi double [ %297, %294 ], [ %302, %299 ], [ %314, %312 ]
  %317 = fmul double %212, %316
  %318 = fdiv double %317, %241
  %319 = fcmp ogt double %318, %293
  %320 = fcmp ogt float %203, %248
  %or.cond798 = and i1 %320, %319
  %321 = fcmp ogt float %248, %285
  %or.cond799 = and i1 %321, %or.cond798
  br i1 %or.cond799, label %322, label %443

322:                                              ; preds = %315
  %323 = fpext float %250 to double
  %324 = fpext float %203 to double
  %325 = load double, ptr %128, align 8, !tbaa !20
  %326 = load i32, ptr %30, align 8, !tbaa !11
  %.not735 = icmp eq i32 %326, 0
  br i1 %.not735, label %327, label %.thread904

327:                                              ; preds = %322
  %328 = load i32, ptr %126, align 4, !tbaa !14
  switch i32 %328, label %341 [
    i32 0, label %329
    i32 1, label %332
    i32 2, label %336
  ]

329:                                              ; preds = %327
  %330 = fsub float %203, %205
  %331 = tail call float @llvm.fabs.f32(float %330)
  br label %341

332:                                              ; preds = %327
  %333 = getelementptr inbounds float, ptr %3, i64 %201
  %334 = load float, ptr %333, align 4, !tbaa !15
  %335 = fsub float %334, %209
  br label %341

336:                                              ; preds = %327
  %337 = getelementptr inbounds float, ptr %3, i64 %201
  %338 = load float, ptr %337, align 4, !tbaa !15
  %339 = fsub float %338, %205
  %340 = fadd float %210, %339
  br label %341

341:                                              ; preds = %332, %336, %327, %329
  %.sink = phi float [ %331, %329 ], [ %335, %332 ], [ %340, %336 ], [ 0.000000e+00, %327 ]
  %342 = fpext float %.sink to double
  %343 = fmul double %325, %342
  %344 = icmp eq i32 %328, 2
  %345 = select i1 %344, double 2.000000e+00, double 1.000000e+00
  %346 = fdiv double %343, %345
  %347 = fadd double %346, %324
  %348 = fcmp ult double %347, %323
  br i1 %348, label %443, label %358

.thread904:                                       ; preds = %322
  %349 = sitofp i32 %326 to double
  %350 = extractelement <2 x double> %199, i64 1
  %351 = fdiv double %350, %349
  %.pre901 = load i32, ptr %126, align 4, !tbaa !14
  %352 = fmul double %325, %351
  %353 = icmp eq i32 %.pre901, 2
  %354 = select i1 %353, double 2.000000e+00, double 1.000000e+00
  %355 = fdiv double %352, %354
  %356 = fadd double %355, %324
  %357 = fcmp ult double %356, %323
  br i1 %357, label %443, label %.thread782

358:                                              ; preds = %341
  br i1 %.not735, label %359, label %.thread782

359:                                              ; preds = %358
  switch i32 %328, label %367 [
    i32 0, label %360
    i32 1, label %363
  ]

360:                                              ; preds = %359
  %361 = fsub float %203, %205
  %362 = tail call float @llvm.fabs.f32(float %361)
  br label %373

363:                                              ; preds = %359
  %364 = getelementptr inbounds float, ptr %3, i64 %201
  %365 = load float, ptr %364, align 4, !tbaa !15
  %366 = fsub float %365, %209
  br label %373

367:                                              ; preds = %359
  br i1 %344, label %368, label %373

368:                                              ; preds = %367
  %369 = getelementptr inbounds float, ptr %3, i64 %201
  %370 = load float, ptr %369, align 4, !tbaa !15
  %371 = fsub float %370, %205
  %372 = fadd float %210, %371
  br label %373

373:                                              ; preds = %363, %367, %368, %360
  %.in = phi float [ %362, %360 ], [ %366, %363 ], [ %372, %368 ], [ 0.000000e+00, %367 ]
  %374 = fpext float %.in to double
  %375 = fmul double %325, %374
  %376 = fdiv double %375, %345
  %377 = fsub double %324, %376
  %378 = fcmp ugt double %377, %323
  br i1 %378, label %443, label %395

.thread782:                                       ; preds = %.thread904, %358
  %379 = phi double [ %345, %358 ], [ %354, %.thread904 ]
  %380 = sitofp i32 %326 to double
  %381 = extractelement <2 x double> %199, i64 1
  %382 = fdiv double %381, %380
  %383 = fmul double %325, %382
  %384 = fdiv double %383, %379
  %385 = fsub double %324, %384
  %386 = fcmp ugt double %385, %323
  br i1 %386, label %443, label %.thread783

.thread783:                                       ; preds = %.thread782
  %387 = fpext float %287 to double
  %388 = fpext float %248 to double
  %389 = extractelement <2 x double> %199, i64 0
  %390 = fdiv double %389, %380
  %391 = fmul double %325, %390
  %392 = fdiv double %391, %379
  %393 = fadd double %392, %388
  %394 = fcmp ult double %393, %387
  br i1 %394, label %443, label %.thread785

395:                                              ; preds = %373
  %396 = fpext float %287 to double
  %397 = fpext float %248 to double
  switch i32 %328, label %405 [
    i32 0, label %398
    i32 1, label %401
  ]

398:                                              ; preds = %395
  %399 = fsub float %248, %250
  %400 = tail call float @llvm.fabs.f32(float %399)
  br label %411

401:                                              ; preds = %395
  %402 = getelementptr inbounds float, ptr %3, i64 %246
  %403 = load float, ptr %402, align 4, !tbaa !15
  %404 = fsub float %403, %254
  br label %411

405:                                              ; preds = %395
  br i1 %344, label %406, label %411

406:                                              ; preds = %405
  %407 = getelementptr inbounds float, ptr %3, i64 %246
  %408 = load float, ptr %407, align 4, !tbaa !15
  %409 = fsub float %408, %250
  %410 = fadd float %255, %409
  br label %411

411:                                              ; preds = %401, %405, %406, %398
  %.in807 = phi float [ %400, %398 ], [ %404, %401 ], [ %410, %406 ], [ 0.000000e+00, %405 ]
  %412 = fpext float %.in807 to double
  %413 = fmul double %325, %412
  %414 = fdiv double %413, %345
  %415 = fadd double %414, %397
  %416 = fcmp ult double %415, %396
  br i1 %416, label %443, label %417

417:                                              ; preds = %411
  switch i32 %328, label %426 [
    i32 0, label %418
    i32 1, label %422
  ]

418:                                              ; preds = %417
  %419 = fsub float %248, %250
  %420 = tail call float @llvm.fabs.f32(float %419)
  %421 = fpext float %420 to double
  br label %.thread785

422:                                              ; preds = %417
  %423 = getelementptr inbounds float, ptr %3, i64 %246
  %424 = load float, ptr %423, align 4, !tbaa !15
  %425 = fsub float %424, %254
  br label %432

426:                                              ; preds = %417
  br i1 %344, label %427, label %432

427:                                              ; preds = %426
  %428 = getelementptr inbounds float, ptr %3, i64 %246
  %429 = load float, ptr %428, align 4, !tbaa !15
  %430 = fsub float %429, %250
  %431 = fadd float %255, %430
  br label %432

432:                                              ; preds = %427, %426, %422
  %433 = phi float [ %425, %422 ], [ %431, %427 ], [ 0.000000e+00, %426 ]
  %434 = fpext float %433 to double
  br label %.thread785

.thread785:                                       ; preds = %.thread783, %418, %432
  %435 = phi double [ %345, %418 ], [ %345, %432 ], [ %379, %.thread783 ]
  %436 = phi double [ %397, %418 ], [ %397, %432 ], [ %388, %.thread783 ]
  %437 = phi double [ %396, %418 ], [ %396, %432 ], [ %387, %.thread783 ]
  %438 = phi double [ %421, %418 ], [ %434, %432 ], [ %390, %.thread783 ]
  %439 = fmul double %325, %438
  %440 = fdiv double %439, %435
  %441 = fsub double %436, %440
  %442 = fcmp ugt double %441, %437
  br i1 %442, label %443, label %444

443:                                              ; preds = %.thread904, %.thread783, %.thread782, %.thread785, %411, %373, %341, %315, %283, %278, %245, %239, %198
  br label %444

444:                                              ; preds = %.thread785, %443
  %.sink938 = phi i32 [ 0, %443 ], [ -100, %.thread785 ]
  %445 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv882
  store i32 %.sink938, ptr %445, align 4, !tbaa !5
  %446 = load i32, ptr %125, align 4, !tbaa !14
  switch i32 %446, label %.preheader [
    i32 0, label %.thread906
    i32 1, label %.thread908
    i32 2, label %.thread910
  ]

.thread906:                                       ; preds = %444
  %447 = add nsw i64 %indvars.iv880, -2
  %448 = getelementptr inbounds float, ptr %5, i64 %447
  %449 = load float, ptr %448, align 4, !tbaa !15
  %450 = getelementptr inbounds float, ptr %2, i64 %447
  %451 = load float, ptr %450, align 4, !tbaa !15
  %452 = add nsw i64 %indvars.iv884, -2
  %453 = getelementptr inbounds float, ptr %5, i64 %452
  %454 = load float, ptr %453, align 4, !tbaa !15
  %455 = getelementptr inbounds float, ptr %2, i64 %452
  %456 = load float, ptr %455, align 4, !tbaa !15
  %457 = insertelement <2 x float> poison, float %449, i64 0
  %458 = insertelement <2 x float> %457, float %454, i64 1
  %459 = insertelement <2 x float> poison, float %451, i64 0
  %460 = insertelement <2 x float> %459, float %456, i64 1
  %461 = fsub <2 x float> %458, %460
  %462 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %461)
  %463 = fpext <2 x float> %462 to <2 x double>
  %shift = shufflevector <2 x double> %463, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %464 = fsub <2 x double> %463, %shift
  %465 = extractelement <2 x double> %464, i64 0
  %466 = add nsw i64 %indvars.iv880, -1
  %467 = getelementptr inbounds float, ptr %5, i64 %466
  %468 = load float, ptr %467, align 4, !tbaa !15
  %469 = getelementptr inbounds float, ptr %2, i64 %466
  %470 = load float, ptr %469, align 4, !tbaa !15
  %471 = add nsw i64 %indvars.iv884, -1
  %472 = getelementptr inbounds float, ptr %5, i64 %471
  %473 = load float, ptr %472, align 4, !tbaa !15
  %474 = getelementptr inbounds float, ptr %2, i64 %471
  %475 = load float, ptr %474, align 4, !tbaa !15
  %476 = insertelement <2 x float> poison, float %468, i64 0
  %477 = insertelement <2 x float> %476, float %473, i64 1
  %478 = insertelement <2 x float> poison, float %470, i64 0
  %479 = insertelement <2 x float> %478, float %475, i64 1
  %480 = fsub <2 x float> %477, %479
  %481 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %480)
  %482 = fpext <2 x float> %481 to <2 x double>
  %shift958 = shufflevector <2 x double> %482, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %483 = fsub <2 x double> %482, %shift958
  %484 = extractelement <2 x double> %483, i64 0
  %485 = getelementptr inbounds float, ptr %5, i64 %indvars.iv880
  %486 = load float, ptr %485, align 4, !tbaa !15
  %487 = getelementptr inbounds float, ptr %2, i64 %indvars.iv880
  %488 = load float, ptr %487, align 4, !tbaa !15
  %489 = fsub float %486, %488
  %490 = tail call float @llvm.fabs.f32(float %489)
  %491 = fpext float %490 to double
  %492 = getelementptr inbounds float, ptr %5, i64 %indvars.iv884
  %493 = load float, ptr %492, align 4, !tbaa !15
  %494 = getelementptr inbounds float, ptr %2, i64 %indvars.iv884
  %495 = load float, ptr %494, align 4, !tbaa !15
  %496 = fsub float %493, %495
  %497 = tail call float @llvm.fabs.f32(float %496)
  br label %.preheader

.thread908:                                       ; preds = %444
  %498 = add nsw i64 %indvars.iv880, -2
  %499 = getelementptr inbounds float, ptr %3, i64 %498
  %500 = load float, ptr %499, align 4, !tbaa !15
  %501 = getelementptr inbounds float, ptr %4, i64 %498
  %502 = load float, ptr %501, align 4, !tbaa !15
  %503 = fsub float %500, %502
  %504 = fpext float %503 to double
  %505 = add nsw i64 %indvars.iv884, -2
  %506 = getelementptr inbounds float, ptr %3, i64 %505
  %507 = load float, ptr %506, align 4, !tbaa !15
  %508 = getelementptr inbounds float, ptr %4, i64 %505
  %509 = load float, ptr %508, align 4, !tbaa !15
  %510 = fsub float %507, %509
  %511 = fpext float %510 to double
  %512 = fsub double %504, %511
  %513 = add nsw i64 %indvars.iv880, -1
  %514 = getelementptr inbounds float, ptr %3, i64 %513
  %515 = load float, ptr %514, align 4, !tbaa !15
  %516 = getelementptr inbounds float, ptr %4, i64 %513
  %517 = load float, ptr %516, align 4, !tbaa !15
  %518 = fsub float %515, %517
  %519 = fpext float %518 to double
  %520 = add nsw i64 %indvars.iv884, -1
  %521 = getelementptr inbounds float, ptr %3, i64 %520
  %522 = load float, ptr %521, align 4, !tbaa !15
  %523 = getelementptr inbounds float, ptr %4, i64 %520
  %524 = load float, ptr %523, align 4, !tbaa !15
  %525 = fsub float %522, %524
  %526 = fpext float %525 to double
  %527 = fsub double %519, %526
  %528 = getelementptr inbounds float, ptr %3, i64 %indvars.iv880
  %529 = load float, ptr %528, align 4, !tbaa !15
  %530 = getelementptr inbounds float, ptr %4, i64 %indvars.iv880
  %531 = load float, ptr %530, align 4, !tbaa !15
  %532 = fsub float %529, %531
  %533 = fpext float %532 to double
  %534 = getelementptr inbounds float, ptr %3, i64 %indvars.iv884
  %535 = load float, ptr %534, align 4, !tbaa !15
  %536 = getelementptr inbounds float, ptr %4, i64 %indvars.iv884
  %537 = load float, ptr %536, align 4, !tbaa !15
  %538 = fsub float %535, %537
  br label %.preheader

.thread910:                                       ; preds = %444
  %539 = add nsw i64 %indvars.iv880, -2
  %540 = getelementptr inbounds float, ptr %3, i64 %539
  %541 = load float, ptr %540, align 4, !tbaa !15
  %542 = getelementptr inbounds float, ptr %5, i64 %539
  %543 = load float, ptr %542, align 4, !tbaa !15
  %544 = getelementptr inbounds float, ptr %2, i64 %539
  %545 = load float, ptr %544, align 4, !tbaa !15
  %546 = getelementptr inbounds float, ptr %4, i64 %539
  %547 = load float, ptr %546, align 4, !tbaa !15
  %548 = add nsw i64 %indvars.iv884, -2
  %549 = getelementptr inbounds float, ptr %3, i64 %548
  %550 = load float, ptr %549, align 4, !tbaa !15
  %551 = getelementptr inbounds float, ptr %5, i64 %548
  %552 = load float, ptr %551, align 4, !tbaa !15
  %553 = getelementptr inbounds float, ptr %2, i64 %548
  %554 = load float, ptr %553, align 4, !tbaa !15
  %555 = getelementptr inbounds float, ptr %4, i64 %548
  %556 = load float, ptr %555, align 4, !tbaa !15
  %557 = insertelement <2 x float> poison, float %543, i64 0
  %558 = insertelement <2 x float> %557, float %552, i64 1
  %559 = insertelement <2 x float> poison, float %545, i64 0
  %560 = insertelement <2 x float> %559, float %554, i64 1
  %561 = fcmp ult <2 x float> %558, %560
  %562 = select <2 x i1> %561, <2 x float> %560, <2 x float> %558
  %563 = insertelement <2 x float> poison, float %541, i64 0
  %564 = insertelement <2 x float> %563, float %550, i64 1
  %565 = fsub <2 x float> %564, %562
  %566 = select <2 x i1> %561, <2 x float> %558, <2 x float> %560
  %567 = insertelement <2 x float> poison, float %547, i64 0
  %568 = insertelement <2 x float> %567, float %556, i64 1
  %569 = fsub <2 x float> %566, %568
  %570 = fadd <2 x float> %565, %569
  %571 = fpext <2 x float> %570 to <2 x double>
  %shift959 = shufflevector <2 x double> %571, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %572 = fsub <2 x double> %571, %shift959
  %573 = extractelement <2 x double> %572, i64 0
  %574 = add nsw i64 %indvars.iv880, -1
  %575 = getelementptr inbounds float, ptr %3, i64 %574
  %576 = load float, ptr %575, align 4, !tbaa !15
  %577 = getelementptr inbounds float, ptr %5, i64 %574
  %578 = load float, ptr %577, align 4, !tbaa !15
  %579 = getelementptr inbounds float, ptr %2, i64 %574
  %580 = load float, ptr %579, align 4, !tbaa !15
  %581 = getelementptr inbounds float, ptr %4, i64 %574
  %582 = load float, ptr %581, align 4, !tbaa !15
  %583 = add nsw i64 %indvars.iv884, -1
  %584 = getelementptr inbounds float, ptr %3, i64 %583
  %585 = load float, ptr %584, align 4, !tbaa !15
  %586 = getelementptr inbounds float, ptr %5, i64 %583
  %587 = load float, ptr %586, align 4, !tbaa !15
  %588 = getelementptr inbounds float, ptr %2, i64 %583
  %589 = load float, ptr %588, align 4, !tbaa !15
  %590 = getelementptr inbounds float, ptr %4, i64 %583
  %591 = load float, ptr %590, align 4, !tbaa !15
  %592 = insertelement <2 x float> poison, float %578, i64 0
  %593 = insertelement <2 x float> %592, float %587, i64 1
  %594 = insertelement <2 x float> poison, float %580, i64 0
  %595 = insertelement <2 x float> %594, float %589, i64 1
  %596 = fcmp ult <2 x float> %593, %595
  %597 = select <2 x i1> %596, <2 x float> %595, <2 x float> %593
  %598 = insertelement <2 x float> poison, float %576, i64 0
  %599 = insertelement <2 x float> %598, float %585, i64 1
  %600 = fsub <2 x float> %599, %597
  %601 = select <2 x i1> %596, <2 x float> %593, <2 x float> %595
  %602 = insertelement <2 x float> poison, float %582, i64 0
  %603 = insertelement <2 x float> %602, float %591, i64 1
  %604 = fsub <2 x float> %601, %603
  %605 = fadd <2 x float> %600, %604
  %606 = fpext <2 x float> %605 to <2 x double>
  %shift960 = shufflevector <2 x double> %606, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %607 = fsub <2 x double> %606, %shift960
  %608 = extractelement <2 x double> %607, i64 0
  %609 = getelementptr inbounds float, ptr %3, i64 %indvars.iv880
  %610 = load float, ptr %609, align 4, !tbaa !15
  %611 = getelementptr inbounds float, ptr %5, i64 %indvars.iv880
  %612 = load float, ptr %611, align 4, !tbaa !15
  %613 = getelementptr inbounds float, ptr %2, i64 %indvars.iv880
  %614 = load float, ptr %613, align 4, !tbaa !15
  %615 = fcmp ult float %612, %614
  %.760.2 = select i1 %615, float %614, float %612
  %616 = fsub float %610, %.760.2
  %617 = select i1 %615, float %612, float %614
  %618 = getelementptr inbounds float, ptr %4, i64 %indvars.iv880
  %619 = load float, ptr %618, align 4, !tbaa !15
  %620 = fsub float %617, %619
  %621 = fadd float %616, %620
  %622 = fpext float %621 to double
  %623 = getelementptr inbounds float, ptr %3, i64 %indvars.iv884
  %624 = load float, ptr %623, align 4, !tbaa !15
  %625 = getelementptr inbounds float, ptr %5, i64 %indvars.iv884
  %626 = load float, ptr %625, align 4, !tbaa !15
  %627 = getelementptr inbounds float, ptr %2, i64 %indvars.iv884
  %628 = load float, ptr %627, align 4, !tbaa !15
  %629 = fcmp ult float %626, %628
  %.761.2 = select i1 %629, float %628, float %626
  %630 = fsub float %624, %.761.2
  %631 = select i1 %629, float %626, float %628
  %632 = getelementptr inbounds float, ptr %4, i64 %indvars.iv884
  %633 = load float, ptr %632, align 4, !tbaa !15
  %634 = fsub float %631, %633
  %635 = fadd float %630, %634
  br label %.preheader

.preheader:                                       ; preds = %444, %.thread906, %.thread908, %.thread910
  %.pn941 = phi double [ %484, %.thread906 ], [ %527, %.thread908 ], [ %608, %.thread910 ], [ 0.000000e+00, %444 ]
  %.pn942 = phi double [ %465, %.thread906 ], [ %512, %.thread908 ], [ %573, %.thread910 ], [ 0.000000e+00, %444 ]
  %636 = phi double [ %491, %.thread906 ], [ %533, %.thread908 ], [ %622, %.thread910 ], [ 0.000000e+00, %444 ]
  %.in742.2 = phi float [ %497, %.thread906 ], [ %538, %.thread908 ], [ %635, %.thread910 ], [ 0.000000e+00, %444 ]
  %637 = fadd double %.sroa.14.0, %.pn942
  %638 = fpext float %.in742.2 to double
  %639 = fsub double %636, %638
  %640 = insertelement <2 x double> poison, double %.pn941, i64 0
  %641 = insertelement <2 x double> %640, double %639, i64 1
  %642 = fadd <2 x double> %200, %641
  %643 = load i32, ptr %126, align 4, !tbaa !14
  switch i32 %643, label %770 [
    i32 0, label %.thread918
    i32 1, label %.thread920
    i32 2, label %.thread922
  ]

.thread918:                                       ; preds = %.preheader
  %644 = add nsw i64 %indvars.iv880, -2
  %645 = getelementptr inbounds float, ptr %5, i64 %644
  %646 = load float, ptr %645, align 4, !tbaa !15
  %647 = getelementptr inbounds float, ptr %2, i64 %644
  %648 = load float, ptr %647, align 4, !tbaa !15
  %649 = add nsw i64 %indvars.iv886, -2
  %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 = insertelement <2 x float> poison, float %646, i64 0
  %655 = insertelement <2 x float> %654, float %651, i64 1
  %656 = insertelement <2 x float> poison, float %648, i64 0
  %657 = insertelement <2 x float> %656, float %653, i64 1
  %658 = fsub <2 x float> %655, %657
  %659 = tail call <2 x float> @llvm.fabs.v2f32(<2 x float> %658)
  %660 = fpext <2 x float> %659 to <2 x double>
  %shift961 = shufflevector <2 x double> %660, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %661 = fsub <2 x double> %660, %shift961
  %662 = extractelement <2 x double> %661, i64 0
  %663 = add nsw i64 %indvars.iv880, -1
  %664 = getelementptr inbounds float, ptr %5, i64 %663
  %665 = load float, ptr %664, align 4, !tbaa !15
  %666 = getelementptr inbounds float, ptr %2, i64 %663
  %667 = load float, ptr %666, align 4, !tbaa !15
  %668 = fsub float %665, %667
  %669 = tail call float @llvm.fabs.f32(float %668)
  %670 = fpext float %669 to double
  %671 = add nsw i64 %indvars.iv886, -1
  %672 = getelementptr inbounds float, ptr %5, i64 %671
  %673 = load float, ptr %672, align 4, !tbaa !15
  %674 = getelementptr inbounds float, ptr %2, i64 %671
  %675 = load float, ptr %674, align 4, !tbaa !15
  %676 = fsub float %673, %675
  %677 = tail call float @llvm.fabs.f32(float %676)
  br label %770

.thread920:                                       ; preds = %.preheader
  %678 = add nsw i64 %indvars.iv880, -2
  %679 = getelementptr inbounds float, ptr %3, i64 %678
  %680 = load float, ptr %679, align 4, !tbaa !15
  %681 = getelementptr inbounds float, ptr %4, i64 %678
  %682 = load float, ptr %681, align 4, !tbaa !15
  %683 = fsub float %680, %682
  %684 = fpext float %683 to double
  %685 = add nsw i64 %indvars.iv886, -2
  %686 = getelementptr inbounds float, ptr %3, i64 %685
  %687 = load float, ptr %686, align 4, !tbaa !15
  %688 = getelementptr inbounds float, ptr %4, i64 %685
  %689 = load float, ptr %688, align 4, !tbaa !15
  %690 = fsub float %687, %689
  %691 = fpext float %690 to double
  %692 = fsub double %684, %691
  %693 = add nsw i64 %indvars.iv880, -1
  %694 = getelementptr inbounds float, ptr %3, i64 %693
  %695 = load float, ptr %694, align 4, !tbaa !15
  %696 = getelementptr inbounds float, ptr %4, i64 %693
  %697 = load float, ptr %696, align 4, !tbaa !15
  %698 = fsub float %695, %697
  %699 = fpext float %698 to double
  %700 = add nsw i64 %indvars.iv886, -1
  %701 = getelementptr inbounds float, ptr %3, i64 %700
  %702 = load float, ptr %701, align 4, !tbaa !15
  %703 = getelementptr inbounds float, ptr %4, i64 %700
  %704 = load float, ptr %703, align 4, !tbaa !15
  %705 = fsub float %702, %704
  br label %770

.thread922:                                       ; preds = %.preheader
  %706 = add nsw i64 %indvars.iv880, -2
  %707 = getelementptr inbounds float, ptr %3, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !15
  %709 = getelementptr inbounds float, ptr %5, i64 %706
  %710 = load float, ptr %709, align 4, !tbaa !15
  %711 = getelementptr inbounds float, ptr %2, i64 %706
  %712 = load float, ptr %711, align 4, !tbaa !15
  %713 = getelementptr inbounds float, ptr %4, i64 %706
  %714 = load float, ptr %713, align 4, !tbaa !15
  %715 = add nsw i64 %indvars.iv886, -2
  %716 = getelementptr inbounds float, ptr %3, i64 %715
  %717 = load float, ptr %716, align 4, !tbaa !15
  %718 = getelementptr inbounds float, ptr %5, i64 %715
  %719 = load float, ptr %718, align 4, !tbaa !15
  %720 = getelementptr inbounds float, ptr %2, i64 %715
  %721 = load float, ptr %720, align 4, !tbaa !15
  %722 = getelementptr inbounds float, ptr %4, i64 %715
  %723 = load float, ptr %722, align 4, !tbaa !15
  %724 = insertelement <2 x float> poison, float %710, i64 0
  %725 = insertelement <2 x float> %724, float %719, i64 1
  %726 = insertelement <2 x float> poison, float %712, i64 0
  %727 = insertelement <2 x float> %726, float %721, i64 1
  %728 = fcmp ult <2 x float> %725, %727
  %729 = select <2 x i1> %728, <2 x float> %727, <2 x float> %725
  %730 = insertelement <2 x float> poison, float %708, i64 0
  %731 = insertelement <2 x float> %730, float %717, i64 1
  %732 = fsub <2 x float> %731, %729
  %733 = select <2 x i1> %728, <2 x float> %725, <2 x float> %727
  %734 = insertelement <2 x float> poison, float %714, i64 0
  %735 = insertelement <2 x float> %734, float %723, i64 1
  %736 = fsub <2 x float> %733, %735
  %737 = fadd <2 x float> %732, %736
  %738 = fpext <2 x float> %737 to <2 x double>
  %shift962 = shufflevector <2 x double> %738, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %739 = fsub <2 x double> %738, %shift962
  %740 = extractelement <2 x double> %739, i64 0
  %741 = add nsw i64 %indvars.iv880, -1
  %742 = getelementptr inbounds float, ptr %3, i64 %741
  %743 = load float, ptr %742, align 4, !tbaa !15
  %744 = getelementptr inbounds float, ptr %5, i64 %741
  %745 = load float, ptr %744, align 4, !tbaa !15
  %746 = getelementptr inbounds float, ptr %2, i64 %741
  %747 = load float, ptr %746, align 4, !tbaa !15
  %748 = fcmp ult float %745, %747
  %.762.1 = select i1 %748, float %747, float %745
  %749 = fsub float %743, %.762.1
  %750 = select i1 %748, float %745, float %747
  %751 = getelementptr inbounds float, ptr %4, i64 %741
  %752 = load float, ptr %751, align 4, !tbaa !15
  %753 = fsub float %750, %752
  %754 = fadd float %749, %753
  %755 = fpext float %754 to double
  %756 = add nsw i64 %indvars.iv886, -1
  %757 = getelementptr inbounds float, ptr %3, i64 %756
  %758 = load float, ptr %757, align 4, !tbaa !15
  %759 = getelementptr inbounds float, ptr %5, i64 %756
  %760 = load float, ptr %759, align 4, !tbaa !15
  %761 = getelementptr inbounds float, ptr %2, i64 %756
  %762 = load float, ptr %761, align 4, !tbaa !15
  %763 = fcmp ult float %760, %762
  %.763.1 = select i1 %763, float %762, float %760
  %764 = fsub float %758, %.763.1
  %765 = select i1 %763, float %760, float %762
  %766 = getelementptr inbounds float, ptr %4, i64 %756
  %767 = load float, ptr %766, align 4, !tbaa !15
  %768 = fsub float %765, %767
  %769 = fadd float %764, %768
  br label %770

770:                                              ; preds = %.preheader, %.thread918, %.thread920, %.thread922
  %.pn943 = phi double [ %662, %.thread918 ], [ %692, %.thread920 ], [ %740, %.thread922 ], [ 0.000000e+00, %.preheader ]
  %771 = phi double [ %670, %.thread918 ], [ %699, %.thread920 ], [ %755, %.thread922 ], [ 0.000000e+00, %.preheader ]
  %.in740.1 = phi float [ %677, %.thread918 ], [ %705, %.thread920 ], [ %769, %.thread922 ], [ 0.000000e+00, %.preheader ]
  %772 = fpext float %.in740.1 to double
  %773 = fsub double %771, %772
  %774 = insertelement <2 x double> poison, double %773, i64 0
  %775 = insertelement <2 x double> %774, double %.pn943, i64 1
  %776 = fadd <2 x double> %199, %775
  %indvars.iv.next883 = add nuw nsw i64 %indvars.iv882, 1
  %indvars.iv.next881 = add nuw nsw i64 %indvars.iv880, 1
  %indvars.iv.next885 = add nsw i64 %indvars.iv884, 1
  %indvars.iv.next887 = add nsw i64 %indvars.iv886, 1
  %.not739.not = icmp slt i64 %indvars.iv880, %131
  br i1 %.not739.not, label %198, label %777, !llvm.loop !21

777:                                              ; preds = %770
  %778 = trunc nuw i64 %indvars.iv.next883 to i32
  store i32 %778, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %779

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

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

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

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

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

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

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

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


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