; 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: nounwind uwtable
define dso_local i32 @TA_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 %2778

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

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

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

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

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 = %478, %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 %485

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

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 double, ptr %105, i64 %108
  %110 = load double, ptr %109, align 8, !tbaa !11
  %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 double, ptr %111, i64 %114
  %116 = load double, ptr %115, align 8, !tbaa !11
  %117 = fsub double %110, %116
  %118 = call double @llvm.fabs.f64(double %117)
  br label %226

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

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

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

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

167:                                              ; preds = %147
  %168 = load ptr, ptr %16, align 8, !tbaa !9
  %169 = load i32, ptr %22, align 4, !tbaa !5
  %170 = sub nsw i32 %169, 2
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds double, ptr %168, i64 %171
  %173 = load double, ptr %172, align 8, !tbaa !11
  br label %181

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

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

197:                                              ; preds = %181
  %198 = load ptr, ptr %13, align 8, !tbaa !9
  %199 = load i32, ptr %22, align 4, !tbaa !5
  %200 = sub nsw i32 %199, 2
  %201 = sext i32 %200 to i64
  %202 = getelementptr inbounds double, ptr %198, i64 %201
  %203 = load double, ptr %202, align 8, !tbaa !11
  br label %211

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

211:                                              ; preds = %204, %197
  %212 = phi double [ %203, %197 ], [ %210, %204 ]
  %213 = load ptr, ptr %15, align 8, !tbaa !9
  %214 = load i32, ptr %22, align 4, !tbaa !5
  %215 = sub nsw i32 %214, 2
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds double, ptr %213, i64 %216
  %218 = load double, ptr %217, align 8, !tbaa !11
  %219 = fsub double %212, %218
  %220 = fadd double %183, %219
  br label %222

221:                                              ; preds = %140
  br label %222

222:                                              ; preds = %221, %211
  %223 = phi double [ %220, %211 ], [ 0.000000e+00, %221 ]
  br label %224

224:                                              ; preds = %222, %126
  %225 = phi double [ %139, %126 ], [ %223, %222 ]
  br label %226

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

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

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

259:                                              ; preds = %252
  %260 = load ptr, ptr %14, align 8, !tbaa !9
  %261 = load i32, ptr %22, align 4, !tbaa !5
  %262 = sub nsw i32 %261, 1
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds double, ptr %260, i64 %263
  %265 = load double, ptr %264, align 8, !tbaa !11
  %266 = load ptr, ptr %15, align 8, !tbaa !9
  %267 = load i32, ptr %22, align 4, !tbaa !5
  %268 = sub nsw i32 %267, 1
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds double, ptr %266, i64 %269
  %271 = load double, ptr %270, align 8, !tbaa !11
  %272 = fsub double %265, %271
  br label %357

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

280:                                              ; preds = %273
  %281 = load ptr, ptr %14, align 8, !tbaa !9
  %282 = load i32, ptr %22, align 4, !tbaa !5
  %283 = sub nsw i32 %282, 1
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds double, ptr %281, i64 %284
  %286 = load double, ptr %285, align 8, !tbaa !11
  %287 = load ptr, ptr %16, align 8, !tbaa !9
  %288 = load i32, ptr %22, align 4, !tbaa !5
  %289 = sub nsw i32 %288, 1
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds double, ptr %287, i64 %290
  %292 = load double, ptr %291, align 8, !tbaa !11
  %293 = load ptr, ptr %13, align 8, !tbaa !9
  %294 = load i32, ptr %22, align 4, !tbaa !5
  %295 = sub nsw i32 %294, 1
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds double, ptr %293, i64 %296
  %298 = load double, ptr %297, align 8, !tbaa !11
  %299 = fcmp oge double %292, %298
  br i1 %299, label %300, label %307

300:                                              ; preds = %280
  %301 = load ptr, ptr %16, align 8, !tbaa !9
  %302 = load i32, ptr %22, align 4, !tbaa !5
  %303 = sub nsw i32 %302, 1
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds double, ptr %301, i64 %304
  %306 = load double, ptr %305, align 8, !tbaa !11
  br label %314

307:                                              ; preds = %280
  %308 = load ptr, ptr %13, align 8, !tbaa !9
  %309 = load i32, ptr %22, align 4, !tbaa !5
  %310 = sub nsw i32 %309, 1
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds double, ptr %308, i64 %311
  %313 = load double, ptr %312, align 8, !tbaa !11
  br label %314

314:                                              ; preds = %307, %300
  %315 = phi double [ %306, %300 ], [ %313, %307 ]
  %316 = fsub double %286, %315
  %317 = load ptr, ptr %16, align 8, !tbaa !9
  %318 = load i32, ptr %22, align 4, !tbaa !5
  %319 = sub nsw i32 %318, 1
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds double, ptr %317, i64 %320
  %322 = load double, ptr %321, align 8, !tbaa !11
  %323 = load ptr, ptr %13, align 8, !tbaa !9
  %324 = load i32, ptr %22, align 4, !tbaa !5
  %325 = sub nsw i32 %324, 1
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds double, ptr %323, i64 %326
  %328 = load double, ptr %327, align 8, !tbaa !11
  %329 = fcmp oge double %322, %328
  br i1 %329, label %330, label %337

330:                                              ; preds = %314
  %331 = load ptr, ptr %13, align 8, !tbaa !9
  %332 = load i32, ptr %22, align 4, !tbaa !5
  %333 = sub nsw i32 %332, 1
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds double, ptr %331, i64 %334
  %336 = load double, ptr %335, align 8, !tbaa !11
  br label %344

337:                                              ; preds = %314
  %338 = load ptr, ptr %16, align 8, !tbaa !9
  %339 = load i32, ptr %22, align 4, !tbaa !5
  %340 = sub nsw i32 %339, 1
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds double, ptr %338, i64 %341
  %343 = load double, ptr %342, align 8, !tbaa !11
  br label %344

344:                                              ; preds = %337, %330
  %345 = phi double [ %336, %330 ], [ %343, %337 ]
  %346 = load ptr, ptr %15, align 8, !tbaa !9
  %347 = load i32, ptr %22, align 4, !tbaa !5
  %348 = sub nsw i32 %347, 1
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds double, ptr %346, i64 %349
  %351 = load double, ptr %350, align 8, !tbaa !11
  %352 = fsub double %345, %351
  %353 = fadd double %316, %352
  br label %355

354:                                              ; preds = %273
  br label %355

355:                                              ; preds = %354, %344
  %356 = phi double [ %353, %344 ], [ 0.000000e+00, %354 ]
  br label %357

357:                                              ; preds = %355, %259
  %358 = phi double [ %272, %259 ], [ %356, %355 ]
  br label %359

359:                                              ; preds = %357, %237
  %360 = phi double [ %251, %237 ], [ %358, %357 ]
  %361 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  %362 = load double, ptr %361, align 8, !tbaa !11
  %363 = fadd double %362, %360
  store double %363, ptr %361, align 8, !tbaa !11
  %364 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %365 = getelementptr inbounds %struct.TA_LibcPriv, ptr %364, i32 0, i32 8
  %366 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %365, i64 0, i64 7
  %367 = getelementptr inbounds %struct.TA_CandleSetting, ptr %366, i32 0, i32 1
  %368 = load i32, ptr %367, align 4, !tbaa !15
  %369 = icmp eq i32 %368, 0
  br i1 %369, label %370, label %383

370:                                              ; preds = %359
  %371 = load ptr, ptr %16, align 8, !tbaa !9
  %372 = load i32, ptr %22, align 4, !tbaa !5
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds double, ptr %371, i64 %373
  %375 = load double, ptr %374, align 8, !tbaa !11
  %376 = load ptr, ptr %13, align 8, !tbaa !9
  %377 = load i32, ptr %22, align 4, !tbaa !5
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds double, ptr %376, i64 %378
  %380 = load double, ptr %379, align 8, !tbaa !11
  %381 = fsub double %375, %380
  %382 = call double @llvm.fabs.f64(double %381)
  br label %478

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

390:                                              ; preds = %383
  %391 = load ptr, ptr %14, align 8, !tbaa !9
  %392 = load i32, ptr %22, align 4, !tbaa !5
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds double, ptr %391, i64 %393
  %395 = load double, ptr %394, align 8, !tbaa !11
  %396 = load ptr, ptr %15, align 8, !tbaa !9
  %397 = load i32, ptr %22, align 4, !tbaa !5
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds double, ptr %396, i64 %398
  %400 = load double, ptr %399, align 8, !tbaa !11
  %401 = fsub double %395, %400
  br label %476

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

409:                                              ; preds = %402
  %410 = load ptr, ptr %14, align 8, !tbaa !9
  %411 = load i32, ptr %22, align 4, !tbaa !5
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds double, ptr %410, i64 %412
  %414 = load double, ptr %413, align 8, !tbaa !11
  %415 = load ptr, ptr %16, align 8, !tbaa !9
  %416 = load i32, ptr %22, align 4, !tbaa !5
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds double, ptr %415, i64 %417
  %419 = load double, ptr %418, align 8, !tbaa !11
  %420 = load ptr, ptr %13, align 8, !tbaa !9
  %421 = load i32, ptr %22, align 4, !tbaa !5
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds double, ptr %420, i64 %422
  %424 = load double, ptr %423, align 8, !tbaa !11
  %425 = fcmp oge double %419, %424
  br i1 %425, label %426, label %432

426:                                              ; preds = %409
  %427 = load ptr, ptr %16, align 8, !tbaa !9
  %428 = load i32, ptr %22, align 4, !tbaa !5
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds double, ptr %427, i64 %429
  %431 = load double, ptr %430, align 8, !tbaa !11
  br label %438

432:                                              ; preds = %409
  %433 = load ptr, ptr %13, align 8, !tbaa !9
  %434 = load i32, ptr %22, align 4, !tbaa !5
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds double, ptr %433, i64 %435
  %437 = load double, ptr %436, align 8, !tbaa !11
  br label %438

438:                                              ; preds = %432, %426
  %439 = phi double [ %431, %426 ], [ %437, %432 ]
  %440 = fsub double %414, %439
  %441 = load ptr, ptr %16, align 8, !tbaa !9
  %442 = load i32, ptr %22, align 4, !tbaa !5
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds double, ptr %441, i64 %443
  %445 = load double, ptr %444, align 8, !tbaa !11
  %446 = load ptr, ptr %13, align 8, !tbaa !9
  %447 = load i32, ptr %22, align 4, !tbaa !5
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds double, ptr %446, i64 %448
  %450 = load double, ptr %449, align 8, !tbaa !11
  %451 = fcmp oge double %445, %450
  br i1 %451, label %452, label %458

452:                                              ; preds = %438
  %453 = load ptr, ptr %13, align 8, !tbaa !9
  %454 = load i32, ptr %22, align 4, !tbaa !5
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds double, ptr %453, i64 %455
  %457 = load double, ptr %456, align 8, !tbaa !11
  br label %464

458:                                              ; preds = %438
  %459 = load ptr, ptr %16, align 8, !tbaa !9
  %460 = load i32, ptr %22, align 4, !tbaa !5
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds double, ptr %459, i64 %461
  %463 = load double, ptr %462, align 8, !tbaa !11
  br label %464

464:                                              ; preds = %458, %452
  %465 = phi double [ %457, %452 ], [ %463, %458 ]
  %466 = load ptr, ptr %15, align 8, !tbaa !9
  %467 = load i32, ptr %22, align 4, !tbaa !5
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds double, ptr %466, i64 %468
  %470 = load double, ptr %469, align 8, !tbaa !11
  %471 = fsub double %465, %470
  %472 = fadd double %440, %471
  br label %474

473:                                              ; preds = %402
  br label %474

474:                                              ; preds = %473, %464
  %475 = phi double [ %472, %464 ], [ 0.000000e+00, %473 ]
  br label %476

476:                                              ; preds = %474, %390
  %477 = phi double [ %401, %390 ], [ %475, %474 ]
  br label %478

478:                                              ; preds = %476, %370
  %479 = phi double [ %382, %370 ], [ %477, %476 ]
  %480 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 0
  %481 = load double, ptr %480, align 16, !tbaa !11
  %482 = fadd double %481, %479
  store double %482, ptr %480, align 16, !tbaa !11
  %483 = load i32, ptr %22, align 4, !tbaa !5
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr %22, align 4, !tbaa !5
  br label %93, !llvm.loop !16

485:                                              ; preds = %93
  %486 = load i32, ptr %26, align 4, !tbaa !5
  store i32 %486, ptr %22, align 4, !tbaa !5
  br label %487

487:                                              ; preds = %753, %485
  %488 = load i32, ptr %22, align 4, !tbaa !5
  %489 = load i32, ptr %11, align 4, !tbaa !5
  %490 = icmp slt i32 %488, %489
  br i1 %490, label %491, label %760

491:                                              ; preds = %487
  %492 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %493 = getelementptr inbounds %struct.TA_LibcPriv, ptr %492, i32 0, i32 8
  %494 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %493, i64 0, i64 10
  %495 = getelementptr inbounds %struct.TA_CandleSetting, ptr %494, i32 0, i32 1
  %496 = load i32, ptr %495, align 4, !tbaa !15
  %497 = icmp eq i32 %496, 0
  br i1 %497, label %498, label %513

498:                                              ; preds = %491
  %499 = load ptr, ptr %16, align 8, !tbaa !9
  %500 = load i32, ptr %22, align 4, !tbaa !5
  %501 = sub nsw i32 %500, 2
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds double, ptr %499, i64 %502
  %504 = load double, ptr %503, align 8, !tbaa !11
  %505 = load ptr, ptr %13, 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 double, ptr %505, i64 %508
  %510 = load double, ptr %509, align 8, !tbaa !11
  %511 = fsub double %504, %510
  %512 = call double @llvm.fabs.f64(double %511)
  br label %620

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

520:                                              ; preds = %513
  %521 = load ptr, ptr %14, align 8, !tbaa !9
  %522 = load i32, ptr %22, align 4, !tbaa !5
  %523 = sub nsw i32 %522, 2
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds double, ptr %521, i64 %524
  %526 = load double, ptr %525, align 8, !tbaa !11
  %527 = load ptr, ptr %15, align 8, !tbaa !9
  %528 = load i32, ptr %22, align 4, !tbaa !5
  %529 = sub nsw i32 %528, 2
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds double, ptr %527, i64 %530
  %532 = load double, ptr %531, align 8, !tbaa !11
  %533 = fsub double %526, %532
  br label %618

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

541:                                              ; preds = %534
  %542 = load ptr, ptr %14, align 8, !tbaa !9
  %543 = load i32, ptr %22, align 4, !tbaa !5
  %544 = sub nsw i32 %543, 2
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds double, ptr %542, i64 %545
  %547 = load double, ptr %546, align 8, !tbaa !11
  %548 = load ptr, ptr %16, align 8, !tbaa !9
  %549 = load i32, ptr %22, align 4, !tbaa !5
  %550 = sub nsw i32 %549, 2
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds double, ptr %548, i64 %551
  %553 = load double, ptr %552, align 8, !tbaa !11
  %554 = load ptr, ptr %13, align 8, !tbaa !9
  %555 = load i32, ptr %22, align 4, !tbaa !5
  %556 = sub nsw i32 %555, 2
  %557 = sext i32 %556 to i64
  %558 = getelementptr inbounds double, ptr %554, i64 %557
  %559 = load double, ptr %558, align 8, !tbaa !11
  %560 = fcmp oge double %553, %559
  br i1 %560, label %561, label %568

561:                                              ; preds = %541
  %562 = load ptr, ptr %16, align 8, !tbaa !9
  %563 = load i32, ptr %22, align 4, !tbaa !5
  %564 = sub nsw i32 %563, 2
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds double, ptr %562, i64 %565
  %567 = load double, ptr %566, align 8, !tbaa !11
  br label %575

568:                                              ; preds = %541
  %569 = load ptr, ptr %13, 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 double, ptr %569, i64 %572
  %574 = load double, ptr %573, align 8, !tbaa !11
  br label %575

575:                                              ; preds = %568, %561
  %576 = phi double [ %567, %561 ], [ %574, %568 ]
  %577 = fsub double %547, %576
  %578 = load ptr, ptr %16, align 8, !tbaa !9
  %579 = load i32, ptr %22, align 4, !tbaa !5
  %580 = sub nsw i32 %579, 2
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds double, ptr %578, i64 %581
  %583 = load double, ptr %582, align 8, !tbaa !11
  %584 = load ptr, ptr %13, align 8, !tbaa !9
  %585 = load i32, ptr %22, align 4, !tbaa !5
  %586 = sub nsw i32 %585, 2
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds double, ptr %584, i64 %587
  %589 = load double, ptr %588, align 8, !tbaa !11
  %590 = fcmp oge double %583, %589
  br i1 %590, label %591, label %598

591:                                              ; preds = %575
  %592 = load ptr, ptr %13, align 8, !tbaa !9
  %593 = load i32, ptr %22, align 4, !tbaa !5
  %594 = sub nsw i32 %593, 2
  %595 = sext i32 %594 to i64
  %596 = getelementptr inbounds double, ptr %592, i64 %595
  %597 = load double, ptr %596, align 8, !tbaa !11
  br label %605

598:                                              ; preds = %575
  %599 = load ptr, ptr %16, 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 double, ptr %599, i64 %602
  %604 = load double, ptr %603, align 8, !tbaa !11
  br label %605

605:                                              ; preds = %598, %591
  %606 = phi double [ %597, %591 ], [ %604, %598 ]
  %607 = load ptr, ptr %15, align 8, !tbaa !9
  %608 = load i32, ptr %22, align 4, !tbaa !5
  %609 = sub nsw i32 %608, 2
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds double, ptr %607, i64 %610
  %612 = load double, ptr %611, align 8, !tbaa !11
  %613 = fsub double %606, %612
  %614 = fadd double %577, %613
  br label %616

615:                                              ; preds = %534
  br label %616

616:                                              ; preds = %615, %605
  %617 = phi double [ %614, %605 ], [ 0.000000e+00, %615 ]
  br label %618

618:                                              ; preds = %616, %520
  %619 = phi double [ %533, %520 ], [ %617, %616 ]
  br label %620

620:                                              ; preds = %618, %498
  %621 = phi double [ %512, %498 ], [ %619, %618 ]
  %622 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  %623 = load double, ptr %622, align 16, !tbaa !11
  %624 = fadd double %623, %621
  store double %624, ptr %622, align 16, !tbaa !11
  %625 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %626 = getelementptr inbounds %struct.TA_LibcPriv, ptr %625, i32 0, i32 8
  %627 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %626, i64 0, i64 10
  %628 = getelementptr inbounds %struct.TA_CandleSetting, ptr %627, i32 0, i32 1
  %629 = load i32, ptr %628, align 4, !tbaa !15
  %630 = icmp eq i32 %629, 0
  br i1 %630, label %631, label %646

631:                                              ; preds = %620
  %632 = load ptr, ptr %16, align 8, !tbaa !9
  %633 = load i32, ptr %22, align 4, !tbaa !5
  %634 = sub nsw i32 %633, 1
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds double, ptr %632, i64 %635
  %637 = load double, ptr %636, align 8, !tbaa !11
  %638 = load ptr, ptr %13, align 8, !tbaa !9
  %639 = load i32, ptr %22, align 4, !tbaa !5
  %640 = sub nsw i32 %639, 1
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds double, ptr %638, i64 %641
  %643 = load double, ptr %642, align 8, !tbaa !11
  %644 = fsub double %637, %643
  %645 = call double @llvm.fabs.f64(double %644)
  br label %753

646:                                              ; preds = %620
  %647 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %648 = getelementptr inbounds %struct.TA_LibcPriv, ptr %647, i32 0, i32 8
  %649 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %648, i64 0, i64 10
  %650 = getelementptr inbounds %struct.TA_CandleSetting, ptr %649, i32 0, i32 1
  %651 = load i32, ptr %650, align 4, !tbaa !15
  %652 = icmp eq i32 %651, 1
  br i1 %652, label %653, label %667

653:                                              ; preds = %646
  %654 = load ptr, ptr %14, align 8, !tbaa !9
  %655 = load i32, ptr %22, align 4, !tbaa !5
  %656 = sub nsw i32 %655, 1
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds double, ptr %654, i64 %657
  %659 = load double, ptr %658, align 8, !tbaa !11
  %660 = load ptr, ptr %15, align 8, !tbaa !9
  %661 = load i32, ptr %22, align 4, !tbaa !5
  %662 = sub nsw i32 %661, 1
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds double, ptr %660, i64 %663
  %665 = load double, ptr %664, align 8, !tbaa !11
  %666 = fsub double %659, %665
  br label %751

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

674:                                              ; preds = %667
  %675 = load ptr, ptr %14, align 8, !tbaa !9
  %676 = load i32, ptr %22, align 4, !tbaa !5
  %677 = sub nsw i32 %676, 1
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds double, ptr %675, i64 %678
  %680 = load double, ptr %679, align 8, !tbaa !11
  %681 = load ptr, ptr %16, align 8, !tbaa !9
  %682 = load i32, ptr %22, align 4, !tbaa !5
  %683 = sub nsw i32 %682, 1
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds double, ptr %681, i64 %684
  %686 = load double, ptr %685, align 8, !tbaa !11
  %687 = load ptr, ptr %13, align 8, !tbaa !9
  %688 = load i32, ptr %22, align 4, !tbaa !5
  %689 = sub nsw i32 %688, 1
  %690 = sext i32 %689 to i64
  %691 = getelementptr inbounds double, ptr %687, i64 %690
  %692 = load double, ptr %691, align 8, !tbaa !11
  %693 = fcmp oge double %686, %692
  br i1 %693, label %694, label %701

694:                                              ; preds = %674
  %695 = load ptr, ptr %16, align 8, !tbaa !9
  %696 = load i32, ptr %22, align 4, !tbaa !5
  %697 = sub nsw i32 %696, 1
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds double, ptr %695, i64 %698
  %700 = load double, ptr %699, align 8, !tbaa !11
  br label %708

701:                                              ; preds = %674
  %702 = load ptr, ptr %13, align 8, !tbaa !9
  %703 = load i32, ptr %22, align 4, !tbaa !5
  %704 = sub nsw i32 %703, 1
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds double, ptr %702, i64 %705
  %707 = load double, ptr %706, align 8, !tbaa !11
  br label %708

708:                                              ; preds = %701, %694
  %709 = phi double [ %700, %694 ], [ %707, %701 ]
  %710 = fsub double %680, %709
  %711 = load ptr, ptr %16, 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 double, ptr %711, i64 %714
  %716 = load double, ptr %715, align 8, !tbaa !11
  %717 = load ptr, ptr %13, align 8, !tbaa !9
  %718 = load i32, ptr %22, align 4, !tbaa !5
  %719 = sub nsw i32 %718, 1
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds double, ptr %717, i64 %720
  %722 = load double, ptr %721, align 8, !tbaa !11
  %723 = fcmp oge double %716, %722
  br i1 %723, label %724, label %731

724:                                              ; preds = %708
  %725 = load ptr, ptr %13, align 8, !tbaa !9
  %726 = load i32, ptr %22, align 4, !tbaa !5
  %727 = sub nsw i32 %726, 1
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds double, ptr %725, i64 %728
  %730 = load double, ptr %729, align 8, !tbaa !11
  br label %738

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

738:                                              ; preds = %731, %724
  %739 = phi double [ %730, %724 ], [ %737, %731 ]
  %740 = load ptr, ptr %15, align 8, !tbaa !9
  %741 = load i32, ptr %22, align 4, !tbaa !5
  %742 = sub nsw i32 %741, 1
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds double, ptr %740, i64 %743
  %745 = load double, ptr %744, align 8, !tbaa !11
  %746 = fsub double %739, %745
  %747 = fadd double %710, %746
  br label %749

748:                                              ; preds = %667
  br label %749

749:                                              ; preds = %748, %738
  %750 = phi double [ %747, %738 ], [ 0.000000e+00, %748 ]
  br label %751

751:                                              ; preds = %749, %653
  %752 = phi double [ %666, %653 ], [ %750, %749 ]
  br label %753

753:                                              ; preds = %751, %631
  %754 = phi double [ %645, %631 ], [ %752, %751 ]
  %755 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %756 = load double, ptr %755, align 8, !tbaa !11
  %757 = fadd double %756, %754
  store double %757, ptr %755, align 8, !tbaa !11
  %758 = load i32, ptr %22, align 4, !tbaa !5
  %759 = add nsw i32 %758, 1
  store i32 %759, ptr %22, align 4, !tbaa !5
  br label %487, !llvm.loop !18

760:                                              ; preds = %487
  %761 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %761, ptr %22, align 4, !tbaa !5
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %762

762:                                              ; preds = %2769, %760
  %763 = load ptr, ptr %16, align 8, !tbaa !9
  %764 = load i32, ptr %22, align 4, !tbaa !5
  %765 = sub nsw i32 %764, 2
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds double, ptr %763, i64 %766
  %768 = load double, ptr %767, align 8, !tbaa !11
  %769 = load ptr, ptr %13, align 8, !tbaa !9
  %770 = load i32, ptr %22, align 4, !tbaa !5
  %771 = sub nsw i32 %770, 2
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds double, ptr %769, i64 %772
  %774 = load double, ptr %773, align 8, !tbaa !11
  %775 = fcmp oge double %768, %774
  %776 = zext i1 %775 to i64
  %777 = select i1 %775, i32 1, i32 -1
  %778 = icmp eq i32 %777, -1
  br i1 %778, label %779, label %2152

779:                                              ; preds = %762
  %780 = load ptr, ptr %16, align 8, !tbaa !9
  %781 = load i32, ptr %22, align 4, !tbaa !5
  %782 = sub nsw i32 %781, 2
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds double, ptr %780, i64 %783
  %785 = load double, ptr %784, align 8, !tbaa !11
  %786 = load ptr, ptr %13, align 8, !tbaa !9
  %787 = load i32, ptr %22, align 4, !tbaa !5
  %788 = sub nsw i32 %787, 2
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds double, ptr %786, i64 %789
  %791 = load double, ptr %790, align 8, !tbaa !11
  %792 = fcmp oge double %785, %791
  br i1 %792, label %793, label %800

793:                                              ; preds = %779
  %794 = load ptr, ptr %13, align 8, !tbaa !9
  %795 = load i32, ptr %22, align 4, !tbaa !5
  %796 = sub nsw i32 %795, 2
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds double, ptr %794, i64 %797
  %799 = load double, ptr %798, align 8, !tbaa !11
  br label %807

800:                                              ; preds = %779
  %801 = load ptr, ptr %16, align 8, !tbaa !9
  %802 = load i32, ptr %22, align 4, !tbaa !5
  %803 = sub nsw i32 %802, 2
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds double, ptr %801, i64 %804
  %806 = load double, ptr %805, align 8, !tbaa !11
  br label %807

807:                                              ; preds = %800, %793
  %808 = phi double [ %799, %793 ], [ %806, %800 ]
  %809 = load ptr, ptr %15, align 8, !tbaa !9
  %810 = load i32, ptr %22, align 4, !tbaa !5
  %811 = sub nsw i32 %810, 2
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds double, ptr %809, i64 %812
  %814 = load double, ptr %813, align 8, !tbaa !11
  %815 = fsub double %808, %814
  %816 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %817 = getelementptr inbounds %struct.TA_LibcPriv, ptr %816, i32 0, i32 8
  %818 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %817, i64 0, i64 7
  %819 = getelementptr inbounds %struct.TA_CandleSetting, ptr %818, i32 0, i32 3
  %820 = load double, ptr %819, align 8, !tbaa !19
  %821 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %822 = getelementptr inbounds %struct.TA_LibcPriv, ptr %821, i32 0, i32 8
  %823 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %822, i64 0, i64 7
  %824 = getelementptr inbounds %struct.TA_CandleSetting, ptr %823, i32 0, i32 2
  %825 = load i32, ptr %824, align 8, !tbaa !13
  %826 = sitofp i32 %825 to double
  %827 = fcmp une double %826, 0.000000e+00
  br i1 %827, label %828, label %838

828:                                              ; preds = %807
  %829 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 2
  %830 = load double, ptr %829, align 16, !tbaa !11
  %831 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %832 = getelementptr inbounds %struct.TA_LibcPriv, ptr %831, i32 0, i32 8
  %833 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %832, i64 0, i64 7
  %834 = getelementptr inbounds %struct.TA_CandleSetting, ptr %833, i32 0, i32 2
  %835 = load i32, ptr %834, align 8, !tbaa !13
  %836 = sitofp i32 %835 to double
  %837 = fdiv double %830, %836
  br label %969

838:                                              ; preds = %807
  %839 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %840 = getelementptr inbounds %struct.TA_LibcPriv, ptr %839, i32 0, i32 8
  %841 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %840, i64 0, i64 7
  %842 = getelementptr inbounds %struct.TA_CandleSetting, ptr %841, i32 0, i32 1
  %843 = load i32, ptr %842, align 4, !tbaa !15
  %844 = icmp eq i32 %843, 0
  br i1 %844, label %845, label %860

845:                                              ; preds = %838
  %846 = load ptr, ptr %16, align 8, !tbaa !9
  %847 = load i32, ptr %22, align 4, !tbaa !5
  %848 = sub nsw i32 %847, 2
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds double, ptr %846, i64 %849
  %851 = load double, ptr %850, align 8, !tbaa !11
  %852 = load ptr, ptr %13, align 8, !tbaa !9
  %853 = load i32, ptr %22, align 4, !tbaa !5
  %854 = sub nsw i32 %853, 2
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds double, ptr %852, i64 %855
  %857 = load double, ptr %856, align 8, !tbaa !11
  %858 = fsub double %851, %857
  %859 = call double @llvm.fabs.f64(double %858)
  br label %967

860:                                              ; preds = %838
  %861 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %862 = getelementptr inbounds %struct.TA_LibcPriv, ptr %861, i32 0, i32 8
  %863 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %862, i64 0, i64 7
  %864 = getelementptr inbounds %struct.TA_CandleSetting, ptr %863, i32 0, i32 1
  %865 = load i32, ptr %864, align 4, !tbaa !15
  %866 = icmp eq i32 %865, 1
  br i1 %866, label %867, label %881

867:                                              ; preds = %860
  %868 = load ptr, ptr %14, align 8, !tbaa !9
  %869 = load i32, ptr %22, align 4, !tbaa !5
  %870 = sub nsw i32 %869, 2
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds double, ptr %868, i64 %871
  %873 = load double, ptr %872, align 8, !tbaa !11
  %874 = load ptr, ptr %15, align 8, !tbaa !9
  %875 = load i32, ptr %22, align 4, !tbaa !5
  %876 = sub nsw i32 %875, 2
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds double, ptr %874, i64 %877
  %879 = load double, ptr %878, align 8, !tbaa !11
  %880 = fsub double %873, %879
  br label %965

881:                                              ; preds = %860
  %882 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %883 = getelementptr inbounds %struct.TA_LibcPriv, ptr %882, i32 0, i32 8
  %884 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %883, i64 0, i64 7
  %885 = getelementptr inbounds %struct.TA_CandleSetting, ptr %884, i32 0, i32 1
  %886 = load i32, ptr %885, align 4, !tbaa !15
  %887 = icmp eq i32 %886, 2
  br i1 %887, label %888, label %962

888:                                              ; preds = %881
  %889 = load ptr, ptr %14, align 8, !tbaa !9
  %890 = load i32, ptr %22, align 4, !tbaa !5
  %891 = sub nsw i32 %890, 2
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds double, ptr %889, i64 %892
  %894 = load double, ptr %893, align 8, !tbaa !11
  %895 = load ptr, ptr %16, align 8, !tbaa !9
  %896 = load i32, ptr %22, align 4, !tbaa !5
  %897 = sub nsw i32 %896, 2
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds double, ptr %895, i64 %898
  %900 = load double, ptr %899, align 8, !tbaa !11
  %901 = load ptr, ptr %13, 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 double, ptr %901, i64 %904
  %906 = load double, ptr %905, align 8, !tbaa !11
  %907 = fcmp oge double %900, %906
  br i1 %907, label %908, label %915

908:                                              ; preds = %888
  %909 = load ptr, ptr %16, align 8, !tbaa !9
  %910 = load i32, ptr %22, align 4, !tbaa !5
  %911 = sub nsw i32 %910, 2
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds double, ptr %909, i64 %912
  %914 = load double, ptr %913, align 8, !tbaa !11
  br label %922

915:                                              ; preds = %888
  %916 = load ptr, ptr %13, align 8, !tbaa !9
  %917 = load i32, ptr %22, align 4, !tbaa !5
  %918 = sub nsw i32 %917, 2
  %919 = sext i32 %918 to i64
  %920 = getelementptr inbounds double, ptr %916, i64 %919
  %921 = load double, ptr %920, align 8, !tbaa !11
  br label %922

922:                                              ; preds = %915, %908
  %923 = phi double [ %914, %908 ], [ %921, %915 ]
  %924 = fsub double %894, %923
  %925 = load ptr, ptr %16, align 8, !tbaa !9
  %926 = load i32, ptr %22, align 4, !tbaa !5
  %927 = sub nsw i32 %926, 2
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds double, ptr %925, i64 %928
  %930 = load double, ptr %929, align 8, !tbaa !11
  %931 = load ptr, ptr %13, align 8, !tbaa !9
  %932 = load i32, ptr %22, align 4, !tbaa !5
  %933 = sub nsw i32 %932, 2
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds double, ptr %931, i64 %934
  %936 = load double, ptr %935, align 8, !tbaa !11
  %937 = fcmp oge double %930, %936
  br i1 %937, label %938, label %945

938:                                              ; preds = %922
  %939 = load ptr, ptr %13, align 8, !tbaa !9
  %940 = load i32, ptr %22, align 4, !tbaa !5
  %941 = sub nsw i32 %940, 2
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds double, ptr %939, i64 %942
  %944 = load double, ptr %943, align 8, !tbaa !11
  br label %952

945:                                              ; preds = %922
  %946 = load ptr, ptr %16, align 8, !tbaa !9
  %947 = load i32, ptr %22, align 4, !tbaa !5
  %948 = sub nsw i32 %947, 2
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds double, ptr %946, i64 %949
  %951 = load double, ptr %950, align 8, !tbaa !11
  br label %952

952:                                              ; preds = %945, %938
  %953 = phi double [ %944, %938 ], [ %951, %945 ]
  %954 = load ptr, ptr %15, align 8, !tbaa !9
  %955 = load i32, ptr %22, align 4, !tbaa !5
  %956 = sub nsw i32 %955, 2
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds double, ptr %954, i64 %957
  %959 = load double, ptr %958, align 8, !tbaa !11
  %960 = fsub double %953, %959
  %961 = fadd double %924, %960
  br label %963

962:                                              ; preds = %881
  br label %963

963:                                              ; preds = %962, %952
  %964 = phi double [ %961, %952 ], [ 0.000000e+00, %962 ]
  br label %965

965:                                              ; preds = %963, %867
  %966 = phi double [ %880, %867 ], [ %964, %963 ]
  br label %967

967:                                              ; preds = %965, %845
  %968 = phi double [ %859, %845 ], [ %966, %965 ]
  br label %969

969:                                              ; preds = %967, %828
  %970 = phi double [ %837, %828 ], [ %968, %967 ]
  %971 = fmul double %820, %970
  %972 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %973 = getelementptr inbounds %struct.TA_LibcPriv, ptr %972, i32 0, i32 8
  %974 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %973, i64 0, i64 7
  %975 = getelementptr inbounds %struct.TA_CandleSetting, ptr %974, i32 0, i32 1
  %976 = load i32, ptr %975, align 4, !tbaa !15
  %977 = icmp eq i32 %976, 2
  %978 = zext i1 %977 to i64
  %979 = select i1 %977, double 2.000000e+00, double 1.000000e+00
  %980 = fdiv double %971, %979
  %981 = fcmp olt double %815, %980
  br i1 %981, label %982, label %2152

982:                                              ; preds = %969
  %983 = load ptr, ptr %16, align 8, !tbaa !9
  %984 = load i32, ptr %22, align 4, !tbaa !5
  %985 = sub nsw i32 %984, 1
  %986 = sext i32 %985 to i64
  %987 = getelementptr inbounds double, ptr %983, i64 %986
  %988 = load double, ptr %987, align 8, !tbaa !11
  %989 = load ptr, ptr %13, align 8, !tbaa !9
  %990 = load i32, ptr %22, align 4, !tbaa !5
  %991 = sub nsw i32 %990, 1
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds double, ptr %989, i64 %992
  %994 = load double, ptr %993, align 8, !tbaa !11
  %995 = fcmp oge double %988, %994
  %996 = zext i1 %995 to i64
  %997 = select i1 %995, i32 1, i32 -1
  %998 = icmp eq i32 %997, -1
  br i1 %998, label %999, label %2152

999:                                              ; preds = %982
  %1000 = load ptr, ptr %16, align 8, !tbaa !9
  %1001 = load i32, ptr %22, align 4, !tbaa !5
  %1002 = sub nsw i32 %1001, 1
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds double, ptr %1000, i64 %1003
  %1005 = load double, ptr %1004, align 8, !tbaa !11
  %1006 = load ptr, ptr %13, align 8, !tbaa !9
  %1007 = load i32, ptr %22, align 4, !tbaa !5
  %1008 = sub nsw i32 %1007, 1
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds double, ptr %1006, i64 %1009
  %1011 = load double, ptr %1010, align 8, !tbaa !11
  %1012 = fcmp oge double %1005, %1011
  br i1 %1012, label %1013, label %1020

1013:                                             ; preds = %999
  %1014 = load ptr, ptr %13, align 8, !tbaa !9
  %1015 = load i32, ptr %22, align 4, !tbaa !5
  %1016 = sub nsw i32 %1015, 1
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds double, ptr %1014, i64 %1017
  %1019 = load double, ptr %1018, align 8, !tbaa !11
  br label %1027

1020:                                             ; preds = %999
  %1021 = load ptr, ptr %16, align 8, !tbaa !9
  %1022 = load i32, ptr %22, align 4, !tbaa !5
  %1023 = sub nsw i32 %1022, 1
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds double, ptr %1021, i64 %1024
  %1026 = load double, ptr %1025, align 8, !tbaa !11
  br label %1027

1027:                                             ; preds = %1020, %1013
  %1028 = phi double [ %1019, %1013 ], [ %1026, %1020 ]
  %1029 = load ptr, ptr %15, align 8, !tbaa !9
  %1030 = load i32, ptr %22, align 4, !tbaa !5
  %1031 = sub nsw i32 %1030, 1
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds double, ptr %1029, i64 %1032
  %1034 = load double, ptr %1033, align 8, !tbaa !11
  %1035 = fsub double %1028, %1034
  %1036 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1037 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1036, i32 0, i32 8
  %1038 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1037, i64 0, i64 7
  %1039 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1038, i32 0, i32 3
  %1040 = load double, ptr %1039, align 8, !tbaa !19
  %1041 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1042 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1041, i32 0, i32 8
  %1043 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1042, i64 0, i64 7
  %1044 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1043, i32 0, i32 2
  %1045 = load i32, ptr %1044, align 8, !tbaa !13
  %1046 = sitofp i32 %1045 to double
  %1047 = fcmp une double %1046, 0.000000e+00
  br i1 %1047, label %1048, label %1058

1048:                                             ; preds = %1027
  %1049 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 1
  %1050 = load double, ptr %1049, align 8, !tbaa !11
  %1051 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1052 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1051, i32 0, i32 8
  %1053 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1052, i64 0, i64 7
  %1054 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1053, i32 0, i32 2
  %1055 = load i32, ptr %1054, align 8, !tbaa !13
  %1056 = sitofp i32 %1055 to double
  %1057 = fdiv double %1050, %1056
  br label %1189

1058:                                             ; preds = %1027
  %1059 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1060 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1059, i32 0, i32 8
  %1061 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1060, i64 0, i64 7
  %1062 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1061, i32 0, i32 1
  %1063 = load i32, ptr %1062, align 4, !tbaa !15
  %1064 = icmp eq i32 %1063, 0
  br i1 %1064, label %1065, label %1080

1065:                                             ; preds = %1058
  %1066 = load ptr, ptr %16, align 8, !tbaa !9
  %1067 = load i32, ptr %22, align 4, !tbaa !5
  %1068 = sub nsw i32 %1067, 1
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds double, ptr %1066, i64 %1069
  %1071 = load double, ptr %1070, align 8, !tbaa !11
  %1072 = load ptr, ptr %13, align 8, !tbaa !9
  %1073 = load i32, ptr %22, align 4, !tbaa !5
  %1074 = sub nsw i32 %1073, 1
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds double, ptr %1072, i64 %1075
  %1077 = load double, ptr %1076, align 8, !tbaa !11
  %1078 = fsub double %1071, %1077
  %1079 = call double @llvm.fabs.f64(double %1078)
  br label %1187

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

1087:                                             ; preds = %1080
  %1088 = load ptr, ptr %14, align 8, !tbaa !9
  %1089 = load i32, ptr %22, align 4, !tbaa !5
  %1090 = sub nsw i32 %1089, 1
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds double, ptr %1088, i64 %1091
  %1093 = load double, ptr %1092, align 8, !tbaa !11
  %1094 = load ptr, ptr %15, align 8, !tbaa !9
  %1095 = load i32, ptr %22, align 4, !tbaa !5
  %1096 = sub nsw i32 %1095, 1
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds double, ptr %1094, i64 %1097
  %1099 = load double, ptr %1098, align 8, !tbaa !11
  %1100 = fsub double %1093, %1099
  br label %1185

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

1108:                                             ; preds = %1101
  %1109 = load ptr, ptr %14, 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 double, ptr %1109, i64 %1112
  %1114 = load double, ptr %1113, align 8, !tbaa !11
  %1115 = load ptr, ptr %16, align 8, !tbaa !9
  %1116 = load i32, ptr %22, align 4, !tbaa !5
  %1117 = sub nsw i32 %1116, 1
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds double, ptr %1115, i64 %1118
  %1120 = load double, ptr %1119, align 8, !tbaa !11
  %1121 = load ptr, ptr %13, align 8, !tbaa !9
  %1122 = load i32, ptr %22, align 4, !tbaa !5
  %1123 = sub nsw i32 %1122, 1
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds double, ptr %1121, i64 %1124
  %1126 = load double, ptr %1125, align 8, !tbaa !11
  %1127 = fcmp oge double %1120, %1126
  br i1 %1127, label %1128, label %1135

1128:                                             ; preds = %1108
  %1129 = load ptr, ptr %16, align 8, !tbaa !9
  %1130 = load i32, ptr %22, align 4, !tbaa !5
  %1131 = sub nsw i32 %1130, 1
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds double, ptr %1129, i64 %1132
  %1134 = load double, ptr %1133, align 8, !tbaa !11
  br label %1142

1135:                                             ; preds = %1108
  %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 double, ptr %1136, i64 %1139
  %1141 = load double, ptr %1140, align 8, !tbaa !11
  br label %1142

1142:                                             ; preds = %1135, %1128
  %1143 = phi double [ %1134, %1128 ], [ %1141, %1135 ]
  %1144 = fsub double %1114, %1143
  %1145 = load ptr, ptr %16, align 8, !tbaa !9
  %1146 = load i32, ptr %22, align 4, !tbaa !5
  %1147 = sub nsw i32 %1146, 1
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds double, ptr %1145, i64 %1148
  %1150 = load double, ptr %1149, align 8, !tbaa !11
  %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 double, ptr %1151, i64 %1154
  %1156 = load double, ptr %1155, align 8, !tbaa !11
  %1157 = fcmp oge double %1150, %1156
  br i1 %1157, label %1158, label %1165

1158:                                             ; preds = %1142
  %1159 = load ptr, ptr %13, align 8, !tbaa !9
  %1160 = load i32, ptr %22, align 4, !tbaa !5
  %1161 = sub nsw i32 %1160, 1
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds double, ptr %1159, i64 %1162
  %1164 = load double, ptr %1163, align 8, !tbaa !11
  br label %1172

1165:                                             ; preds = %1142
  %1166 = load ptr, ptr %16, 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 double, ptr %1166, i64 %1169
  %1171 = load double, ptr %1170, align 8, !tbaa !11
  br label %1172

1172:                                             ; preds = %1165, %1158
  %1173 = phi double [ %1164, %1158 ], [ %1171, %1165 ]
  %1174 = load ptr, ptr %15, 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 double, ptr %1174, i64 %1177
  %1179 = load double, ptr %1178, align 8, !tbaa !11
  %1180 = fsub double %1173, %1179
  %1181 = fadd double %1144, %1180
  br label %1183

1182:                                             ; preds = %1101
  br label %1183

1183:                                             ; preds = %1182, %1172
  %1184 = phi double [ %1181, %1172 ], [ 0.000000e+00, %1182 ]
  br label %1185

1185:                                             ; preds = %1183, %1087
  %1186 = phi double [ %1100, %1087 ], [ %1184, %1183 ]
  br label %1187

1187:                                             ; preds = %1185, %1065
  %1188 = phi double [ %1079, %1065 ], [ %1186, %1185 ]
  br label %1189

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

1202:                                             ; preds = %1189
  %1203 = load ptr, ptr %16, align 8, !tbaa !9
  %1204 = load i32, ptr %22, align 4, !tbaa !5
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds double, ptr %1203, i64 %1205
  %1207 = load double, ptr %1206, align 8, !tbaa !11
  %1208 = load ptr, ptr %13, align 8, !tbaa !9
  %1209 = load i32, ptr %22, align 4, !tbaa !5
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds double, ptr %1208, i64 %1210
  %1212 = load double, ptr %1211, align 8, !tbaa !11
  %1213 = fcmp oge double %1207, %1212
  %1214 = zext i1 %1213 to i64
  %1215 = select i1 %1213, i32 1, i32 -1
  %1216 = icmp eq i32 %1215, -1
  br i1 %1216, label %1217, label %2152

1217:                                             ; preds = %1202
  %1218 = load ptr, ptr %16, align 8, !tbaa !9
  %1219 = load i32, ptr %22, align 4, !tbaa !5
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds double, ptr %1218, i64 %1220
  %1222 = load double, ptr %1221, align 8, !tbaa !11
  %1223 = load ptr, ptr %13, align 8, !tbaa !9
  %1224 = load i32, ptr %22, align 4, !tbaa !5
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds double, ptr %1223, i64 %1225
  %1227 = load double, ptr %1226, align 8, !tbaa !11
  %1228 = fcmp oge double %1222, %1227
  br i1 %1228, label %1229, label %1235

1229:                                             ; preds = %1217
  %1230 = load ptr, ptr %13, align 8, !tbaa !9
  %1231 = load i32, ptr %22, align 4, !tbaa !5
  %1232 = sext i32 %1231 to i64
  %1233 = getelementptr inbounds double, ptr %1230, i64 %1232
  %1234 = load double, ptr %1233, align 8, !tbaa !11
  br label %1241

1235:                                             ; preds = %1217
  %1236 = load ptr, ptr %16, align 8, !tbaa !9
  %1237 = load i32, ptr %22, align 4, !tbaa !5
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds double, ptr %1236, i64 %1238
  %1240 = load double, ptr %1239, align 8, !tbaa !11
  br label %1241

1241:                                             ; preds = %1235, %1229
  %1242 = phi double [ %1234, %1229 ], [ %1240, %1235 ]
  %1243 = load ptr, ptr %15, align 8, !tbaa !9
  %1244 = load i32, ptr %22, align 4, !tbaa !5
  %1245 = sext i32 %1244 to i64
  %1246 = getelementptr inbounds double, ptr %1243, i64 %1245
  %1247 = load double, ptr %1246, align 8, !tbaa !11
  %1248 = fsub double %1242, %1247
  %1249 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1250 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1249, i32 0, i32 8
  %1251 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1250, i64 0, i64 7
  %1252 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1251, i32 0, i32 3
  %1253 = load double, ptr %1252, align 8, !tbaa !19
  %1254 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1255 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1254, i32 0, i32 8
  %1256 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1255, i64 0, i64 7
  %1257 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1256, i32 0, i32 2
  %1258 = load i32, ptr %1257, align 8, !tbaa !13
  %1259 = sitofp i32 %1258 to double
  %1260 = fcmp une double %1259, 0.000000e+00
  br i1 %1260, label %1261, label %1271

1261:                                             ; preds = %1241
  %1262 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 0
  %1263 = load double, ptr %1262, align 16, !tbaa !11
  %1264 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1265 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1264, i32 0, i32 8
  %1266 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1265, i64 0, i64 7
  %1267 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1266, i32 0, i32 2
  %1268 = load i32, ptr %1267, align 8, !tbaa !13
  %1269 = sitofp i32 %1268 to double
  %1270 = fdiv double %1263, %1269
  br label %1388

1271:                                             ; preds = %1241
  %1272 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1273 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1272, i32 0, i32 8
  %1274 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1273, i64 0, i64 7
  %1275 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1274, i32 0, i32 1
  %1276 = load i32, ptr %1275, align 4, !tbaa !15
  %1277 = icmp eq i32 %1276, 0
  br i1 %1277, label %1278, label %1291

1278:                                             ; preds = %1271
  %1279 = load ptr, ptr %16, align 8, !tbaa !9
  %1280 = load i32, ptr %22, align 4, !tbaa !5
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds double, ptr %1279, i64 %1281
  %1283 = load double, ptr %1282, align 8, !tbaa !11
  %1284 = load ptr, ptr %13, align 8, !tbaa !9
  %1285 = load i32, ptr %22, align 4, !tbaa !5
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds double, ptr %1284, i64 %1286
  %1288 = load double, ptr %1287, align 8, !tbaa !11
  %1289 = fsub double %1283, %1288
  %1290 = call double @llvm.fabs.f64(double %1289)
  br label %1386

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

1298:                                             ; preds = %1291
  %1299 = load ptr, ptr %14, align 8, !tbaa !9
  %1300 = load i32, ptr %22, align 4, !tbaa !5
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds double, ptr %1299, i64 %1301
  %1303 = load double, ptr %1302, align 8, !tbaa !11
  %1304 = load ptr, ptr %15, align 8, !tbaa !9
  %1305 = load i32, ptr %22, align 4, !tbaa !5
  %1306 = sext i32 %1305 to i64
  %1307 = getelementptr inbounds double, ptr %1304, i64 %1306
  %1308 = load double, ptr %1307, align 8, !tbaa !11
  %1309 = fsub double %1303, %1308
  br label %1384

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

1317:                                             ; preds = %1310
  %1318 = load ptr, ptr %14, align 8, !tbaa !9
  %1319 = load i32, ptr %22, align 4, !tbaa !5
  %1320 = sext i32 %1319 to i64
  %1321 = getelementptr inbounds double, ptr %1318, i64 %1320
  %1322 = load double, ptr %1321, align 8, !tbaa !11
  %1323 = load ptr, ptr %16, align 8, !tbaa !9
  %1324 = load i32, ptr %22, align 4, !tbaa !5
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds double, ptr %1323, i64 %1325
  %1327 = load double, ptr %1326, align 8, !tbaa !11
  %1328 = load ptr, ptr %13, align 8, !tbaa !9
  %1329 = load i32, ptr %22, align 4, !tbaa !5
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds double, ptr %1328, i64 %1330
  %1332 = load double, ptr %1331, align 8, !tbaa !11
  %1333 = fcmp oge double %1327, %1332
  br i1 %1333, label %1334, label %1340

1334:                                             ; preds = %1317
  %1335 = load ptr, ptr %16, align 8, !tbaa !9
  %1336 = load i32, ptr %22, align 4, !tbaa !5
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds double, ptr %1335, i64 %1337
  %1339 = load double, ptr %1338, align 8, !tbaa !11
  br label %1346

1340:                                             ; preds = %1317
  %1341 = load ptr, ptr %13, align 8, !tbaa !9
  %1342 = load i32, ptr %22, align 4, !tbaa !5
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds double, ptr %1341, i64 %1343
  %1345 = load double, ptr %1344, align 8, !tbaa !11
  br label %1346

1346:                                             ; preds = %1340, %1334
  %1347 = phi double [ %1339, %1334 ], [ %1345, %1340 ]
  %1348 = fsub double %1322, %1347
  %1349 = load ptr, ptr %16, align 8, !tbaa !9
  %1350 = load i32, ptr %22, align 4, !tbaa !5
  %1351 = sext i32 %1350 to i64
  %1352 = getelementptr inbounds double, ptr %1349, i64 %1351
  %1353 = load double, ptr %1352, align 8, !tbaa !11
  %1354 = load ptr, ptr %13, align 8, !tbaa !9
  %1355 = load i32, ptr %22, align 4, !tbaa !5
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds double, ptr %1354, i64 %1356
  %1358 = load double, ptr %1357, align 8, !tbaa !11
  %1359 = fcmp oge double %1353, %1358
  br i1 %1359, label %1360, label %1366

1360:                                             ; preds = %1346
  %1361 = load ptr, ptr %13, align 8, !tbaa !9
  %1362 = load i32, ptr %22, align 4, !tbaa !5
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds double, ptr %1361, i64 %1363
  %1365 = load double, ptr %1364, align 8, !tbaa !11
  br label %1372

1366:                                             ; preds = %1346
  %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 double, ptr %1367, i64 %1369
  %1371 = load double, ptr %1370, align 8, !tbaa !11
  br label %1372

1372:                                             ; preds = %1366, %1360
  %1373 = phi double [ %1365, %1360 ], [ %1371, %1366 ]
  %1374 = load ptr, ptr %15, align 8, !tbaa !9
  %1375 = load i32, ptr %22, align 4, !tbaa !5
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds double, ptr %1374, i64 %1376
  %1378 = load double, ptr %1377, align 8, !tbaa !11
  %1379 = fsub double %1373, %1378
  %1380 = fadd double %1348, %1379
  br label %1382

1381:                                             ; preds = %1310
  br label %1382

1382:                                             ; preds = %1381, %1372
  %1383 = phi double [ %1380, %1372 ], [ 0.000000e+00, %1381 ]
  br label %1384

1384:                                             ; preds = %1382, %1298
  %1385 = phi double [ %1309, %1298 ], [ %1383, %1382 ]
  br label %1386

1386:                                             ; preds = %1384, %1278
  %1387 = phi double [ %1290, %1278 ], [ %1385, %1384 ]
  br label %1388

1388:                                             ; preds = %1386, %1261
  %1389 = phi double [ %1270, %1261 ], [ %1387, %1386 ]
  %1390 = fmul double %1253, %1389
  %1391 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1392 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1391, i32 0, i32 8
  %1393 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1392, i64 0, i64 7
  %1394 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1393, i32 0, i32 1
  %1395 = load i32, ptr %1394, align 4, !tbaa !15
  %1396 = icmp eq i32 %1395, 2
  %1397 = zext i1 %1396 to i64
  %1398 = select i1 %1396, double 2.000000e+00, double 1.000000e+00
  %1399 = fdiv double %1390, %1398
  %1400 = fcmp olt double %1248, %1399
  br i1 %1400, label %1401, label %2152

1401:                                             ; preds = %1388
  %1402 = load ptr, ptr %16, align 8, !tbaa !9
  %1403 = load i32, ptr %22, align 4, !tbaa !5
  %1404 = sub nsw i32 %1403, 2
  %1405 = sext i32 %1404 to i64
  %1406 = getelementptr inbounds double, ptr %1402, i64 %1405
  %1407 = load double, ptr %1406, align 8, !tbaa !11
  %1408 = load ptr, ptr %16, align 8, !tbaa !9
  %1409 = load i32, ptr %22, align 4, !tbaa !5
  %1410 = sub nsw i32 %1409, 1
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds double, ptr %1408, i64 %1411
  %1413 = load double, ptr %1412, align 8, !tbaa !11
  %1414 = fcmp ogt double %1407, %1413
  br i1 %1414, label %1415, label %2152

1415:                                             ; preds = %1401
  %1416 = load ptr, ptr %16, align 8, !tbaa !9
  %1417 = load i32, ptr %22, align 4, !tbaa !5
  %1418 = sub nsw i32 %1417, 1
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds double, ptr %1416, i64 %1419
  %1421 = load double, ptr %1420, align 8, !tbaa !11
  %1422 = load ptr, ptr %16, align 8, !tbaa !9
  %1423 = load i32, ptr %22, align 4, !tbaa !5
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds double, ptr %1422, i64 %1424
  %1426 = load double, ptr %1425, align 8, !tbaa !11
  %1427 = fcmp ogt double %1421, %1426
  br i1 %1427, label %1428, label %2152

1428:                                             ; preds = %1415
  %1429 = load ptr, ptr %13, align 8, !tbaa !9
  %1430 = load i32, ptr %22, align 4, !tbaa !5
  %1431 = sub nsw i32 %1430, 1
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds double, ptr %1429, i64 %1432
  %1434 = load double, ptr %1433, align 8, !tbaa !11
  %1435 = load ptr, ptr %16, align 8, !tbaa !9
  %1436 = load i32, ptr %22, align 4, !tbaa !5
  %1437 = sub nsw i32 %1436, 2
  %1438 = sext i32 %1437 to i64
  %1439 = getelementptr inbounds double, ptr %1435, i64 %1438
  %1440 = load double, ptr %1439, align 8, !tbaa !11
  %1441 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1442 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1441, i32 0, i32 8
  %1443 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1442, i64 0, i64 10
  %1444 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1443, i32 0, i32 3
  %1445 = load double, ptr %1444, align 8, !tbaa !19
  %1446 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1447 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1446, i32 0, i32 8
  %1448 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1447, i64 0, i64 10
  %1449 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1448, i32 0, i32 2
  %1450 = load i32, ptr %1449, align 8, !tbaa !13
  %1451 = sitofp i32 %1450 to double
  %1452 = fcmp une double %1451, 0.000000e+00
  br i1 %1452, label %1453, label %1463

1453:                                             ; preds = %1428
  %1454 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 2
  %1455 = load double, ptr %1454, align 16, !tbaa !11
  %1456 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1457 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1456, i32 0, i32 8
  %1458 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1457, i64 0, i64 10
  %1459 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1458, i32 0, i32 2
  %1460 = load i32, ptr %1459, align 8, !tbaa !13
  %1461 = sitofp i32 %1460 to double
  %1462 = fdiv double %1455, %1461
  br label %1594

1463:                                             ; preds = %1428
  %1464 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1465 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1464, i32 0, i32 8
  %1466 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1465, i64 0, i64 10
  %1467 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1466, i32 0, i32 1
  %1468 = load i32, ptr %1467, align 4, !tbaa !15
  %1469 = icmp eq i32 %1468, 0
  br i1 %1469, label %1470, label %1485

1470:                                             ; preds = %1463
  %1471 = load ptr, ptr %16, align 8, !tbaa !9
  %1472 = load i32, ptr %22, align 4, !tbaa !5
  %1473 = sub nsw i32 %1472, 2
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds double, ptr %1471, i64 %1474
  %1476 = load double, ptr %1475, align 8, !tbaa !11
  %1477 = load ptr, ptr %13, align 8, !tbaa !9
  %1478 = load i32, ptr %22, align 4, !tbaa !5
  %1479 = sub nsw i32 %1478, 2
  %1480 = sext i32 %1479 to i64
  %1481 = getelementptr inbounds double, ptr %1477, i64 %1480
  %1482 = load double, ptr %1481, align 8, !tbaa !11
  %1483 = fsub double %1476, %1482
  %1484 = call double @llvm.fabs.f64(double %1483)
  br label %1592

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

1492:                                             ; preds = %1485
  %1493 = load ptr, ptr %14, align 8, !tbaa !9
  %1494 = load i32, ptr %22, align 4, !tbaa !5
  %1495 = sub nsw i32 %1494, 2
  %1496 = sext i32 %1495 to i64
  %1497 = getelementptr inbounds double, ptr %1493, i64 %1496
  %1498 = load double, ptr %1497, align 8, !tbaa !11
  %1499 = load ptr, ptr %15, align 8, !tbaa !9
  %1500 = load i32, ptr %22, align 4, !tbaa !5
  %1501 = sub nsw i32 %1500, 2
  %1502 = sext i32 %1501 to i64
  %1503 = getelementptr inbounds double, ptr %1499, i64 %1502
  %1504 = load double, ptr %1503, align 8, !tbaa !11
  %1505 = fsub double %1498, %1504
  br label %1590

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

1513:                                             ; preds = %1506
  %1514 = load ptr, ptr %14, align 8, !tbaa !9
  %1515 = load i32, ptr %22, align 4, !tbaa !5
  %1516 = sub nsw i32 %1515, 2
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds double, ptr %1514, i64 %1517
  %1519 = load double, ptr %1518, align 8, !tbaa !11
  %1520 = load ptr, ptr %16, align 8, !tbaa !9
  %1521 = load i32, ptr %22, align 4, !tbaa !5
  %1522 = sub nsw i32 %1521, 2
  %1523 = sext i32 %1522 to i64
  %1524 = getelementptr inbounds double, ptr %1520, i64 %1523
  %1525 = load double, ptr %1524, align 8, !tbaa !11
  %1526 = load ptr, ptr %13, align 8, !tbaa !9
  %1527 = load i32, ptr %22, align 4, !tbaa !5
  %1528 = sub nsw i32 %1527, 2
  %1529 = sext i32 %1528 to i64
  %1530 = getelementptr inbounds double, ptr %1526, i64 %1529
  %1531 = load double, ptr %1530, align 8, !tbaa !11
  %1532 = fcmp oge double %1525, %1531
  br i1 %1532, label %1533, label %1540

1533:                                             ; preds = %1513
  %1534 = load ptr, ptr %16, align 8, !tbaa !9
  %1535 = load i32, ptr %22, align 4, !tbaa !5
  %1536 = sub nsw i32 %1535, 2
  %1537 = sext i32 %1536 to i64
  %1538 = getelementptr inbounds double, ptr %1534, i64 %1537
  %1539 = load double, ptr %1538, align 8, !tbaa !11
  br label %1547

1540:                                             ; preds = %1513
  %1541 = load ptr, ptr %13, align 8, !tbaa !9
  %1542 = load i32, ptr %22, align 4, !tbaa !5
  %1543 = sub nsw i32 %1542, 2
  %1544 = sext i32 %1543 to i64
  %1545 = getelementptr inbounds double, ptr %1541, i64 %1544
  %1546 = load double, ptr %1545, align 8, !tbaa !11
  br label %1547

1547:                                             ; preds = %1540, %1533
  %1548 = phi double [ %1539, %1533 ], [ %1546, %1540 ]
  %1549 = fsub double %1519, %1548
  %1550 = load ptr, ptr %16, align 8, !tbaa !9
  %1551 = load i32, ptr %22, align 4, !tbaa !5
  %1552 = sub nsw i32 %1551, 2
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds double, ptr %1550, i64 %1553
  %1555 = load double, ptr %1554, align 8, !tbaa !11
  %1556 = load ptr, ptr %13, 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 double, ptr %1556, i64 %1559
  %1561 = load double, ptr %1560, align 8, !tbaa !11
  %1562 = fcmp oge double %1555, %1561
  br i1 %1562, label %1563, label %1570

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

1570:                                             ; preds = %1547
  %1571 = load ptr, ptr %16, align 8, !tbaa !9
  %1572 = load i32, ptr %22, align 4, !tbaa !5
  %1573 = sub nsw i32 %1572, 2
  %1574 = sext i32 %1573 to i64
  %1575 = getelementptr inbounds double, ptr %1571, i64 %1574
  %1576 = load double, ptr %1575, align 8, !tbaa !11
  br label %1577

1577:                                             ; preds = %1570, %1563
  %1578 = phi double [ %1569, %1563 ], [ %1576, %1570 ]
  %1579 = load ptr, ptr %15, align 8, !tbaa !9
  %1580 = load i32, ptr %22, align 4, !tbaa !5
  %1581 = sub nsw i32 %1580, 2
  %1582 = sext i32 %1581 to i64
  %1583 = getelementptr inbounds double, ptr %1579, i64 %1582
  %1584 = load double, ptr %1583, align 8, !tbaa !11
  %1585 = fsub double %1578, %1584
  %1586 = fadd double %1549, %1585
  br label %1588

1587:                                             ; preds = %1506
  br label %1588

1588:                                             ; preds = %1587, %1577
  %1589 = phi double [ %1586, %1577 ], [ 0.000000e+00, %1587 ]
  br label %1590

1590:                                             ; preds = %1588, %1492
  %1591 = phi double [ %1505, %1492 ], [ %1589, %1588 ]
  br label %1592

1592:                                             ; preds = %1590, %1470
  %1593 = phi double [ %1484, %1470 ], [ %1591, %1590 ]
  br label %1594

1594:                                             ; preds = %1592, %1453
  %1595 = phi double [ %1462, %1453 ], [ %1593, %1592 ]
  %1596 = fmul double %1445, %1595
  %1597 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1598 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1597, i32 0, i32 8
  %1599 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1598, i64 0, i64 10
  %1600 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1599, i32 0, i32 1
  %1601 = load i32, ptr %1600, align 4, !tbaa !15
  %1602 = icmp eq i32 %1601, 2
  %1603 = zext i1 %1602 to i64
  %1604 = select i1 %1602, double 2.000000e+00, double 1.000000e+00
  %1605 = fdiv double %1596, %1604
  %1606 = fadd double %1440, %1605
  %1607 = fcmp ole double %1434, %1606
  br i1 %1607, label %1608, label %2152

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

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

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

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

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

1672:                                             ; preds = %1665
  %1673 = load ptr, ptr %14, align 8, !tbaa !9
  %1674 = load i32, ptr %22, align 4, !tbaa !5
  %1675 = sub nsw i32 %1674, 2
  %1676 = sext i32 %1675 to i64
  %1677 = getelementptr inbounds double, ptr %1673, i64 %1676
  %1678 = load double, ptr %1677, align 8, !tbaa !11
  %1679 = load ptr, ptr %15, align 8, !tbaa !9
  %1680 = load i32, ptr %22, align 4, !tbaa !5
  %1681 = sub nsw i32 %1680, 2
  %1682 = sext i32 %1681 to i64
  %1683 = getelementptr inbounds double, ptr %1679, i64 %1682
  %1684 = load double, ptr %1683, align 8, !tbaa !11
  %1685 = fsub double %1678, %1684
  br label %1770

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

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

1713:                                             ; preds = %1693
  %1714 = load ptr, ptr %16, align 8, !tbaa !9
  %1715 = load i32, ptr %22, align 4, !tbaa !5
  %1716 = sub nsw i32 %1715, 2
  %1717 = sext i32 %1716 to i64
  %1718 = getelementptr inbounds double, ptr %1714, i64 %1717
  %1719 = load double, ptr %1718, align 8, !tbaa !11
  br label %1727

1720:                                             ; preds = %1693
  %1721 = load ptr, ptr %13, align 8, !tbaa !9
  %1722 = load i32, ptr %22, align 4, !tbaa !5
  %1723 = sub nsw i32 %1722, 2
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr inbounds double, ptr %1721, i64 %1724
  %1726 = load double, ptr %1725, align 8, !tbaa !11
  br label %1727

1727:                                             ; preds = %1720, %1713
  %1728 = phi double [ %1719, %1713 ], [ %1726, %1720 ]
  %1729 = fsub double %1699, %1728
  %1730 = load ptr, ptr %16, align 8, !tbaa !9
  %1731 = load i32, ptr %22, align 4, !tbaa !5
  %1732 = sub nsw i32 %1731, 2
  %1733 = sext i32 %1732 to i64
  %1734 = getelementptr inbounds double, ptr %1730, i64 %1733
  %1735 = load double, ptr %1734, align 8, !tbaa !11
  %1736 = load ptr, ptr %13, align 8, !tbaa !9
  %1737 = load i32, ptr %22, align 4, !tbaa !5
  %1738 = sub nsw i32 %1737, 2
  %1739 = sext i32 %1738 to i64
  %1740 = getelementptr inbounds double, ptr %1736, i64 %1739
  %1741 = load double, ptr %1740, align 8, !tbaa !11
  %1742 = fcmp oge double %1735, %1741
  br i1 %1742, label %1743, label %1750

1743:                                             ; preds = %1727
  %1744 = load ptr, ptr %13, align 8, !tbaa !9
  %1745 = load i32, ptr %22, align 4, !tbaa !5
  %1746 = sub nsw i32 %1745, 2
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds double, ptr %1744, i64 %1747
  %1749 = load double, ptr %1748, align 8, !tbaa !11
  br label %1757

1750:                                             ; preds = %1727
  %1751 = load ptr, ptr %16, align 8, !tbaa !9
  %1752 = load i32, ptr %22, align 4, !tbaa !5
  %1753 = sub nsw i32 %1752, 2
  %1754 = sext i32 %1753 to i64
  %1755 = getelementptr inbounds double, ptr %1751, i64 %1754
  %1756 = load double, ptr %1755, align 8, !tbaa !11
  br label %1757

1757:                                             ; preds = %1750, %1743
  %1758 = phi double [ %1749, %1743 ], [ %1756, %1750 ]
  %1759 = load ptr, ptr %15, align 8, !tbaa !9
  %1760 = load i32, ptr %22, align 4, !tbaa !5
  %1761 = sub nsw i32 %1760, 2
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds double, ptr %1759, i64 %1762
  %1764 = load double, ptr %1763, align 8, !tbaa !11
  %1765 = fsub double %1758, %1764
  %1766 = fadd double %1729, %1765
  br label %1768

1767:                                             ; preds = %1686
  br label %1768

1768:                                             ; preds = %1767, %1757
  %1769 = phi double [ %1766, %1757 ], [ 0.000000e+00, %1767 ]
  br label %1770

1770:                                             ; preds = %1768, %1672
  %1771 = phi double [ %1685, %1672 ], [ %1769, %1768 ]
  br label %1772

1772:                                             ; preds = %1770, %1650
  %1773 = phi double [ %1664, %1650 ], [ %1771, %1770 ]
  br label %1774

1774:                                             ; preds = %1772, %1633
  %1775 = phi double [ %1642, %1633 ], [ %1773, %1772 ]
  %1776 = fmul double %1625, %1775
  %1777 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1778 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1777, i32 0, i32 8
  %1779 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1778, i64 0, i64 10
  %1780 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1779, i32 0, i32 1
  %1781 = load i32, ptr %1780, align 4, !tbaa !15
  %1782 = icmp eq i32 %1781, 2
  %1783 = zext i1 %1782 to i64
  %1784 = select i1 %1782, double 2.000000e+00, double 1.000000e+00
  %1785 = fdiv double %1776, %1784
  %1786 = fsub double %1620, %1785
  %1787 = fcmp oge double %1614, %1786
  br i1 %1787, label %1788, label %2152

1788:                                             ; preds = %1774
  %1789 = load ptr, ptr %13, align 8, !tbaa !9
  %1790 = load i32, ptr %22, align 4, !tbaa !5
  %1791 = sext i32 %1790 to i64
  %1792 = getelementptr inbounds double, ptr %1789, i64 %1791
  %1793 = load double, ptr %1792, align 8, !tbaa !11
  %1794 = load ptr, ptr %16, align 8, !tbaa !9
  %1795 = load i32, ptr %22, align 4, !tbaa !5
  %1796 = sub nsw i32 %1795, 1
  %1797 = sext i32 %1796 to i64
  %1798 = getelementptr inbounds double, ptr %1794, i64 %1797
  %1799 = load double, ptr %1798, align 8, !tbaa !11
  %1800 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1801 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1800, i32 0, i32 8
  %1802 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1801, i64 0, i64 10
  %1803 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1802, i32 0, i32 3
  %1804 = load double, ptr %1803, align 8, !tbaa !19
  %1805 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1806 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1805, i32 0, i32 8
  %1807 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1806, i64 0, i64 10
  %1808 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1807, i32 0, i32 2
  %1809 = load i32, ptr %1808, align 8, !tbaa !13
  %1810 = sitofp i32 %1809 to double
  %1811 = fcmp une double %1810, 0.000000e+00
  br i1 %1811, label %1812, label %1822

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

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

1829:                                             ; preds = %1822
  %1830 = load ptr, ptr %16, align 8, !tbaa !9
  %1831 = load i32, ptr %22, align 4, !tbaa !5
  %1832 = sub nsw i32 %1831, 1
  %1833 = sext i32 %1832 to i64
  %1834 = getelementptr inbounds double, ptr %1830, i64 %1833
  %1835 = load double, ptr %1834, align 8, !tbaa !11
  %1836 = load ptr, ptr %13, align 8, !tbaa !9
  %1837 = load i32, ptr %22, align 4, !tbaa !5
  %1838 = sub nsw i32 %1837, 1
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds double, ptr %1836, i64 %1839
  %1841 = load double, ptr %1840, align 8, !tbaa !11
  %1842 = fsub double %1835, %1841
  %1843 = call double @llvm.fabs.f64(double %1842)
  br label %1951

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

1851:                                             ; preds = %1844
  %1852 = load ptr, ptr %14, align 8, !tbaa !9
  %1853 = load i32, ptr %22, align 4, !tbaa !5
  %1854 = sub nsw i32 %1853, 1
  %1855 = sext i32 %1854 to i64
  %1856 = getelementptr inbounds double, ptr %1852, i64 %1855
  %1857 = load double, ptr %1856, align 8, !tbaa !11
  %1858 = load ptr, ptr %15, align 8, !tbaa !9
  %1859 = load i32, ptr %22, align 4, !tbaa !5
  %1860 = sub nsw i32 %1859, 1
  %1861 = sext i32 %1860 to i64
  %1862 = getelementptr inbounds double, ptr %1858, i64 %1861
  %1863 = load double, ptr %1862, align 8, !tbaa !11
  %1864 = fsub double %1857, %1863
  br label %1949

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

1872:                                             ; preds = %1865
  %1873 = load ptr, ptr %14, align 8, !tbaa !9
  %1874 = load i32, ptr %22, align 4, !tbaa !5
  %1875 = sub nsw i32 %1874, 1
  %1876 = sext i32 %1875 to i64
  %1877 = getelementptr inbounds double, ptr %1873, i64 %1876
  %1878 = load double, ptr %1877, align 8, !tbaa !11
  %1879 = load ptr, ptr %16, align 8, !tbaa !9
  %1880 = load i32, ptr %22, align 4, !tbaa !5
  %1881 = sub nsw i32 %1880, 1
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds double, ptr %1879, i64 %1882
  %1884 = load double, ptr %1883, align 8, !tbaa !11
  %1885 = load ptr, ptr %13, align 8, !tbaa !9
  %1886 = load i32, ptr %22, align 4, !tbaa !5
  %1887 = sub nsw i32 %1886, 1
  %1888 = sext i32 %1887 to i64
  %1889 = getelementptr inbounds double, ptr %1885, i64 %1888
  %1890 = load double, ptr %1889, align 8, !tbaa !11
  %1891 = fcmp oge double %1884, %1890
  br i1 %1891, label %1892, label %1899

1892:                                             ; preds = %1872
  %1893 = load ptr, ptr %16, align 8, !tbaa !9
  %1894 = load i32, ptr %22, align 4, !tbaa !5
  %1895 = sub nsw i32 %1894, 1
  %1896 = sext i32 %1895 to i64
  %1897 = getelementptr inbounds double, ptr %1893, i64 %1896
  %1898 = load double, ptr %1897, align 8, !tbaa !11
  br label %1906

1899:                                             ; preds = %1872
  %1900 = load ptr, ptr %13, align 8, !tbaa !9
  %1901 = load i32, ptr %22, align 4, !tbaa !5
  %1902 = sub nsw i32 %1901, 1
  %1903 = sext i32 %1902 to i64
  %1904 = getelementptr inbounds double, ptr %1900, i64 %1903
  %1905 = load double, ptr %1904, align 8, !tbaa !11
  br label %1906

1906:                                             ; preds = %1899, %1892
  %1907 = phi double [ %1898, %1892 ], [ %1905, %1899 ]
  %1908 = fsub double %1878, %1907
  %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 double, ptr %1909, i64 %1912
  %1914 = load double, ptr %1913, align 8, !tbaa !11
  %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 double, ptr %1915, i64 %1918
  %1920 = load double, ptr %1919, align 8, !tbaa !11
  %1921 = fcmp oge double %1914, %1920
  br i1 %1921, label %1922, label %1929

1922:                                             ; preds = %1906
  %1923 = load ptr, ptr %13, 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 double, ptr %1923, i64 %1926
  %1928 = load double, ptr %1927, align 8, !tbaa !11
  br label %1936

1929:                                             ; preds = %1906
  %1930 = load ptr, ptr %16, 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 double, ptr %1930, i64 %1933
  %1935 = load double, ptr %1934, align 8, !tbaa !11
  br label %1936

1936:                                             ; preds = %1929, %1922
  %1937 = phi double [ %1928, %1922 ], [ %1935, %1929 ]
  %1938 = load ptr, ptr %15, align 8, !tbaa !9
  %1939 = load i32, ptr %22, align 4, !tbaa !5
  %1940 = sub nsw i32 %1939, 1
  %1941 = sext i32 %1940 to i64
  %1942 = getelementptr inbounds double, ptr %1938, i64 %1941
  %1943 = load double, ptr %1942, align 8, !tbaa !11
  %1944 = fsub double %1937, %1943
  %1945 = fadd double %1908, %1944
  br label %1947

1946:                                             ; preds = %1865
  br label %1947

1947:                                             ; preds = %1946, %1936
  %1948 = phi double [ %1945, %1936 ], [ 0.000000e+00, %1946 ]
  br label %1949

1949:                                             ; preds = %1947, %1851
  %1950 = phi double [ %1864, %1851 ], [ %1948, %1947 ]
  br label %1951

1951:                                             ; preds = %1949, %1829
  %1952 = phi double [ %1843, %1829 ], [ %1950, %1949 ]
  br label %1953

1953:                                             ; preds = %1951, %1812
  %1954 = phi double [ %1821, %1812 ], [ %1952, %1951 ]
  %1955 = fmul double %1804, %1954
  %1956 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1957 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1956, i32 0, i32 8
  %1958 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1957, i64 0, i64 10
  %1959 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1958, i32 0, i32 1
  %1960 = load i32, ptr %1959, align 4, !tbaa !15
  %1961 = icmp eq i32 %1960, 2
  %1962 = zext i1 %1961 to i64
  %1963 = select i1 %1961, double 2.000000e+00, double 1.000000e+00
  %1964 = fdiv double %1955, %1963
  %1965 = fadd double %1799, %1964
  %1966 = fcmp ole double %1793, %1965
  br i1 %1966, label %1967, label %2152

1967:                                             ; preds = %1953
  %1968 = load ptr, ptr %13, align 8, !tbaa !9
  %1969 = load i32, ptr %22, align 4, !tbaa !5
  %1970 = sext i32 %1969 to i64
  %1971 = getelementptr inbounds double, ptr %1968, i64 %1970
  %1972 = load double, ptr %1971, align 8, !tbaa !11
  %1973 = load ptr, ptr %16, align 8, !tbaa !9
  %1974 = load i32, ptr %22, align 4, !tbaa !5
  %1975 = sub nsw i32 %1974, 1
  %1976 = sext i32 %1975 to i64
  %1977 = getelementptr inbounds double, ptr %1973, i64 %1976
  %1978 = load double, ptr %1977, align 8, !tbaa !11
  %1979 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1980 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1979, i32 0, i32 8
  %1981 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1980, i64 0, i64 10
  %1982 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1981, i32 0, i32 3
  %1983 = load double, ptr %1982, align 8, !tbaa !19
  %1984 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1985 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1984, i32 0, i32 8
  %1986 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1985, i64 0, i64 10
  %1987 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1986, i32 0, i32 2
  %1988 = load i32, ptr %1987, align 8, !tbaa !13
  %1989 = sitofp i32 %1988 to double
  %1990 = fcmp une double %1989, 0.000000e+00
  br i1 %1990, label %1991, label %2001

1991:                                             ; preds = %1967
  %1992 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 1
  %1993 = load double, ptr %1992, align 8, !tbaa !11
  %1994 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1995 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1994, i32 0, i32 8
  %1996 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1995, i64 0, i64 10
  %1997 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1996, i32 0, i32 2
  %1998 = load i32, ptr %1997, align 8, !tbaa !13
  %1999 = sitofp i32 %1998 to double
  %2000 = fdiv double %1993, %1999
  br label %2132

2001:                                             ; preds = %1967
  %2002 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2003 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2002, i32 0, i32 8
  %2004 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2003, i64 0, i64 10
  %2005 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2004, i32 0, i32 1
  %2006 = load i32, ptr %2005, align 4, !tbaa !15
  %2007 = icmp eq i32 %2006, 0
  br i1 %2007, label %2008, label %2023

2008:                                             ; preds = %2001
  %2009 = load ptr, ptr %16, align 8, !tbaa !9
  %2010 = load i32, ptr %22, align 4, !tbaa !5
  %2011 = sub nsw i32 %2010, 1
  %2012 = sext i32 %2011 to i64
  %2013 = getelementptr inbounds double, ptr %2009, i64 %2012
  %2014 = load double, ptr %2013, align 8, !tbaa !11
  %2015 = load ptr, ptr %13, align 8, !tbaa !9
  %2016 = load i32, ptr %22, align 4, !tbaa !5
  %2017 = sub nsw i32 %2016, 1
  %2018 = sext i32 %2017 to i64
  %2019 = getelementptr inbounds double, ptr %2015, i64 %2018
  %2020 = load double, ptr %2019, align 8, !tbaa !11
  %2021 = fsub double %2014, %2020
  %2022 = call double @llvm.fabs.f64(double %2021)
  br label %2130

2023:                                             ; preds = %2001
  %2024 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2025 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2024, i32 0, i32 8
  %2026 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2025, i64 0, i64 10
  %2027 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2026, i32 0, i32 1
  %2028 = load i32, ptr %2027, align 4, !tbaa !15
  %2029 = icmp eq i32 %2028, 1
  br i1 %2029, label %2030, label %2044

2030:                                             ; preds = %2023
  %2031 = load ptr, ptr %14, align 8, !tbaa !9
  %2032 = load i32, ptr %22, align 4, !tbaa !5
  %2033 = sub nsw i32 %2032, 1
  %2034 = sext i32 %2033 to i64
  %2035 = getelementptr inbounds double, ptr %2031, i64 %2034
  %2036 = load double, ptr %2035, align 8, !tbaa !11
  %2037 = load ptr, ptr %15, align 8, !tbaa !9
  %2038 = load i32, ptr %22, align 4, !tbaa !5
  %2039 = sub nsw i32 %2038, 1
  %2040 = sext i32 %2039 to i64
  %2041 = getelementptr inbounds double, ptr %2037, i64 %2040
  %2042 = load double, ptr %2041, align 8, !tbaa !11
  %2043 = fsub double %2036, %2042
  br label %2128

2044:                                             ; preds = %2023
  %2045 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2046 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2045, i32 0, i32 8
  %2047 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2046, i64 0, i64 10
  %2048 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2047, i32 0, i32 1
  %2049 = load i32, ptr %2048, align 4, !tbaa !15
  %2050 = icmp eq i32 %2049, 2
  br i1 %2050, label %2051, label %2125

2051:                                             ; preds = %2044
  %2052 = load ptr, ptr %14, align 8, !tbaa !9
  %2053 = load i32, ptr %22, align 4, !tbaa !5
  %2054 = sub nsw i32 %2053, 1
  %2055 = sext i32 %2054 to i64
  %2056 = getelementptr inbounds double, ptr %2052, i64 %2055
  %2057 = load double, ptr %2056, align 8, !tbaa !11
  %2058 = load ptr, ptr %16, align 8, !tbaa !9
  %2059 = load i32, ptr %22, align 4, !tbaa !5
  %2060 = sub nsw i32 %2059, 1
  %2061 = sext i32 %2060 to i64
  %2062 = getelementptr inbounds double, ptr %2058, i64 %2061
  %2063 = load double, ptr %2062, align 8, !tbaa !11
  %2064 = load ptr, ptr %13, align 8, !tbaa !9
  %2065 = load i32, ptr %22, align 4, !tbaa !5
  %2066 = sub nsw i32 %2065, 1
  %2067 = sext i32 %2066 to i64
  %2068 = getelementptr inbounds double, ptr %2064, i64 %2067
  %2069 = load double, ptr %2068, align 8, !tbaa !11
  %2070 = fcmp oge double %2063, %2069
  br i1 %2070, label %2071, label %2078

2071:                                             ; preds = %2051
  %2072 = load ptr, ptr %16, align 8, !tbaa !9
  %2073 = load i32, ptr %22, align 4, !tbaa !5
  %2074 = sub nsw i32 %2073, 1
  %2075 = sext i32 %2074 to i64
  %2076 = getelementptr inbounds double, ptr %2072, i64 %2075
  %2077 = load double, ptr %2076, align 8, !tbaa !11
  br label %2085

2078:                                             ; preds = %2051
  %2079 = load ptr, ptr %13, align 8, !tbaa !9
  %2080 = load i32, ptr %22, align 4, !tbaa !5
  %2081 = sub nsw i32 %2080, 1
  %2082 = sext i32 %2081 to i64
  %2083 = getelementptr inbounds double, ptr %2079, i64 %2082
  %2084 = load double, ptr %2083, align 8, !tbaa !11
  br label %2085

2085:                                             ; preds = %2078, %2071
  %2086 = phi double [ %2077, %2071 ], [ %2084, %2078 ]
  %2087 = fsub double %2057, %2086
  %2088 = load ptr, ptr %16, align 8, !tbaa !9
  %2089 = load i32, ptr %22, align 4, !tbaa !5
  %2090 = sub nsw i32 %2089, 1
  %2091 = sext i32 %2090 to i64
  %2092 = getelementptr inbounds double, ptr %2088, i64 %2091
  %2093 = load double, ptr %2092, align 8, !tbaa !11
  %2094 = load ptr, ptr %13, align 8, !tbaa !9
  %2095 = load i32, ptr %22, align 4, !tbaa !5
  %2096 = sub nsw i32 %2095, 1
  %2097 = sext i32 %2096 to i64
  %2098 = getelementptr inbounds double, ptr %2094, i64 %2097
  %2099 = load double, ptr %2098, align 8, !tbaa !11
  %2100 = fcmp oge double %2093, %2099
  br i1 %2100, label %2101, label %2108

2101:                                             ; preds = %2085
  %2102 = load ptr, ptr %13, align 8, !tbaa !9
  %2103 = load i32, ptr %22, align 4, !tbaa !5
  %2104 = sub nsw i32 %2103, 1
  %2105 = sext i32 %2104 to i64
  %2106 = getelementptr inbounds double, ptr %2102, i64 %2105
  %2107 = load double, ptr %2106, align 8, !tbaa !11
  br label %2115

2108:                                             ; preds = %2085
  %2109 = load ptr, ptr %16, align 8, !tbaa !9
  %2110 = load i32, ptr %22, align 4, !tbaa !5
  %2111 = sub nsw i32 %2110, 1
  %2112 = sext i32 %2111 to i64
  %2113 = getelementptr inbounds double, ptr %2109, i64 %2112
  %2114 = load double, ptr %2113, align 8, !tbaa !11
  br label %2115

2115:                                             ; preds = %2108, %2101
  %2116 = phi double [ %2107, %2101 ], [ %2114, %2108 ]
  %2117 = load ptr, ptr %15, align 8, !tbaa !9
  %2118 = load i32, ptr %22, align 4, !tbaa !5
  %2119 = sub nsw i32 %2118, 1
  %2120 = sext i32 %2119 to i64
  %2121 = getelementptr inbounds double, ptr %2117, i64 %2120
  %2122 = load double, ptr %2121, align 8, !tbaa !11
  %2123 = fsub double %2116, %2122
  %2124 = fadd double %2087, %2123
  br label %2126

2125:                                             ; preds = %2044
  br label %2126

2126:                                             ; preds = %2125, %2115
  %2127 = phi double [ %2124, %2115 ], [ 0.000000e+00, %2125 ]
  br label %2128

2128:                                             ; preds = %2126, %2030
  %2129 = phi double [ %2043, %2030 ], [ %2127, %2126 ]
  br label %2130

2130:                                             ; preds = %2128, %2008
  %2131 = phi double [ %2022, %2008 ], [ %2129, %2128 ]
  br label %2132

2132:                                             ; preds = %2130, %1991
  %2133 = phi double [ %2000, %1991 ], [ %2131, %2130 ]
  %2134 = fmul double %1983, %2133
  %2135 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2136 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2135, i32 0, i32 8
  %2137 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2136, i64 0, i64 10
  %2138 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2137, i32 0, i32 1
  %2139 = load i32, ptr %2138, align 4, !tbaa !15
  %2140 = icmp eq i32 %2139, 2
  %2141 = zext i1 %2140 to i64
  %2142 = select i1 %2140, double 2.000000e+00, double 1.000000e+00
  %2143 = fdiv double %2134, %2142
  %2144 = fsub double %1978, %2143
  %2145 = fcmp oge double %1972, %2144
  br i1 %2145, label %2146, label %2152

2146:                                             ; preds = %2132
  %2147 = load ptr, ptr %19, align 8, !tbaa !9
  %2148 = load i32, ptr %23, align 4, !tbaa !5
  %2149 = add nsw i32 %2148, 1
  store i32 %2149, ptr %23, align 4, !tbaa !5
  %2150 = sext i32 %2148 to i64
  %2151 = getelementptr inbounds i32, ptr %2147, i64 %2150
  store i32 -100, ptr %2151, align 4, !tbaa !5
  br label %2158

2152:                                             ; preds = %2132, %1953, %1774, %1594, %1415, %1401, %1388, %1202, %1189, %982, %969, %762
  %2153 = load ptr, ptr %19, align 8, !tbaa !9
  %2154 = load i32, ptr %23, align 4, !tbaa !5
  %2155 = add nsw i32 %2154, 1
  store i32 %2155, ptr %23, align 4, !tbaa !5
  %2156 = sext i32 %2154 to i64
  %2157 = getelementptr inbounds i32, ptr %2153, i64 %2156
  store i32 0, ptr %2157, align 4, !tbaa !5
  br label %2158

2158:                                             ; preds = %2152, %2146
  store i32 2, ptr %24, align 4, !tbaa !5
  br label %2159

2159:                                             ; preds = %2457, %2158
  %2160 = load i32, ptr %24, align 4, !tbaa !5
  %2161 = icmp sge i32 %2160, 0
  br i1 %2161, label %2162, label %2460

2162:                                             ; preds = %2159
  %2163 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2164 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2163, i32 0, i32 8
  %2165 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2164, i64 0, i64 7
  %2166 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2165, i32 0, i32 1
  %2167 = load i32, ptr %2166, align 4, !tbaa !15
  %2168 = icmp eq i32 %2167, 0
  br i1 %2168, label %2169, label %2186

2169:                                             ; preds = %2162
  %2170 = load ptr, ptr %16, align 8, !tbaa !9
  %2171 = load i32, ptr %22, align 4, !tbaa !5
  %2172 = load i32, ptr %24, align 4, !tbaa !5
  %2173 = sub nsw i32 %2171, %2172
  %2174 = sext i32 %2173 to i64
  %2175 = getelementptr inbounds double, ptr %2170, i64 %2174
  %2176 = load double, ptr %2175, align 8, !tbaa !11
  %2177 = load ptr, ptr %13, align 8, !tbaa !9
  %2178 = load i32, ptr %22, align 4, !tbaa !5
  %2179 = load i32, ptr %24, align 4, !tbaa !5
  %2180 = sub nsw i32 %2178, %2179
  %2181 = sext i32 %2180 to i64
  %2182 = getelementptr inbounds double, ptr %2177, i64 %2181
  %2183 = load double, ptr %2182, align 8, !tbaa !11
  %2184 = fsub double %2176, %2183
  %2185 = call double @llvm.fabs.f64(double %2184)
  br label %2305

2186:                                             ; preds = %2162
  %2187 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2188 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2187, i32 0, i32 8
  %2189 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2188, i64 0, i64 7
  %2190 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2189, i32 0, i32 1
  %2191 = load i32, ptr %2190, align 4, !tbaa !15
  %2192 = icmp eq i32 %2191, 1
  br i1 %2192, label %2193, label %2209

2193:                                             ; preds = %2186
  %2194 = load ptr, ptr %14, align 8, !tbaa !9
  %2195 = load i32, ptr %22, align 4, !tbaa !5
  %2196 = load i32, ptr %24, align 4, !tbaa !5
  %2197 = sub nsw i32 %2195, %2196
  %2198 = sext i32 %2197 to i64
  %2199 = getelementptr inbounds double, ptr %2194, i64 %2198
  %2200 = load double, ptr %2199, align 8, !tbaa !11
  %2201 = load ptr, ptr %15, align 8, !tbaa !9
  %2202 = load i32, ptr %22, align 4, !tbaa !5
  %2203 = load i32, ptr %24, align 4, !tbaa !5
  %2204 = sub nsw i32 %2202, %2203
  %2205 = sext i32 %2204 to i64
  %2206 = getelementptr inbounds double, ptr %2201, i64 %2205
  %2207 = load double, ptr %2206, align 8, !tbaa !11
  %2208 = fsub double %2200, %2207
  br label %2303

2209:                                             ; preds = %2186
  %2210 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2211 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2210, i32 0, i32 8
  %2212 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2211, i64 0, i64 7
  %2213 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2212, i32 0, i32 1
  %2214 = load i32, ptr %2213, align 4, !tbaa !15
  %2215 = icmp eq i32 %2214, 2
  br i1 %2215, label %2216, label %2300

2216:                                             ; preds = %2209
  %2217 = load ptr, ptr %14, align 8, !tbaa !9
  %2218 = load i32, ptr %22, align 4, !tbaa !5
  %2219 = load i32, ptr %24, align 4, !tbaa !5
  %2220 = sub nsw i32 %2218, %2219
  %2221 = sext i32 %2220 to i64
  %2222 = getelementptr inbounds double, ptr %2217, i64 %2221
  %2223 = load double, ptr %2222, align 8, !tbaa !11
  %2224 = load ptr, ptr %16, align 8, !tbaa !9
  %2225 = load i32, ptr %22, align 4, !tbaa !5
  %2226 = load i32, ptr %24, align 4, !tbaa !5
  %2227 = sub nsw i32 %2225, %2226
  %2228 = sext i32 %2227 to i64
  %2229 = getelementptr inbounds double, ptr %2224, i64 %2228
  %2230 = load double, ptr %2229, align 8, !tbaa !11
  %2231 = load ptr, ptr %13, align 8, !tbaa !9
  %2232 = load i32, ptr %22, align 4, !tbaa !5
  %2233 = load i32, ptr %24, align 4, !tbaa !5
  %2234 = sub nsw i32 %2232, %2233
  %2235 = sext i32 %2234 to i64
  %2236 = getelementptr inbounds double, ptr %2231, i64 %2235
  %2237 = load double, ptr %2236, align 8, !tbaa !11
  %2238 = fcmp oge double %2230, %2237
  br i1 %2238, label %2239, label %2247

2239:                                             ; preds = %2216
  %2240 = load ptr, ptr %16, align 8, !tbaa !9
  %2241 = load i32, ptr %22, align 4, !tbaa !5
  %2242 = load i32, ptr %24, align 4, !tbaa !5
  %2243 = sub nsw i32 %2241, %2242
  %2244 = sext i32 %2243 to i64
  %2245 = getelementptr inbounds double, ptr %2240, i64 %2244
  %2246 = load double, ptr %2245, align 8, !tbaa !11
  br label %2255

2247:                                             ; preds = %2216
  %2248 = load ptr, ptr %13, align 8, !tbaa !9
  %2249 = load i32, ptr %22, align 4, !tbaa !5
  %2250 = load i32, ptr %24, align 4, !tbaa !5
  %2251 = sub nsw i32 %2249, %2250
  %2252 = sext i32 %2251 to i64
  %2253 = getelementptr inbounds double, ptr %2248, i64 %2252
  %2254 = load double, ptr %2253, align 8, !tbaa !11
  br label %2255

2255:                                             ; preds = %2247, %2239
  %2256 = phi double [ %2246, %2239 ], [ %2254, %2247 ]
  %2257 = fsub double %2223, %2256
  %2258 = load ptr, ptr %16, align 8, !tbaa !9
  %2259 = load i32, ptr %22, align 4, !tbaa !5
  %2260 = load i32, ptr %24, align 4, !tbaa !5
  %2261 = sub nsw i32 %2259, %2260
  %2262 = sext i32 %2261 to i64
  %2263 = getelementptr inbounds double, ptr %2258, i64 %2262
  %2264 = load double, ptr %2263, align 8, !tbaa !11
  %2265 = load ptr, ptr %13, align 8, !tbaa !9
  %2266 = load i32, ptr %22, align 4, !tbaa !5
  %2267 = load i32, ptr %24, align 4, !tbaa !5
  %2268 = sub nsw i32 %2266, %2267
  %2269 = sext i32 %2268 to i64
  %2270 = getelementptr inbounds double, ptr %2265, i64 %2269
  %2271 = load double, ptr %2270, align 8, !tbaa !11
  %2272 = fcmp oge double %2264, %2271
  br i1 %2272, label %2273, label %2281

2273:                                             ; preds = %2255
  %2274 = load ptr, ptr %13, align 8, !tbaa !9
  %2275 = load i32, ptr %22, align 4, !tbaa !5
  %2276 = load i32, ptr %24, align 4, !tbaa !5
  %2277 = sub nsw i32 %2275, %2276
  %2278 = sext i32 %2277 to i64
  %2279 = getelementptr inbounds double, ptr %2274, i64 %2278
  %2280 = load double, ptr %2279, align 8, !tbaa !11
  br label %2289

2281:                                             ; preds = %2255
  %2282 = load ptr, ptr %16, align 8, !tbaa !9
  %2283 = load i32, ptr %22, align 4, !tbaa !5
  %2284 = load i32, ptr %24, align 4, !tbaa !5
  %2285 = sub nsw i32 %2283, %2284
  %2286 = sext i32 %2285 to i64
  %2287 = getelementptr inbounds double, ptr %2282, i64 %2286
  %2288 = load double, ptr %2287, align 8, !tbaa !11
  br label %2289

2289:                                             ; preds = %2281, %2273
  %2290 = phi double [ %2280, %2273 ], [ %2288, %2281 ]
  %2291 = load ptr, ptr %15, align 8, !tbaa !9
  %2292 = load i32, ptr %22, align 4, !tbaa !5
  %2293 = load i32, ptr %24, align 4, !tbaa !5
  %2294 = sub nsw i32 %2292, %2293
  %2295 = sext i32 %2294 to i64
  %2296 = getelementptr inbounds double, ptr %2291, i64 %2295
  %2297 = load double, ptr %2296, align 8, !tbaa !11
  %2298 = fsub double %2290, %2297
  %2299 = fadd double %2257, %2298
  br label %2301

2300:                                             ; preds = %2209
  br label %2301

2301:                                             ; preds = %2300, %2289
  %2302 = phi double [ %2299, %2289 ], [ 0.000000e+00, %2300 ]
  br label %2303

2303:                                             ; preds = %2301, %2193
  %2304 = phi double [ %2208, %2193 ], [ %2302, %2301 ]
  br label %2305

2305:                                             ; preds = %2303, %2169
  %2306 = phi double [ %2185, %2169 ], [ %2304, %2303 ]
  %2307 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2308 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2307, i32 0, i32 8
  %2309 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2308, i64 0, i64 7
  %2310 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2309, i32 0, i32 1
  %2311 = load i32, ptr %2310, align 4, !tbaa !15
  %2312 = icmp eq i32 %2311, 0
  br i1 %2312, label %2313, label %2330

2313:                                             ; preds = %2305
  %2314 = load ptr, ptr %16, align 8, !tbaa !9
  %2315 = load i32, ptr %25, align 4, !tbaa !5
  %2316 = load i32, ptr %24, align 4, !tbaa !5
  %2317 = sub nsw i32 %2315, %2316
  %2318 = sext i32 %2317 to i64
  %2319 = getelementptr inbounds double, ptr %2314, i64 %2318
  %2320 = load double, ptr %2319, align 8, !tbaa !11
  %2321 = load ptr, ptr %13, align 8, !tbaa !9
  %2322 = load i32, ptr %25, align 4, !tbaa !5
  %2323 = load i32, ptr %24, align 4, !tbaa !5
  %2324 = sub nsw i32 %2322, %2323
  %2325 = sext i32 %2324 to i64
  %2326 = getelementptr inbounds double, ptr %2321, i64 %2325
  %2327 = load double, ptr %2326, align 8, !tbaa !11
  %2328 = fsub double %2320, %2327
  %2329 = call double @llvm.fabs.f64(double %2328)
  br label %2449

2330:                                             ; preds = %2305
  %2331 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2332 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2331, i32 0, i32 8
  %2333 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2332, i64 0, i64 7
  %2334 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2333, i32 0, i32 1
  %2335 = load i32, ptr %2334, align 4, !tbaa !15
  %2336 = icmp eq i32 %2335, 1
  br i1 %2336, label %2337, label %2353

2337:                                             ; preds = %2330
  %2338 = load ptr, ptr %14, align 8, !tbaa !9
  %2339 = load i32, ptr %25, align 4, !tbaa !5
  %2340 = load i32, ptr %24, align 4, !tbaa !5
  %2341 = sub nsw i32 %2339, %2340
  %2342 = sext i32 %2341 to i64
  %2343 = getelementptr inbounds double, ptr %2338, i64 %2342
  %2344 = load double, ptr %2343, align 8, !tbaa !11
  %2345 = load ptr, ptr %15, align 8, !tbaa !9
  %2346 = load i32, ptr %25, align 4, !tbaa !5
  %2347 = load i32, ptr %24, align 4, !tbaa !5
  %2348 = sub nsw i32 %2346, %2347
  %2349 = sext i32 %2348 to i64
  %2350 = getelementptr inbounds double, ptr %2345, i64 %2349
  %2351 = load double, ptr %2350, align 8, !tbaa !11
  %2352 = fsub double %2344, %2351
  br label %2447

2353:                                             ; preds = %2330
  %2354 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2355 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2354, i32 0, i32 8
  %2356 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2355, i64 0, i64 7
  %2357 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2356, i32 0, i32 1
  %2358 = load i32, ptr %2357, align 4, !tbaa !15
  %2359 = icmp eq i32 %2358, 2
  br i1 %2359, label %2360, label %2444

2360:                                             ; preds = %2353
  %2361 = load ptr, ptr %14, align 8, !tbaa !9
  %2362 = load i32, ptr %25, align 4, !tbaa !5
  %2363 = load i32, ptr %24, align 4, !tbaa !5
  %2364 = sub nsw i32 %2362, %2363
  %2365 = sext i32 %2364 to i64
  %2366 = getelementptr inbounds double, ptr %2361, i64 %2365
  %2367 = load double, ptr %2366, align 8, !tbaa !11
  %2368 = load ptr, ptr %16, align 8, !tbaa !9
  %2369 = load i32, ptr %25, align 4, !tbaa !5
  %2370 = load i32, ptr %24, align 4, !tbaa !5
  %2371 = sub nsw i32 %2369, %2370
  %2372 = sext i32 %2371 to i64
  %2373 = getelementptr inbounds double, ptr %2368, i64 %2372
  %2374 = load double, ptr %2373, align 8, !tbaa !11
  %2375 = load ptr, ptr %13, align 8, !tbaa !9
  %2376 = load i32, ptr %25, align 4, !tbaa !5
  %2377 = load i32, ptr %24, align 4, !tbaa !5
  %2378 = sub nsw i32 %2376, %2377
  %2379 = sext i32 %2378 to i64
  %2380 = getelementptr inbounds double, ptr %2375, i64 %2379
  %2381 = load double, ptr %2380, align 8, !tbaa !11
  %2382 = fcmp oge double %2374, %2381
  br i1 %2382, label %2383, label %2391

2383:                                             ; preds = %2360
  %2384 = load ptr, ptr %16, align 8, !tbaa !9
  %2385 = load i32, ptr %25, align 4, !tbaa !5
  %2386 = load i32, ptr %24, align 4, !tbaa !5
  %2387 = sub nsw i32 %2385, %2386
  %2388 = sext i32 %2387 to i64
  %2389 = getelementptr inbounds double, ptr %2384, i64 %2388
  %2390 = load double, ptr %2389, align 8, !tbaa !11
  br label %2399

2391:                                             ; preds = %2360
  %2392 = load ptr, ptr %13, align 8, !tbaa !9
  %2393 = load i32, ptr %25, align 4, !tbaa !5
  %2394 = load i32, ptr %24, align 4, !tbaa !5
  %2395 = sub nsw i32 %2393, %2394
  %2396 = sext i32 %2395 to i64
  %2397 = getelementptr inbounds double, ptr %2392, i64 %2396
  %2398 = load double, ptr %2397, align 8, !tbaa !11
  br label %2399

2399:                                             ; preds = %2391, %2383
  %2400 = phi double [ %2390, %2383 ], [ %2398, %2391 ]
  %2401 = fsub double %2367, %2400
  %2402 = load ptr, ptr %16, align 8, !tbaa !9
  %2403 = load i32, ptr %25, align 4, !tbaa !5
  %2404 = load i32, ptr %24, align 4, !tbaa !5
  %2405 = sub nsw i32 %2403, %2404
  %2406 = sext i32 %2405 to i64
  %2407 = getelementptr inbounds double, ptr %2402, i64 %2406
  %2408 = load double, ptr %2407, align 8, !tbaa !11
  %2409 = load ptr, ptr %13, align 8, !tbaa !9
  %2410 = load i32, ptr %25, align 4, !tbaa !5
  %2411 = load i32, ptr %24, align 4, !tbaa !5
  %2412 = sub nsw i32 %2410, %2411
  %2413 = sext i32 %2412 to i64
  %2414 = getelementptr inbounds double, ptr %2409, i64 %2413
  %2415 = load double, ptr %2414, align 8, !tbaa !11
  %2416 = fcmp oge double %2408, %2415
  br i1 %2416, label %2417, label %2425

2417:                                             ; preds = %2399
  %2418 = load ptr, ptr %13, align 8, !tbaa !9
  %2419 = load i32, ptr %25, align 4, !tbaa !5
  %2420 = load i32, ptr %24, align 4, !tbaa !5
  %2421 = sub nsw i32 %2419, %2420
  %2422 = sext i32 %2421 to i64
  %2423 = getelementptr inbounds double, ptr %2418, i64 %2422
  %2424 = load double, ptr %2423, align 8, !tbaa !11
  br label %2433

2425:                                             ; preds = %2399
  %2426 = load ptr, ptr %16, align 8, !tbaa !9
  %2427 = load i32, ptr %25, align 4, !tbaa !5
  %2428 = load i32, ptr %24, align 4, !tbaa !5
  %2429 = sub nsw i32 %2427, %2428
  %2430 = sext i32 %2429 to i64
  %2431 = getelementptr inbounds double, ptr %2426, i64 %2430
  %2432 = load double, ptr %2431, align 8, !tbaa !11
  br label %2433

2433:                                             ; preds = %2425, %2417
  %2434 = phi double [ %2424, %2417 ], [ %2432, %2425 ]
  %2435 = load ptr, ptr %15, align 8, !tbaa !9
  %2436 = load i32, ptr %25, align 4, !tbaa !5
  %2437 = load i32, ptr %24, align 4, !tbaa !5
  %2438 = sub nsw i32 %2436, %2437
  %2439 = sext i32 %2438 to i64
  %2440 = getelementptr inbounds double, ptr %2435, i64 %2439
  %2441 = load double, ptr %2440, align 8, !tbaa !11
  %2442 = fsub double %2434, %2441
  %2443 = fadd double %2401, %2442
  br label %2445

2444:                                             ; preds = %2353
  br label %2445

2445:                                             ; preds = %2444, %2433
  %2446 = phi double [ %2443, %2433 ], [ 0.000000e+00, %2444 ]
  br label %2447

2447:                                             ; preds = %2445, %2337
  %2448 = phi double [ %2352, %2337 ], [ %2446, %2445 ]
  br label %2449

2449:                                             ; preds = %2447, %2313
  %2450 = phi double [ %2329, %2313 ], [ %2448, %2447 ]
  %2451 = fsub double %2306, %2450
  %2452 = load i32, ptr %24, align 4, !tbaa !5
  %2453 = sext i32 %2452 to i64
  %2454 = getelementptr inbounds [3 x double], ptr %20, i64 0, i64 %2453
  %2455 = load double, ptr %2454, align 8, !tbaa !11
  %2456 = fadd double %2455, %2451
  store double %2456, ptr %2454, align 8, !tbaa !11
  br label %2457

2457:                                             ; preds = %2449
  %2458 = load i32, ptr %24, align 4, !tbaa !5
  %2459 = add nsw i32 %2458, -1
  store i32 %2459, ptr %24, align 4, !tbaa !5
  br label %2159, !llvm.loop !20

2460:                                             ; preds = %2159
  store i32 2, ptr %24, align 4, !tbaa !5
  br label %2461

2461:                                             ; preds = %2759, %2460
  %2462 = load i32, ptr %24, align 4, !tbaa !5
  %2463 = icmp sge i32 %2462, 1
  br i1 %2463, label %2464, label %2762

2464:                                             ; preds = %2461
  %2465 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2466 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2465, i32 0, i32 8
  %2467 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2466, i64 0, i64 10
  %2468 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2467, i32 0, i32 1
  %2469 = load i32, ptr %2468, align 4, !tbaa !15
  %2470 = icmp eq i32 %2469, 0
  br i1 %2470, label %2471, label %2488

2471:                                             ; preds = %2464
  %2472 = load ptr, ptr %16, align 8, !tbaa !9
  %2473 = load i32, ptr %22, align 4, !tbaa !5
  %2474 = load i32, ptr %24, align 4, !tbaa !5
  %2475 = sub nsw i32 %2473, %2474
  %2476 = sext i32 %2475 to i64
  %2477 = getelementptr inbounds double, ptr %2472, i64 %2476
  %2478 = load double, ptr %2477, align 8, !tbaa !11
  %2479 = load ptr, ptr %13, align 8, !tbaa !9
  %2480 = load i32, ptr %22, align 4, !tbaa !5
  %2481 = load i32, ptr %24, align 4, !tbaa !5
  %2482 = sub nsw i32 %2480, %2481
  %2483 = sext i32 %2482 to i64
  %2484 = getelementptr inbounds double, ptr %2479, i64 %2483
  %2485 = load double, ptr %2484, align 8, !tbaa !11
  %2486 = fsub double %2478, %2485
  %2487 = call double @llvm.fabs.f64(double %2486)
  br label %2607

2488:                                             ; preds = %2464
  %2489 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2490 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2489, i32 0, i32 8
  %2491 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2490, i64 0, i64 10
  %2492 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2491, i32 0, i32 1
  %2493 = load i32, ptr %2492, align 4, !tbaa !15
  %2494 = icmp eq i32 %2493, 1
  br i1 %2494, label %2495, label %2511

2495:                                             ; preds = %2488
  %2496 = load ptr, ptr %14, align 8, !tbaa !9
  %2497 = load i32, ptr %22, align 4, !tbaa !5
  %2498 = load i32, ptr %24, align 4, !tbaa !5
  %2499 = sub nsw i32 %2497, %2498
  %2500 = sext i32 %2499 to i64
  %2501 = getelementptr inbounds double, ptr %2496, i64 %2500
  %2502 = load double, ptr %2501, align 8, !tbaa !11
  %2503 = load ptr, ptr %15, align 8, !tbaa !9
  %2504 = load i32, ptr %22, align 4, !tbaa !5
  %2505 = load i32, ptr %24, align 4, !tbaa !5
  %2506 = sub nsw i32 %2504, %2505
  %2507 = sext i32 %2506 to i64
  %2508 = getelementptr inbounds double, ptr %2503, i64 %2507
  %2509 = load double, ptr %2508, align 8, !tbaa !11
  %2510 = fsub double %2502, %2509
  br label %2605

2511:                                             ; preds = %2488
  %2512 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2513 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2512, i32 0, i32 8
  %2514 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2513, i64 0, i64 10
  %2515 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2514, i32 0, i32 1
  %2516 = load i32, ptr %2515, align 4, !tbaa !15
  %2517 = icmp eq i32 %2516, 2
  br i1 %2517, label %2518, label %2602

2518:                                             ; preds = %2511
  %2519 = load ptr, ptr %14, align 8, !tbaa !9
  %2520 = load i32, ptr %22, align 4, !tbaa !5
  %2521 = load i32, ptr %24, align 4, !tbaa !5
  %2522 = sub nsw i32 %2520, %2521
  %2523 = sext i32 %2522 to i64
  %2524 = getelementptr inbounds double, ptr %2519, i64 %2523
  %2525 = load double, ptr %2524, align 8, !tbaa !11
  %2526 = load ptr, ptr %16, align 8, !tbaa !9
  %2527 = load i32, ptr %22, align 4, !tbaa !5
  %2528 = load i32, ptr %24, align 4, !tbaa !5
  %2529 = sub nsw i32 %2527, %2528
  %2530 = sext i32 %2529 to i64
  %2531 = getelementptr inbounds double, ptr %2526, i64 %2530
  %2532 = load double, ptr %2531, align 8, !tbaa !11
  %2533 = load ptr, ptr %13, align 8, !tbaa !9
  %2534 = load i32, ptr %22, align 4, !tbaa !5
  %2535 = load i32, ptr %24, align 4, !tbaa !5
  %2536 = sub nsw i32 %2534, %2535
  %2537 = sext i32 %2536 to i64
  %2538 = getelementptr inbounds double, ptr %2533, i64 %2537
  %2539 = load double, ptr %2538, align 8, !tbaa !11
  %2540 = fcmp oge double %2532, %2539
  br i1 %2540, label %2541, label %2549

2541:                                             ; preds = %2518
  %2542 = load ptr, ptr %16, align 8, !tbaa !9
  %2543 = load i32, ptr %22, align 4, !tbaa !5
  %2544 = load i32, ptr %24, align 4, !tbaa !5
  %2545 = sub nsw i32 %2543, %2544
  %2546 = sext i32 %2545 to i64
  %2547 = getelementptr inbounds double, ptr %2542, i64 %2546
  %2548 = load double, ptr %2547, align 8, !tbaa !11
  br label %2557

2549:                                             ; preds = %2518
  %2550 = load ptr, ptr %13, align 8, !tbaa !9
  %2551 = load i32, ptr %22, align 4, !tbaa !5
  %2552 = load i32, ptr %24, align 4, !tbaa !5
  %2553 = sub nsw i32 %2551, %2552
  %2554 = sext i32 %2553 to i64
  %2555 = getelementptr inbounds double, ptr %2550, i64 %2554
  %2556 = load double, ptr %2555, align 8, !tbaa !11
  br label %2557

2557:                                             ; preds = %2549, %2541
  %2558 = phi double [ %2548, %2541 ], [ %2556, %2549 ]
  %2559 = fsub double %2525, %2558
  %2560 = load ptr, ptr %16, align 8, !tbaa !9
  %2561 = load i32, ptr %22, align 4, !tbaa !5
  %2562 = load i32, ptr %24, align 4, !tbaa !5
  %2563 = sub nsw i32 %2561, %2562
  %2564 = sext i32 %2563 to i64
  %2565 = getelementptr inbounds double, ptr %2560, i64 %2564
  %2566 = load double, ptr %2565, align 8, !tbaa !11
  %2567 = load ptr, ptr %13, align 8, !tbaa !9
  %2568 = load i32, ptr %22, align 4, !tbaa !5
  %2569 = load i32, ptr %24, align 4, !tbaa !5
  %2570 = sub nsw i32 %2568, %2569
  %2571 = sext i32 %2570 to i64
  %2572 = getelementptr inbounds double, ptr %2567, i64 %2571
  %2573 = load double, ptr %2572, align 8, !tbaa !11
  %2574 = fcmp oge double %2566, %2573
  br i1 %2574, label %2575, label %2583

2575:                                             ; preds = %2557
  %2576 = load ptr, ptr %13, align 8, !tbaa !9
  %2577 = load i32, ptr %22, align 4, !tbaa !5
  %2578 = load i32, ptr %24, align 4, !tbaa !5
  %2579 = sub nsw i32 %2577, %2578
  %2580 = sext i32 %2579 to i64
  %2581 = getelementptr inbounds double, ptr %2576, i64 %2580
  %2582 = load double, ptr %2581, align 8, !tbaa !11
  br label %2591

2583:                                             ; preds = %2557
  %2584 = load ptr, ptr %16, align 8, !tbaa !9
  %2585 = load i32, ptr %22, align 4, !tbaa !5
  %2586 = load i32, ptr %24, align 4, !tbaa !5
  %2587 = sub nsw i32 %2585, %2586
  %2588 = sext i32 %2587 to i64
  %2589 = getelementptr inbounds double, ptr %2584, i64 %2588
  %2590 = load double, ptr %2589, align 8, !tbaa !11
  br label %2591

2591:                                             ; preds = %2583, %2575
  %2592 = phi double [ %2582, %2575 ], [ %2590, %2583 ]
  %2593 = load ptr, ptr %15, align 8, !tbaa !9
  %2594 = load i32, ptr %22, align 4, !tbaa !5
  %2595 = load i32, ptr %24, align 4, !tbaa !5
  %2596 = sub nsw i32 %2594, %2595
  %2597 = sext i32 %2596 to i64
  %2598 = getelementptr inbounds double, ptr %2593, i64 %2597
  %2599 = load double, ptr %2598, align 8, !tbaa !11
  %2600 = fsub double %2592, %2599
  %2601 = fadd double %2559, %2600
  br label %2603

2602:                                             ; preds = %2511
  br label %2603

2603:                                             ; preds = %2602, %2591
  %2604 = phi double [ %2601, %2591 ], [ 0.000000e+00, %2602 ]
  br label %2605

2605:                                             ; preds = %2603, %2495
  %2606 = phi double [ %2510, %2495 ], [ %2604, %2603 ]
  br label %2607

2607:                                             ; preds = %2605, %2471
  %2608 = phi double [ %2487, %2471 ], [ %2606, %2605 ]
  %2609 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2610 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2609, i32 0, i32 8
  %2611 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2610, i64 0, i64 10
  %2612 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2611, i32 0, i32 1
  %2613 = load i32, ptr %2612, align 4, !tbaa !15
  %2614 = icmp eq i32 %2613, 0
  br i1 %2614, label %2615, label %2632

2615:                                             ; preds = %2607
  %2616 = load ptr, ptr %16, align 8, !tbaa !9
  %2617 = load i32, ptr %26, 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 double, ptr %2616, i64 %2620
  %2622 = load double, ptr %2621, align 8, !tbaa !11
  %2623 = load ptr, ptr %13, align 8, !tbaa !9
  %2624 = load i32, ptr %26, align 4, !tbaa !5
  %2625 = load i32, ptr %24, align 4, !tbaa !5
  %2626 = sub nsw i32 %2624, %2625
  %2627 = sext i32 %2626 to i64
  %2628 = getelementptr inbounds double, ptr %2623, i64 %2627
  %2629 = load double, ptr %2628, align 8, !tbaa !11
  %2630 = fsub double %2622, %2629
  %2631 = call double @llvm.fabs.f64(double %2630)
  br label %2751

2632:                                             ; preds = %2607
  %2633 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2634 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2633, i32 0, i32 8
  %2635 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2634, i64 0, i64 10
  %2636 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2635, i32 0, i32 1
  %2637 = load i32, ptr %2636, align 4, !tbaa !15
  %2638 = icmp eq i32 %2637, 1
  br i1 %2638, label %2639, label %2655

2639:                                             ; preds = %2632
  %2640 = load ptr, ptr %14, align 8, !tbaa !9
  %2641 = load i32, ptr %26, align 4, !tbaa !5
  %2642 = load i32, ptr %24, align 4, !tbaa !5
  %2643 = sub nsw i32 %2641, %2642
  %2644 = sext i32 %2643 to i64
  %2645 = getelementptr inbounds double, ptr %2640, i64 %2644
  %2646 = load double, ptr %2645, align 8, !tbaa !11
  %2647 = load ptr, ptr %15, align 8, !tbaa !9
  %2648 = load i32, ptr %26, align 4, !tbaa !5
  %2649 = load i32, ptr %24, align 4, !tbaa !5
  %2650 = sub nsw i32 %2648, %2649
  %2651 = sext i32 %2650 to i64
  %2652 = getelementptr inbounds double, ptr %2647, i64 %2651
  %2653 = load double, ptr %2652, align 8, !tbaa !11
  %2654 = fsub double %2646, %2653
  br label %2749

2655:                                             ; preds = %2632
  %2656 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2657 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2656, i32 0, i32 8
  %2658 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2657, i64 0, i64 10
  %2659 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2658, i32 0, i32 1
  %2660 = load i32, ptr %2659, align 4, !tbaa !15
  %2661 = icmp eq i32 %2660, 2
  br i1 %2661, label %2662, label %2746

2662:                                             ; preds = %2655
  %2663 = load ptr, ptr %14, align 8, !tbaa !9
  %2664 = load i32, ptr %26, align 4, !tbaa !5
  %2665 = load i32, ptr %24, align 4, !tbaa !5
  %2666 = sub nsw i32 %2664, %2665
  %2667 = sext i32 %2666 to i64
  %2668 = getelementptr inbounds double, ptr %2663, i64 %2667
  %2669 = load double, ptr %2668, align 8, !tbaa !11
  %2670 = load ptr, ptr %16, align 8, !tbaa !9
  %2671 = load i32, ptr %26, align 4, !tbaa !5
  %2672 = load i32, ptr %24, align 4, !tbaa !5
  %2673 = sub nsw i32 %2671, %2672
  %2674 = sext i32 %2673 to i64
  %2675 = getelementptr inbounds double, ptr %2670, i64 %2674
  %2676 = load double, ptr %2675, align 8, !tbaa !11
  %2677 = load ptr, ptr %13, align 8, !tbaa !9
  %2678 = load i32, ptr %26, align 4, !tbaa !5
  %2679 = load i32, ptr %24, align 4, !tbaa !5
  %2680 = sub nsw i32 %2678, %2679
  %2681 = sext i32 %2680 to i64
  %2682 = getelementptr inbounds double, ptr %2677, i64 %2681
  %2683 = load double, ptr %2682, align 8, !tbaa !11
  %2684 = fcmp oge double %2676, %2683
  br i1 %2684, label %2685, label %2693

2685:                                             ; preds = %2662
  %2686 = load ptr, ptr %16, align 8, !tbaa !9
  %2687 = load i32, ptr %26, align 4, !tbaa !5
  %2688 = load i32, ptr %24, align 4, !tbaa !5
  %2689 = sub nsw i32 %2687, %2688
  %2690 = sext i32 %2689 to i64
  %2691 = getelementptr inbounds double, ptr %2686, i64 %2690
  %2692 = load double, ptr %2691, align 8, !tbaa !11
  br label %2701

2693:                                             ; preds = %2662
  %2694 = load ptr, ptr %13, align 8, !tbaa !9
  %2695 = load i32, ptr %26, align 4, !tbaa !5
  %2696 = load i32, ptr %24, align 4, !tbaa !5
  %2697 = sub nsw i32 %2695, %2696
  %2698 = sext i32 %2697 to i64
  %2699 = getelementptr inbounds double, ptr %2694, i64 %2698
  %2700 = load double, ptr %2699, align 8, !tbaa !11
  br label %2701

2701:                                             ; preds = %2693, %2685
  %2702 = phi double [ %2692, %2685 ], [ %2700, %2693 ]
  %2703 = fsub double %2669, %2702
  %2704 = load ptr, ptr %16, align 8, !tbaa !9
  %2705 = load i32, ptr %26, align 4, !tbaa !5
  %2706 = load i32, ptr %24, align 4, !tbaa !5
  %2707 = sub nsw i32 %2705, %2706
  %2708 = sext i32 %2707 to i64
  %2709 = getelementptr inbounds double, ptr %2704, i64 %2708
  %2710 = load double, ptr %2709, align 8, !tbaa !11
  %2711 = load ptr, ptr %13, align 8, !tbaa !9
  %2712 = load i32, ptr %26, align 4, !tbaa !5
  %2713 = load i32, ptr %24, align 4, !tbaa !5
  %2714 = sub nsw i32 %2712, %2713
  %2715 = sext i32 %2714 to i64
  %2716 = getelementptr inbounds double, ptr %2711, i64 %2715
  %2717 = load double, ptr %2716, align 8, !tbaa !11
  %2718 = fcmp oge double %2710, %2717
  br i1 %2718, label %2719, label %2727

2719:                                             ; preds = %2701
  %2720 = load ptr, ptr %13, align 8, !tbaa !9
  %2721 = load i32, ptr %26, align 4, !tbaa !5
  %2722 = load i32, ptr %24, align 4, !tbaa !5
  %2723 = sub nsw i32 %2721, %2722
  %2724 = sext i32 %2723 to i64
  %2725 = getelementptr inbounds double, ptr %2720, i64 %2724
  %2726 = load double, ptr %2725, align 8, !tbaa !11
  br label %2735

2727:                                             ; preds = %2701
  %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 double, ptr %2728, i64 %2732
  %2734 = load double, ptr %2733, align 8, !tbaa !11
  br label %2735

2735:                                             ; preds = %2727, %2719
  %2736 = phi double [ %2726, %2719 ], [ %2734, %2727 ]
  %2737 = load ptr, ptr %15, align 8, !tbaa !9
  %2738 = load i32, ptr %26, align 4, !tbaa !5
  %2739 = load i32, ptr %24, align 4, !tbaa !5
  %2740 = sub nsw i32 %2738, %2739
  %2741 = sext i32 %2740 to i64
  %2742 = getelementptr inbounds double, ptr %2737, i64 %2741
  %2743 = load double, ptr %2742, align 8, !tbaa !11
  %2744 = fsub double %2736, %2743
  %2745 = fadd double %2703, %2744
  br label %2747

2746:                                             ; preds = %2655
  br label %2747

2747:                                             ; preds = %2746, %2735
  %2748 = phi double [ %2745, %2735 ], [ 0.000000e+00, %2746 ]
  br label %2749

2749:                                             ; preds = %2747, %2639
  %2750 = phi double [ %2654, %2639 ], [ %2748, %2747 ]
  br label %2751

2751:                                             ; preds = %2749, %2615
  %2752 = phi double [ %2631, %2615 ], [ %2750, %2749 ]
  %2753 = fsub double %2608, %2752
  %2754 = load i32, ptr %24, align 4, !tbaa !5
  %2755 = sext i32 %2754 to i64
  %2756 = getelementptr inbounds [3 x double], ptr %21, i64 0, i64 %2755
  %2757 = load double, ptr %2756, align 8, !tbaa !11
  %2758 = fadd double %2757, %2753
  store double %2758, ptr %2756, align 8, !tbaa !11
  br label %2759

2759:                                             ; preds = %2751
  %2760 = load i32, ptr %24, align 4, !tbaa !5
  %2761 = add nsw i32 %2760, -1
  store i32 %2761, ptr %24, align 4, !tbaa !5
  br label %2461, !llvm.loop !21

2762:                                             ; preds = %2461
  %2763 = load i32, ptr %22, align 4, !tbaa !5
  %2764 = add nsw i32 %2763, 1
  store i32 %2764, ptr %22, align 4, !tbaa !5
  %2765 = load i32, ptr %25, align 4, !tbaa !5
  %2766 = add nsw i32 %2765, 1
  store i32 %2766, ptr %25, align 4, !tbaa !5
  %2767 = load i32, ptr %26, align 4, !tbaa !5
  %2768 = add nsw i32 %2767, 1
  store i32 %2768, ptr %26, align 4, !tbaa !5
  br label %2769

2769:                                             ; preds = %2762
  %2770 = load i32, ptr %22, align 4, !tbaa !5
  %2771 = load i32, ptr %12, align 4, !tbaa !5
  %2772 = icmp sle i32 %2770, %2771
  br i1 %2772, label %762, label %2773, !llvm.loop !22

2773:                                             ; preds = %2769
  %2774 = load i32, ptr %23, align 4, !tbaa !5
  %2775 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %2774, ptr %2775, align 4, !tbaa !5
  %2776 = load i32, ptr %11, align 4, !tbaa !5
  %2777 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %2776, ptr %2777, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %28, align 4
  br label %2778

2778:                                             ; preds = %2773, %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
  %2779 = load i32, ptr %10, align 4
  ret i32 %2779
}

; 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

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 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = !{!14, !12, i64 16}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = distinct !{!22, !17}


; 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_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 %648, label %11

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

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

.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 %.preheader785 [
    i32 0, label %.thread.us.preheader
    i32 1, label %.thread757.us.preheader
    i32 2, label %.thread758.us.preheader
  ]

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

.thread757.us.preheader:                          ; preds = %.lr.ph
  %38 = sext i32 %29 to i64
  %39 = zext nneg i32 %spec.select to i64
  br label %.thread757.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.iv865 = phi i64 [ %40, %.thread.us.preheader ], [ %indvars.iv.next866, %.thread.us ]
  %42 = phi double [ 0.000000e+00, %.thread.us.preheader ], [ %51, %.thread.us ]
  %43 = phi <2 x double> [ zeroinitializer, %.thread.us.preheader ], [ %59, %.thread.us ]
  %44 = add nsw i64 %indvars.iv865, -2
  %45 = getelementptr inbounds double, ptr %5, i64 %44
  %46 = load double, ptr %45, align 8, !tbaa !15
  %47 = getelementptr inbounds double, ptr %2, i64 %44
  %48 = load double, ptr %47, align 8, !tbaa !15
  %49 = fsub double %46, %48
  %50 = tail call double @llvm.fabs.f64(double %49)
  %51 = fadd double %42, %50
  %52 = add nsw i64 %indvars.iv865, -1
  %53 = getelementptr inbounds double, ptr %5, i64 %52
  %54 = getelementptr inbounds double, ptr %2, i64 %52
  %55 = load <2 x double>, ptr %53, align 8, !tbaa !15
  %56 = load <2 x double>, ptr %54, align 8, !tbaa !15
  %57 = fsub <2 x double> %55, %56
  %58 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %57)
  %59 = fadd <2 x double> %43, %58
  %indvars.iv.next866 = add nsw i64 %indvars.iv865, 1
  %60 = icmp slt i64 %indvars.iv.next866, %41
  br i1 %60, label %.thread.us, label %.preheader785, !llvm.loop !16

.thread757.us:                                    ; preds = %.thread757.us.preheader, %.thread757.us
  %indvars.iv862 = phi i64 [ %38, %.thread757.us.preheader ], [ %indvars.iv.next863, %.thread757.us ]
  %61 = phi double [ 0.000000e+00, %.thread757.us.preheader ], [ %69, %.thread757.us ]
  %62 = phi <2 x double> [ zeroinitializer, %.thread757.us.preheader ], [ %76, %.thread757.us ]
  %63 = add nsw i64 %indvars.iv862, -2
  %64 = getelementptr inbounds double, ptr %3, i64 %63
  %65 = load double, ptr %64, align 8, !tbaa !15
  %66 = getelementptr inbounds double, ptr %4, i64 %63
  %67 = load double, ptr %66, align 8, !tbaa !15
  %68 = fsub double %65, %67
  %69 = fadd double %61, %68
  %70 = add nsw i64 %indvars.iv862, -1
  %71 = getelementptr inbounds double, ptr %3, i64 %70
  %72 = getelementptr inbounds double, ptr %4, i64 %70
  %73 = load <2 x double>, ptr %71, align 8, !tbaa !15
  %74 = load <2 x double>, ptr %72, align 8, !tbaa !15
  %75 = fsub <2 x double> %73, %74
  %76 = fadd <2 x double> %62, %75
  %indvars.iv.next863 = add nsw i64 %indvars.iv862, 1
  %77 = icmp slt i64 %indvars.iv.next863, %39
  br i1 %77, label %.thread757.us, label %.preheader785, !llvm.loop !16

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

.preheader785:                                    ; preds = %.thread758.us, %.thread757.us, %.thread.us, %.lr.ph, %25
  %.lcssa = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %.lr.ph ], [ %51, %.thread.us ], [ %69, %.thread757.us ], [ %94, %.thread758.us ]
  %112 = phi <2 x double> [ zeroinitializer, %25 ], [ zeroinitializer, %.lr.ph ], [ %59, %.thread.us ], [ %76, %.thread757.us ], [ %110, %.thread758.us ]
  %113 = icmp sgt i32 %31, 0
  br i1 %113, label %.lr.ph816, label %.preheader784

.lr.ph816:                                        ; preds = %.preheader785
  %114 = getelementptr inbounds i8, ptr %26, i64 452
  %115 = load i32, ptr %114, align 4, !tbaa !14
  switch i32 %115, label %.preheader784 [
    i32 0, label %.thread762.us.preheader
    i32 1, label %.thread763.us.preheader
    i32 2, label %.thread764.us.preheader
  ]

.thread764.us.preheader:                          ; preds = %.lr.ph816
  %116 = sext i32 %32 to i64
  %117 = zext nneg i32 %spec.select to i64
  br label %.thread764.us

.thread763.us.preheader:                          ; preds = %.lr.ph816
  %118 = sext i32 %32 to i64
  %119 = zext nneg i32 %spec.select to i64
  br label %.thread763.us

.thread762.us.preheader:                          ; preds = %.lr.ph816
  %120 = sext i32 %32 to i64
  %121 = zext nneg i32 %spec.select to i64
  br label %.thread762.us

.thread762.us:                                    ; preds = %.thread762.us.preheader, %.thread762.us
  %indvars.iv874 = phi i64 [ %120, %.thread762.us.preheader ], [ %indvars.iv.next875, %.thread762.us ]
  %122 = phi <2 x double> [ zeroinitializer, %.thread762.us.preheader ], [ %130, %.thread762.us ]
  %123 = add nsw i64 %indvars.iv874, -2
  %124 = getelementptr inbounds double, ptr %5, i64 %123
  %125 = getelementptr inbounds double, ptr %2, i64 %123
  %126 = load <2 x double>, ptr %124, align 8, !tbaa !15
  %127 = load <2 x double>, ptr %125, align 8, !tbaa !15
  %128 = fsub <2 x double> %126, %127
  %129 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %128)
  %130 = fadd <2 x double> %122, %129
  %indvars.iv.next875 = add nsw i64 %indvars.iv874, 1
  %131 = icmp slt i64 %indvars.iv.next875, %121
  br i1 %131, label %.thread762.us, label %.preheader784, !llvm.loop !18

.thread763.us:                                    ; preds = %.thread763.us.preheader, %.thread763.us
  %indvars.iv871 = phi i64 [ %118, %.thread763.us.preheader ], [ %indvars.iv.next872, %.thread763.us ]
  %132 = phi <2 x double> [ zeroinitializer, %.thread763.us.preheader ], [ %139, %.thread763.us ]
  %133 = add nsw i64 %indvars.iv871, -2
  %134 = getelementptr inbounds double, ptr %3, i64 %133
  %135 = getelementptr inbounds double, ptr %4, i64 %133
  %136 = load <2 x double>, ptr %134, align 8, !tbaa !15
  %137 = load <2 x double>, ptr %135, align 8, !tbaa !15
  %138 = fsub <2 x double> %136, %137
  %139 = fadd <2 x double> %132, %138
  %indvars.iv.next872 = add nsw i64 %indvars.iv871, 1
  %140 = icmp slt i64 %indvars.iv.next872, %119
  br i1 %140, label %.thread763.us, label %.preheader784, !llvm.loop !18

.thread764.us:                                    ; preds = %.thread764.us.preheader, %.thread764.us
  %indvars.iv868 = phi i64 [ %116, %.thread764.us.preheader ], [ %indvars.iv.next869, %.thread764.us ]
  %141 = phi <2 x double> [ zeroinitializer, %.thread764.us.preheader ], [ %157, %.thread764.us ]
  %142 = add nsw i64 %indvars.iv868, -2
  %143 = getelementptr inbounds double, ptr %3, i64 %142
  %144 = getelementptr inbounds double, ptr %5, i64 %142
  %145 = getelementptr inbounds double, ptr %2, i64 %142
  %146 = getelementptr inbounds double, ptr %4, i64 %142
  %147 = load <2 x double>, ptr %143, align 8, !tbaa !15
  %148 = load <2 x double>, ptr %144, align 8, !tbaa !15
  %149 = load <2 x double>, ptr %145, align 8, !tbaa !15
  %150 = fcmp ult <2 x double> %148, %149
  %151 = select <2 x i1> %150, <2 x double> %149, <2 x double> %148
  %152 = fsub <2 x double> %147, %151
  %153 = select <2 x i1> %150, <2 x double> %148, <2 x double> %149
  %154 = load <2 x double>, ptr %146, align 8, !tbaa !15
  %155 = fsub <2 x double> %153, %154
  %156 = fadd <2 x double> %152, %155
  %157 = fadd <2 x double> %141, %156
  %indvars.iv.next869 = add nsw i64 %indvars.iv868, 1
  %158 = icmp slt i64 %indvars.iv.next869, %117
  br i1 %158, label %.thread764.us, label %.preheader784, !llvm.loop !18

.preheader784:                                    ; preds = %.thread764.us, %.thread763.us, %.thread762.us, %.lr.ph816, %.preheader785
  %159 = phi <2 x double> [ zeroinitializer, %.preheader785 ], [ zeroinitializer, %.lr.ph816 ], [ %130, %.thread762.us ], [ %139, %.thread763.us ], [ %157, %.thread764.us ]
  %160 = getelementptr inbounds i8, ptr %26, i64 380
  %161 = getelementptr inbounds i8, ptr %26, i64 452
  %162 = getelementptr inbounds i8, ptr %26, i64 392
  %163 = getelementptr inbounds i8, ptr %26, i64 464
  %164 = sext i32 %22 to i64
  %165 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %164, i64 %165)
  %166 = sext i32 %1 to i64
  %167 = sext i32 %29 to i64
  %168 = sext i32 %32 to i64
  br label %169

169:                                              ; preds = %.preheader784, %640
  %.sroa.14.0 = phi double [ %.lcssa, %.preheader784 ], [ %506, %640 ]
  %indvars.iv889 = phi i64 [ %168, %.preheader784 ], [ %indvars.iv.next890, %640 ]
  %indvars.iv887 = phi i64 [ %167, %.preheader784 ], [ %indvars.iv.next888, %640 ]
  %indvars.iv885 = phi i64 [ 0, %.preheader784 ], [ %indvars.iv.next886, %640 ]
  %indvars.iv883 = phi i64 [ %smax, %.preheader784 ], [ %indvars.iv.next884, %640 ]
  %170 = phi <2 x double> [ %112, %.preheader784 ], [ %510, %640 ]
  %171 = phi <2 x double> [ %159, %.preheader784 ], [ %645, %640 ]
  %172 = add nsw i64 %indvars.iv883, -2
  %173 = getelementptr inbounds double, ptr %5, i64 %172
  %174 = load double, ptr %173, align 8, !tbaa !15
  %175 = getelementptr inbounds double, ptr %2, i64 %172
  %176 = load double, ptr %175, align 8, !tbaa !15
  %177 = fcmp ult double %174, %176
  br i1 %177, label %178, label %383

178:                                              ; preds = %169
  %179 = getelementptr inbounds double, ptr %4, i64 %172
  %180 = load double, ptr %179, align 8, !tbaa !15
  %181 = fsub double %174, %180
  %182 = load double, ptr %162, align 8, !tbaa !19
  %183 = load i32, ptr %27, align 8, !tbaa !11
  %.not732 = icmp eq i32 %183, 0
  br i1 %.not732, label %184, label %197

184:                                              ; preds = %178
  %185 = load i32, ptr %160, align 4, !tbaa !14
  switch i32 %185, label %.thread [
    i32 0, label %186
    i32 1, label %189
    i32 2, label %.thread907
  ]

186:                                              ; preds = %184
  %187 = fsub double %174, %176
  %188 = tail call double @llvm.fabs.f64(double %187)
  br label %.thread

189:                                              ; preds = %184
  %190 = getelementptr inbounds double, ptr %3, i64 %172
  %191 = load double, ptr %190, align 8, !tbaa !15
  %192 = fsub double %191, %180
  br label %.thread

.thread907:                                       ; preds = %184
  %193 = getelementptr inbounds double, ptr %3, i64 %172
  %194 = load double, ptr %193, align 8, !tbaa !15
  %195 = fsub double %194, %176
  %196 = fadd double %181, %195
  br label %.thread

197:                                              ; preds = %178
  %198 = sitofp i32 %183 to double
  %199 = fdiv double %.sroa.14.0, %198
  %.pre = load i32, ptr %160, align 4, !tbaa !14
  %.pre.fr = freeze i32 %.pre
  %200 = icmp eq i32 %.pre.fr, 2
  br i1 %200, label %201, label %.thread

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

.thread:                                          ; preds = %184, %189, %186, %.thread907, %197, %201
  %.pn = phi double [ %199, %197 ], [ %196, %.thread907 ], [ %199, %201 ], [ 0.000000e+00, %184 ], [ %192, %189 ], [ %188, %186 ]
  %202 = phi i32 [ %.pre.fr, %197 ], [ 2, %.thread907 ], [ %.pre.fr, %201 ], [ %185, %184 ], [ %185, %189 ], [ %185, %186 ]
  %203 = phi double [ 1.000000e+00, %197 ], [ 2.000000e+00, %.thread907 ], [ 2.000000e+00, %201 ], [ 1.000000e+00, %184 ], [ 1.000000e+00, %189 ], [ 1.000000e+00, %186 ]
  %204 = fmul double %182, %.pn
  %205 = fdiv double %204, %203
  %206 = fcmp olt double %181, %205
  br i1 %206, label %207, label %383

207:                                              ; preds = %.thread
  %208 = add nsw i64 %indvars.iv883, -1
  %209 = getelementptr inbounds double, ptr %5, i64 %208
  %210 = load double, ptr %209, align 8, !tbaa !15
  %211 = getelementptr inbounds double, ptr %2, i64 %208
  %212 = load double, ptr %211, align 8, !tbaa !15
  %213 = fcmp ult double %210, %212
  br i1 %213, label %214, label %383

214:                                              ; preds = %207
  %215 = getelementptr inbounds double, ptr %4, i64 %208
  %216 = load double, ptr %215, align 8, !tbaa !15
  %217 = fsub double %210, %216
  br i1 %.not732, label %222, label %218

218:                                              ; preds = %214
  %219 = sitofp i32 %183 to double
  %220 = extractelement <2 x double> %170, i64 0
  %221 = fdiv double %220, %219
  br label %235

222:                                              ; preds = %214
  switch i32 %202, label %235 [
    i32 0, label %223
    i32 1, label %226
    i32 2, label %230
  ]

223:                                              ; preds = %222
  %224 = fsub double %210, %212
  %225 = tail call double @llvm.fabs.f64(double %224)
  br label %235

226:                                              ; preds = %222
  %227 = getelementptr inbounds double, ptr %3, i64 %208
  %228 = load double, ptr %227, align 8, !tbaa !15
  %229 = fsub double %228, %216
  br label %235

230:                                              ; preds = %222
  %231 = getelementptr inbounds double, ptr %3, i64 %208
  %232 = load double, ptr %231, align 8, !tbaa !15
  %233 = fsub double %232, %212
  %234 = fadd double %217, %233
  br label %235

235:                                              ; preds = %222, %223, %230, %226, %218
  %236 = phi double [ %221, %218 ], [ %225, %223 ], [ %229, %226 ], [ %234, %230 ], [ 0.000000e+00, %222 ]
  %237 = fmul double %182, %236
  %238 = fdiv double %237, %203
  %239 = fcmp olt double %217, %238
  br i1 %239, label %240, label %383

240:                                              ; preds = %235
  %241 = getelementptr inbounds double, ptr %5, i64 %indvars.iv883
  %242 = load double, ptr %241, align 8, !tbaa !15
  %243 = getelementptr inbounds double, ptr %2, i64 %indvars.iv883
  %244 = load double, ptr %243, align 8, !tbaa !15
  %245 = fcmp ult double %242, %244
  br i1 %245, label %246, label %383

246:                                              ; preds = %240
  %247 = getelementptr inbounds double, ptr %4, i64 %indvars.iv883
  %248 = load double, ptr %247, align 8, !tbaa !15
  %249 = fsub double %242, %248
  br i1 %.not732, label %254, label %250

250:                                              ; preds = %246
  %251 = sitofp i32 %183 to double
  %252 = extractelement <2 x double> %170, i64 1
  %253 = fdiv double %252, %251
  br label %267

254:                                              ; preds = %246
  switch i32 %202, label %267 [
    i32 0, label %255
    i32 1, label %258
    i32 2, label %262
  ]

255:                                              ; preds = %254
  %256 = fsub double %242, %244
  %257 = tail call double @llvm.fabs.f64(double %256)
  br label %267

258:                                              ; preds = %254
  %259 = getelementptr inbounds double, ptr %3, i64 %indvars.iv883
  %260 = load double, ptr %259, align 8, !tbaa !15
  %261 = fsub double %260, %248
  br label %267

262:                                              ; preds = %254
  %263 = getelementptr inbounds double, ptr %3, i64 %indvars.iv883
  %264 = load double, ptr %263, align 8, !tbaa !15
  %265 = fsub double %264, %244
  %266 = fadd double %249, %265
  br label %267

267:                                              ; preds = %254, %255, %262, %258, %250
  %268 = phi double [ %253, %250 ], [ %257, %255 ], [ %261, %258 ], [ %266, %262 ], [ 0.000000e+00, %254 ]
  %269 = fmul double %182, %268
  %270 = fdiv double %269, %203
  %271 = fcmp olt double %249, %270
  %272 = fcmp ogt double %174, %210
  %or.cond775 = and i1 %272, %271
  %273 = fcmp ogt double %210, %242
  %or.cond776 = and i1 %273, %or.cond775
  br i1 %or.cond776, label %274, label %383

274:                                              ; preds = %267
  %275 = load double, ptr %163, align 8, !tbaa !19
  %276 = load i32, ptr %30, align 8, !tbaa !11
  %.not735 = icmp eq i32 %276, 0
  br i1 %.not735, label %277, label %.thread909

277:                                              ; preds = %274
  %278 = load i32, ptr %161, align 4, !tbaa !14
  switch i32 %278, label %291 [
    i32 0, label %279
    i32 1, label %282
    i32 2, label %286
  ]

279:                                              ; preds = %277
  %280 = fsub double %174, %176
  %281 = tail call double @llvm.fabs.f64(double %280)
  br label %291

282:                                              ; preds = %277
  %283 = getelementptr inbounds double, ptr %3, i64 %172
  %284 = load double, ptr %283, align 8, !tbaa !15
  %285 = fsub double %284, %180
  br label %291

286:                                              ; preds = %277
  %287 = getelementptr inbounds double, ptr %3, i64 %172
  %288 = load double, ptr %287, align 8, !tbaa !15
  %289 = fsub double %288, %176
  %290 = fadd double %181, %289
  br label %291

291:                                              ; preds = %277, %279, %286, %282
  %292 = phi double [ %281, %279 ], [ %285, %282 ], [ %290, %286 ], [ 0.000000e+00, %277 ]
  %293 = fmul double %275, %292
  %294 = icmp eq i32 %278, 2
  %295 = select i1 %294, double 2.000000e+00, double 1.000000e+00
  %296 = fdiv double %293, %295
  %297 = fadd double %174, %296
  %298 = fcmp ugt double %212, %297
  br i1 %298, label %383, label %308

.thread909:                                       ; preds = %274
  %299 = sitofp i32 %276 to double
  %300 = extractelement <2 x double> %171, i64 0
  %301 = fdiv double %300, %299
  %.pre904 = load i32, ptr %161, align 4, !tbaa !14
  %302 = fmul double %275, %301
  %303 = icmp eq i32 %.pre904, 2
  %304 = select i1 %303, double 2.000000e+00, double 1.000000e+00
  %305 = fdiv double %302, %304
  %306 = fadd double %174, %305
  %307 = fcmp ugt double %212, %306
  br i1 %307, label %383, label %.thread765

308:                                              ; preds = %291
  br i1 %.not735, label %309, label %.thread765

309:                                              ; preds = %308
  switch i32 %278, label %317 [
    i32 0, label %310
    i32 1, label %313
  ]

310:                                              ; preds = %309
  %311 = fsub double %174, %176
  %312 = tail call double @llvm.fabs.f64(double %311)
  br label %323

313:                                              ; preds = %309
  %314 = getelementptr inbounds double, ptr %3, i64 %172
  %315 = load double, ptr %314, align 8, !tbaa !15
  %316 = fsub double %315, %180
  br label %323

317:                                              ; preds = %309
  br i1 %294, label %318, label %323

318:                                              ; preds = %317
  %319 = getelementptr inbounds double, ptr %3, i64 %172
  %320 = load double, ptr %319, align 8, !tbaa !15
  %321 = fsub double %320, %176
  %322 = fadd double %181, %321
  br label %323

323:                                              ; preds = %310, %318, %317, %313
  %324 = phi double [ %312, %310 ], [ %316, %313 ], [ %322, %318 ], [ 0.000000e+00, %317 ]
  %325 = fmul double %275, %324
  %326 = fdiv double %325, %295
  %327 = fsub double %174, %326
  %328 = fcmp ult double %212, %327
  br i1 %328, label %383, label %337

.thread765:                                       ; preds = %.thread909, %308
  %329 = phi double [ %295, %308 ], [ %304, %.thread909 ]
  %330 = sitofp i32 %276 to double
  %331 = extractelement <2 x double> %171, i64 0
  %332 = fdiv double %331, %330
  %333 = fmul double %275, %332
  %334 = fdiv double %333, %329
  %335 = fsub double %174, %334
  %336 = fcmp ult double %212, %335
  br i1 %336, label %383, label %.thread767

337:                                              ; preds = %323
  switch i32 %278, label %345 [
    i32 0, label %338
    i32 1, label %341
  ]

338:                                              ; preds = %337
  %339 = fsub double %210, %212
  %340 = tail call double @llvm.fabs.f64(double %339)
  br label %351

341:                                              ; preds = %337
  %342 = getelementptr inbounds double, ptr %3, i64 %208
  %343 = load double, ptr %342, align 8, !tbaa !15
  %344 = fsub double %343, %216
  br label %351

345:                                              ; preds = %337
  br i1 %294, label %346, label %351

346:                                              ; preds = %345
  %347 = getelementptr inbounds double, ptr %3, i64 %208
  %348 = load double, ptr %347, align 8, !tbaa !15
  %349 = fsub double %348, %212
  %350 = fadd double %217, %349
  br label %351

351:                                              ; preds = %338, %346, %345, %341
  %352 = phi double [ %340, %338 ], [ %344, %341 ], [ %350, %346 ], [ 0.000000e+00, %345 ]
  %353 = fmul double %275, %352
  %354 = fdiv double %353, %295
  %355 = fadd double %210, %354
  %356 = fcmp ugt double %244, %355
  br i1 %356, label %383, label %363

.thread767:                                       ; preds = %.thread765
  %357 = extractelement <2 x double> %171, i64 1
  %358 = fdiv double %357, %330
  %359 = fmul double %275, %358
  %360 = fdiv double %359, %329
  %361 = fadd double %210, %360
  %362 = fcmp ugt double %244, %361
  br i1 %362, label %383, label %.thread768

363:                                              ; preds = %351
  switch i32 %278, label %371 [
    i32 0, label %364
    i32 1, label %367
  ]

364:                                              ; preds = %363
  %365 = fsub double %210, %212
  %366 = tail call double @llvm.fabs.f64(double %365)
  br label %.thread768

367:                                              ; preds = %363
  %368 = getelementptr inbounds double, ptr %3, i64 %208
  %369 = load double, ptr %368, align 8, !tbaa !15
  %370 = fsub double %369, %216
  br label %.thread768

371:                                              ; preds = %363
  br i1 %294, label %372, label %.thread768

372:                                              ; preds = %371
  %373 = getelementptr inbounds double, ptr %3, i64 %208
  %374 = load double, ptr %373, align 8, !tbaa !15
  %375 = fsub double %374, %212
  %376 = fadd double %217, %375
  br label %.thread768

.thread768:                                       ; preds = %.thread767, %364, %372, %371, %367
  %377 = phi double [ %295, %364 ], [ %295, %367 ], [ 2.000000e+00, %372 ], [ 1.000000e+00, %371 ], [ %329, %.thread767 ]
  %378 = phi double [ %366, %364 ], [ %370, %367 ], [ %376, %372 ], [ 0.000000e+00, %371 ], [ %358, %.thread767 ]
  %379 = fmul double %275, %378
  %380 = fdiv double %379, %377
  %381 = fsub double %210, %380
  %382 = fcmp ult double %244, %381
  br i1 %382, label %383, label %384

383:                                              ; preds = %.thread909, %.thread767, %.thread765, %.thread768, %351, %323, %291, %267, %240, %235, %207, %.thread, %169
  br label %384

384:                                              ; preds = %.thread768, %383
  %.sink = phi i32 [ 0, %383 ], [ -100, %.thread768 ]
  %385 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv885
  store i32 %.sink, ptr %385, align 4, !tbaa !5
  %386 = load i32, ptr %160, align 4, !tbaa !14
  switch i32 %386, label %.preheader [
    i32 0, label %.thread911
    i32 1, label %.thread912
    i32 2, label %.thread913
  ]

.thread911:                                       ; preds = %384
  %387 = add nsw i64 %indvars.iv883, -2
  %388 = getelementptr inbounds double, ptr %5, i64 %387
  %389 = getelementptr inbounds double, ptr %2, i64 %387
  %390 = add nsw i64 %indvars.iv887, -2
  %391 = getelementptr inbounds double, ptr %5, i64 %390
  %392 = getelementptr inbounds double, ptr %2, i64 %390
  %393 = load <2 x double>, ptr %388, align 8, !tbaa !15
  %394 = load <2 x double>, ptr %389, align 8, !tbaa !15
  %395 = fsub <2 x double> %393, %394
  %396 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %395)
  %397 = load <2 x double>, ptr %391, align 8, !tbaa !15
  %398 = load <2 x double>, ptr %392, align 8, !tbaa !15
  %399 = fsub <2 x double> %397, %398
  %400 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %399)
  %401 = fsub <2 x double> %396, %400
  %402 = getelementptr inbounds double, ptr %5, i64 %indvars.iv883
  %403 = load double, ptr %402, align 8, !tbaa !15
  %404 = getelementptr inbounds double, ptr %2, i64 %indvars.iv883
  %405 = load double, ptr %404, align 8, !tbaa !15
  %406 = getelementptr inbounds double, ptr %5, i64 %indvars.iv887
  %407 = load double, ptr %406, align 8, !tbaa !15
  %408 = getelementptr inbounds double, ptr %2, i64 %indvars.iv887
  %409 = load double, ptr %408, align 8, !tbaa !15
  %410 = insertelement <2 x double> poison, double %403, i64 0
  %411 = insertelement <2 x double> %410, double %407, i64 1
  %412 = insertelement <2 x double> poison, double %405, i64 0
  %413 = insertelement <2 x double> %412, double %409, i64 1
  %414 = fsub <2 x double> %411, %413
  %415 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %414)
  br label %.preheader

.thread912:                                       ; preds = %384
  %416 = add nsw i64 %indvars.iv883, -2
  %417 = getelementptr inbounds double, ptr %3, i64 %416
  %418 = getelementptr inbounds double, ptr %4, i64 %416
  %419 = add nsw i64 %indvars.iv887, -2
  %420 = getelementptr inbounds double, ptr %3, i64 %419
  %421 = getelementptr inbounds double, ptr %4, i64 %419
  %422 = load <2 x double>, ptr %417, align 8, !tbaa !15
  %423 = load <2 x double>, ptr %418, align 8, !tbaa !15
  %424 = fsub <2 x double> %422, %423
  %425 = load <2 x double>, ptr %420, align 8, !tbaa !15
  %426 = load <2 x double>, ptr %421, align 8, !tbaa !15
  %427 = fsub <2 x double> %425, %426
  %428 = fsub <2 x double> %424, %427
  %429 = getelementptr inbounds double, ptr %3, i64 %indvars.iv883
  %430 = load double, ptr %429, align 8, !tbaa !15
  %431 = getelementptr inbounds double, ptr %4, i64 %indvars.iv883
  %432 = load double, ptr %431, align 8, !tbaa !15
  %433 = getelementptr inbounds double, ptr %3, i64 %indvars.iv887
  %434 = load double, ptr %433, align 8, !tbaa !15
  %435 = getelementptr inbounds double, ptr %4, i64 %indvars.iv887
  %436 = load double, ptr %435, align 8, !tbaa !15
  %437 = insertelement <2 x double> poison, double %430, i64 0
  %438 = insertelement <2 x double> %437, double %434, i64 1
  %439 = insertelement <2 x double> poison, double %432, i64 0
  %440 = insertelement <2 x double> %439, double %436, i64 1
  %441 = fsub <2 x double> %438, %440
  br label %.preheader

.thread913:                                       ; preds = %384
  %442 = add nsw i64 %indvars.iv883, -2
  %443 = getelementptr inbounds double, ptr %3, i64 %442
  %444 = getelementptr inbounds double, ptr %5, i64 %442
  %445 = getelementptr inbounds double, ptr %2, i64 %442
  %446 = getelementptr inbounds double, ptr %4, i64 %442
  %447 = add nsw i64 %indvars.iv887, -2
  %448 = getelementptr inbounds double, ptr %3, i64 %447
  %449 = getelementptr inbounds double, ptr %5, i64 %447
  %450 = getelementptr inbounds double, ptr %2, i64 %447
  %451 = getelementptr inbounds double, ptr %4, i64 %447
  %452 = load <2 x double>, ptr %443, align 8, !tbaa !15
  %453 = load <2 x double>, ptr %444, align 8, !tbaa !15
  %454 = load <2 x double>, ptr %445, align 8, !tbaa !15
  %455 = fcmp ult <2 x double> %453, %454
  %456 = select <2 x i1> %455, <2 x double> %454, <2 x double> %453
  %457 = fsub <2 x double> %452, %456
  %458 = select <2 x i1> %455, <2 x double> %453, <2 x double> %454
  %459 = load <2 x double>, ptr %446, align 8, !tbaa !15
  %460 = fsub <2 x double> %458, %459
  %461 = fadd <2 x double> %457, %460
  %462 = load <2 x double>, ptr %448, align 8, !tbaa !15
  %463 = load <2 x double>, ptr %449, align 8, !tbaa !15
  %464 = load <2 x double>, ptr %450, align 8, !tbaa !15
  %465 = fcmp ult <2 x double> %463, %464
  %466 = select <2 x i1> %465, <2 x double> %464, <2 x double> %463
  %467 = fsub <2 x double> %462, %466
  %468 = select <2 x i1> %465, <2 x double> %463, <2 x double> %464
  %469 = load <2 x double>, ptr %451, align 8, !tbaa !15
  %470 = fsub <2 x double> %468, %469
  %471 = fadd <2 x double> %467, %470
  %472 = fsub <2 x double> %461, %471
  %473 = getelementptr inbounds double, ptr %3, i64 %indvars.iv883
  %474 = load double, ptr %473, align 8, !tbaa !15
  %475 = getelementptr inbounds double, ptr %5, i64 %indvars.iv883
  %476 = load double, ptr %475, align 8, !tbaa !15
  %477 = getelementptr inbounds double, ptr %2, i64 %indvars.iv883
  %478 = load double, ptr %477, align 8, !tbaa !15
  %479 = getelementptr inbounds double, ptr %4, i64 %indvars.iv883
  %480 = load double, ptr %479, align 8, !tbaa !15
  %481 = getelementptr inbounds double, ptr %3, i64 %indvars.iv887
  %482 = load double, ptr %481, align 8, !tbaa !15
  %483 = getelementptr inbounds double, ptr %5, i64 %indvars.iv887
  %484 = load double, ptr %483, align 8, !tbaa !15
  %485 = getelementptr inbounds double, ptr %2, i64 %indvars.iv887
  %486 = load double, ptr %485, align 8, !tbaa !15
  %487 = getelementptr inbounds double, ptr %4, i64 %indvars.iv887
  %488 = load double, ptr %487, align 8, !tbaa !15
  %489 = insertelement <2 x double> poison, double %476, i64 0
  %490 = insertelement <2 x double> %489, double %484, i64 1
  %491 = insertelement <2 x double> poison, double %478, i64 0
  %492 = insertelement <2 x double> %491, double %486, i64 1
  %493 = fcmp ult <2 x double> %490, %492
  %494 = select <2 x i1> %493, <2 x double> %492, <2 x double> %490
  %495 = insertelement <2 x double> poison, double %474, i64 0
  %496 = insertelement <2 x double> %495, double %482, i64 1
  %497 = fsub <2 x double> %496, %494
  %498 = select <2 x i1> %493, <2 x double> %490, <2 x double> %492
  %499 = insertelement <2 x double> poison, double %480, i64 0
  %500 = insertelement <2 x double> %499, double %488, i64 1
  %501 = fsub <2 x double> %498, %500
  %502 = fadd <2 x double> %497, %501
  br label %.preheader

.preheader:                                       ; preds = %384, %.thread911, %.thread912, %.thread913
  %503 = phi <2 x double> [ %401, %.thread911 ], [ %428, %.thread912 ], [ %472, %.thread913 ], [ zeroinitializer, %384 ]
  %504 = phi <2 x double> [ %415, %.thread911 ], [ %441, %.thread912 ], [ %502, %.thread913 ], [ zeroinitializer, %384 ]
  %505 = extractelement <2 x double> %503, i64 0
  %506 = fadd double %.sroa.14.0, %505
  %shift = shufflevector <2 x double> %504, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %507 = fsub <2 x double> %504, %shift
  %508 = shufflevector <2 x double> %503, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %509 = shufflevector <2 x double> %508, <2 x double> %507, <2 x i32> <i32 0, i32 2>
  %510 = fadd <2 x double> %170, %509
  %511 = load i32, ptr %161, align 4, !tbaa !14
  switch i32 %511, label %640 [
    i32 0, label %.thread917
    i32 1, label %.thread918
    i32 2, label %.thread919
  ]

.thread917:                                       ; preds = %.preheader
  %512 = add nsw i64 %indvars.iv883, -2
  %513 = getelementptr inbounds double, ptr %5, i64 %512
  %514 = load double, ptr %513, align 8, !tbaa !15
  %515 = getelementptr inbounds double, ptr %2, i64 %512
  %516 = load double, ptr %515, align 8, !tbaa !15
  %517 = add nsw i64 %indvars.iv889, -2
  %518 = getelementptr inbounds double, ptr %5, i64 %517
  %519 = load double, ptr %518, align 8, !tbaa !15
  %520 = getelementptr inbounds double, ptr %2, i64 %517
  %521 = load double, ptr %520, align 8, !tbaa !15
  %522 = insertelement <2 x double> poison, double %514, i64 0
  %523 = insertelement <2 x double> %522, double %519, i64 1
  %524 = insertelement <2 x double> poison, double %516, i64 0
  %525 = insertelement <2 x double> %524, double %521, i64 1
  %526 = fsub <2 x double> %523, %525
  %527 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %526)
  %shift966 = shufflevector <2 x double> %527, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %528 = fsub <2 x double> %527, %shift966
  %529 = extractelement <2 x double> %528, i64 0
  %530 = add nsw i64 %indvars.iv883, -1
  %531 = getelementptr inbounds double, ptr %5, i64 %530
  %532 = load double, ptr %531, align 8, !tbaa !15
  %533 = getelementptr inbounds double, ptr %2, i64 %530
  %534 = load double, ptr %533, align 8, !tbaa !15
  %535 = add nsw i64 %indvars.iv889, -1
  %536 = getelementptr inbounds double, ptr %5, i64 %535
  %537 = load double, ptr %536, align 8, !tbaa !15
  %538 = getelementptr inbounds double, ptr %2, i64 %535
  %539 = load double, ptr %538, align 8, !tbaa !15
  %540 = insertelement <2 x double> poison, double %532, i64 0
  %541 = insertelement <2 x double> %540, double %537, i64 1
  %542 = insertelement <2 x double> poison, double %534, i64 0
  %543 = insertelement <2 x double> %542, double %539, i64 1
  %544 = fsub <2 x double> %541, %543
  %545 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %544)
  br label %640

.thread918:                                       ; preds = %.preheader
  %546 = add nsw i64 %indvars.iv883, -2
  %547 = getelementptr inbounds double, ptr %3, i64 %546
  %548 = load double, ptr %547, align 8, !tbaa !15
  %549 = getelementptr inbounds double, ptr %4, i64 %546
  %550 = load double, ptr %549, align 8, !tbaa !15
  %551 = fsub double %548, %550
  %552 = add nsw i64 %indvars.iv889, -2
  %553 = getelementptr inbounds double, ptr %3, i64 %552
  %554 = load double, ptr %553, align 8, !tbaa !15
  %555 = getelementptr inbounds double, ptr %4, i64 %552
  %556 = load double, ptr %555, align 8, !tbaa !15
  %557 = fsub double %554, %556
  %558 = fsub double %551, %557
  %559 = add nsw i64 %indvars.iv883, -1
  %560 = getelementptr inbounds double, ptr %3, i64 %559
  %561 = load double, ptr %560, align 8, !tbaa !15
  %562 = getelementptr inbounds double, ptr %4, i64 %559
  %563 = load double, ptr %562, align 8, !tbaa !15
  %564 = add nsw i64 %indvars.iv889, -1
  %565 = getelementptr inbounds double, ptr %3, i64 %564
  %566 = load double, ptr %565, align 8, !tbaa !15
  %567 = getelementptr inbounds double, ptr %4, i64 %564
  %568 = load double, ptr %567, align 8, !tbaa !15
  %569 = insertelement <2 x double> poison, double %561, i64 0
  %570 = insertelement <2 x double> %569, double %566, i64 1
  %571 = insertelement <2 x double> poison, double %563, i64 0
  %572 = insertelement <2 x double> %571, double %568, i64 1
  %573 = fsub <2 x double> %570, %572
  br label %640

.thread919:                                       ; preds = %.preheader
  %574 = add nsw i64 %indvars.iv883, -2
  %575 = getelementptr inbounds double, ptr %3, i64 %574
  %576 = load double, ptr %575, align 8, !tbaa !15
  %577 = getelementptr inbounds double, ptr %5, i64 %574
  %578 = load double, ptr %577, align 8, !tbaa !15
  %579 = getelementptr inbounds double, ptr %2, i64 %574
  %580 = load double, ptr %579, align 8, !tbaa !15
  %581 = getelementptr inbounds double, ptr %4, i64 %574
  %582 = load double, ptr %581, align 8, !tbaa !15
  %583 = add nsw i64 %indvars.iv889, -2
  %584 = getelementptr inbounds double, ptr %3, i64 %583
  %585 = load double, ptr %584, align 8, !tbaa !15
  %586 = getelementptr inbounds double, ptr %5, i64 %583
  %587 = load double, ptr %586, align 8, !tbaa !15
  %588 = getelementptr inbounds double, ptr %2, i64 %583
  %589 = load double, ptr %588, align 8, !tbaa !15
  %590 = getelementptr inbounds double, ptr %4, i64 %583
  %591 = load double, ptr %590, align 8, !tbaa !15
  %592 = insertelement <2 x double> poison, double %578, i64 0
  %593 = insertelement <2 x double> %592, double %587, i64 1
  %594 = insertelement <2 x double> poison, double %580, i64 0
  %595 = insertelement <2 x double> %594, double %589, i64 1
  %596 = fcmp ult <2 x double> %593, %595
  %597 = select <2 x i1> %596, <2 x double> %595, <2 x double> %593
  %598 = insertelement <2 x double> poison, double %576, i64 0
  %599 = insertelement <2 x double> %598, double %585, i64 1
  %600 = fsub <2 x double> %599, %597
  %601 = select <2 x i1> %596, <2 x double> %593, <2 x double> %595
  %602 = insertelement <2 x double> poison, double %582, i64 0
  %603 = insertelement <2 x double> %602, double %591, i64 1
  %604 = fsub <2 x double> %601, %603
  %605 = fadd <2 x double> %600, %604
  %shift967 = shufflevector <2 x double> %605, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %606 = fsub <2 x double> %605, %shift967
  %607 = extractelement <2 x double> %606, i64 0
  %608 = add nsw i64 %indvars.iv883, -1
  %609 = getelementptr inbounds double, ptr %3, i64 %608
  %610 = load double, ptr %609, align 8, !tbaa !15
  %611 = getelementptr inbounds double, ptr %5, i64 %608
  %612 = load double, ptr %611, align 8, !tbaa !15
  %613 = getelementptr inbounds double, ptr %2, i64 %608
  %614 = load double, ptr %613, align 8, !tbaa !15
  %615 = getelementptr inbounds double, ptr %4, i64 %608
  %616 = load double, ptr %615, align 8, !tbaa !15
  %617 = add nsw i64 %indvars.iv889, -1
  %618 = getelementptr inbounds double, ptr %3, i64 %617
  %619 = load double, ptr %618, align 8, !tbaa !15
  %620 = getelementptr inbounds double, ptr %5, i64 %617
  %621 = load double, ptr %620, align 8, !tbaa !15
  %622 = getelementptr inbounds double, ptr %2, i64 %617
  %623 = load double, ptr %622, align 8, !tbaa !15
  %624 = getelementptr inbounds double, ptr %4, i64 %617
  %625 = load double, ptr %624, align 8, !tbaa !15
  %626 = insertelement <2 x double> poison, double %612, i64 0
  %627 = insertelement <2 x double> %626, double %621, i64 1
  %628 = insertelement <2 x double> poison, double %614, i64 0
  %629 = insertelement <2 x double> %628, double %623, i64 1
  %630 = fcmp ult <2 x double> %627, %629
  %631 = select <2 x i1> %630, <2 x double> %629, <2 x double> %627
  %632 = insertelement <2 x double> poison, double %610, i64 0
  %633 = insertelement <2 x double> %632, double %619, i64 1
  %634 = fsub <2 x double> %633, %631
  %635 = select <2 x i1> %630, <2 x double> %627, <2 x double> %629
  %636 = insertelement <2 x double> poison, double %616, i64 0
  %637 = insertelement <2 x double> %636, double %625, i64 1
  %638 = fsub <2 x double> %635, %637
  %639 = fadd <2 x double> %634, %638
  br label %640

640:                                              ; preds = %.preheader, %.thread917, %.thread918, %.thread919
  %.pn944 = phi double [ %529, %.thread917 ], [ %558, %.thread918 ], [ %607, %.thread919 ], [ 0.000000e+00, %.preheader ]
  %641 = phi <2 x double> [ %545, %.thread917 ], [ %573, %.thread918 ], [ %639, %.thread919 ], [ zeroinitializer, %.preheader ]
  %shift968 = shufflevector <2 x double> %641, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %642 = fsub <2 x double> %641, %shift968
  %643 = insertelement <2 x double> poison, double %.pn944, i64 0
  %644 = shufflevector <2 x double> %643, <2 x double> %642, <2 x i32> <i32 0, i32 2>
  %645 = fadd <2 x double> %171, %644
  %indvars.iv.next886 = add nuw nsw i64 %indvars.iv885, 1
  %indvars.iv.next884 = add nuw nsw i64 %indvars.iv883, 1
  %indvars.iv.next888 = add nsw i64 %indvars.iv887, 1
  %indvars.iv.next890 = add nsw i64 %indvars.iv889, 1
  %.not739.not = icmp slt i64 %indvars.iv883, %166
  br i1 %.not739.not, label %169, label %646, !llvm.loop !20

646:                                              ; preds = %640
  %647 = trunc nuw i64 %indvars.iv.next886 to i32
  store i32 %647, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %648

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

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

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

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

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

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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #2 = { 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 = !{!13, !13, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = !{!12, !13, i64 16}
!20 = distinct !{!20, !17}


; 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