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

; 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_CDLSEPARATINGLINES_Lookback() #0

; Function Attrs: nounwind uwtable
define dso_local i32 @TA_CDLSEPARATINGLINES(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 double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %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
  %29 = 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 8, ptr %20) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 8, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  %30 = load i32, ptr %11, align 4, !tbaa !5
  %31 = icmp slt i32 %30, 0
  br i1 %31, label %32, label %33

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

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

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

40:                                               ; preds = %36, %33
  store i32 13, ptr %10, align 4
  store i32 1, ptr %29, align 4
  br label %2214

41:                                               ; preds = %36
  %42 = load ptr, ptr %13, align 8, !tbaa !9
  %43 = icmp ne ptr %42, null
  br i1 %43, label %44, label %53

44:                                               ; preds = %41
  %45 = load ptr, ptr %14, align 8, !tbaa !9
  %46 = icmp ne ptr %45, null
  br i1 %46, label %47, label %53

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

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

53:                                               ; preds = %50, %47, %44, %41
  store i32 2, ptr %10, align 4
  store i32 1, ptr %29, align 4
  br label %2214

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

57:                                               ; preds = %54
  store i32 2, ptr %10, align 4
  store i32 1, ptr %29, align 4
  br label %2214

58:                                               ; preds = %54
  %59 = call i32 @TA_CDLSEPARATINGLINES_Lookback()
  store i32 %59, ptr %28, align 4, !tbaa !5
  %60 = load i32, ptr %11, align 4, !tbaa !5
  %61 = load i32, ptr %28, align 4, !tbaa !5
  %62 = icmp slt i32 %60, %61
  br i1 %62, label %63, label %65

63:                                               ; preds = %58
  %64 = load i32, ptr %28, align 4, !tbaa !5
  store i32 %64, ptr %11, align 4, !tbaa !5
  br label %65

65:                                               ; preds = %63, %58
  %66 = load i32, ptr %11, align 4, !tbaa !5
  %67 = load i32, ptr %12, align 4, !tbaa !5
  %68 = icmp sgt i32 %66, %67
  br i1 %68, label %69, label %72

69:                                               ; preds = %65
  %70 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 0, ptr %70, align 4, !tbaa !5
  %71 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 0, ptr %71, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %29, align 4
  br label %2214

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

95:                                               ; preds = %214, %72
  %96 = load i32, ptr %23, align 4, !tbaa !5
  %97 = load i32, ptr %11, align 4, !tbaa !5
  %98 = icmp slt i32 %96, %97
  br i1 %98, label %99, label %220

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

106:                                              ; preds = %99
  %107 = load ptr, ptr %16, align 8, !tbaa !9
  %108 = load i32, ptr %23, align 4, !tbaa !5
  %109 = sext i32 %108 to i64
  %110 = getelementptr inbounds double, ptr %107, i64 %109
  %111 = load double, ptr %110, align 8, !tbaa !11
  %112 = load ptr, ptr %13, align 8, !tbaa !9
  %113 = load i32, ptr %23, align 4, !tbaa !5
  %114 = sext i32 %113 to i64
  %115 = getelementptr inbounds double, ptr %112, i64 %114
  %116 = load double, ptr %115, align 8, !tbaa !11
  %117 = fsub double %111, %116
  %118 = call double @llvm.fabs.f64(double %117)
  br label %214

119:                                              ; preds = %99
  %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 %138

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

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

145:                                              ; preds = %138
  %146 = load ptr, ptr %14, align 8, !tbaa !9
  %147 = load i32, ptr %23, align 4, !tbaa !5
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds double, ptr %146, i64 %148
  %150 = load double, ptr %149, align 8, !tbaa !11
  %151 = load ptr, ptr %16, align 8, !tbaa !9
  %152 = load i32, ptr %23, align 4, !tbaa !5
  %153 = sext i32 %152 to i64
  %154 = getelementptr inbounds double, ptr %151, i64 %153
  %155 = load double, ptr %154, align 8, !tbaa !11
  %156 = load ptr, ptr %13, align 8, !tbaa !9
  %157 = load i32, ptr %23, align 4, !tbaa !5
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds double, ptr %156, i64 %158
  %160 = load double, ptr %159, align 8, !tbaa !11
  %161 = fcmp oge double %155, %160
  br i1 %161, label %162, label %168

162:                                              ; preds = %145
  %163 = load ptr, ptr %16, align 8, !tbaa !9
  %164 = load i32, ptr %23, align 4, !tbaa !5
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds double, ptr %163, i64 %165
  %167 = load double, ptr %166, align 8, !tbaa !11
  br label %174

168:                                              ; preds = %145
  %169 = load ptr, ptr %13, align 8, !tbaa !9
  %170 = load i32, ptr %23, align 4, !tbaa !5
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds double, ptr %169, i64 %171
  %173 = load double, ptr %172, align 8, !tbaa !11
  br label %174

174:                                              ; preds = %168, %162
  %175 = phi double [ %167, %162 ], [ %173, %168 ]
  %176 = fsub double %150, %175
  %177 = load ptr, ptr %16, align 8, !tbaa !9
  %178 = load i32, ptr %23, align 4, !tbaa !5
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds double, ptr %177, i64 %179
  %181 = load double, ptr %180, align 8, !tbaa !11
  %182 = load ptr, ptr %13, align 8, !tbaa !9
  %183 = load i32, ptr %23, align 4, !tbaa !5
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds double, ptr %182, i64 %184
  %186 = load double, ptr %185, align 8, !tbaa !11
  %187 = fcmp oge double %181, %186
  br i1 %187, label %188, label %194

188:                                              ; preds = %174
  %189 = load ptr, ptr %13, align 8, !tbaa !9
  %190 = load i32, ptr %23, align 4, !tbaa !5
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds double, ptr %189, i64 %191
  %193 = load double, ptr %192, align 8, !tbaa !11
  br label %200

194:                                              ; preds = %174
  %195 = load ptr, ptr %16, align 8, !tbaa !9
  %196 = load i32, ptr %23, align 4, !tbaa !5
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds double, ptr %195, i64 %197
  %199 = load double, ptr %198, align 8, !tbaa !11
  br label %200

200:                                              ; preds = %194, %188
  %201 = phi double [ %193, %188 ], [ %199, %194 ]
  %202 = load ptr, ptr %15, align 8, !tbaa !9
  %203 = load i32, ptr %23, align 4, !tbaa !5
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds double, ptr %202, i64 %204
  %206 = load double, ptr %205, align 8, !tbaa !11
  %207 = fsub double %201, %206
  %208 = fadd double %176, %207
  br label %210

209:                                              ; preds = %138
  br label %210

210:                                              ; preds = %209, %200
  %211 = phi double [ %208, %200 ], [ 0.000000e+00, %209 ]
  br label %212

212:                                              ; preds = %210, %126
  %213 = phi double [ %137, %126 ], [ %211, %210 ]
  br label %214

214:                                              ; preds = %212, %106
  %215 = phi double [ %118, %106 ], [ %213, %212 ]
  %216 = load double, ptr %20, align 8, !tbaa !11
  %217 = fadd double %216, %215
  store double %217, ptr %20, align 8, !tbaa !11
  %218 = load i32, ptr %23, align 4, !tbaa !5
  %219 = add nsw i32 %218, 1
  store i32 %219, ptr %23, align 4, !tbaa !5
  br label %95, !llvm.loop !16

220:                                              ; preds = %95
  %221 = load i32, ptr %26, align 4, !tbaa !5
  store i32 %221, ptr %23, align 4, !tbaa !5
  br label %222

222:                                              ; preds = %341, %220
  %223 = load i32, ptr %23, align 4, !tbaa !5
  %224 = load i32, ptr %11, align 4, !tbaa !5
  %225 = icmp slt i32 %223, %224
  br i1 %225, label %226, label %347

226:                                              ; preds = %222
  %227 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %228 = getelementptr inbounds %struct.TA_LibcPriv, ptr %227, i32 0, i32 8
  %229 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %228, i64 0, i64 0
  %230 = getelementptr inbounds %struct.TA_CandleSetting, ptr %229, i32 0, i32 1
  %231 = load i32, ptr %230, align 4, !tbaa !15
  %232 = icmp eq i32 %231, 0
  br i1 %232, label %233, label %246

233:                                              ; preds = %226
  %234 = load ptr, ptr %16, align 8, !tbaa !9
  %235 = load i32, ptr %23, align 4, !tbaa !5
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds double, ptr %234, i64 %236
  %238 = load double, ptr %237, align 8, !tbaa !11
  %239 = load ptr, ptr %13, align 8, !tbaa !9
  %240 = load i32, ptr %23, align 4, !tbaa !5
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds double, ptr %239, i64 %241
  %243 = load double, ptr %242, align 8, !tbaa !11
  %244 = fsub double %238, %243
  %245 = call double @llvm.fabs.f64(double %244)
  br label %341

246:                                              ; preds = %226
  %247 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %248 = getelementptr inbounds %struct.TA_LibcPriv, ptr %247, i32 0, i32 8
  %249 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %248, i64 0, i64 0
  %250 = getelementptr inbounds %struct.TA_CandleSetting, ptr %249, i32 0, i32 1
  %251 = load i32, ptr %250, align 4, !tbaa !15
  %252 = icmp eq i32 %251, 1
  br i1 %252, label %253, label %265

253:                                              ; preds = %246
  %254 = load ptr, ptr %14, align 8, !tbaa !9
  %255 = load i32, ptr %23, align 4, !tbaa !5
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds double, ptr %254, i64 %256
  %258 = load double, ptr %257, align 8, !tbaa !11
  %259 = load ptr, ptr %15, align 8, !tbaa !9
  %260 = load i32, ptr %23, align 4, !tbaa !5
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds double, ptr %259, i64 %261
  %263 = load double, ptr %262, align 8, !tbaa !11
  %264 = fsub double %258, %263
  br label %339

265:                                              ; preds = %246
  %266 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %267 = getelementptr inbounds %struct.TA_LibcPriv, ptr %266, i32 0, i32 8
  %268 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %267, i64 0, i64 0
  %269 = getelementptr inbounds %struct.TA_CandleSetting, ptr %268, i32 0, i32 1
  %270 = load i32, ptr %269, align 4, !tbaa !15
  %271 = icmp eq i32 %270, 2
  br i1 %271, label %272, label %336

272:                                              ; preds = %265
  %273 = load ptr, ptr %14, align 8, !tbaa !9
  %274 = load i32, ptr %23, align 4, !tbaa !5
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds double, ptr %273, i64 %275
  %277 = load double, ptr %276, align 8, !tbaa !11
  %278 = load ptr, ptr %16, align 8, !tbaa !9
  %279 = load i32, ptr %23, align 4, !tbaa !5
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds double, ptr %278, i64 %280
  %282 = load double, ptr %281, align 8, !tbaa !11
  %283 = load ptr, ptr %13, align 8, !tbaa !9
  %284 = load i32, ptr %23, align 4, !tbaa !5
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds double, ptr %283, i64 %285
  %287 = load double, ptr %286, align 8, !tbaa !11
  %288 = fcmp oge double %282, %287
  br i1 %288, label %289, label %295

289:                                              ; preds = %272
  %290 = load ptr, ptr %16, align 8, !tbaa !9
  %291 = load i32, ptr %23, align 4, !tbaa !5
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds double, ptr %290, i64 %292
  %294 = load double, ptr %293, align 8, !tbaa !11
  br label %301

295:                                              ; preds = %272
  %296 = load ptr, ptr %13, align 8, !tbaa !9
  %297 = load i32, ptr %23, align 4, !tbaa !5
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds double, ptr %296, i64 %298
  %300 = load double, ptr %299, align 8, !tbaa !11
  br label %301

301:                                              ; preds = %295, %289
  %302 = phi double [ %294, %289 ], [ %300, %295 ]
  %303 = fsub double %277, %302
  %304 = load ptr, ptr %16, align 8, !tbaa !9
  %305 = load i32, ptr %23, align 4, !tbaa !5
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds double, ptr %304, i64 %306
  %308 = load double, ptr %307, align 8, !tbaa !11
  %309 = load ptr, ptr %13, align 8, !tbaa !9
  %310 = load i32, ptr %23, align 4, !tbaa !5
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds double, ptr %309, i64 %311
  %313 = load double, ptr %312, align 8, !tbaa !11
  %314 = fcmp oge double %308, %313
  br i1 %314, label %315, label %321

315:                                              ; preds = %301
  %316 = load ptr, ptr %13, align 8, !tbaa !9
  %317 = load i32, ptr %23, align 4, !tbaa !5
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds double, ptr %316, i64 %318
  %320 = load double, ptr %319, align 8, !tbaa !11
  br label %327

321:                                              ; preds = %301
  %322 = load ptr, ptr %16, align 8, !tbaa !9
  %323 = load i32, ptr %23, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds double, ptr %322, i64 %324
  %326 = load double, ptr %325, align 8, !tbaa !11
  br label %327

327:                                              ; preds = %321, %315
  %328 = phi double [ %320, %315 ], [ %326, %321 ]
  %329 = load ptr, ptr %15, align 8, !tbaa !9
  %330 = load i32, ptr %23, align 4, !tbaa !5
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds double, ptr %329, i64 %331
  %333 = load double, ptr %332, align 8, !tbaa !11
  %334 = fsub double %328, %333
  %335 = fadd double %303, %334
  br label %337

336:                                              ; preds = %265
  br label %337

337:                                              ; preds = %336, %327
  %338 = phi double [ %335, %327 ], [ 0.000000e+00, %336 ]
  br label %339

339:                                              ; preds = %337, %253
  %340 = phi double [ %264, %253 ], [ %338, %337 ]
  br label %341

341:                                              ; preds = %339, %233
  %342 = phi double [ %245, %233 ], [ %340, %339 ]
  %343 = load double, ptr %21, align 8, !tbaa !11
  %344 = fadd double %343, %342
  store double %344, ptr %21, align 8, !tbaa !11
  %345 = load i32, ptr %23, align 4, !tbaa !5
  %346 = add nsw i32 %345, 1
  store i32 %346, ptr %23, align 4, !tbaa !5
  br label %222, !llvm.loop !18

347:                                              ; preds = %222
  %348 = load i32, ptr %27, align 4, !tbaa !5
  store i32 %348, ptr %23, align 4, !tbaa !5
  br label %349

349:                                              ; preds = %482, %347
  %350 = load i32, ptr %23, align 4, !tbaa !5
  %351 = load i32, ptr %11, align 4, !tbaa !5
  %352 = icmp slt i32 %350, %351
  br i1 %352, label %353, label %488

353:                                              ; preds = %349
  %354 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %355 = getelementptr inbounds %struct.TA_LibcPriv, ptr %354, i32 0, i32 8
  %356 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %355, i64 0, i64 10
  %357 = getelementptr inbounds %struct.TA_CandleSetting, ptr %356, i32 0, i32 1
  %358 = load i32, ptr %357, align 4, !tbaa !15
  %359 = icmp eq i32 %358, 0
  br i1 %359, label %360, label %375

360:                                              ; preds = %353
  %361 = load ptr, ptr %16, align 8, !tbaa !9
  %362 = load i32, ptr %23, align 4, !tbaa !5
  %363 = sub nsw i32 %362, 1
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds double, ptr %361, i64 %364
  %366 = load double, ptr %365, align 8, !tbaa !11
  %367 = load ptr, ptr %13, align 8, !tbaa !9
  %368 = load i32, ptr %23, align 4, !tbaa !5
  %369 = sub nsw i32 %368, 1
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds double, ptr %367, i64 %370
  %372 = load double, ptr %371, align 8, !tbaa !11
  %373 = fsub double %366, %372
  %374 = call double @llvm.fabs.f64(double %373)
  br label %482

375:                                              ; preds = %353
  %376 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %377 = getelementptr inbounds %struct.TA_LibcPriv, ptr %376, i32 0, i32 8
  %378 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %377, i64 0, i64 10
  %379 = getelementptr inbounds %struct.TA_CandleSetting, ptr %378, i32 0, i32 1
  %380 = load i32, ptr %379, align 4, !tbaa !15
  %381 = icmp eq i32 %380, 1
  br i1 %381, label %382, label %396

382:                                              ; preds = %375
  %383 = load ptr, ptr %14, align 8, !tbaa !9
  %384 = load i32, ptr %23, align 4, !tbaa !5
  %385 = sub nsw i32 %384, 1
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds double, ptr %383, i64 %386
  %388 = load double, ptr %387, align 8, !tbaa !11
  %389 = load ptr, ptr %15, align 8, !tbaa !9
  %390 = load i32, ptr %23, align 4, !tbaa !5
  %391 = sub nsw i32 %390, 1
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds double, ptr %389, i64 %392
  %394 = load double, ptr %393, align 8, !tbaa !11
  %395 = fsub double %388, %394
  br label %480

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

403:                                              ; preds = %396
  %404 = load ptr, ptr %14, align 8, !tbaa !9
  %405 = load i32, ptr %23, align 4, !tbaa !5
  %406 = sub nsw i32 %405, 1
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds double, ptr %404, i64 %407
  %409 = load double, ptr %408, align 8, !tbaa !11
  %410 = load ptr, ptr %16, align 8, !tbaa !9
  %411 = load i32, ptr %23, align 4, !tbaa !5
  %412 = sub nsw i32 %411, 1
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds double, ptr %410, i64 %413
  %415 = load double, ptr %414, align 8, !tbaa !11
  %416 = load ptr, ptr %13, align 8, !tbaa !9
  %417 = load i32, ptr %23, align 4, !tbaa !5
  %418 = sub nsw i32 %417, 1
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds double, ptr %416, i64 %419
  %421 = load double, ptr %420, align 8, !tbaa !11
  %422 = fcmp oge double %415, %421
  br i1 %422, label %423, label %430

423:                                              ; preds = %403
  %424 = load ptr, ptr %16, align 8, !tbaa !9
  %425 = load i32, ptr %23, align 4, !tbaa !5
  %426 = sub nsw i32 %425, 1
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds double, ptr %424, i64 %427
  %429 = load double, ptr %428, align 8, !tbaa !11
  br label %437

430:                                              ; preds = %403
  %431 = load ptr, ptr %13, align 8, !tbaa !9
  %432 = load i32, ptr %23, align 4, !tbaa !5
  %433 = sub nsw i32 %432, 1
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds double, ptr %431, i64 %434
  %436 = load double, ptr %435, align 8, !tbaa !11
  br label %437

437:                                              ; preds = %430, %423
  %438 = phi double [ %429, %423 ], [ %436, %430 ]
  %439 = fsub double %409, %438
  %440 = load ptr, ptr %16, align 8, !tbaa !9
  %441 = load i32, ptr %23, align 4, !tbaa !5
  %442 = sub nsw i32 %441, 1
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds double, ptr %440, i64 %443
  %445 = load double, ptr %444, align 8, !tbaa !11
  %446 = load ptr, ptr %13, align 8, !tbaa !9
  %447 = load i32, ptr %23, align 4, !tbaa !5
  %448 = sub nsw i32 %447, 1
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds double, ptr %446, i64 %449
  %451 = load double, ptr %450, align 8, !tbaa !11
  %452 = fcmp oge double %445, %451
  br i1 %452, label %453, label %460

453:                                              ; preds = %437
  %454 = load ptr, ptr %13, align 8, !tbaa !9
  %455 = load i32, ptr %23, align 4, !tbaa !5
  %456 = sub nsw i32 %455, 1
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds double, ptr %454, i64 %457
  %459 = load double, ptr %458, align 8, !tbaa !11
  br label %467

460:                                              ; preds = %437
  %461 = load ptr, ptr %16, align 8, !tbaa !9
  %462 = load i32, ptr %23, align 4, !tbaa !5
  %463 = sub nsw i32 %462, 1
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds double, ptr %461, i64 %464
  %466 = load double, ptr %465, align 8, !tbaa !11
  br label %467

467:                                              ; preds = %460, %453
  %468 = phi double [ %459, %453 ], [ %466, %460 ]
  %469 = load ptr, ptr %15, align 8, !tbaa !9
  %470 = load i32, ptr %23, align 4, !tbaa !5
  %471 = sub nsw i32 %470, 1
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds double, ptr %469, i64 %472
  %474 = load double, ptr %473, align 8, !tbaa !11
  %475 = fsub double %468, %474
  %476 = fadd double %439, %475
  br label %478

477:                                              ; preds = %396
  br label %478

478:                                              ; preds = %477, %467
  %479 = phi double [ %476, %467 ], [ 0.000000e+00, %477 ]
  br label %480

480:                                              ; preds = %478, %382
  %481 = phi double [ %395, %382 ], [ %479, %478 ]
  br label %482

482:                                              ; preds = %480, %360
  %483 = phi double [ %374, %360 ], [ %481, %480 ]
  %484 = load double, ptr %22, align 8, !tbaa !11
  %485 = fadd double %484, %483
  store double %485, ptr %22, align 8, !tbaa !11
  %486 = load i32, ptr %23, align 4, !tbaa !5
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr %23, align 4, !tbaa !5
  br label %349, !llvm.loop !19

488:                                              ; preds = %349
  %489 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %489, ptr %23, align 4, !tbaa !5
  store i32 0, ptr %24, align 4, !tbaa !5
  br label %490

490:                                              ; preds = %2205, %488
  %491 = load ptr, ptr %16, align 8, !tbaa !9
  %492 = load i32, ptr %23, align 4, !tbaa !5
  %493 = sub nsw i32 %492, 1
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds double, ptr %491, i64 %494
  %496 = load double, ptr %495, align 8, !tbaa !11
  %497 = load ptr, ptr %13, align 8, !tbaa !9
  %498 = load i32, ptr %23, align 4, !tbaa !5
  %499 = sub nsw i32 %498, 1
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds double, ptr %497, i64 %500
  %502 = load double, ptr %501, align 8, !tbaa !11
  %503 = fcmp oge double %496, %502
  %504 = zext i1 %503 to i64
  %505 = select i1 %503, i32 1, i32 -1
  %506 = load ptr, ptr %16, align 8, !tbaa !9
  %507 = load i32, ptr %23, align 4, !tbaa !5
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds double, ptr %506, i64 %508
  %510 = load double, ptr %509, align 8, !tbaa !11
  %511 = load ptr, ptr %13, align 8, !tbaa !9
  %512 = load i32, ptr %23, align 4, !tbaa !5
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds double, ptr %511, i64 %513
  %515 = load double, ptr %514, align 8, !tbaa !11
  %516 = fcmp oge double %510, %515
  %517 = zext i1 %516 to i64
  %518 = select i1 %516, i32 1, i32 -1
  %519 = sub nsw i32 0, %518
  %520 = icmp eq i32 %505, %519
  br i1 %520, label %521, label %1457

521:                                              ; preds = %490
  %522 = load ptr, ptr %13, align 8, !tbaa !9
  %523 = load i32, ptr %23, align 4, !tbaa !5
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds double, ptr %522, i64 %524
  %526 = load double, ptr %525, align 8, !tbaa !11
  %527 = load ptr, ptr %13, align 8, !tbaa !9
  %528 = load i32, ptr %23, align 4, !tbaa !5
  %529 = sub nsw i32 %528, 1
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds double, ptr %527, i64 %530
  %532 = load double, ptr %531, align 8, !tbaa !11
  %533 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %534 = getelementptr inbounds %struct.TA_LibcPriv, ptr %533, i32 0, i32 8
  %535 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %534, i64 0, i64 10
  %536 = getelementptr inbounds %struct.TA_CandleSetting, ptr %535, i32 0, i32 3
  %537 = load double, ptr %536, align 8, !tbaa !20
  %538 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %539 = getelementptr inbounds %struct.TA_LibcPriv, ptr %538, i32 0, i32 8
  %540 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %539, i64 0, i64 10
  %541 = getelementptr inbounds %struct.TA_CandleSetting, ptr %540, i32 0, i32 2
  %542 = load i32, ptr %541, align 8, !tbaa !13
  %543 = sitofp i32 %542 to double
  %544 = fcmp une double %543, 0.000000e+00
  br i1 %544, label %545, label %554

545:                                              ; preds = %521
  %546 = load double, ptr %22, align 8, !tbaa !11
  %547 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %548 = getelementptr inbounds %struct.TA_LibcPriv, ptr %547, i32 0, i32 8
  %549 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %548, i64 0, i64 10
  %550 = getelementptr inbounds %struct.TA_CandleSetting, ptr %549, i32 0, i32 2
  %551 = load i32, ptr %550, align 8, !tbaa !13
  %552 = sitofp i32 %551 to double
  %553 = fdiv double %546, %552
  br label %685

554:                                              ; preds = %521
  %555 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %556 = getelementptr inbounds %struct.TA_LibcPriv, ptr %555, i32 0, i32 8
  %557 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %556, i64 0, i64 10
  %558 = getelementptr inbounds %struct.TA_CandleSetting, ptr %557, i32 0, i32 1
  %559 = load i32, ptr %558, align 4, !tbaa !15
  %560 = icmp eq i32 %559, 0
  br i1 %560, label %561, label %576

561:                                              ; preds = %554
  %562 = load ptr, ptr %16, align 8, !tbaa !9
  %563 = load i32, ptr %23, align 4, !tbaa !5
  %564 = sub nsw i32 %563, 1
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds double, ptr %562, i64 %565
  %567 = load double, ptr %566, align 8, !tbaa !11
  %568 = load ptr, ptr %13, align 8, !tbaa !9
  %569 = load i32, ptr %23, align 4, !tbaa !5
  %570 = sub nsw i32 %569, 1
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds double, ptr %568, i64 %571
  %573 = load double, ptr %572, align 8, !tbaa !11
  %574 = fsub double %567, %573
  %575 = call double @llvm.fabs.f64(double %574)
  br label %683

576:                                              ; preds = %554
  %577 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %578 = getelementptr inbounds %struct.TA_LibcPriv, ptr %577, i32 0, i32 8
  %579 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %578, i64 0, i64 10
  %580 = getelementptr inbounds %struct.TA_CandleSetting, ptr %579, i32 0, i32 1
  %581 = load i32, ptr %580, align 4, !tbaa !15
  %582 = icmp eq i32 %581, 1
  br i1 %582, label %583, label %597

583:                                              ; preds = %576
  %584 = load ptr, ptr %14, align 8, !tbaa !9
  %585 = load i32, ptr %23, align 4, !tbaa !5
  %586 = sub nsw i32 %585, 1
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds double, ptr %584, i64 %587
  %589 = load double, ptr %588, align 8, !tbaa !11
  %590 = load ptr, ptr %15, align 8, !tbaa !9
  %591 = load i32, ptr %23, align 4, !tbaa !5
  %592 = sub nsw i32 %591, 1
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds double, ptr %590, i64 %593
  %595 = load double, ptr %594, align 8, !tbaa !11
  %596 = fsub double %589, %595
  br label %681

597:                                              ; preds = %576
  %598 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %599 = getelementptr inbounds %struct.TA_LibcPriv, ptr %598, i32 0, i32 8
  %600 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %599, i64 0, i64 10
  %601 = getelementptr inbounds %struct.TA_CandleSetting, ptr %600, i32 0, i32 1
  %602 = load i32, ptr %601, align 4, !tbaa !15
  %603 = icmp eq i32 %602, 2
  br i1 %603, label %604, label %678

604:                                              ; preds = %597
  %605 = load ptr, ptr %14, align 8, !tbaa !9
  %606 = load i32, ptr %23, align 4, !tbaa !5
  %607 = sub nsw i32 %606, 1
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds double, ptr %605, i64 %608
  %610 = load double, ptr %609, align 8, !tbaa !11
  %611 = load ptr, ptr %16, align 8, !tbaa !9
  %612 = load i32, ptr %23, align 4, !tbaa !5
  %613 = sub nsw i32 %612, 1
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds double, ptr %611, i64 %614
  %616 = load double, ptr %615, align 8, !tbaa !11
  %617 = load ptr, ptr %13, align 8, !tbaa !9
  %618 = load i32, ptr %23, align 4, !tbaa !5
  %619 = sub nsw i32 %618, 1
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds double, ptr %617, i64 %620
  %622 = load double, ptr %621, align 8, !tbaa !11
  %623 = fcmp oge double %616, %622
  br i1 %623, label %624, label %631

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

631:                                              ; preds = %604
  %632 = load ptr, ptr %13, align 8, !tbaa !9
  %633 = load i32, ptr %23, 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
  br label %638

638:                                              ; preds = %631, %624
  %639 = phi double [ %630, %624 ], [ %637, %631 ]
  %640 = fsub double %610, %639
  %641 = load ptr, ptr %16, align 8, !tbaa !9
  %642 = load i32, ptr %23, align 4, !tbaa !5
  %643 = sub nsw i32 %642, 1
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds double, ptr %641, i64 %644
  %646 = load double, ptr %645, align 8, !tbaa !11
  %647 = load ptr, ptr %13, align 8, !tbaa !9
  %648 = load i32, ptr %23, align 4, !tbaa !5
  %649 = sub nsw i32 %648, 1
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds double, ptr %647, i64 %650
  %652 = load double, ptr %651, align 8, !tbaa !11
  %653 = fcmp oge double %646, %652
  br i1 %653, label %654, label %661

654:                                              ; preds = %638
  %655 = load ptr, ptr %13, align 8, !tbaa !9
  %656 = load i32, ptr %23, align 4, !tbaa !5
  %657 = sub nsw i32 %656, 1
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds double, ptr %655, i64 %658
  %660 = load double, ptr %659, align 8, !tbaa !11
  br label %668

661:                                              ; preds = %638
  %662 = load ptr, ptr %16, align 8, !tbaa !9
  %663 = load i32, ptr %23, align 4, !tbaa !5
  %664 = sub nsw i32 %663, 1
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds double, ptr %662, i64 %665
  %667 = load double, ptr %666, align 8, !tbaa !11
  br label %668

668:                                              ; preds = %661, %654
  %669 = phi double [ %660, %654 ], [ %667, %661 ]
  %670 = load ptr, ptr %15, align 8, !tbaa !9
  %671 = load i32, ptr %23, align 4, !tbaa !5
  %672 = sub nsw i32 %671, 1
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds double, ptr %670, i64 %673
  %675 = load double, ptr %674, align 8, !tbaa !11
  %676 = fsub double %669, %675
  %677 = fadd double %640, %676
  br label %679

678:                                              ; preds = %597
  br label %679

679:                                              ; preds = %678, %668
  %680 = phi double [ %677, %668 ], [ 0.000000e+00, %678 ]
  br label %681

681:                                              ; preds = %679, %583
  %682 = phi double [ %596, %583 ], [ %680, %679 ]
  br label %683

683:                                              ; preds = %681, %561
  %684 = phi double [ %575, %561 ], [ %682, %681 ]
  br label %685

685:                                              ; preds = %683, %545
  %686 = phi double [ %553, %545 ], [ %684, %683 ]
  %687 = fmul double %537, %686
  %688 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %689 = getelementptr inbounds %struct.TA_LibcPriv, ptr %688, i32 0, i32 8
  %690 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %689, i64 0, i64 10
  %691 = getelementptr inbounds %struct.TA_CandleSetting, ptr %690, i32 0, i32 1
  %692 = load i32, ptr %691, align 4, !tbaa !15
  %693 = icmp eq i32 %692, 2
  %694 = zext i1 %693 to i64
  %695 = select i1 %693, double 2.000000e+00, double 1.000000e+00
  %696 = fdiv double %687, %695
  %697 = fadd double %532, %696
  %698 = fcmp ole double %526, %697
  br i1 %698, label %699, label %1457

699:                                              ; preds = %685
  %700 = load ptr, ptr %13, align 8, !tbaa !9
  %701 = load i32, ptr %23, align 4, !tbaa !5
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds double, ptr %700, i64 %702
  %704 = load double, ptr %703, align 8, !tbaa !11
  %705 = load ptr, ptr %13, align 8, !tbaa !9
  %706 = load i32, ptr %23, align 4, !tbaa !5
  %707 = sub nsw i32 %706, 1
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds double, ptr %705, i64 %708
  %710 = load double, ptr %709, align 8, !tbaa !11
  %711 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %712 = getelementptr inbounds %struct.TA_LibcPriv, ptr %711, i32 0, i32 8
  %713 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %712, i64 0, i64 10
  %714 = getelementptr inbounds %struct.TA_CandleSetting, ptr %713, i32 0, i32 3
  %715 = load double, ptr %714, align 8, !tbaa !20
  %716 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %717 = getelementptr inbounds %struct.TA_LibcPriv, ptr %716, i32 0, i32 8
  %718 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %717, i64 0, i64 10
  %719 = getelementptr inbounds %struct.TA_CandleSetting, ptr %718, i32 0, i32 2
  %720 = load i32, ptr %719, align 8, !tbaa !13
  %721 = sitofp i32 %720 to double
  %722 = fcmp une double %721, 0.000000e+00
  br i1 %722, label %723, label %732

723:                                              ; preds = %699
  %724 = load double, ptr %22, align 8, !tbaa !11
  %725 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %726 = getelementptr inbounds %struct.TA_LibcPriv, ptr %725, i32 0, i32 8
  %727 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %726, i64 0, i64 10
  %728 = getelementptr inbounds %struct.TA_CandleSetting, ptr %727, i32 0, i32 2
  %729 = load i32, ptr %728, align 8, !tbaa !13
  %730 = sitofp i32 %729 to double
  %731 = fdiv double %724, %730
  br label %863

732:                                              ; preds = %699
  %733 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %734 = getelementptr inbounds %struct.TA_LibcPriv, ptr %733, i32 0, i32 8
  %735 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %734, i64 0, i64 10
  %736 = getelementptr inbounds %struct.TA_CandleSetting, ptr %735, i32 0, i32 1
  %737 = load i32, ptr %736, align 4, !tbaa !15
  %738 = icmp eq i32 %737, 0
  br i1 %738, label %739, label %754

739:                                              ; preds = %732
  %740 = load ptr, ptr %16, align 8, !tbaa !9
  %741 = load i32, ptr %23, 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 = load ptr, ptr %13, align 8, !tbaa !9
  %747 = load i32, ptr %23, align 4, !tbaa !5
  %748 = sub nsw i32 %747, 1
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds double, ptr %746, i64 %749
  %751 = load double, ptr %750, align 8, !tbaa !11
  %752 = fsub double %745, %751
  %753 = call double @llvm.fabs.f64(double %752)
  br label %861

754:                                              ; preds = %732
  %755 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %756 = getelementptr inbounds %struct.TA_LibcPriv, ptr %755, i32 0, i32 8
  %757 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %756, i64 0, i64 10
  %758 = getelementptr inbounds %struct.TA_CandleSetting, ptr %757, i32 0, i32 1
  %759 = load i32, ptr %758, align 4, !tbaa !15
  %760 = icmp eq i32 %759, 1
  br i1 %760, label %761, label %775

761:                                              ; preds = %754
  %762 = load ptr, ptr %14, align 8, !tbaa !9
  %763 = load i32, ptr %23, align 4, !tbaa !5
  %764 = sub nsw i32 %763, 1
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds double, ptr %762, i64 %765
  %767 = load double, ptr %766, align 8, !tbaa !11
  %768 = load ptr, ptr %15, align 8, !tbaa !9
  %769 = load i32, ptr %23, align 4, !tbaa !5
  %770 = sub nsw i32 %769, 1
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds double, ptr %768, i64 %771
  %773 = load double, ptr %772, align 8, !tbaa !11
  %774 = fsub double %767, %773
  br label %859

775:                                              ; preds = %754
  %776 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %777 = getelementptr inbounds %struct.TA_LibcPriv, ptr %776, i32 0, i32 8
  %778 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %777, i64 0, i64 10
  %779 = getelementptr inbounds %struct.TA_CandleSetting, ptr %778, i32 0, i32 1
  %780 = load i32, ptr %779, align 4, !tbaa !15
  %781 = icmp eq i32 %780, 2
  br i1 %781, label %782, label %856

782:                                              ; preds = %775
  %783 = load ptr, ptr %14, align 8, !tbaa !9
  %784 = load i32, ptr %23, align 4, !tbaa !5
  %785 = sub nsw i32 %784, 1
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds double, ptr %783, i64 %786
  %788 = load double, ptr %787, align 8, !tbaa !11
  %789 = load ptr, ptr %16, align 8, !tbaa !9
  %790 = load i32, ptr %23, align 4, !tbaa !5
  %791 = sub nsw i32 %790, 1
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds double, ptr %789, i64 %792
  %794 = load double, ptr %793, align 8, !tbaa !11
  %795 = load ptr, ptr %13, align 8, !tbaa !9
  %796 = load i32, ptr %23, align 4, !tbaa !5
  %797 = sub nsw i32 %796, 1
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds double, ptr %795, i64 %798
  %800 = load double, ptr %799, align 8, !tbaa !11
  %801 = fcmp oge double %794, %800
  br i1 %801, label %802, label %809

802:                                              ; preds = %782
  %803 = load ptr, ptr %16, align 8, !tbaa !9
  %804 = load i32, ptr %23, align 4, !tbaa !5
  %805 = sub nsw i32 %804, 1
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds double, ptr %803, i64 %806
  %808 = load double, ptr %807, align 8, !tbaa !11
  br label %816

809:                                              ; preds = %782
  %810 = load ptr, ptr %13, align 8, !tbaa !9
  %811 = load i32, ptr %23, align 4, !tbaa !5
  %812 = sub nsw i32 %811, 1
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds double, ptr %810, i64 %813
  %815 = load double, ptr %814, align 8, !tbaa !11
  br label %816

816:                                              ; preds = %809, %802
  %817 = phi double [ %808, %802 ], [ %815, %809 ]
  %818 = fsub double %788, %817
  %819 = load ptr, ptr %16, align 8, !tbaa !9
  %820 = load i32, ptr %23, align 4, !tbaa !5
  %821 = sub nsw i32 %820, 1
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds double, ptr %819, i64 %822
  %824 = load double, ptr %823, align 8, !tbaa !11
  %825 = load ptr, ptr %13, align 8, !tbaa !9
  %826 = load i32, ptr %23, align 4, !tbaa !5
  %827 = sub nsw i32 %826, 1
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds double, ptr %825, i64 %828
  %830 = load double, ptr %829, align 8, !tbaa !11
  %831 = fcmp oge double %824, %830
  br i1 %831, label %832, label %839

832:                                              ; preds = %816
  %833 = load ptr, ptr %13, align 8, !tbaa !9
  %834 = load i32, ptr %23, align 4, !tbaa !5
  %835 = sub nsw i32 %834, 1
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds double, ptr %833, i64 %836
  %838 = load double, ptr %837, align 8, !tbaa !11
  br label %846

839:                                              ; preds = %816
  %840 = load ptr, ptr %16, align 8, !tbaa !9
  %841 = load i32, ptr %23, align 4, !tbaa !5
  %842 = sub nsw i32 %841, 1
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds double, ptr %840, i64 %843
  %845 = load double, ptr %844, align 8, !tbaa !11
  br label %846

846:                                              ; preds = %839, %832
  %847 = phi double [ %838, %832 ], [ %845, %839 ]
  %848 = load ptr, ptr %15, align 8, !tbaa !9
  %849 = load i32, ptr %23, align 4, !tbaa !5
  %850 = sub nsw i32 %849, 1
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds double, ptr %848, i64 %851
  %853 = load double, ptr %852, align 8, !tbaa !11
  %854 = fsub double %847, %853
  %855 = fadd double %818, %854
  br label %857

856:                                              ; preds = %775
  br label %857

857:                                              ; preds = %856, %846
  %858 = phi double [ %855, %846 ], [ 0.000000e+00, %856 ]
  br label %859

859:                                              ; preds = %857, %761
  %860 = phi double [ %774, %761 ], [ %858, %857 ]
  br label %861

861:                                              ; preds = %859, %739
  %862 = phi double [ %753, %739 ], [ %860, %859 ]
  br label %863

863:                                              ; preds = %861, %723
  %864 = phi double [ %731, %723 ], [ %862, %861 ]
  %865 = fmul double %715, %864
  %866 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %867 = getelementptr inbounds %struct.TA_LibcPriv, ptr %866, i32 0, i32 8
  %868 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %867, i64 0, i64 10
  %869 = getelementptr inbounds %struct.TA_CandleSetting, ptr %868, i32 0, i32 1
  %870 = load i32, ptr %869, align 4, !tbaa !15
  %871 = icmp eq i32 %870, 2
  %872 = zext i1 %871 to i64
  %873 = select i1 %871, double 2.000000e+00, double 1.000000e+00
  %874 = fdiv double %865, %873
  %875 = fsub double %710, %874
  %876 = fcmp oge double %704, %875
  br i1 %876, label %877, label %1457

877:                                              ; preds = %863
  %878 = load ptr, ptr %16, align 8, !tbaa !9
  %879 = load i32, ptr %23, align 4, !tbaa !5
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds double, ptr %878, i64 %880
  %882 = load double, ptr %881, align 8, !tbaa !11
  %883 = load ptr, ptr %13, align 8, !tbaa !9
  %884 = load i32, ptr %23, align 4, !tbaa !5
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds double, ptr %883, i64 %885
  %887 = load double, ptr %886, align 8, !tbaa !11
  %888 = fsub double %882, %887
  %889 = call double @llvm.fabs.f64(double %888)
  %890 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %891 = getelementptr inbounds %struct.TA_LibcPriv, ptr %890, i32 0, i32 8
  %892 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %891, i64 0, i64 0
  %893 = getelementptr inbounds %struct.TA_CandleSetting, ptr %892, i32 0, i32 3
  %894 = load double, ptr %893, align 8, !tbaa !20
  %895 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %896 = getelementptr inbounds %struct.TA_LibcPriv, ptr %895, i32 0, i32 8
  %897 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %896, i64 0, i64 0
  %898 = getelementptr inbounds %struct.TA_CandleSetting, ptr %897, i32 0, i32 2
  %899 = load i32, ptr %898, align 8, !tbaa !13
  %900 = sitofp i32 %899 to double
  %901 = fcmp une double %900, 0.000000e+00
  br i1 %901, label %902, label %911

902:                                              ; preds = %877
  %903 = load double, ptr %21, align 8, !tbaa !11
  %904 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %905 = getelementptr inbounds %struct.TA_LibcPriv, ptr %904, i32 0, i32 8
  %906 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %905, i64 0, i64 0
  %907 = getelementptr inbounds %struct.TA_CandleSetting, ptr %906, i32 0, i32 2
  %908 = load i32, ptr %907, align 8, !tbaa !13
  %909 = sitofp i32 %908 to double
  %910 = fdiv double %903, %909
  br label %1028

911:                                              ; preds = %877
  %912 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %913 = getelementptr inbounds %struct.TA_LibcPriv, ptr %912, i32 0, i32 8
  %914 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %913, i64 0, i64 0
  %915 = getelementptr inbounds %struct.TA_CandleSetting, ptr %914, i32 0, i32 1
  %916 = load i32, ptr %915, align 4, !tbaa !15
  %917 = icmp eq i32 %916, 0
  br i1 %917, label %918, label %931

918:                                              ; preds = %911
  %919 = load ptr, ptr %16, align 8, !tbaa !9
  %920 = load i32, ptr %23, align 4, !tbaa !5
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds double, ptr %919, i64 %921
  %923 = load double, ptr %922, align 8, !tbaa !11
  %924 = load ptr, ptr %13, align 8, !tbaa !9
  %925 = load i32, ptr %23, align 4, !tbaa !5
  %926 = sext i32 %925 to i64
  %927 = getelementptr inbounds double, ptr %924, i64 %926
  %928 = load double, ptr %927, align 8, !tbaa !11
  %929 = fsub double %923, %928
  %930 = call double @llvm.fabs.f64(double %929)
  br label %1026

931:                                              ; preds = %911
  %932 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %933 = getelementptr inbounds %struct.TA_LibcPriv, ptr %932, i32 0, i32 8
  %934 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %933, i64 0, i64 0
  %935 = getelementptr inbounds %struct.TA_CandleSetting, ptr %934, i32 0, i32 1
  %936 = load i32, ptr %935, align 4, !tbaa !15
  %937 = icmp eq i32 %936, 1
  br i1 %937, label %938, label %950

938:                                              ; preds = %931
  %939 = load ptr, ptr %14, align 8, !tbaa !9
  %940 = load i32, ptr %23, align 4, !tbaa !5
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds double, ptr %939, i64 %941
  %943 = load double, ptr %942, align 8, !tbaa !11
  %944 = load ptr, ptr %15, align 8, !tbaa !9
  %945 = load i32, ptr %23, align 4, !tbaa !5
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds double, ptr %944, i64 %946
  %948 = load double, ptr %947, align 8, !tbaa !11
  %949 = fsub double %943, %948
  br label %1024

950:                                              ; preds = %931
  %951 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %952 = getelementptr inbounds %struct.TA_LibcPriv, ptr %951, i32 0, i32 8
  %953 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %952, i64 0, i64 0
  %954 = getelementptr inbounds %struct.TA_CandleSetting, ptr %953, i32 0, i32 1
  %955 = load i32, ptr %954, align 4, !tbaa !15
  %956 = icmp eq i32 %955, 2
  br i1 %956, label %957, label %1021

957:                                              ; preds = %950
  %958 = load ptr, ptr %14, align 8, !tbaa !9
  %959 = load i32, ptr %23, align 4, !tbaa !5
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds double, ptr %958, i64 %960
  %962 = load double, ptr %961, align 8, !tbaa !11
  %963 = load ptr, ptr %16, align 8, !tbaa !9
  %964 = load i32, ptr %23, align 4, !tbaa !5
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds double, ptr %963, i64 %965
  %967 = load double, ptr %966, align 8, !tbaa !11
  %968 = load ptr, ptr %13, align 8, !tbaa !9
  %969 = load i32, ptr %23, align 4, !tbaa !5
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds double, ptr %968, i64 %970
  %972 = load double, ptr %971, align 8, !tbaa !11
  %973 = fcmp oge double %967, %972
  br i1 %973, label %974, label %980

974:                                              ; preds = %957
  %975 = load ptr, ptr %16, align 8, !tbaa !9
  %976 = load i32, ptr %23, align 4, !tbaa !5
  %977 = sext i32 %976 to i64
  %978 = getelementptr inbounds double, ptr %975, i64 %977
  %979 = load double, ptr %978, align 8, !tbaa !11
  br label %986

980:                                              ; preds = %957
  %981 = load ptr, ptr %13, align 8, !tbaa !9
  %982 = load i32, ptr %23, align 4, !tbaa !5
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds double, ptr %981, i64 %983
  %985 = load double, ptr %984, align 8, !tbaa !11
  br label %986

986:                                              ; preds = %980, %974
  %987 = phi double [ %979, %974 ], [ %985, %980 ]
  %988 = fsub double %962, %987
  %989 = load ptr, ptr %16, align 8, !tbaa !9
  %990 = load i32, ptr %23, align 4, !tbaa !5
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds double, ptr %989, i64 %991
  %993 = load double, ptr %992, align 8, !tbaa !11
  %994 = load ptr, ptr %13, align 8, !tbaa !9
  %995 = load i32, ptr %23, align 4, !tbaa !5
  %996 = sext i32 %995 to i64
  %997 = getelementptr inbounds double, ptr %994, i64 %996
  %998 = load double, ptr %997, align 8, !tbaa !11
  %999 = fcmp oge double %993, %998
  br i1 %999, label %1000, label %1006

1000:                                             ; preds = %986
  %1001 = load ptr, ptr %13, align 8, !tbaa !9
  %1002 = load i32, ptr %23, align 4, !tbaa !5
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds double, ptr %1001, i64 %1003
  %1005 = load double, ptr %1004, align 8, !tbaa !11
  br label %1012

1006:                                             ; preds = %986
  %1007 = load ptr, ptr %16, align 8, !tbaa !9
  %1008 = load i32, ptr %23, align 4, !tbaa !5
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds double, ptr %1007, i64 %1009
  %1011 = load double, ptr %1010, align 8, !tbaa !11
  br label %1012

1012:                                             ; preds = %1006, %1000
  %1013 = phi double [ %1005, %1000 ], [ %1011, %1006 ]
  %1014 = load ptr, ptr %15, align 8, !tbaa !9
  %1015 = load i32, ptr %23, align 4, !tbaa !5
  %1016 = sext i32 %1015 to i64
  %1017 = getelementptr inbounds double, ptr %1014, i64 %1016
  %1018 = load double, ptr %1017, align 8, !tbaa !11
  %1019 = fsub double %1013, %1018
  %1020 = fadd double %988, %1019
  br label %1022

1021:                                             ; preds = %950
  br label %1022

1022:                                             ; preds = %1021, %1012
  %1023 = phi double [ %1020, %1012 ], [ 0.000000e+00, %1021 ]
  br label %1024

1024:                                             ; preds = %1022, %938
  %1025 = phi double [ %949, %938 ], [ %1023, %1022 ]
  br label %1026

1026:                                             ; preds = %1024, %918
  %1027 = phi double [ %930, %918 ], [ %1025, %1024 ]
  br label %1028

1028:                                             ; preds = %1026, %902
  %1029 = phi double [ %910, %902 ], [ %1027, %1026 ]
  %1030 = fmul double %894, %1029
  %1031 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1032 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1031, i32 0, i32 8
  %1033 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1032, i64 0, i64 0
  %1034 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1033, i32 0, i32 1
  %1035 = load i32, ptr %1034, align 4, !tbaa !15
  %1036 = icmp eq i32 %1035, 2
  %1037 = zext i1 %1036 to i64
  %1038 = select i1 %1036, double 2.000000e+00, double 1.000000e+00
  %1039 = fdiv double %1030, %1038
  %1040 = fcmp ogt double %889, %1039
  br i1 %1040, label %1041, label %1457

1041:                                             ; preds = %1028
  %1042 = load ptr, ptr %16, align 8, !tbaa !9
  %1043 = load i32, ptr %23, align 4, !tbaa !5
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds double, ptr %1042, i64 %1044
  %1046 = load double, ptr %1045, align 8, !tbaa !11
  %1047 = load ptr, ptr %13, align 8, !tbaa !9
  %1048 = load i32, ptr %23, align 4, !tbaa !5
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds double, ptr %1047, i64 %1049
  %1051 = load double, ptr %1050, align 8, !tbaa !11
  %1052 = fcmp oge double %1046, %1051
  %1053 = zext i1 %1052 to i64
  %1054 = select i1 %1052, i32 1, i32 -1
  %1055 = icmp eq i32 %1054, 1
  br i1 %1055, label %1056, label %1239

1056:                                             ; preds = %1041
  %1057 = load ptr, ptr %16, align 8, !tbaa !9
  %1058 = load i32, ptr %23, align 4, !tbaa !5
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds double, ptr %1057, i64 %1059
  %1061 = load double, ptr %1060, align 8, !tbaa !11
  %1062 = load ptr, ptr %13, align 8, !tbaa !9
  %1063 = load i32, ptr %23, align 4, !tbaa !5
  %1064 = sext i32 %1063 to i64
  %1065 = getelementptr inbounds double, ptr %1062, i64 %1064
  %1066 = load double, ptr %1065, align 8, !tbaa !11
  %1067 = fcmp oge double %1061, %1066
  br i1 %1067, label %1068, label %1074

1068:                                             ; preds = %1056
  %1069 = load ptr, ptr %13, align 8, !tbaa !9
  %1070 = load i32, ptr %23, align 4, !tbaa !5
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds double, ptr %1069, i64 %1071
  %1073 = load double, ptr %1072, align 8, !tbaa !11
  br label %1080

1074:                                             ; preds = %1056
  %1075 = load ptr, ptr %16, align 8, !tbaa !9
  %1076 = load i32, ptr %23, align 4, !tbaa !5
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds double, ptr %1075, i64 %1077
  %1079 = load double, ptr %1078, align 8, !tbaa !11
  br label %1080

1080:                                             ; preds = %1074, %1068
  %1081 = phi double [ %1073, %1068 ], [ %1079, %1074 ]
  %1082 = load ptr, ptr %15, align 8, !tbaa !9
  %1083 = load i32, ptr %23, align 4, !tbaa !5
  %1084 = sext i32 %1083 to i64
  %1085 = getelementptr inbounds double, ptr %1082, i64 %1084
  %1086 = load double, ptr %1085, align 8, !tbaa !11
  %1087 = fsub double %1081, %1086
  %1088 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1089 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1088, i32 0, i32 8
  %1090 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1089, i64 0, i64 7
  %1091 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1090, i32 0, i32 3
  %1092 = load double, ptr %1091, align 8, !tbaa !20
  %1093 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1094 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1093, i32 0, i32 8
  %1095 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1094, i64 0, i64 7
  %1096 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1095, i32 0, i32 2
  %1097 = load i32, ptr %1096, align 8, !tbaa !13
  %1098 = sitofp i32 %1097 to double
  %1099 = fcmp une double %1098, 0.000000e+00
  br i1 %1099, label %1100, label %1109

1100:                                             ; preds = %1080
  %1101 = load double, ptr %20, align 8, !tbaa !11
  %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 2
  %1106 = load i32, ptr %1105, align 8, !tbaa !13
  %1107 = sitofp i32 %1106 to double
  %1108 = fdiv double %1101, %1107
  br label %1226

1109:                                             ; preds = %1080
  %1110 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1111 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1110, i32 0, i32 8
  %1112 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1111, i64 0, i64 7
  %1113 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1112, i32 0, i32 1
  %1114 = load i32, ptr %1113, align 4, !tbaa !15
  %1115 = icmp eq i32 %1114, 0
  br i1 %1115, label %1116, label %1129

1116:                                             ; preds = %1109
  %1117 = load ptr, ptr %16, align 8, !tbaa !9
  %1118 = load i32, ptr %23, align 4, !tbaa !5
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds double, ptr %1117, i64 %1119
  %1121 = load double, ptr %1120, align 8, !tbaa !11
  %1122 = load ptr, ptr %13, align 8, !tbaa !9
  %1123 = load i32, ptr %23, align 4, !tbaa !5
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds double, ptr %1122, i64 %1124
  %1126 = load double, ptr %1125, align 8, !tbaa !11
  %1127 = fsub double %1121, %1126
  %1128 = call double @llvm.fabs.f64(double %1127)
  br label %1224

1129:                                             ; preds = %1109
  %1130 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1131 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1130, i32 0, i32 8
  %1132 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1131, i64 0, i64 7
  %1133 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1132, i32 0, i32 1
  %1134 = load i32, ptr %1133, align 4, !tbaa !15
  %1135 = icmp eq i32 %1134, 1
  br i1 %1135, label %1136, label %1148

1136:                                             ; preds = %1129
  %1137 = load ptr, ptr %14, align 8, !tbaa !9
  %1138 = load i32, ptr %23, align 4, !tbaa !5
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds double, ptr %1137, i64 %1139
  %1141 = load double, ptr %1140, align 8, !tbaa !11
  %1142 = load ptr, ptr %15, align 8, !tbaa !9
  %1143 = load i32, ptr %23, align 4, !tbaa !5
  %1144 = sext i32 %1143 to i64
  %1145 = getelementptr inbounds double, ptr %1142, i64 %1144
  %1146 = load double, ptr %1145, align 8, !tbaa !11
  %1147 = fsub double %1141, %1146
  br label %1222

1148:                                             ; preds = %1129
  %1149 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1150 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1149, i32 0, i32 8
  %1151 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1150, i64 0, i64 7
  %1152 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1151, i32 0, i32 1
  %1153 = load i32, ptr %1152, align 4, !tbaa !15
  %1154 = icmp eq i32 %1153, 2
  br i1 %1154, label %1155, label %1219

1155:                                             ; preds = %1148
  %1156 = load ptr, ptr %14, align 8, !tbaa !9
  %1157 = load i32, ptr %23, align 4, !tbaa !5
  %1158 = sext i32 %1157 to i64
  %1159 = getelementptr inbounds double, ptr %1156, i64 %1158
  %1160 = load double, ptr %1159, align 8, !tbaa !11
  %1161 = load ptr, ptr %16, align 8, !tbaa !9
  %1162 = load i32, ptr %23, align 4, !tbaa !5
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds double, ptr %1161, i64 %1163
  %1165 = load double, ptr %1164, align 8, !tbaa !11
  %1166 = load ptr, ptr %13, align 8, !tbaa !9
  %1167 = load i32, ptr %23, align 4, !tbaa !5
  %1168 = sext i32 %1167 to i64
  %1169 = getelementptr inbounds double, ptr %1166, i64 %1168
  %1170 = load double, ptr %1169, align 8, !tbaa !11
  %1171 = fcmp oge double %1165, %1170
  br i1 %1171, label %1172, label %1178

1172:                                             ; preds = %1155
  %1173 = load ptr, ptr %16, align 8, !tbaa !9
  %1174 = load i32, ptr %23, align 4, !tbaa !5
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds double, ptr %1173, i64 %1175
  %1177 = load double, ptr %1176, align 8, !tbaa !11
  br label %1184

1178:                                             ; preds = %1155
  %1179 = load ptr, ptr %13, align 8, !tbaa !9
  %1180 = load i32, ptr %23, align 4, !tbaa !5
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds double, ptr %1179, i64 %1181
  %1183 = load double, ptr %1182, align 8, !tbaa !11
  br label %1184

1184:                                             ; preds = %1178, %1172
  %1185 = phi double [ %1177, %1172 ], [ %1183, %1178 ]
  %1186 = fsub double %1160, %1185
  %1187 = load ptr, ptr %16, align 8, !tbaa !9
  %1188 = load i32, ptr %23, align 4, !tbaa !5
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds double, ptr %1187, i64 %1189
  %1191 = load double, ptr %1190, align 8, !tbaa !11
  %1192 = load ptr, ptr %13, align 8, !tbaa !9
  %1193 = load i32, ptr %23, align 4, !tbaa !5
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds double, ptr %1192, i64 %1194
  %1196 = load double, ptr %1195, align 8, !tbaa !11
  %1197 = fcmp oge double %1191, %1196
  br i1 %1197, label %1198, label %1204

1198:                                             ; preds = %1184
  %1199 = load ptr, ptr %13, align 8, !tbaa !9
  %1200 = load i32, ptr %23, align 4, !tbaa !5
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds double, ptr %1199, i64 %1201
  %1203 = load double, ptr %1202, align 8, !tbaa !11
  br label %1210

1204:                                             ; preds = %1184
  %1205 = load ptr, ptr %16, align 8, !tbaa !9
  %1206 = load i32, ptr %23, align 4, !tbaa !5
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds double, ptr %1205, i64 %1207
  %1209 = load double, ptr %1208, align 8, !tbaa !11
  br label %1210

1210:                                             ; preds = %1204, %1198
  %1211 = phi double [ %1203, %1198 ], [ %1209, %1204 ]
  %1212 = load ptr, ptr %15, align 8, !tbaa !9
  %1213 = load i32, ptr %23, align 4, !tbaa !5
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds double, ptr %1212, i64 %1214
  %1216 = load double, ptr %1215, align 8, !tbaa !11
  %1217 = fsub double %1211, %1216
  %1218 = fadd double %1186, %1217
  br label %1220

1219:                                             ; preds = %1148
  br label %1220

1220:                                             ; preds = %1219, %1210
  %1221 = phi double [ %1218, %1210 ], [ 0.000000e+00, %1219 ]
  br label %1222

1222:                                             ; preds = %1220, %1136
  %1223 = phi double [ %1147, %1136 ], [ %1221, %1220 ]
  br label %1224

1224:                                             ; preds = %1222, %1116
  %1225 = phi double [ %1128, %1116 ], [ %1223, %1222 ]
  br label %1226

1226:                                             ; preds = %1224, %1100
  %1227 = phi double [ %1108, %1100 ], [ %1225, %1224 ]
  %1228 = fmul double %1092, %1227
  %1229 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1230 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1229, i32 0, i32 8
  %1231 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1230, i64 0, i64 7
  %1232 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1231, i32 0, i32 1
  %1233 = load i32, ptr %1232, align 4, !tbaa !15
  %1234 = icmp eq i32 %1233, 2
  %1235 = zext i1 %1234 to i64
  %1236 = select i1 %1234, double 2.000000e+00, double 1.000000e+00
  %1237 = fdiv double %1228, %1236
  %1238 = fcmp olt double %1087, %1237
  br i1 %1238, label %1437, label %1239

1239:                                             ; preds = %1226, %1041
  %1240 = load ptr, ptr %16, align 8, !tbaa !9
  %1241 = load i32, ptr %23, align 4, !tbaa !5
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds double, ptr %1240, i64 %1242
  %1244 = load double, ptr %1243, align 8, !tbaa !11
  %1245 = load ptr, ptr %13, align 8, !tbaa !9
  %1246 = load i32, ptr %23, align 4, !tbaa !5
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds double, ptr %1245, i64 %1247
  %1249 = load double, ptr %1248, align 8, !tbaa !11
  %1250 = fcmp oge double %1244, %1249
  %1251 = zext i1 %1250 to i64
  %1252 = select i1 %1250, i32 1, i32 -1
  %1253 = icmp eq i32 %1252, -1
  br i1 %1253, label %1254, label %1457

1254:                                             ; preds = %1239
  %1255 = load ptr, ptr %14, align 8, !tbaa !9
  %1256 = load i32, ptr %23, align 4, !tbaa !5
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds double, ptr %1255, i64 %1257
  %1259 = load double, ptr %1258, align 8, !tbaa !11
  %1260 = load ptr, ptr %16, align 8, !tbaa !9
  %1261 = load i32, ptr %23, align 4, !tbaa !5
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds double, ptr %1260, i64 %1262
  %1264 = load double, ptr %1263, align 8, !tbaa !11
  %1265 = load ptr, ptr %13, align 8, !tbaa !9
  %1266 = load i32, ptr %23, align 4, !tbaa !5
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds double, ptr %1265, i64 %1267
  %1269 = load double, ptr %1268, align 8, !tbaa !11
  %1270 = fcmp oge double %1264, %1269
  br i1 %1270, label %1271, label %1277

1271:                                             ; preds = %1254
  %1272 = load ptr, ptr %16, align 8, !tbaa !9
  %1273 = load i32, ptr %23, align 4, !tbaa !5
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds double, ptr %1272, i64 %1274
  %1276 = load double, ptr %1275, align 8, !tbaa !11
  br label %1283

1277:                                             ; preds = %1254
  %1278 = load ptr, ptr %13, align 8, !tbaa !9
  %1279 = load i32, ptr %23, align 4, !tbaa !5
  %1280 = sext i32 %1279 to i64
  %1281 = getelementptr inbounds double, ptr %1278, i64 %1280
  %1282 = load double, ptr %1281, align 8, !tbaa !11
  br label %1283

1283:                                             ; preds = %1277, %1271
  %1284 = phi double [ %1276, %1271 ], [ %1282, %1277 ]
  %1285 = fsub double %1259, %1284
  %1286 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1287 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1286, i32 0, i32 8
  %1288 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1287, i64 0, i64 7
  %1289 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1288, i32 0, i32 3
  %1290 = load double, ptr %1289, align 8, !tbaa !20
  %1291 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1292 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1291, i32 0, i32 8
  %1293 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1292, i64 0, i64 7
  %1294 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1293, i32 0, i32 2
  %1295 = load i32, ptr %1294, align 8, !tbaa !13
  %1296 = sitofp i32 %1295 to double
  %1297 = fcmp une double %1296, 0.000000e+00
  br i1 %1297, label %1298, label %1307

1298:                                             ; preds = %1283
  %1299 = load double, ptr %20, align 8, !tbaa !11
  %1300 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1301 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1300, i32 0, i32 8
  %1302 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1301, i64 0, i64 7
  %1303 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1302, i32 0, i32 2
  %1304 = load i32, ptr %1303, align 8, !tbaa !13
  %1305 = sitofp i32 %1304 to double
  %1306 = fdiv double %1299, %1305
  br label %1424

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

1314:                                             ; preds = %1307
  %1315 = load ptr, ptr %16, align 8, !tbaa !9
  %1316 = load i32, ptr %23, align 4, !tbaa !5
  %1317 = sext i32 %1316 to i64
  %1318 = getelementptr inbounds double, ptr %1315, i64 %1317
  %1319 = load double, ptr %1318, align 8, !tbaa !11
  %1320 = load ptr, ptr %13, align 8, !tbaa !9
  %1321 = load i32, ptr %23, align 4, !tbaa !5
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds double, ptr %1320, i64 %1322
  %1324 = load double, ptr %1323, align 8, !tbaa !11
  %1325 = fsub double %1319, %1324
  %1326 = call double @llvm.fabs.f64(double %1325)
  br label %1422

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

1334:                                             ; preds = %1327
  %1335 = load ptr, ptr %14, align 8, !tbaa !9
  %1336 = load i32, ptr %23, 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
  %1340 = load ptr, ptr %15, align 8, !tbaa !9
  %1341 = load i32, ptr %23, align 4, !tbaa !5
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds double, ptr %1340, i64 %1342
  %1344 = load double, ptr %1343, align 8, !tbaa !11
  %1345 = fsub double %1339, %1344
  br label %1420

1346:                                             ; preds = %1327
  %1347 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1348 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1347, i32 0, i32 8
  %1349 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1348, i64 0, i64 7
  %1350 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1349, i32 0, i32 1
  %1351 = load i32, ptr %1350, align 4, !tbaa !15
  %1352 = icmp eq i32 %1351, 2
  br i1 %1352, label %1353, label %1417

1353:                                             ; preds = %1346
  %1354 = load ptr, ptr %14, align 8, !tbaa !9
  %1355 = load i32, ptr %23, 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 = load ptr, ptr %16, align 8, !tbaa !9
  %1360 = load i32, ptr %23, align 4, !tbaa !5
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds double, ptr %1359, i64 %1361
  %1363 = load double, ptr %1362, align 8, !tbaa !11
  %1364 = load ptr, ptr %13, align 8, !tbaa !9
  %1365 = load i32, ptr %23, align 4, !tbaa !5
  %1366 = sext i32 %1365 to i64
  %1367 = getelementptr inbounds double, ptr %1364, i64 %1366
  %1368 = load double, ptr %1367, align 8, !tbaa !11
  %1369 = fcmp oge double %1363, %1368
  br i1 %1369, label %1370, label %1376

1370:                                             ; preds = %1353
  %1371 = load ptr, ptr %16, align 8, !tbaa !9
  %1372 = load i32, ptr %23, align 4, !tbaa !5
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds double, ptr %1371, i64 %1373
  %1375 = load double, ptr %1374, align 8, !tbaa !11
  br label %1382

1376:                                             ; preds = %1353
  %1377 = load ptr, ptr %13, align 8, !tbaa !9
  %1378 = load i32, ptr %23, align 4, !tbaa !5
  %1379 = sext i32 %1378 to i64
  %1380 = getelementptr inbounds double, ptr %1377, i64 %1379
  %1381 = load double, ptr %1380, align 8, !tbaa !11
  br label %1382

1382:                                             ; preds = %1376, %1370
  %1383 = phi double [ %1375, %1370 ], [ %1381, %1376 ]
  %1384 = fsub double %1358, %1383
  %1385 = load ptr, ptr %16, align 8, !tbaa !9
  %1386 = load i32, ptr %23, align 4, !tbaa !5
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds double, ptr %1385, i64 %1387
  %1389 = load double, ptr %1388, align 8, !tbaa !11
  %1390 = load ptr, ptr %13, align 8, !tbaa !9
  %1391 = load i32, ptr %23, align 4, !tbaa !5
  %1392 = sext i32 %1391 to i64
  %1393 = getelementptr inbounds double, ptr %1390, i64 %1392
  %1394 = load double, ptr %1393, align 8, !tbaa !11
  %1395 = fcmp oge double %1389, %1394
  br i1 %1395, label %1396, label %1402

1396:                                             ; preds = %1382
  %1397 = load ptr, ptr %13, align 8, !tbaa !9
  %1398 = load i32, ptr %23, align 4, !tbaa !5
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds double, ptr %1397, i64 %1399
  %1401 = load double, ptr %1400, align 8, !tbaa !11
  br label %1408

1402:                                             ; preds = %1382
  %1403 = load ptr, ptr %16, align 8, !tbaa !9
  %1404 = load i32, ptr %23, align 4, !tbaa !5
  %1405 = sext i32 %1404 to i64
  %1406 = getelementptr inbounds double, ptr %1403, i64 %1405
  %1407 = load double, ptr %1406, align 8, !tbaa !11
  br label %1408

1408:                                             ; preds = %1402, %1396
  %1409 = phi double [ %1401, %1396 ], [ %1407, %1402 ]
  %1410 = load ptr, ptr %15, align 8, !tbaa !9
  %1411 = load i32, ptr %23, align 4, !tbaa !5
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds double, ptr %1410, i64 %1412
  %1414 = load double, ptr %1413, align 8, !tbaa !11
  %1415 = fsub double %1409, %1414
  %1416 = fadd double %1384, %1415
  br label %1418

1417:                                             ; preds = %1346
  br label %1418

1418:                                             ; preds = %1417, %1408
  %1419 = phi double [ %1416, %1408 ], [ 0.000000e+00, %1417 ]
  br label %1420

1420:                                             ; preds = %1418, %1334
  %1421 = phi double [ %1345, %1334 ], [ %1419, %1418 ]
  br label %1422

1422:                                             ; preds = %1420, %1314
  %1423 = phi double [ %1326, %1314 ], [ %1421, %1420 ]
  br label %1424

1424:                                             ; preds = %1422, %1298
  %1425 = phi double [ %1306, %1298 ], [ %1423, %1422 ]
  %1426 = fmul double %1290, %1425
  %1427 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1428 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1427, i32 0, i32 8
  %1429 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1428, i64 0, i64 7
  %1430 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1429, i32 0, i32 1
  %1431 = load i32, ptr %1430, align 4, !tbaa !15
  %1432 = icmp eq i32 %1431, 2
  %1433 = zext i1 %1432 to i64
  %1434 = select i1 %1432, double 2.000000e+00, double 1.000000e+00
  %1435 = fdiv double %1426, %1434
  %1436 = fcmp olt double %1285, %1435
  br i1 %1436, label %1437, label %1457

1437:                                             ; preds = %1424, %1226
  %1438 = load ptr, ptr %16, align 8, !tbaa !9
  %1439 = load i32, ptr %23, align 4, !tbaa !5
  %1440 = sext i32 %1439 to i64
  %1441 = getelementptr inbounds double, ptr %1438, i64 %1440
  %1442 = load double, ptr %1441, align 8, !tbaa !11
  %1443 = load ptr, ptr %13, align 8, !tbaa !9
  %1444 = load i32, ptr %23, align 4, !tbaa !5
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds double, ptr %1443, i64 %1445
  %1447 = load double, ptr %1446, align 8, !tbaa !11
  %1448 = fcmp oge double %1442, %1447
  %1449 = zext i1 %1448 to i64
  %1450 = select i1 %1448, i32 1, i32 -1
  %1451 = mul nsw i32 %1450, 100
  %1452 = load ptr, ptr %19, align 8, !tbaa !9
  %1453 = load i32, ptr %24, align 4, !tbaa !5
  %1454 = add nsw i32 %1453, 1
  store i32 %1454, ptr %24, align 4, !tbaa !5
  %1455 = sext i32 %1453 to i64
  %1456 = getelementptr inbounds i32, ptr %1452, i64 %1455
  store i32 %1451, ptr %1456, align 4, !tbaa !5
  br label %1463

1457:                                             ; preds = %1424, %1239, %1028, %863, %685, %490
  %1458 = load ptr, ptr %19, align 8, !tbaa !9
  %1459 = load i32, ptr %24, align 4, !tbaa !5
  %1460 = add nsw i32 %1459, 1
  store i32 %1460, ptr %24, align 4, !tbaa !5
  %1461 = sext i32 %1459 to i64
  %1462 = getelementptr inbounds i32, ptr %1458, i64 %1461
  store i32 0, ptr %1462, align 4, !tbaa !5
  br label %1463

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

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

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

1490:                                             ; preds = %1483
  %1491 = load ptr, ptr %14, align 8, !tbaa !9
  %1492 = load i32, ptr %23, align 4, !tbaa !5
  %1493 = sext i32 %1492 to i64
  %1494 = getelementptr inbounds double, ptr %1491, i64 %1493
  %1495 = load double, ptr %1494, align 8, !tbaa !11
  %1496 = load ptr, ptr %15, align 8, !tbaa !9
  %1497 = load i32, ptr %23, align 4, !tbaa !5
  %1498 = sext i32 %1497 to i64
  %1499 = getelementptr inbounds double, ptr %1496, i64 %1498
  %1500 = load double, ptr %1499, align 8, !tbaa !11
  %1501 = fsub double %1495, %1500
  br label %1576

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

1509:                                             ; preds = %1502
  %1510 = load ptr, ptr %14, align 8, !tbaa !9
  %1511 = load i32, ptr %23, align 4, !tbaa !5
  %1512 = sext i32 %1511 to i64
  %1513 = getelementptr inbounds double, ptr %1510, i64 %1512
  %1514 = load double, ptr %1513, align 8, !tbaa !11
  %1515 = load ptr, ptr %16, align 8, !tbaa !9
  %1516 = load i32, ptr %23, align 4, !tbaa !5
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds double, ptr %1515, i64 %1517
  %1519 = load double, ptr %1518, align 8, !tbaa !11
  %1520 = load ptr, ptr %13, align 8, !tbaa !9
  %1521 = load i32, ptr %23, align 4, !tbaa !5
  %1522 = sext i32 %1521 to i64
  %1523 = getelementptr inbounds double, ptr %1520, i64 %1522
  %1524 = load double, ptr %1523, align 8, !tbaa !11
  %1525 = fcmp oge double %1519, %1524
  br i1 %1525, label %1526, label %1532

1526:                                             ; preds = %1509
  %1527 = load ptr, ptr %16, align 8, !tbaa !9
  %1528 = load i32, ptr %23, align 4, !tbaa !5
  %1529 = sext i32 %1528 to i64
  %1530 = getelementptr inbounds double, ptr %1527, i64 %1529
  %1531 = load double, ptr %1530, align 8, !tbaa !11
  br label %1538

1532:                                             ; preds = %1509
  %1533 = load ptr, ptr %13, align 8, !tbaa !9
  %1534 = load i32, ptr %23, align 4, !tbaa !5
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds double, ptr %1533, i64 %1535
  %1537 = load double, ptr %1536, align 8, !tbaa !11
  br label %1538

1538:                                             ; preds = %1532, %1526
  %1539 = phi double [ %1531, %1526 ], [ %1537, %1532 ]
  %1540 = fsub double %1514, %1539
  %1541 = load ptr, ptr %16, align 8, !tbaa !9
  %1542 = load i32, ptr %23, align 4, !tbaa !5
  %1543 = sext i32 %1542 to i64
  %1544 = getelementptr inbounds double, ptr %1541, i64 %1543
  %1545 = load double, ptr %1544, align 8, !tbaa !11
  %1546 = load ptr, ptr %13, align 8, !tbaa !9
  %1547 = load i32, ptr %23, align 4, !tbaa !5
  %1548 = sext i32 %1547 to i64
  %1549 = getelementptr inbounds double, ptr %1546, i64 %1548
  %1550 = load double, ptr %1549, align 8, !tbaa !11
  %1551 = fcmp oge double %1545, %1550
  br i1 %1551, label %1552, label %1558

1552:                                             ; preds = %1538
  %1553 = load ptr, ptr %13, align 8, !tbaa !9
  %1554 = load i32, ptr %23, align 4, !tbaa !5
  %1555 = sext i32 %1554 to i64
  %1556 = getelementptr inbounds double, ptr %1553, i64 %1555
  %1557 = load double, ptr %1556, align 8, !tbaa !11
  br label %1564

1558:                                             ; preds = %1538
  %1559 = load ptr, ptr %16, align 8, !tbaa !9
  %1560 = load i32, ptr %23, align 4, !tbaa !5
  %1561 = sext i32 %1560 to i64
  %1562 = getelementptr inbounds double, ptr %1559, i64 %1561
  %1563 = load double, ptr %1562, align 8, !tbaa !11
  br label %1564

1564:                                             ; preds = %1558, %1552
  %1565 = phi double [ %1557, %1552 ], [ %1563, %1558 ]
  %1566 = load ptr, ptr %15, align 8, !tbaa !9
  %1567 = load i32, ptr %23, align 4, !tbaa !5
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds double, ptr %1566, i64 %1568
  %1570 = load double, ptr %1569, align 8, !tbaa !11
  %1571 = fsub double %1565, %1570
  %1572 = fadd double %1540, %1571
  br label %1574

1573:                                             ; preds = %1502
  br label %1574

1574:                                             ; preds = %1573, %1564
  %1575 = phi double [ %1572, %1564 ], [ 0.000000e+00, %1573 ]
  br label %1576

1576:                                             ; preds = %1574, %1490
  %1577 = phi double [ %1501, %1490 ], [ %1575, %1574 ]
  br label %1578

1578:                                             ; preds = %1576, %1470
  %1579 = phi double [ %1482, %1470 ], [ %1577, %1576 ]
  %1580 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1581 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1580, i32 0, i32 8
  %1582 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1581, i64 0, i64 7
  %1583 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1582, i32 0, i32 1
  %1584 = load i32, ptr %1583, align 4, !tbaa !15
  %1585 = icmp eq i32 %1584, 0
  br i1 %1585, label %1586, label %1599

1586:                                             ; preds = %1578
  %1587 = load ptr, ptr %16, align 8, !tbaa !9
  %1588 = load i32, ptr %25, align 4, !tbaa !5
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds double, ptr %1587, i64 %1589
  %1591 = load double, ptr %1590, align 8, !tbaa !11
  %1592 = load ptr, ptr %13, align 8, !tbaa !9
  %1593 = load i32, ptr %25, align 4, !tbaa !5
  %1594 = sext i32 %1593 to i64
  %1595 = getelementptr inbounds double, ptr %1592, i64 %1594
  %1596 = load double, ptr %1595, align 8, !tbaa !11
  %1597 = fsub double %1591, %1596
  %1598 = call double @llvm.fabs.f64(double %1597)
  br label %1694

1599:                                             ; preds = %1578
  %1600 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1601 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1600, i32 0, i32 8
  %1602 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1601, i64 0, i64 7
  %1603 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1602, i32 0, i32 1
  %1604 = load i32, ptr %1603, align 4, !tbaa !15
  %1605 = icmp eq i32 %1604, 1
  br i1 %1605, label %1606, label %1618

1606:                                             ; preds = %1599
  %1607 = load ptr, ptr %14, align 8, !tbaa !9
  %1608 = load i32, ptr %25, align 4, !tbaa !5
  %1609 = sext i32 %1608 to i64
  %1610 = getelementptr inbounds double, ptr %1607, i64 %1609
  %1611 = load double, ptr %1610, align 8, !tbaa !11
  %1612 = load ptr, ptr %15, align 8, !tbaa !9
  %1613 = load i32, ptr %25, align 4, !tbaa !5
  %1614 = sext i32 %1613 to i64
  %1615 = getelementptr inbounds double, ptr %1612, i64 %1614
  %1616 = load double, ptr %1615, align 8, !tbaa !11
  %1617 = fsub double %1611, %1616
  br label %1692

1618:                                             ; preds = %1599
  %1619 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1620 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1619, i32 0, i32 8
  %1621 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1620, i64 0, i64 7
  %1622 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1621, i32 0, i32 1
  %1623 = load i32, ptr %1622, align 4, !tbaa !15
  %1624 = icmp eq i32 %1623, 2
  br i1 %1624, label %1625, label %1689

1625:                                             ; preds = %1618
  %1626 = load ptr, ptr %14, align 8, !tbaa !9
  %1627 = load i32, ptr %25, align 4, !tbaa !5
  %1628 = sext i32 %1627 to i64
  %1629 = getelementptr inbounds double, ptr %1626, i64 %1628
  %1630 = load double, ptr %1629, align 8, !tbaa !11
  %1631 = load ptr, ptr %16, align 8, !tbaa !9
  %1632 = load i32, ptr %25, align 4, !tbaa !5
  %1633 = sext i32 %1632 to i64
  %1634 = getelementptr inbounds double, ptr %1631, i64 %1633
  %1635 = load double, ptr %1634, align 8, !tbaa !11
  %1636 = load ptr, ptr %13, align 8, !tbaa !9
  %1637 = load i32, ptr %25, align 4, !tbaa !5
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds double, ptr %1636, i64 %1638
  %1640 = load double, ptr %1639, align 8, !tbaa !11
  %1641 = fcmp oge double %1635, %1640
  br i1 %1641, label %1642, label %1648

1642:                                             ; preds = %1625
  %1643 = load ptr, ptr %16, align 8, !tbaa !9
  %1644 = load i32, ptr %25, align 4, !tbaa !5
  %1645 = sext i32 %1644 to i64
  %1646 = getelementptr inbounds double, ptr %1643, i64 %1645
  %1647 = load double, ptr %1646, align 8, !tbaa !11
  br label %1654

1648:                                             ; preds = %1625
  %1649 = load ptr, ptr %13, align 8, !tbaa !9
  %1650 = load i32, ptr %25, align 4, !tbaa !5
  %1651 = sext i32 %1650 to i64
  %1652 = getelementptr inbounds double, ptr %1649, i64 %1651
  %1653 = load double, ptr %1652, align 8, !tbaa !11
  br label %1654

1654:                                             ; preds = %1648, %1642
  %1655 = phi double [ %1647, %1642 ], [ %1653, %1648 ]
  %1656 = fsub double %1630, %1655
  %1657 = load ptr, ptr %16, align 8, !tbaa !9
  %1658 = load i32, ptr %25, align 4, !tbaa !5
  %1659 = sext i32 %1658 to i64
  %1660 = getelementptr inbounds double, ptr %1657, i64 %1659
  %1661 = load double, ptr %1660, align 8, !tbaa !11
  %1662 = load ptr, ptr %13, align 8, !tbaa !9
  %1663 = load i32, ptr %25, align 4, !tbaa !5
  %1664 = sext i32 %1663 to i64
  %1665 = getelementptr inbounds double, ptr %1662, i64 %1664
  %1666 = load double, ptr %1665, align 8, !tbaa !11
  %1667 = fcmp oge double %1661, %1666
  br i1 %1667, label %1668, label %1674

1668:                                             ; preds = %1654
  %1669 = load ptr, ptr %13, align 8, !tbaa !9
  %1670 = load i32, ptr %25, align 4, !tbaa !5
  %1671 = sext i32 %1670 to i64
  %1672 = getelementptr inbounds double, ptr %1669, i64 %1671
  %1673 = load double, ptr %1672, align 8, !tbaa !11
  br label %1680

1674:                                             ; preds = %1654
  %1675 = load ptr, ptr %16, align 8, !tbaa !9
  %1676 = load i32, ptr %25, align 4, !tbaa !5
  %1677 = sext i32 %1676 to i64
  %1678 = getelementptr inbounds double, ptr %1675, i64 %1677
  %1679 = load double, ptr %1678, align 8, !tbaa !11
  br label %1680

1680:                                             ; preds = %1674, %1668
  %1681 = phi double [ %1673, %1668 ], [ %1679, %1674 ]
  %1682 = load ptr, ptr %15, align 8, !tbaa !9
  %1683 = load i32, ptr %25, align 4, !tbaa !5
  %1684 = sext i32 %1683 to i64
  %1685 = getelementptr inbounds double, ptr %1682, i64 %1684
  %1686 = load double, ptr %1685, align 8, !tbaa !11
  %1687 = fsub double %1681, %1686
  %1688 = fadd double %1656, %1687
  br label %1690

1689:                                             ; preds = %1618
  br label %1690

1690:                                             ; preds = %1689, %1680
  %1691 = phi double [ %1688, %1680 ], [ 0.000000e+00, %1689 ]
  br label %1692

1692:                                             ; preds = %1690, %1606
  %1693 = phi double [ %1617, %1606 ], [ %1691, %1690 ]
  br label %1694

1694:                                             ; preds = %1692, %1586
  %1695 = phi double [ %1598, %1586 ], [ %1693, %1692 ]
  %1696 = fsub double %1579, %1695
  %1697 = load double, ptr %20, align 8, !tbaa !11
  %1698 = fadd double %1697, %1696
  store double %1698, ptr %20, align 8, !tbaa !11
  %1699 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1700 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1699, i32 0, i32 8
  %1701 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1700, i64 0, i64 0
  %1702 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1701, i32 0, i32 1
  %1703 = load i32, ptr %1702, align 4, !tbaa !15
  %1704 = icmp eq i32 %1703, 0
  br i1 %1704, label %1705, label %1718

1705:                                             ; preds = %1694
  %1706 = load ptr, ptr %16, align 8, !tbaa !9
  %1707 = load i32, ptr %23, align 4, !tbaa !5
  %1708 = sext i32 %1707 to i64
  %1709 = getelementptr inbounds double, ptr %1706, i64 %1708
  %1710 = load double, ptr %1709, align 8, !tbaa !11
  %1711 = load ptr, ptr %13, align 8, !tbaa !9
  %1712 = load i32, ptr %23, align 4, !tbaa !5
  %1713 = sext i32 %1712 to i64
  %1714 = getelementptr inbounds double, ptr %1711, i64 %1713
  %1715 = load double, ptr %1714, align 8, !tbaa !11
  %1716 = fsub double %1710, %1715
  %1717 = call double @llvm.fabs.f64(double %1716)
  br label %1813

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

1725:                                             ; preds = %1718
  %1726 = load ptr, ptr %14, align 8, !tbaa !9
  %1727 = load i32, ptr %23, align 4, !tbaa !5
  %1728 = sext i32 %1727 to i64
  %1729 = getelementptr inbounds double, ptr %1726, i64 %1728
  %1730 = load double, ptr %1729, align 8, !tbaa !11
  %1731 = load ptr, ptr %15, align 8, !tbaa !9
  %1732 = load i32, ptr %23, align 4, !tbaa !5
  %1733 = sext i32 %1732 to i64
  %1734 = getelementptr inbounds double, ptr %1731, i64 %1733
  %1735 = load double, ptr %1734, align 8, !tbaa !11
  %1736 = fsub double %1730, %1735
  br label %1811

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

1744:                                             ; preds = %1737
  %1745 = load ptr, ptr %14, align 8, !tbaa !9
  %1746 = load i32, ptr %23, align 4, !tbaa !5
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds double, ptr %1745, i64 %1747
  %1749 = load double, ptr %1748, align 8, !tbaa !11
  %1750 = load ptr, ptr %16, align 8, !tbaa !9
  %1751 = load i32, ptr %23, align 4, !tbaa !5
  %1752 = sext i32 %1751 to i64
  %1753 = getelementptr inbounds double, ptr %1750, i64 %1752
  %1754 = load double, ptr %1753, align 8, !tbaa !11
  %1755 = load ptr, ptr %13, align 8, !tbaa !9
  %1756 = load i32, ptr %23, align 4, !tbaa !5
  %1757 = sext i32 %1756 to i64
  %1758 = getelementptr inbounds double, ptr %1755, i64 %1757
  %1759 = load double, ptr %1758, align 8, !tbaa !11
  %1760 = fcmp oge double %1754, %1759
  br i1 %1760, label %1761, label %1767

1761:                                             ; preds = %1744
  %1762 = load ptr, ptr %16, align 8, !tbaa !9
  %1763 = load i32, ptr %23, align 4, !tbaa !5
  %1764 = sext i32 %1763 to i64
  %1765 = getelementptr inbounds double, ptr %1762, i64 %1764
  %1766 = load double, ptr %1765, align 8, !tbaa !11
  br label %1773

1767:                                             ; preds = %1744
  %1768 = load ptr, ptr %13, align 8, !tbaa !9
  %1769 = load i32, ptr %23, align 4, !tbaa !5
  %1770 = sext i32 %1769 to i64
  %1771 = getelementptr inbounds double, ptr %1768, i64 %1770
  %1772 = load double, ptr %1771, align 8, !tbaa !11
  br label %1773

1773:                                             ; preds = %1767, %1761
  %1774 = phi double [ %1766, %1761 ], [ %1772, %1767 ]
  %1775 = fsub double %1749, %1774
  %1776 = load ptr, ptr %16, align 8, !tbaa !9
  %1777 = load i32, ptr %23, align 4, !tbaa !5
  %1778 = sext i32 %1777 to i64
  %1779 = getelementptr inbounds double, ptr %1776, i64 %1778
  %1780 = load double, ptr %1779, align 8, !tbaa !11
  %1781 = load ptr, ptr %13, align 8, !tbaa !9
  %1782 = load i32, ptr %23, align 4, !tbaa !5
  %1783 = sext i32 %1782 to i64
  %1784 = getelementptr inbounds double, ptr %1781, i64 %1783
  %1785 = load double, ptr %1784, align 8, !tbaa !11
  %1786 = fcmp oge double %1780, %1785
  br i1 %1786, label %1787, label %1793

1787:                                             ; preds = %1773
  %1788 = load ptr, ptr %13, align 8, !tbaa !9
  %1789 = load i32, ptr %23, align 4, !tbaa !5
  %1790 = sext i32 %1789 to i64
  %1791 = getelementptr inbounds double, ptr %1788, i64 %1790
  %1792 = load double, ptr %1791, align 8, !tbaa !11
  br label %1799

1793:                                             ; preds = %1773
  %1794 = load ptr, ptr %16, align 8, !tbaa !9
  %1795 = load i32, ptr %23, align 4, !tbaa !5
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds double, ptr %1794, i64 %1796
  %1798 = load double, ptr %1797, align 8, !tbaa !11
  br label %1799

1799:                                             ; preds = %1793, %1787
  %1800 = phi double [ %1792, %1787 ], [ %1798, %1793 ]
  %1801 = load ptr, ptr %15, align 8, !tbaa !9
  %1802 = load i32, ptr %23, align 4, !tbaa !5
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds double, ptr %1801, i64 %1803
  %1805 = load double, ptr %1804, align 8, !tbaa !11
  %1806 = fsub double %1800, %1805
  %1807 = fadd double %1775, %1806
  br label %1809

1808:                                             ; preds = %1737
  br label %1809

1809:                                             ; preds = %1808, %1799
  %1810 = phi double [ %1807, %1799 ], [ 0.000000e+00, %1808 ]
  br label %1811

1811:                                             ; preds = %1809, %1725
  %1812 = phi double [ %1736, %1725 ], [ %1810, %1809 ]
  br label %1813

1813:                                             ; preds = %1811, %1705
  %1814 = phi double [ %1717, %1705 ], [ %1812, %1811 ]
  %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 0
  %1818 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1817, i32 0, i32 1
  %1819 = load i32, ptr %1818, align 4, !tbaa !15
  %1820 = icmp eq i32 %1819, 0
  br i1 %1820, label %1821, label %1834

1821:                                             ; preds = %1813
  %1822 = load ptr, ptr %16, align 8, !tbaa !9
  %1823 = load i32, ptr %26, align 4, !tbaa !5
  %1824 = sext i32 %1823 to i64
  %1825 = getelementptr inbounds double, ptr %1822, i64 %1824
  %1826 = load double, ptr %1825, align 8, !tbaa !11
  %1827 = load ptr, ptr %13, align 8, !tbaa !9
  %1828 = load i32, ptr %26, align 4, !tbaa !5
  %1829 = sext i32 %1828 to i64
  %1830 = getelementptr inbounds double, ptr %1827, i64 %1829
  %1831 = load double, ptr %1830, align 8, !tbaa !11
  %1832 = fsub double %1826, %1831
  %1833 = call double @llvm.fabs.f64(double %1832)
  br label %1929

1834:                                             ; preds = %1813
  %1835 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1836 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1835, i32 0, i32 8
  %1837 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1836, i64 0, i64 0
  %1838 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1837, i32 0, i32 1
  %1839 = load i32, ptr %1838, align 4, !tbaa !15
  %1840 = icmp eq i32 %1839, 1
  br i1 %1840, label %1841, label %1853

1841:                                             ; preds = %1834
  %1842 = load ptr, ptr %14, align 8, !tbaa !9
  %1843 = load i32, ptr %26, align 4, !tbaa !5
  %1844 = sext i32 %1843 to i64
  %1845 = getelementptr inbounds double, ptr %1842, i64 %1844
  %1846 = load double, ptr %1845, align 8, !tbaa !11
  %1847 = load ptr, ptr %15, align 8, !tbaa !9
  %1848 = load i32, ptr %26, align 4, !tbaa !5
  %1849 = sext i32 %1848 to i64
  %1850 = getelementptr inbounds double, ptr %1847, i64 %1849
  %1851 = load double, ptr %1850, align 8, !tbaa !11
  %1852 = fsub double %1846, %1851
  br label %1927

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

1860:                                             ; preds = %1853
  %1861 = load ptr, ptr %14, align 8, !tbaa !9
  %1862 = load i32, ptr %26, align 4, !tbaa !5
  %1863 = sext i32 %1862 to i64
  %1864 = getelementptr inbounds double, ptr %1861, i64 %1863
  %1865 = load double, ptr %1864, align 8, !tbaa !11
  %1866 = load ptr, ptr %16, align 8, !tbaa !9
  %1867 = load i32, ptr %26, align 4, !tbaa !5
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds double, ptr %1866, i64 %1868
  %1870 = load double, ptr %1869, align 8, !tbaa !11
  %1871 = load ptr, ptr %13, align 8, !tbaa !9
  %1872 = load i32, ptr %26, align 4, !tbaa !5
  %1873 = sext i32 %1872 to i64
  %1874 = getelementptr inbounds double, ptr %1871, i64 %1873
  %1875 = load double, ptr %1874, align 8, !tbaa !11
  %1876 = fcmp oge double %1870, %1875
  br i1 %1876, label %1877, label %1883

1877:                                             ; preds = %1860
  %1878 = load ptr, ptr %16, align 8, !tbaa !9
  %1879 = load i32, ptr %26, align 4, !tbaa !5
  %1880 = sext i32 %1879 to i64
  %1881 = getelementptr inbounds double, ptr %1878, i64 %1880
  %1882 = load double, ptr %1881, align 8, !tbaa !11
  br label %1889

1883:                                             ; preds = %1860
  %1884 = load ptr, ptr %13, align 8, !tbaa !9
  %1885 = load i32, ptr %26, align 4, !tbaa !5
  %1886 = sext i32 %1885 to i64
  %1887 = getelementptr inbounds double, ptr %1884, i64 %1886
  %1888 = load double, ptr %1887, align 8, !tbaa !11
  br label %1889

1889:                                             ; preds = %1883, %1877
  %1890 = phi double [ %1882, %1877 ], [ %1888, %1883 ]
  %1891 = fsub double %1865, %1890
  %1892 = load ptr, ptr %16, align 8, !tbaa !9
  %1893 = load i32, ptr %26, align 4, !tbaa !5
  %1894 = sext i32 %1893 to i64
  %1895 = getelementptr inbounds double, ptr %1892, i64 %1894
  %1896 = load double, ptr %1895, align 8, !tbaa !11
  %1897 = load ptr, ptr %13, align 8, !tbaa !9
  %1898 = load i32, ptr %26, align 4, !tbaa !5
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds double, ptr %1897, i64 %1899
  %1901 = load double, ptr %1900, align 8, !tbaa !11
  %1902 = fcmp oge double %1896, %1901
  br i1 %1902, label %1903, label %1909

1903:                                             ; preds = %1889
  %1904 = load ptr, ptr %13, align 8, !tbaa !9
  %1905 = load i32, ptr %26, align 4, !tbaa !5
  %1906 = sext i32 %1905 to i64
  %1907 = getelementptr inbounds double, ptr %1904, i64 %1906
  %1908 = load double, ptr %1907, align 8, !tbaa !11
  br label %1915

1909:                                             ; preds = %1889
  %1910 = load ptr, ptr %16, align 8, !tbaa !9
  %1911 = load i32, ptr %26, align 4, !tbaa !5
  %1912 = sext i32 %1911 to i64
  %1913 = getelementptr inbounds double, ptr %1910, i64 %1912
  %1914 = load double, ptr %1913, align 8, !tbaa !11
  br label %1915

1915:                                             ; preds = %1909, %1903
  %1916 = phi double [ %1908, %1903 ], [ %1914, %1909 ]
  %1917 = load ptr, ptr %15, align 8, !tbaa !9
  %1918 = load i32, ptr %26, align 4, !tbaa !5
  %1919 = sext i32 %1918 to i64
  %1920 = getelementptr inbounds double, ptr %1917, i64 %1919
  %1921 = load double, ptr %1920, align 8, !tbaa !11
  %1922 = fsub double %1916, %1921
  %1923 = fadd double %1891, %1922
  br label %1925

1924:                                             ; preds = %1853
  br label %1925

1925:                                             ; preds = %1924, %1915
  %1926 = phi double [ %1923, %1915 ], [ 0.000000e+00, %1924 ]
  br label %1927

1927:                                             ; preds = %1925, %1841
  %1928 = phi double [ %1852, %1841 ], [ %1926, %1925 ]
  br label %1929

1929:                                             ; preds = %1927, %1821
  %1930 = phi double [ %1833, %1821 ], [ %1928, %1927 ]
  %1931 = fsub double %1814, %1930
  %1932 = load double, ptr %21, align 8, !tbaa !11
  %1933 = fadd double %1932, %1931
  store double %1933, ptr %21, align 8, !tbaa !11
  %1934 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1935 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1934, i32 0, i32 8
  %1936 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1935, i64 0, i64 10
  %1937 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1936, i32 0, i32 1
  %1938 = load i32, ptr %1937, align 4, !tbaa !15
  %1939 = icmp eq i32 %1938, 0
  br i1 %1939, label %1940, label %1955

1940:                                             ; preds = %1929
  %1941 = load ptr, ptr %16, align 8, !tbaa !9
  %1942 = load i32, ptr %23, align 4, !tbaa !5
  %1943 = sub nsw i32 %1942, 1
  %1944 = sext i32 %1943 to i64
  %1945 = getelementptr inbounds double, ptr %1941, i64 %1944
  %1946 = load double, ptr %1945, align 8, !tbaa !11
  %1947 = load ptr, ptr %13, align 8, !tbaa !9
  %1948 = load i32, ptr %23, align 4, !tbaa !5
  %1949 = sub nsw i32 %1948, 1
  %1950 = sext i32 %1949 to i64
  %1951 = getelementptr inbounds double, ptr %1947, i64 %1950
  %1952 = load double, ptr %1951, align 8, !tbaa !11
  %1953 = fsub double %1946, %1952
  %1954 = call double @llvm.fabs.f64(double %1953)
  br label %2062

1955:                                             ; preds = %1929
  %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, 1
  br i1 %1961, label %1962, label %1976

1962:                                             ; preds = %1955
  %1963 = load ptr, ptr %14, align 8, !tbaa !9
  %1964 = load i32, ptr %23, align 4, !tbaa !5
  %1965 = sub nsw i32 %1964, 1
  %1966 = sext i32 %1965 to i64
  %1967 = getelementptr inbounds double, ptr %1963, i64 %1966
  %1968 = load double, ptr %1967, align 8, !tbaa !11
  %1969 = load ptr, ptr %15, align 8, !tbaa !9
  %1970 = load i32, ptr %23, align 4, !tbaa !5
  %1971 = sub nsw i32 %1970, 1
  %1972 = sext i32 %1971 to i64
  %1973 = getelementptr inbounds double, ptr %1969, i64 %1972
  %1974 = load double, ptr %1973, align 8, !tbaa !11
  %1975 = fsub double %1968, %1974
  br label %2060

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

1983:                                             ; preds = %1976
  %1984 = load ptr, ptr %14, align 8, !tbaa !9
  %1985 = load i32, ptr %23, align 4, !tbaa !5
  %1986 = sub nsw i32 %1985, 1
  %1987 = sext i32 %1986 to i64
  %1988 = getelementptr inbounds double, ptr %1984, i64 %1987
  %1989 = load double, ptr %1988, align 8, !tbaa !11
  %1990 = load ptr, ptr %16, align 8, !tbaa !9
  %1991 = load i32, ptr %23, align 4, !tbaa !5
  %1992 = sub nsw i32 %1991, 1
  %1993 = sext i32 %1992 to i64
  %1994 = getelementptr inbounds double, ptr %1990, i64 %1993
  %1995 = load double, ptr %1994, align 8, !tbaa !11
  %1996 = load ptr, ptr %13, align 8, !tbaa !9
  %1997 = load i32, ptr %23, align 4, !tbaa !5
  %1998 = sub nsw i32 %1997, 1
  %1999 = sext i32 %1998 to i64
  %2000 = getelementptr inbounds double, ptr %1996, i64 %1999
  %2001 = load double, ptr %2000, align 8, !tbaa !11
  %2002 = fcmp oge double %1995, %2001
  br i1 %2002, label %2003, label %2010

2003:                                             ; preds = %1983
  %2004 = load ptr, ptr %16, align 8, !tbaa !9
  %2005 = load i32, ptr %23, align 4, !tbaa !5
  %2006 = sub nsw i32 %2005, 1
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds double, ptr %2004, i64 %2007
  %2009 = load double, ptr %2008, align 8, !tbaa !11
  br label %2017

2010:                                             ; preds = %1983
  %2011 = load ptr, ptr %13, align 8, !tbaa !9
  %2012 = load i32, ptr %23, align 4, !tbaa !5
  %2013 = sub nsw i32 %2012, 1
  %2014 = sext i32 %2013 to i64
  %2015 = getelementptr inbounds double, ptr %2011, i64 %2014
  %2016 = load double, ptr %2015, align 8, !tbaa !11
  br label %2017

2017:                                             ; preds = %2010, %2003
  %2018 = phi double [ %2009, %2003 ], [ %2016, %2010 ]
  %2019 = fsub double %1989, %2018
  %2020 = load ptr, ptr %16, align 8, !tbaa !9
  %2021 = load i32, ptr %23, align 4, !tbaa !5
  %2022 = sub nsw i32 %2021, 1
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds double, ptr %2020, i64 %2023
  %2025 = load double, ptr %2024, align 8, !tbaa !11
  %2026 = load ptr, ptr %13, align 8, !tbaa !9
  %2027 = load i32, ptr %23, align 4, !tbaa !5
  %2028 = sub nsw i32 %2027, 1
  %2029 = sext i32 %2028 to i64
  %2030 = getelementptr inbounds double, ptr %2026, i64 %2029
  %2031 = load double, ptr %2030, align 8, !tbaa !11
  %2032 = fcmp oge double %2025, %2031
  br i1 %2032, label %2033, label %2040

2033:                                             ; preds = %2017
  %2034 = load ptr, ptr %13, align 8, !tbaa !9
  %2035 = load i32, ptr %23, align 4, !tbaa !5
  %2036 = sub nsw i32 %2035, 1
  %2037 = sext i32 %2036 to i64
  %2038 = getelementptr inbounds double, ptr %2034, i64 %2037
  %2039 = load double, ptr %2038, align 8, !tbaa !11
  br label %2047

2040:                                             ; preds = %2017
  %2041 = load ptr, ptr %16, align 8, !tbaa !9
  %2042 = load i32, ptr %23, align 4, !tbaa !5
  %2043 = sub nsw i32 %2042, 1
  %2044 = sext i32 %2043 to i64
  %2045 = getelementptr inbounds double, ptr %2041, i64 %2044
  %2046 = load double, ptr %2045, align 8, !tbaa !11
  br label %2047

2047:                                             ; preds = %2040, %2033
  %2048 = phi double [ %2039, %2033 ], [ %2046, %2040 ]
  %2049 = load ptr, ptr %15, align 8, !tbaa !9
  %2050 = load i32, ptr %23, align 4, !tbaa !5
  %2051 = sub nsw i32 %2050, 1
  %2052 = sext i32 %2051 to i64
  %2053 = getelementptr inbounds double, ptr %2049, i64 %2052
  %2054 = load double, ptr %2053, align 8, !tbaa !11
  %2055 = fsub double %2048, %2054
  %2056 = fadd double %2019, %2055
  br label %2058

2057:                                             ; preds = %1976
  br label %2058

2058:                                             ; preds = %2057, %2047
  %2059 = phi double [ %2056, %2047 ], [ 0.000000e+00, %2057 ]
  br label %2060

2060:                                             ; preds = %2058, %1962
  %2061 = phi double [ %1975, %1962 ], [ %2059, %2058 ]
  br label %2062

2062:                                             ; preds = %2060, %1940
  %2063 = phi double [ %1954, %1940 ], [ %2061, %2060 ]
  %2064 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2065 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2064, i32 0, i32 8
  %2066 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2065, i64 0, i64 10
  %2067 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2066, i32 0, i32 1
  %2068 = load i32, ptr %2067, align 4, !tbaa !15
  %2069 = icmp eq i32 %2068, 0
  br i1 %2069, label %2070, label %2085

2070:                                             ; preds = %2062
  %2071 = load ptr, ptr %16, align 8, !tbaa !9
  %2072 = load i32, ptr %27, align 4, !tbaa !5
  %2073 = sub nsw i32 %2072, 1
  %2074 = sext i32 %2073 to i64
  %2075 = getelementptr inbounds double, ptr %2071, i64 %2074
  %2076 = load double, ptr %2075, align 8, !tbaa !11
  %2077 = load ptr, ptr %13, align 8, !tbaa !9
  %2078 = load i32, ptr %27, align 4, !tbaa !5
  %2079 = sub nsw i32 %2078, 1
  %2080 = sext i32 %2079 to i64
  %2081 = getelementptr inbounds double, ptr %2077, i64 %2080
  %2082 = load double, ptr %2081, align 8, !tbaa !11
  %2083 = fsub double %2076, %2082
  %2084 = call double @llvm.fabs.f64(double %2083)
  br label %2192

2085:                                             ; preds = %2062
  %2086 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2087 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2086, i32 0, i32 8
  %2088 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2087, i64 0, i64 10
  %2089 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2088, i32 0, i32 1
  %2090 = load i32, ptr %2089, align 4, !tbaa !15
  %2091 = icmp eq i32 %2090, 1
  br i1 %2091, label %2092, label %2106

2092:                                             ; preds = %2085
  %2093 = load ptr, ptr %14, align 8, !tbaa !9
  %2094 = load i32, ptr %27, align 4, !tbaa !5
  %2095 = sub nsw i32 %2094, 1
  %2096 = sext i32 %2095 to i64
  %2097 = getelementptr inbounds double, ptr %2093, i64 %2096
  %2098 = load double, ptr %2097, align 8, !tbaa !11
  %2099 = load ptr, ptr %15, align 8, !tbaa !9
  %2100 = load i32, ptr %27, align 4, !tbaa !5
  %2101 = sub nsw i32 %2100, 1
  %2102 = sext i32 %2101 to i64
  %2103 = getelementptr inbounds double, ptr %2099, i64 %2102
  %2104 = load double, ptr %2103, align 8, !tbaa !11
  %2105 = fsub double %2098, %2104
  br label %2190

2106:                                             ; preds = %2085
  %2107 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %2108 = getelementptr inbounds %struct.TA_LibcPriv, ptr %2107, i32 0, i32 8
  %2109 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %2108, i64 0, i64 10
  %2110 = getelementptr inbounds %struct.TA_CandleSetting, ptr %2109, i32 0, i32 1
  %2111 = load i32, ptr %2110, align 4, !tbaa !15
  %2112 = icmp eq i32 %2111, 2
  br i1 %2112, label %2113, label %2187

2113:                                             ; preds = %2106
  %2114 = load ptr, ptr %14, align 8, !tbaa !9
  %2115 = load i32, ptr %27, align 4, !tbaa !5
  %2116 = sub nsw i32 %2115, 1
  %2117 = sext i32 %2116 to i64
  %2118 = getelementptr inbounds double, ptr %2114, i64 %2117
  %2119 = load double, ptr %2118, align 8, !tbaa !11
  %2120 = load ptr, ptr %16, align 8, !tbaa !9
  %2121 = load i32, ptr %27, align 4, !tbaa !5
  %2122 = sub nsw i32 %2121, 1
  %2123 = sext i32 %2122 to i64
  %2124 = getelementptr inbounds double, ptr %2120, i64 %2123
  %2125 = load double, ptr %2124, align 8, !tbaa !11
  %2126 = load ptr, ptr %13, align 8, !tbaa !9
  %2127 = load i32, ptr %27, align 4, !tbaa !5
  %2128 = sub nsw i32 %2127, 1
  %2129 = sext i32 %2128 to i64
  %2130 = getelementptr inbounds double, ptr %2126, i64 %2129
  %2131 = load double, ptr %2130, align 8, !tbaa !11
  %2132 = fcmp oge double %2125, %2131
  br i1 %2132, label %2133, label %2140

2133:                                             ; preds = %2113
  %2134 = load ptr, ptr %16, align 8, !tbaa !9
  %2135 = load i32, ptr %27, align 4, !tbaa !5
  %2136 = sub nsw i32 %2135, 1
  %2137 = sext i32 %2136 to i64
  %2138 = getelementptr inbounds double, ptr %2134, i64 %2137
  %2139 = load double, ptr %2138, align 8, !tbaa !11
  br label %2147

2140:                                             ; preds = %2113
  %2141 = load ptr, ptr %13, align 8, !tbaa !9
  %2142 = load i32, ptr %27, align 4, !tbaa !5
  %2143 = sub nsw i32 %2142, 1
  %2144 = sext i32 %2143 to i64
  %2145 = getelementptr inbounds double, ptr %2141, i64 %2144
  %2146 = load double, ptr %2145, align 8, !tbaa !11
  br label %2147

2147:                                             ; preds = %2140, %2133
  %2148 = phi double [ %2139, %2133 ], [ %2146, %2140 ]
  %2149 = fsub double %2119, %2148
  %2150 = load ptr, ptr %16, align 8, !tbaa !9
  %2151 = load i32, ptr %27, align 4, !tbaa !5
  %2152 = sub nsw i32 %2151, 1
  %2153 = sext i32 %2152 to i64
  %2154 = getelementptr inbounds double, ptr %2150, i64 %2153
  %2155 = load double, ptr %2154, align 8, !tbaa !11
  %2156 = load ptr, ptr %13, align 8, !tbaa !9
  %2157 = load i32, ptr %27, align 4, !tbaa !5
  %2158 = sub nsw i32 %2157, 1
  %2159 = sext i32 %2158 to i64
  %2160 = getelementptr inbounds double, ptr %2156, i64 %2159
  %2161 = load double, ptr %2160, align 8, !tbaa !11
  %2162 = fcmp oge double %2155, %2161
  br i1 %2162, label %2163, label %2170

2163:                                             ; preds = %2147
  %2164 = load ptr, ptr %13, align 8, !tbaa !9
  %2165 = load i32, ptr %27, align 4, !tbaa !5
  %2166 = sub nsw i32 %2165, 1
  %2167 = sext i32 %2166 to i64
  %2168 = getelementptr inbounds double, ptr %2164, i64 %2167
  %2169 = load double, ptr %2168, align 8, !tbaa !11
  br label %2177

2170:                                             ; preds = %2147
  %2171 = load ptr, ptr %16, align 8, !tbaa !9
  %2172 = load i32, ptr %27, align 4, !tbaa !5
  %2173 = sub nsw i32 %2172, 1
  %2174 = sext i32 %2173 to i64
  %2175 = getelementptr inbounds double, ptr %2171, i64 %2174
  %2176 = load double, ptr %2175, align 8, !tbaa !11
  br label %2177

2177:                                             ; preds = %2170, %2163
  %2178 = phi double [ %2169, %2163 ], [ %2176, %2170 ]
  %2179 = load ptr, ptr %15, align 8, !tbaa !9
  %2180 = load i32, ptr %27, align 4, !tbaa !5
  %2181 = sub nsw i32 %2180, 1
  %2182 = sext i32 %2181 to i64
  %2183 = getelementptr inbounds double, ptr %2179, i64 %2182
  %2184 = load double, ptr %2183, align 8, !tbaa !11
  %2185 = fsub double %2178, %2184
  %2186 = fadd double %2149, %2185
  br label %2188

2187:                                             ; preds = %2106
  br label %2188

2188:                                             ; preds = %2187, %2177
  %2189 = phi double [ %2186, %2177 ], [ 0.000000e+00, %2187 ]
  br label %2190

2190:                                             ; preds = %2188, %2092
  %2191 = phi double [ %2105, %2092 ], [ %2189, %2188 ]
  br label %2192

2192:                                             ; preds = %2190, %2070
  %2193 = phi double [ %2084, %2070 ], [ %2191, %2190 ]
  %2194 = fsub double %2063, %2193
  %2195 = load double, ptr %22, align 8, !tbaa !11
  %2196 = fadd double %2195, %2194
  store double %2196, ptr %22, align 8, !tbaa !11
  %2197 = load i32, ptr %23, align 4, !tbaa !5
  %2198 = add nsw i32 %2197, 1
  store i32 %2198, ptr %23, align 4, !tbaa !5
  %2199 = load i32, ptr %25, align 4, !tbaa !5
  %2200 = add nsw i32 %2199, 1
  store i32 %2200, ptr %25, align 4, !tbaa !5
  %2201 = load i32, ptr %26, align 4, !tbaa !5
  %2202 = add nsw i32 %2201, 1
  store i32 %2202, ptr %26, align 4, !tbaa !5
  %2203 = load i32, ptr %27, align 4, !tbaa !5
  %2204 = add nsw i32 %2203, 1
  store i32 %2204, ptr %27, align 4, !tbaa !5
  br label %2205

2205:                                             ; preds = %2192
  %2206 = load i32, ptr %23, align 4, !tbaa !5
  %2207 = load i32, ptr %12, align 4, !tbaa !5
  %2208 = icmp sle i32 %2206, %2207
  br i1 %2208, label %490, label %2209, !llvm.loop !21

2209:                                             ; preds = %2205
  %2210 = load i32, ptr %24, align 4, !tbaa !5
  %2211 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %2210, ptr %2211, align 4, !tbaa !5
  %2212 = load i32, ptr %11, align 4, !tbaa !5
  %2213 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %2212, ptr %2213, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %29, align 4
  br label %2214

2214:                                             ; preds = %2209, %69, %57, %53, %40, %32
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #3
  %2215 = load i32, ptr %10, align 4
  ret i32 %2215
}

; 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 = distinct !{!19, !17}
!20 = !{!14, !12, i64 16}
!21 = distinct !{!21, !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_CDLSEPARATINGLINES_Lookback() local_unnamed_addr #0

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

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

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

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

.lr.ph:                                           ; preds = %25
  %37 = getelementptr inbounds i8, ptr %26, i64 380
  %38 = load i32, ptr %37, align 4, !tbaa !14
  switch i32 %38, label %.preheader645 [
    i32 0, label %.lr.ph.split.us.preheader
    i32 1, label %.lr.ph.split.us648.preheader
    i32 2, label %.lr.ph.split.us653.preheader
  ]

.lr.ph.split.us653.preheader:                     ; preds = %.lr.ph
  %39 = sext i32 %29 to i64
  %40 = zext nneg i32 %spec.select to i64
  br label %.lr.ph.split.us653

.lr.ph.split.us648.preheader:                     ; preds = %.lr.ph
  %41 = sext i32 %29 to i64
  %42 = zext nneg i32 %spec.select to i64
  br label %.lr.ph.split.us648

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

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.preheader, %.lr.ph.split.us
  %indvars.iv693 = phi i64 [ %43, %.lr.ph.split.us.preheader ], [ %indvars.iv.next694, %.lr.ph.split.us ]
  %.0516646.us = phi double [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %51, %.lr.ph.split.us ]
  %45 = getelementptr inbounds double, ptr %5, i64 %indvars.iv693
  %46 = load double, ptr %45, align 8, !tbaa !15
  %47 = getelementptr inbounds double, ptr %2, i64 %indvars.iv693
  %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 %.0516646.us, %50
  %indvars.iv.next694 = add nsw i64 %indvars.iv693, 1
  %52 = icmp slt i64 %indvars.iv.next694, %44
  br i1 %52, label %.lr.ph.split.us, label %.preheader645, !llvm.loop !16

.lr.ph.split.us648:                               ; preds = %.lr.ph.split.us648.preheader, %.lr.ph.split.us648
  %indvars.iv690 = phi i64 [ %41, %.lr.ph.split.us648.preheader ], [ %indvars.iv.next691, %.lr.ph.split.us648 ]
  %.0516646.us650 = phi double [ 0.000000e+00, %.lr.ph.split.us648.preheader ], [ %58, %.lr.ph.split.us648 ]
  %53 = getelementptr inbounds double, ptr %3, i64 %indvars.iv690
  %54 = load double, ptr %53, align 8, !tbaa !15
  %55 = getelementptr inbounds double, ptr %4, i64 %indvars.iv690
  %56 = load double, ptr %55, align 8, !tbaa !15
  %57 = fsub double %54, %56
  %58 = fadd double %.0516646.us650, %57
  %indvars.iv.next691 = add nsw i64 %indvars.iv690, 1
  %59 = icmp slt i64 %indvars.iv.next691, %42
  br i1 %59, label %.lr.ph.split.us648, label %.preheader645, !llvm.loop !16

.lr.ph.split.us653:                               ; preds = %.lr.ph.split.us653.preheader, %.lr.ph.split.us653
  %indvars.iv = phi i64 [ %39, %.lr.ph.split.us653.preheader ], [ %indvars.iv.next, %.lr.ph.split.us653 ]
  %.0516646.us655 = phi double [ 0.000000e+00, %.lr.ph.split.us653.preheader ], [ %73, %.lr.ph.split.us653 ]
  %60 = getelementptr inbounds double, ptr %3, i64 %indvars.iv
  %61 = load double, ptr %60, align 8, !tbaa !15
  %62 = getelementptr inbounds double, ptr %5, i64 %indvars.iv
  %63 = load double, ptr %62, align 8, !tbaa !15
  %64 = getelementptr inbounds double, ptr %2, i64 %indvars.iv
  %65 = load double, ptr %64, align 8, !tbaa !15
  %66 = fcmp ult double %63, %65
  %..us = select i1 %66, double %65, double %63
  %67 = fsub double %61, %..us
  %68 = select i1 %66, double %63, double %65
  %69 = getelementptr inbounds double, ptr %4, i64 %indvars.iv
  %70 = load double, ptr %69, align 8, !tbaa !15
  %71 = fsub double %68, %70
  %72 = fadd double %67, %71
  %73 = fadd double %.0516646.us655, %72
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %74 = icmp slt i64 %indvars.iv.next, %40
  br i1 %74, label %.lr.ph.split.us653, label %.preheader645, !llvm.loop !16

.preheader645:                                    ; preds = %.lr.ph.split.us653, %.lr.ph.split.us648, %.lr.ph.split.us, %.lr.ph, %25
  %.0516.lcssa = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %.lr.ph ], [ %51, %.lr.ph.split.us ], [ %58, %.lr.ph.split.us648 ], [ %73, %.lr.ph.split.us653 ]
  %75 = icmp sgt i32 %31, 0
  br i1 %75, label %.lr.ph660, label %.preheader644

.lr.ph660:                                        ; preds = %.preheader645
  %76 = getelementptr inbounds i8, ptr %26, i64 212
  %77 = load i32, ptr %76, align 4, !tbaa !14
  switch i32 %77, label %.preheader644 [
    i32 0, label %.lr.ph660.split.us.preheader
    i32 1, label %.lr.ph660.split.us663.preheader
    i32 2, label %.lr.ph660.split.us668.preheader
  ]

.lr.ph660.split.us668.preheader:                  ; preds = %.lr.ph660
  %78 = sext i32 %32 to i64
  %79 = zext nneg i32 %spec.select to i64
  br label %.lr.ph660.split.us668

.lr.ph660.split.us663.preheader:                  ; preds = %.lr.ph660
  %80 = sext i32 %32 to i64
  %81 = zext nneg i32 %spec.select to i64
  br label %.lr.ph660.split.us663

.lr.ph660.split.us.preheader:                     ; preds = %.lr.ph660
  %82 = sext i32 %32 to i64
  %83 = zext nneg i32 %spec.select to i64
  br label %.lr.ph660.split.us

.lr.ph660.split.us:                               ; preds = %.lr.ph660.split.us.preheader, %.lr.ph660.split.us
  %indvars.iv702 = phi i64 [ %82, %.lr.ph660.split.us.preheader ], [ %indvars.iv.next703, %.lr.ph660.split.us ]
  %.0514658.us = phi double [ 0.000000e+00, %.lr.ph660.split.us.preheader ], [ %90, %.lr.ph660.split.us ]
  %84 = getelementptr inbounds double, ptr %5, i64 %indvars.iv702
  %85 = load double, ptr %84, align 8, !tbaa !15
  %86 = getelementptr inbounds double, ptr %2, i64 %indvars.iv702
  %87 = load double, ptr %86, align 8, !tbaa !15
  %88 = fsub double %85, %87
  %89 = tail call double @llvm.fabs.f64(double %88)
  %90 = fadd double %.0514658.us, %89
  %indvars.iv.next703 = add nsw i64 %indvars.iv702, 1
  %91 = icmp slt i64 %indvars.iv.next703, %83
  br i1 %91, label %.lr.ph660.split.us, label %.preheader644, !llvm.loop !18

.lr.ph660.split.us663:                            ; preds = %.lr.ph660.split.us663.preheader, %.lr.ph660.split.us663
  %indvars.iv699 = phi i64 [ %80, %.lr.ph660.split.us663.preheader ], [ %indvars.iv.next700, %.lr.ph660.split.us663 ]
  %.0514658.us665 = phi double [ 0.000000e+00, %.lr.ph660.split.us663.preheader ], [ %97, %.lr.ph660.split.us663 ]
  %92 = getelementptr inbounds double, ptr %3, i64 %indvars.iv699
  %93 = load double, ptr %92, align 8, !tbaa !15
  %94 = getelementptr inbounds double, ptr %4, i64 %indvars.iv699
  %95 = load double, ptr %94, align 8, !tbaa !15
  %96 = fsub double %93, %95
  %97 = fadd double %.0514658.us665, %96
  %indvars.iv.next700 = add nsw i64 %indvars.iv699, 1
  %98 = icmp slt i64 %indvars.iv.next700, %81
  br i1 %98, label %.lr.ph660.split.us663, label %.preheader644, !llvm.loop !18

.lr.ph660.split.us668:                            ; preds = %.lr.ph660.split.us668.preheader, %.lr.ph660.split.us668
  %indvars.iv696 = phi i64 [ %78, %.lr.ph660.split.us668.preheader ], [ %indvars.iv.next697, %.lr.ph660.split.us668 ]
  %.0514658.us670 = phi double [ 0.000000e+00, %.lr.ph660.split.us668.preheader ], [ %112, %.lr.ph660.split.us668 ]
  %99 = getelementptr inbounds double, ptr %3, i64 %indvars.iv696
  %100 = load double, ptr %99, align 8, !tbaa !15
  %101 = getelementptr inbounds double, ptr %5, i64 %indvars.iv696
  %102 = load double, ptr %101, align 8, !tbaa !15
  %103 = getelementptr inbounds double, ptr %2, i64 %indvars.iv696
  %104 = load double, ptr %103, align 8, !tbaa !15
  %105 = fcmp ult double %102, %104
  %.614.us = select i1 %105, double %104, double %102
  %106 = fsub double %100, %.614.us
  %107 = select i1 %105, double %102, double %104
  %108 = getelementptr inbounds double, ptr %4, i64 %indvars.iv696
  %109 = load double, ptr %108, align 8, !tbaa !15
  %110 = fsub double %107, %109
  %111 = fadd double %106, %110
  %112 = fadd double %.0514658.us670, %111
  %indvars.iv.next697 = add nsw i64 %indvars.iv696, 1
  %113 = icmp slt i64 %indvars.iv.next697, %79
  br i1 %113, label %.lr.ph660.split.us668, label %.preheader644, !llvm.loop !18

.preheader644:                                    ; preds = %.lr.ph660.split.us668, %.lr.ph660.split.us663, %.lr.ph660.split.us, %.lr.ph660, %.preheader645
  %.0514.lcssa = phi double [ 0.000000e+00, %.preheader645 ], [ 0.000000e+00, %.lr.ph660 ], [ %90, %.lr.ph660.split.us ], [ %97, %.lr.ph660.split.us663 ], [ %112, %.lr.ph660.split.us668 ]
  %114 = icmp sgt i32 %34, 0
  br i1 %114, label %.lr.ph675, label %.preheader644..preheader_crit_edge

.preheader644..preheader_crit_edge:               ; preds = %.preheader644
  %.pre728 = sext i32 %35 to i64
  br label %.preheader

.lr.ph675:                                        ; preds = %.preheader644
  %115 = getelementptr inbounds i8, ptr %26, i64 452
  %116 = load i32, ptr %115, align 4, !tbaa !14
  %117 = sext i32 %35 to i64
  %118 = zext nneg i32 %spec.select to i64
  br label %130

.preheader:                                       ; preds = %161, %.preheader644..preheader_crit_edge
  %.pre-phi = phi i64 [ %.pre728, %.preheader644..preheader_crit_edge ], [ %117, %161 ]
  %.0512.lcssa = phi double [ 0.000000e+00, %.preheader644..preheader_crit_edge ], [ %163, %161 ]
  %119 = getelementptr inbounds i8, ptr %26, i64 380
  %120 = getelementptr inbounds i8, ptr %26, i64 212
  %121 = getelementptr inbounds i8, ptr %26, i64 452
  %122 = getelementptr inbounds i8, ptr %26, i64 464
  %123 = getelementptr inbounds i8, ptr %26, i64 224
  %124 = getelementptr inbounds i8, ptr %26, i64 392
  %125 = sext i32 %22 to i64
  %126 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %125, i64 %126)
  %127 = sext i32 %1 to i64
  %128 = sext i32 %29 to i64
  %129 = sext i32 %32 to i64
  br label %165

130:                                              ; preds = %.lr.ph675, %161
  %indvars.iv705 = phi i64 [ %117, %.lr.ph675 ], [ %indvars.iv.next706, %161 ]
  %.0512673 = phi double [ 0.000000e+00, %.lr.ph675 ], [ %163, %161 ]
  switch i32 %116, label %161 [
    i32 0, label %131
    i32 1, label %139
    i32 2, label %146
  ]

131:                                              ; preds = %130
  %132 = add nsw i64 %indvars.iv705, -1
  %133 = getelementptr inbounds double, ptr %5, i64 %132
  %134 = load double, ptr %133, align 8, !tbaa !15
  %135 = getelementptr inbounds double, ptr %2, i64 %132
  %136 = load double, ptr %135, align 8, !tbaa !15
  %137 = fsub double %134, %136
  %138 = tail call double @llvm.fabs.f64(double %137)
  br label %161

139:                                              ; preds = %130
  %140 = add nsw i64 %indvars.iv705, -1
  %141 = getelementptr inbounds double, ptr %3, i64 %140
  %142 = load double, ptr %141, align 8, !tbaa !15
  %143 = getelementptr inbounds double, ptr %4, i64 %140
  %144 = load double, ptr %143, align 8, !tbaa !15
  %145 = fsub double %142, %144
  br label %161

146:                                              ; preds = %130
  %147 = add nsw i64 %indvars.iv705, -1
  %148 = getelementptr inbounds double, ptr %3, i64 %147
  %149 = load double, ptr %148, align 8, !tbaa !15
  %150 = getelementptr inbounds double, ptr %5, i64 %147
  %151 = load double, ptr %150, align 8, !tbaa !15
  %152 = getelementptr inbounds double, ptr %2, i64 %147
  %153 = load double, ptr %152, align 8, !tbaa !15
  %154 = fcmp ult double %151, %153
  %.615 = select i1 %154, double %153, double %151
  %155 = fsub double %149, %.615
  %156 = select i1 %154, double %151, double %153
  %157 = getelementptr inbounds double, ptr %4, i64 %147
  %158 = load double, ptr %157, align 8, !tbaa !15
  %159 = fsub double %156, %158
  %160 = fadd double %155, %159
  br label %161

161:                                              ; preds = %130, %139, %146, %131
  %162 = phi double [ %138, %131 ], [ %145, %139 ], [ %160, %146 ], [ 0.000000e+00, %130 ]
  %163 = fadd double %.0512673, %162
  %indvars.iv.next706 = add nsw i64 %indvars.iv705, 1
  %164 = icmp slt i64 %indvars.iv.next706, %118
  br i1 %164, label %130, label %.preheader, !llvm.loop !19

165:                                              ; preds = %.preheader, %504
  %indvars.iv716 = phi i64 [ %.pre-phi, %.preheader ], [ %indvars.iv.next717, %504 ]
  %indvars.iv714 = phi i64 [ %129, %.preheader ], [ %indvars.iv.next715, %504 ]
  %indvars.iv712 = phi i64 [ %128, %.preheader ], [ %indvars.iv.next713, %504 ]
  %indvars.iv710 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next711, %504 ]
  %indvars.iv708 = phi i64 [ %smax, %.preheader ], [ %indvars.iv.next709, %504 ]
  %.1517 = phi double [ %.0516.lcssa, %.preheader ], [ %399, %504 ]
  %.1515 = phi double [ %.0514.lcssa, %.preheader ], [ %454, %504 ]
  %.1513 = phi double [ %.0512.lcssa, %.preheader ], [ %508, %504 ]
  %166 = add nsw i64 %indvars.iv708, -1
  %167 = getelementptr inbounds double, ptr %5, i64 %166
  %168 = getelementptr inbounds double, ptr %2, i64 %166
  %169 = load <2 x double>, ptr %167, align 8, !tbaa !15
  %170 = load <2 x double>, ptr %168, align 8, !tbaa !15
  %171 = fcmp oge <2 x double> %169, %170
  %172 = extractelement <2 x i1> %171, i64 0
  %173 = extractelement <2 x i1> %171, i64 1
  %174 = xor i1 %172, %173
  br i1 %174, label %175, label %343

175:                                              ; preds = %165
  %176 = load double, ptr %122, align 8, !tbaa !20
  %177 = load i32, ptr %33, align 8, !tbaa !11
  %.not607 = icmp eq i32 %177, 0
  br i1 %.not607, label %178, label %.thread

178:                                              ; preds = %175
  %179 = load i32, ptr %121, align 4, !tbaa !14
  switch i32 %179, label %201 [
    i32 0, label %180
    i32 1, label %184
    i32 2, label %190
  ]

180:                                              ; preds = %178
  %181 = fsub <2 x double> %169, %170
  %182 = extractelement <2 x double> %181, i64 0
  %183 = tail call double @llvm.fabs.f64(double %182)
  br label %201

184:                                              ; preds = %178
  %185 = getelementptr inbounds double, ptr %3, i64 %166
  %186 = load double, ptr %185, align 8, !tbaa !15
  %187 = getelementptr inbounds double, ptr %4, i64 %166
  %188 = load double, ptr %187, align 8, !tbaa !15
  %189 = fsub double %186, %188
  br label %201

190:                                              ; preds = %178
  %191 = getelementptr inbounds double, ptr %3, i64 %166
  %192 = load double, ptr %191, align 8, !tbaa !15
  %193 = extractelement <2 x double> %169, i64 0
  %194 = extractelement <2 x double> %170, i64 0
  %.616 = select i1 %172, double %193, double %194
  %195 = fsub double %192, %.616
  %196 = select i1 %172, double %194, double %193
  %197 = getelementptr inbounds double, ptr %4, i64 %166
  %198 = load double, ptr %197, align 8, !tbaa !15
  %199 = fsub double %196, %198
  %200 = fadd double %195, %199
  br label %201

201:                                              ; preds = %178, %180, %190, %184
  %202 = phi double [ %183, %180 ], [ %189, %184 ], [ %200, %190 ], [ 0.000000e+00, %178 ]
  %203 = fmul double %176, %202
  %204 = icmp eq i32 %179, 2
  %205 = select i1 %204, double 2.000000e+00, double 1.000000e+00
  %206 = fdiv double %203, %205
  %207 = extractelement <2 x double> %170, i64 0
  %208 = fadd double %207, %206
  %209 = extractelement <2 x double> %170, i64 1
  %210 = fcmp ugt double %209, %208
  br i1 %210, label %343, label %221

.thread:                                          ; preds = %175
  %211 = sitofp i32 %177 to double
  %212 = fdiv double %.1513, %211
  %.pre = load i32, ptr %121, align 4, !tbaa !14
  %213 = fmul double %176, %212
  %214 = icmp eq i32 %.pre, 2
  %215 = select i1 %214, double 2.000000e+00, double 1.000000e+00
  %216 = fdiv double %213, %215
  %217 = extractelement <2 x double> %170, i64 0
  %218 = fadd double %217, %216
  %219 = extractelement <2 x double> %170, i64 1
  %220 = fcmp ugt double %219, %218
  br i1 %220, label %343, label %.thread729

221:                                              ; preds = %201
  br i1 %.not607, label %225, label %.thread729

.thread729:                                       ; preds = %.thread, %221
  %222 = phi double [ %205, %221 ], [ %215, %.thread ]
  %223 = sitofp i32 %177 to double
  %224 = fdiv double %.1513, %223
  br label %248

225:                                              ; preds = %221
  switch i32 %179, label %236 [
    i32 0, label %226
    i32 1, label %230
  ]

226:                                              ; preds = %225
  %227 = fsub <2 x double> %169, %170
  %228 = extractelement <2 x double> %227, i64 0
  %229 = tail call double @llvm.fabs.f64(double %228)
  br label %248

230:                                              ; preds = %225
  %231 = getelementptr inbounds double, ptr %3, i64 %166
  %232 = load double, ptr %231, align 8, !tbaa !15
  %233 = getelementptr inbounds double, ptr %4, i64 %166
  %234 = load double, ptr %233, align 8, !tbaa !15
  %235 = fsub double %232, %234
  br label %248

236:                                              ; preds = %225
  br i1 %204, label %237, label %248

237:                                              ; preds = %236
  %238 = getelementptr inbounds double, ptr %3, i64 %166
  %239 = load double, ptr %238, align 8, !tbaa !15
  %240 = extractelement <2 x double> %169, i64 0
  %241 = fcmp ult double %240, %207
  %.617 = select i1 %241, double %207, double %240
  %242 = fsub double %239, %.617
  %243 = select i1 %241, double %240, double %207
  %244 = getelementptr inbounds double, ptr %4, i64 %166
  %245 = load double, ptr %244, align 8, !tbaa !15
  %246 = fsub double %243, %245
  %247 = fadd double %242, %246
  br label %248

248:                                              ; preds = %226, %237, %236, %230, %.thread729
  %249 = phi double [ %222, %.thread729 ], [ %205, %226 ], [ %205, %230 ], [ 2.000000e+00, %237 ], [ 1.000000e+00, %236 ]
  %250 = phi double [ %224, %.thread729 ], [ %229, %226 ], [ %235, %230 ], [ %247, %237 ], [ 0.000000e+00, %236 ]
  %251 = fmul double %176, %250
  %252 = fdiv double %251, %249
  %253 = extractelement <2 x double> %170, i64 0
  %254 = fsub double %253, %252
  %255 = extractelement <2 x double> %170, i64 1
  %256 = fcmp ult double %255, %254
  br i1 %256, label %343, label %257

257:                                              ; preds = %248
  %258 = extractelement <2 x double> %169, i64 1
  %259 = fsub double %258, %255
  %260 = tail call double @llvm.fabs.f64(double %259)
  %261 = load double, ptr %123, align 8, !tbaa !20
  %262 = load i32, ptr %30, align 8, !tbaa !11
  %.not609 = icmp eq i32 %262, 0
  br i1 %.not609, label %263, label %280

263:                                              ; preds = %257
  %264 = load i32, ptr %120, align 4, !tbaa !14
  switch i32 %264, label %.fold.split [
    i32 0, label %.thread731
    i32 1, label %265
    i32 2, label %.thread733
  ]

265:                                              ; preds = %263
  %266 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %267 = load double, ptr %266, align 8, !tbaa !15
  %268 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %269 = load double, ptr %268, align 8, !tbaa !15
  %270 = fsub double %267, %269
  br label %.thread731

.thread733:                                       ; preds = %263
  %271 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %272 = load double, ptr %271, align 8, !tbaa !15
  %273 = fcmp ult double %258, %255
  %.618 = select i1 %273, double %255, double %258
  %274 = fsub double %272, %.618
  %275 = select i1 %273, double %258, double %255
  %276 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %277 = load double, ptr %276, align 8, !tbaa !15
  %278 = fsub double %275, %277
  %279 = fadd double %274, %278
  br label %.thread731

.fold.split:                                      ; preds = %263
  br label %.thread731

280:                                              ; preds = %257
  %281 = sitofp i32 %262 to double
  %282 = fdiv double %.1515, %281
  %.pre725 = load i32, ptr %120, align 4, !tbaa !14
  %.pre725.fr = freeze i32 %.pre725
  %283 = icmp eq i32 %.pre725.fr, 2
  br i1 %283, label %284, label %.thread731

284:                                              ; preds = %280
  br label %.thread731

.thread731:                                       ; preds = %.fold.split, %263, %265, %.thread733, %280, %284
  %.pn = phi double [ %282, %280 ], [ %279, %.thread733 ], [ %282, %284 ], [ 0.000000e+00, %.fold.split ], [ %260, %263 ], [ %270, %265 ]
  %285 = phi double [ 1.000000e+00, %280 ], [ 2.000000e+00, %.thread733 ], [ 2.000000e+00, %284 ], [ 1.000000e+00, %.fold.split ], [ 1.000000e+00, %263 ], [ 1.000000e+00, %265 ]
  %286 = fmul double %261, %.pn
  %287 = fdiv double %286, %285
  %288 = fcmp ogt double %260, %287
  br i1 %288, label %289, label %343

289:                                              ; preds = %.thread731
  %290 = fcmp ult double %258, %255
  %291 = load double, ptr %124, align 8, !tbaa !20
  %292 = load i32, ptr %27, align 8, !tbaa !11
  %.not611 = icmp eq i32 %292, 0
  br i1 %290, label %317, label %293

293:                                              ; preds = %289
  %294 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %295 = load double, ptr %294, align 8, !tbaa !15
  %296 = fsub double %255, %295
  br i1 %.not611, label %297, label %308

297:                                              ; preds = %293
  %298 = load i32, ptr %119, align 4, !tbaa !14
  switch i32 %298, label %.thread738 [
    i32 0, label %299
    i32 1, label %300
    i32 2, label %.thread740
  ]

299:                                              ; preds = %297
  br label %.thread738

300:                                              ; preds = %297
  %301 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %302 = load double, ptr %301, align 8, !tbaa !15
  %303 = fsub double %302, %295
  br label %.thread738

.thread740:                                       ; preds = %297
  %304 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %305 = load double, ptr %304, align 8, !tbaa !15
  %306 = fsub double %305, %258
  %307 = fadd double %296, %306
  br label %.thread738

308:                                              ; preds = %293
  %309 = sitofp i32 %292 to double
  %310 = fdiv double %.1517, %309
  %.pre726 = load i32, ptr %119, align 4, !tbaa !14
  %.pre726.fr = freeze i32 %.pre726
  %311 = icmp eq i32 %.pre726.fr, 2
  br i1 %311, label %312, label %.thread738

312:                                              ; preds = %308
  br label %.thread738

.thread738:                                       ; preds = %297, %300, %299, %.thread740, %308, %312
  %.pn760 = phi double [ %310, %308 ], [ %307, %.thread740 ], [ %310, %312 ], [ 0.000000e+00, %297 ], [ %303, %300 ], [ %260, %299 ]
  %313 = phi double [ 1.000000e+00, %308 ], [ 2.000000e+00, %.thread740 ], [ 2.000000e+00, %312 ], [ 1.000000e+00, %297 ], [ 1.000000e+00, %300 ], [ 1.000000e+00, %299 ]
  %314 = fmul double %291, %.pn760
  %315 = fdiv double %314, %313
  %316 = fcmp olt double %296, %315
  br i1 %316, label %341, label %343

317:                                              ; preds = %289
  %318 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %319 = load double, ptr %318, align 8, !tbaa !15
  %320 = fsub double %319, %255
  br i1 %.not611, label %321, label %332

321:                                              ; preds = %317
  %322 = load i32, ptr %119, align 4, !tbaa !14
  switch i32 %322, label %.thread745 [
    i32 0, label %323
    i32 1, label %324
    i32 2, label %.thread747
  ]

323:                                              ; preds = %321
  br label %.thread745

324:                                              ; preds = %321
  %325 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %326 = load double, ptr %325, align 8, !tbaa !15
  %327 = fsub double %319, %326
  br label %.thread745

.thread747:                                       ; preds = %321
  %328 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %329 = load double, ptr %328, align 8, !tbaa !15
  %330 = fsub double %258, %329
  %331 = fadd double %320, %330
  br label %.thread745

332:                                              ; preds = %317
  %333 = sitofp i32 %292 to double
  %334 = fdiv double %.1517, %333
  %.pre727 = load i32, ptr %119, align 4, !tbaa !14
  %.pre727.fr = freeze i32 %.pre727
  %335 = icmp eq i32 %.pre727.fr, 2
  br i1 %335, label %336, label %.thread745

336:                                              ; preds = %332
  br label %.thread745

.thread745:                                       ; preds = %321, %324, %323, %.thread747, %332, %336
  %.pn761 = phi double [ %334, %332 ], [ %331, %.thread747 ], [ %334, %336 ], [ 0.000000e+00, %321 ], [ %327, %324 ], [ %260, %323 ]
  %337 = phi double [ 1.000000e+00, %332 ], [ 2.000000e+00, %.thread747 ], [ 2.000000e+00, %336 ], [ 1.000000e+00, %321 ], [ 1.000000e+00, %324 ], [ 1.000000e+00, %323 ]
  %338 = fmul double %291, %.pn761
  %339 = fdiv double %338, %337
  %340 = fcmp olt double %320, %339
  br i1 %340, label %341, label %343

341:                                              ; preds = %.thread745, %.thread738
  %342 = select i1 %173, i32 100, i32 -100
  br label %343

343:                                              ; preds = %165, %201, %248, %.thread731, %.thread745, %.thread738, %.thread, %341
  %.sink = phi i32 [ %342, %341 ], [ 0, %.thread ], [ 0, %.thread738 ], [ 0, %.thread745 ], [ 0, %.thread731 ], [ 0, %248 ], [ 0, %201 ], [ 0, %165 ]
  %344 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv710
  store i32 %.sink, ptr %344, align 4, !tbaa !5
  %indvars.iv.next711 = add nuw nsw i64 %indvars.iv710, 1
  %345 = load i32, ptr %119, align 4, !tbaa !14
  switch i32 %345, label %395 [
    i32 0, label %.thread628
    i32 1, label %.thread629
    i32 2, label %.thread630
  ]

.thread628:                                       ; preds = %343
  %346 = getelementptr inbounds double, ptr %5, i64 %indvars.iv712
  %347 = load double, ptr %346, align 8, !tbaa !15
  %348 = getelementptr inbounds double, ptr %2, i64 %indvars.iv712
  %349 = load double, ptr %348, align 8, !tbaa !15
  %350 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %351 = insertelement <2 x double> %350, double %347, i64 1
  %352 = shufflevector <2 x double> %170, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %353 = insertelement <2 x double> %352, double %349, i64 1
  %354 = fsub <2 x double> %351, %353
  %355 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %354)
  br label %395

.thread629:                                       ; preds = %343
  %356 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %357 = load double, ptr %356, align 8, !tbaa !15
  %358 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %359 = load double, ptr %358, align 8, !tbaa !15
  %360 = getelementptr inbounds double, ptr %3, i64 %indvars.iv712
  %361 = load double, ptr %360, align 8, !tbaa !15
  %362 = getelementptr inbounds double, ptr %4, i64 %indvars.iv712
  %363 = load double, ptr %362, align 8, !tbaa !15
  %364 = insertelement <2 x double> poison, double %357, i64 0
  %365 = insertelement <2 x double> %364, double %361, i64 1
  %366 = insertelement <2 x double> poison, double %359, i64 0
  %367 = insertelement <2 x double> %366, double %363, i64 1
  %368 = fsub <2 x double> %365, %367
  br label %395

.thread630:                                       ; preds = %343
  %369 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %370 = load double, ptr %369, align 8, !tbaa !15
  %371 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %372 = load double, ptr %371, align 8, !tbaa !15
  %373 = getelementptr inbounds double, ptr %3, i64 %indvars.iv712
  %374 = load double, ptr %373, align 8, !tbaa !15
  %375 = getelementptr inbounds double, ptr %5, i64 %indvars.iv712
  %376 = load double, ptr %375, align 8, !tbaa !15
  %377 = getelementptr inbounds double, ptr %2, i64 %indvars.iv712
  %378 = load double, ptr %377, align 8, !tbaa !15
  %379 = getelementptr inbounds double, ptr %4, i64 %indvars.iv712
  %380 = load double, ptr %379, align 8, !tbaa !15
  %381 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %382 = insertelement <2 x double> %381, double %376, i64 1
  %383 = shufflevector <2 x double> %170, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %384 = insertelement <2 x double> %383, double %378, i64 1
  %385 = fcmp ult <2 x double> %382, %384
  %386 = select <2 x i1> %385, <2 x double> %384, <2 x double> %382
  %387 = insertelement <2 x double> poison, double %370, i64 0
  %388 = insertelement <2 x double> %387, double %374, i64 1
  %389 = fsub <2 x double> %388, %386
  %390 = select <2 x i1> %385, <2 x double> %382, <2 x double> %384
  %391 = insertelement <2 x double> poison, double %372, i64 0
  %392 = insertelement <2 x double> %391, double %380, i64 1
  %393 = fsub <2 x double> %390, %392
  %394 = fadd <2 x double> %389, %393
  br label %395

395:                                              ; preds = %343, %.thread629, %.thread630, %.thread628
  %396 = phi <2 x double> [ %355, %.thread628 ], [ %368, %.thread629 ], [ %394, %.thread630 ], [ zeroinitializer, %343 ]
  %shift = shufflevector <2 x double> %396, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %397 = fsub <2 x double> %396, %shift
  %398 = extractelement <2 x double> %397, i64 0
  %399 = fadd double %.1517, %398
  %400 = load i32, ptr %120, align 4, !tbaa !14
  switch i32 %400, label %450 [
    i32 0, label %.thread631
    i32 1, label %.thread632
    i32 2, label %.thread633
  ]

.thread631:                                       ; preds = %395
  %401 = getelementptr inbounds double, ptr %5, i64 %indvars.iv714
  %402 = load double, ptr %401, align 8, !tbaa !15
  %403 = getelementptr inbounds double, ptr %2, i64 %indvars.iv714
  %404 = load double, ptr %403, align 8, !tbaa !15
  %405 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %406 = insertelement <2 x double> %405, double %402, i64 1
  %407 = shufflevector <2 x double> %170, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %408 = insertelement <2 x double> %407, double %404, i64 1
  %409 = fsub <2 x double> %406, %408
  %410 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %409)
  br label %450

.thread632:                                       ; preds = %395
  %411 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %412 = load double, ptr %411, align 8, !tbaa !15
  %413 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %414 = load double, ptr %413, align 8, !tbaa !15
  %415 = getelementptr inbounds double, ptr %3, i64 %indvars.iv714
  %416 = load double, ptr %415, align 8, !tbaa !15
  %417 = getelementptr inbounds double, ptr %4, i64 %indvars.iv714
  %418 = load double, ptr %417, align 8, !tbaa !15
  %419 = insertelement <2 x double> poison, double %412, i64 0
  %420 = insertelement <2 x double> %419, double %416, i64 1
  %421 = insertelement <2 x double> poison, double %414, i64 0
  %422 = insertelement <2 x double> %421, double %418, i64 1
  %423 = fsub <2 x double> %420, %422
  br label %450

.thread633:                                       ; preds = %395
  %424 = getelementptr inbounds double, ptr %3, i64 %indvars.iv708
  %425 = load double, ptr %424, align 8, !tbaa !15
  %426 = getelementptr inbounds double, ptr %4, i64 %indvars.iv708
  %427 = load double, ptr %426, align 8, !tbaa !15
  %428 = getelementptr inbounds double, ptr %3, i64 %indvars.iv714
  %429 = load double, ptr %428, align 8, !tbaa !15
  %430 = getelementptr inbounds double, ptr %5, i64 %indvars.iv714
  %431 = load double, ptr %430, align 8, !tbaa !15
  %432 = getelementptr inbounds double, ptr %2, i64 %indvars.iv714
  %433 = load double, ptr %432, align 8, !tbaa !15
  %434 = getelementptr inbounds double, ptr %4, i64 %indvars.iv714
  %435 = load double, ptr %434, align 8, !tbaa !15
  %436 = shufflevector <2 x double> %169, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %437 = insertelement <2 x double> %436, double %431, i64 1
  %438 = shufflevector <2 x double> %170, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %439 = insertelement <2 x double> %438, double %433, i64 1
  %440 = fcmp ult <2 x double> %437, %439
  %441 = select <2 x i1> %440, <2 x double> %439, <2 x double> %437
  %442 = insertelement <2 x double> poison, double %425, i64 0
  %443 = insertelement <2 x double> %442, double %429, i64 1
  %444 = fsub <2 x double> %443, %441
  %445 = select <2 x i1> %440, <2 x double> %437, <2 x double> %439
  %446 = insertelement <2 x double> poison, double %427, i64 0
  %447 = insertelement <2 x double> %446, double %435, i64 1
  %448 = fsub <2 x double> %445, %447
  %449 = fadd <2 x double> %444, %448
  br label %450

450:                                              ; preds = %395, %.thread632, %.thread633, %.thread631
  %451 = phi <2 x double> [ %410, %.thread631 ], [ %423, %.thread632 ], [ %449, %.thread633 ], [ zeroinitializer, %395 ]
  %shift772 = shufflevector <2 x double> %451, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %452 = fsub <2 x double> %451, %shift772
  %453 = extractelement <2 x double> %452, i64 0
  %454 = fadd double %.1515, %453
  %455 = load i32, ptr %121, align 4, !tbaa !14
  switch i32 %455, label %504 [
    i32 0, label %.thread634
    i32 1, label %.thread635
    i32 2, label %.thread636
  ]

.thread634:                                       ; preds = %450
  %456 = add nsw i64 %indvars.iv716, -1
  %457 = getelementptr inbounds double, ptr %5, i64 %456
  %458 = load double, ptr %457, align 8, !tbaa !15
  %459 = getelementptr inbounds double, ptr %2, i64 %456
  %460 = load double, ptr %459, align 8, !tbaa !15
  %461 = insertelement <2 x double> %169, double %458, i64 1
  %462 = insertelement <2 x double> %170, double %460, i64 1
  %463 = fsub <2 x double> %461, %462
  %464 = tail call <2 x double> @llvm.fabs.v2f64(<2 x double> %463)
  br label %504

.thread635:                                       ; preds = %450
  %465 = getelementptr inbounds double, ptr %3, i64 %166
  %466 = load double, ptr %465, align 8, !tbaa !15
  %467 = getelementptr inbounds double, ptr %4, i64 %166
  %468 = load double, ptr %467, align 8, !tbaa !15
  %469 = add nsw i64 %indvars.iv716, -1
  %470 = getelementptr inbounds double, ptr %3, i64 %469
  %471 = load double, ptr %470, align 8, !tbaa !15
  %472 = getelementptr inbounds double, ptr %4, i64 %469
  %473 = load double, ptr %472, align 8, !tbaa !15
  %474 = insertelement <2 x double> poison, double %466, i64 0
  %475 = insertelement <2 x double> %474, double %471, i64 1
  %476 = insertelement <2 x double> poison, double %468, i64 0
  %477 = insertelement <2 x double> %476, double %473, i64 1
  %478 = fsub <2 x double> %475, %477
  br label %504

.thread636:                                       ; preds = %450
  %479 = getelementptr inbounds double, ptr %3, i64 %166
  %480 = load double, ptr %479, align 8, !tbaa !15
  %481 = getelementptr inbounds double, ptr %4, i64 %166
  %482 = load double, ptr %481, align 8, !tbaa !15
  %483 = add nsw i64 %indvars.iv716, -1
  %484 = getelementptr inbounds double, ptr %3, i64 %483
  %485 = load double, ptr %484, align 8, !tbaa !15
  %486 = getelementptr inbounds double, ptr %5, i64 %483
  %487 = load double, ptr %486, align 8, !tbaa !15
  %488 = getelementptr inbounds double, ptr %2, i64 %483
  %489 = load double, ptr %488, align 8, !tbaa !15
  %490 = getelementptr inbounds double, ptr %4, i64 %483
  %491 = load double, ptr %490, align 8, !tbaa !15
  %492 = insertelement <2 x double> %169, double %487, i64 1
  %493 = insertelement <2 x double> %170, double %489, i64 1
  %494 = fcmp ult <2 x double> %492, %493
  %495 = select <2 x i1> %494, <2 x double> %493, <2 x double> %492
  %496 = insertelement <2 x double> poison, double %480, i64 0
  %497 = insertelement <2 x double> %496, double %485, i64 1
  %498 = fsub <2 x double> %497, %495
  %499 = select <2 x i1> %494, <2 x double> %492, <2 x double> %493
  %500 = insertelement <2 x double> poison, double %482, i64 0
  %501 = insertelement <2 x double> %500, double %491, i64 1
  %502 = fsub <2 x double> %499, %501
  %503 = fadd <2 x double> %498, %502
  br label %504

504:                                              ; preds = %450, %.thread635, %.thread636, %.thread634
  %505 = phi <2 x double> [ %464, %.thread634 ], [ %478, %.thread635 ], [ %503, %.thread636 ], [ zeroinitializer, %450 ]
  %shift773 = shufflevector <2 x double> %505, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %506 = fsub <2 x double> %505, %shift773
  %507 = extractelement <2 x double> %506, i64 0
  %508 = fadd double %.1513, %507
  %indvars.iv.next709 = add nuw nsw i64 %indvars.iv708, 1
  %indvars.iv.next713 = add nsw i64 %indvars.iv712, 1
  %indvars.iv.next715 = add nsw i64 %indvars.iv714, 1
  %indvars.iv.next717 = add nsw i64 %indvars.iv716, 1
  %.not612.not = icmp slt i64 %indvars.iv708, %127
  br i1 %.not612.not, label %165, label %509, !llvm.loop !21

509:                                              ; preds = %504
  %510 = trunc nuw i64 %indvars.iv.next711 to i32
  store i32 %510, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %511

511:                                              ; preds = %13, %11, %9, %509, %24
  %.0 = phi i32 [ 0, %24 ], [ 0, %509 ], [ 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 = distinct !{!19, !17}
!20 = !{!12, !13, i64 16}
!21 = distinct !{!21, !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