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

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

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

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

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

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

30:                                               ; preds = %9
  store i32 12, ptr %10, align 4
  store i32 1, ptr %27, align 4
  br label %1475

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

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

38:                                               ; preds = %34, %31
  store i32 13, ptr %10, align 4
  store i32 1, ptr %27, align 4
  br label %1475

39:                                               ; preds = %34
  %40 = load ptr, ptr %13, align 8, !tbaa !9
  %41 = icmp ne ptr %40, null
  br i1 %41, label %42, label %51

42:                                               ; preds = %39
  %43 = load ptr, ptr %14, align 8, !tbaa !9
  %44 = icmp ne ptr %43, null
  br i1 %44, label %45, label %51

45:                                               ; preds = %42
  %46 = load ptr, ptr %15, align 8, !tbaa !9
  %47 = icmp ne ptr %46, null
  br i1 %47, label %48, label %51

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

51:                                               ; preds = %48, %45, %42, %39
  store i32 2, ptr %10, align 4
  store i32 1, ptr %27, align 4
  br label %1475

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

55:                                               ; preds = %52
  store i32 2, ptr %10, align 4
  store i32 1, ptr %27, align 4
  br label %1475

56:                                               ; preds = %52
  %57 = call i32 @TA_CDL3INSIDE_Lookback()
  store i32 %57, ptr %26, align 4, !tbaa !5
  %58 = load i32, ptr %11, align 4, !tbaa !5
  %59 = load i32, ptr %26, align 4, !tbaa !5
  %60 = icmp slt i32 %58, %59
  br i1 %60, label %61, label %63

61:                                               ; preds = %56
  %62 = load i32, ptr %26, align 4, !tbaa !5
  store i32 %62, ptr %11, align 4, !tbaa !5
  br label %63

63:                                               ; preds = %61, %56
  %64 = load i32, ptr %11, align 4, !tbaa !5
  %65 = load i32, ptr %12, align 4, !tbaa !5
  %66 = icmp sgt i32 %64, %65
  br i1 %66, label %67, label %70

67:                                               ; preds = %63
  %68 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 0, ptr %68, align 4, !tbaa !5
  %69 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 0, ptr %69, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %27, align 4
  br label %1475

70:                                               ; preds = %63
  store double 0.000000e+00, ptr %21, align 8, !tbaa !11
  store double 0.000000e+00, ptr %20, align 8, !tbaa !11
  %71 = load i32, ptr %11, align 4, !tbaa !5
  %72 = sub nsw i32 %71, 2
  %73 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %74 = getelementptr inbounds %struct.TA_LibcPriv, ptr %73, i32 0, i32 8
  %75 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %74, i64 0, i64 0
  %76 = getelementptr inbounds %struct.TA_CandleSetting, ptr %75, i32 0, i32 2
  %77 = load i32, ptr %76, align 8, !tbaa !13
  %78 = sub nsw i32 %72, %77
  store i32 %78, ptr %25, align 4, !tbaa !5
  %79 = load i32, ptr %11, align 4, !tbaa !5
  %80 = sub nsw i32 %79, 1
  %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 2
  %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 %24, align 4, !tbaa !5
  %87 = load i32, ptr %25, align 4, !tbaa !5
  store i32 %87, ptr %22, align 4, !tbaa !5
  br label %88

88:                                               ; preds = %210, %70
  %89 = load i32, ptr %22, align 4, !tbaa !5
  %90 = load i32, ptr %11, align 4, !tbaa !5
  %91 = sub nsw i32 %90, 2
  %92 = icmp slt i32 %89, %91
  br i1 %92, label %93, label %216

93:                                               ; preds = %88
  %94 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %95 = getelementptr inbounds %struct.TA_LibcPriv, ptr %94, i32 0, i32 8
  %96 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %95, i64 0, i64 0
  %97 = getelementptr inbounds %struct.TA_CandleSetting, ptr %96, i32 0, i32 1
  %98 = load i32, ptr %97, align 4, !tbaa !15
  %99 = icmp eq i32 %98, 0
  br i1 %99, label %100, label %114

100:                                              ; preds = %93
  %101 = load ptr, ptr %16, align 8, !tbaa !9
  %102 = load i32, ptr %22, align 4, !tbaa !5
  %103 = sext i32 %102 to i64
  %104 = getelementptr inbounds float, ptr %101, i64 %103
  %105 = load float, ptr %104, align 4, !tbaa !16
  %106 = load ptr, ptr %13, align 8, !tbaa !9
  %107 = load i32, ptr %22, align 4, !tbaa !5
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds float, ptr %106, i64 %108
  %110 = load float, ptr %109, align 4, !tbaa !16
  %111 = fsub float %105, %110
  %112 = fpext float %111 to double
  %113 = call double @llvm.fabs.f64(double %112)
  br label %210

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

121:                                              ; preds = %114
  %122 = load ptr, ptr %14, align 8, !tbaa !9
  %123 = load i32, ptr %22, align 4, !tbaa !5
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds float, ptr %122, i64 %124
  %126 = load float, ptr %125, align 4, !tbaa !16
  %127 = load ptr, ptr %15, align 8, !tbaa !9
  %128 = load i32, ptr %22, align 4, !tbaa !5
  %129 = sext i32 %128 to i64
  %130 = getelementptr inbounds float, ptr %127, i64 %129
  %131 = load float, ptr %130, align 4, !tbaa !16
  %132 = fsub float %126, %131
  br label %207

133:                                              ; preds = %114
  %134 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %135 = getelementptr inbounds %struct.TA_LibcPriv, ptr %134, i32 0, i32 8
  %136 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %135, i64 0, i64 0
  %137 = getelementptr inbounds %struct.TA_CandleSetting, ptr %136, i32 0, i32 1
  %138 = load i32, ptr %137, align 4, !tbaa !15
  %139 = icmp eq i32 %138, 2
  br i1 %139, label %140, label %204

140:                                              ; preds = %133
  %141 = load ptr, ptr %14, align 8, !tbaa !9
  %142 = load i32, ptr %22, align 4, !tbaa !5
  %143 = sext i32 %142 to i64
  %144 = getelementptr inbounds float, ptr %141, i64 %143
  %145 = load float, ptr %144, align 4, !tbaa !16
  %146 = load ptr, ptr %16, align 8, !tbaa !9
  %147 = load i32, ptr %22, align 4, !tbaa !5
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds float, ptr %146, i64 %148
  %150 = load float, ptr %149, align 4, !tbaa !16
  %151 = load ptr, ptr %13, align 8, !tbaa !9
  %152 = load i32, ptr %22, align 4, !tbaa !5
  %153 = sext i32 %152 to i64
  %154 = getelementptr inbounds float, ptr %151, i64 %153
  %155 = load float, ptr %154, align 4, !tbaa !16
  %156 = fcmp oge float %150, %155
  br i1 %156, label %157, label %163

157:                                              ; preds = %140
  %158 = load ptr, ptr %16, align 8, !tbaa !9
  %159 = load i32, ptr %22, align 4, !tbaa !5
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds float, ptr %158, i64 %160
  %162 = load float, ptr %161, align 4, !tbaa !16
  br label %169

163:                                              ; preds = %140
  %164 = load ptr, ptr %13, align 8, !tbaa !9
  %165 = load i32, ptr %22, align 4, !tbaa !5
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds float, ptr %164, i64 %166
  %168 = load float, ptr %167, align 4, !tbaa !16
  br label %169

169:                                              ; preds = %163, %157
  %170 = phi float [ %162, %157 ], [ %168, %163 ]
  %171 = fsub float %145, %170
  %172 = load ptr, ptr %16, align 8, !tbaa !9
  %173 = load i32, ptr %22, align 4, !tbaa !5
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds float, ptr %172, i64 %174
  %176 = load float, ptr %175, align 4, !tbaa !16
  %177 = load ptr, ptr %13, align 8, !tbaa !9
  %178 = load i32, ptr %22, align 4, !tbaa !5
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds float, ptr %177, i64 %179
  %181 = load float, ptr %180, align 4, !tbaa !16
  %182 = fcmp oge float %176, %181
  br i1 %182, label %183, label %189

183:                                              ; preds = %169
  %184 = load ptr, ptr %13, align 8, !tbaa !9
  %185 = load i32, ptr %22, align 4, !tbaa !5
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds float, ptr %184, i64 %186
  %188 = load float, ptr %187, align 4, !tbaa !16
  br label %195

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

195:                                              ; preds = %189, %183
  %196 = phi float [ %188, %183 ], [ %194, %189 ]
  %197 = load ptr, ptr %15, align 8, !tbaa !9
  %198 = load i32, ptr %22, align 4, !tbaa !5
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds float, ptr %197, i64 %199
  %201 = load float, ptr %200, align 4, !tbaa !16
  %202 = fsub float %196, %201
  %203 = fadd float %171, %202
  br label %205

204:                                              ; preds = %133
  br label %205

205:                                              ; preds = %204, %195
  %206 = phi float [ %203, %195 ], [ 0.000000e+00, %204 ]
  br label %207

207:                                              ; preds = %205, %121
  %208 = phi float [ %132, %121 ], [ %206, %205 ]
  %209 = fpext float %208 to double
  br label %210

210:                                              ; preds = %207, %100
  %211 = phi double [ %113, %100 ], [ %209, %207 ]
  %212 = load double, ptr %21, align 8, !tbaa !11
  %213 = fadd double %212, %211
  store double %213, ptr %21, align 8, !tbaa !11
  %214 = load i32, ptr %22, align 4, !tbaa !5
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr %22, align 4, !tbaa !5
  br label %88, !llvm.loop !18

216:                                              ; preds = %88
  %217 = load i32, ptr %24, align 4, !tbaa !5
  store i32 %217, ptr %22, align 4, !tbaa !5
  br label %218

218:                                              ; preds = %340, %216
  %219 = load i32, ptr %22, align 4, !tbaa !5
  %220 = load i32, ptr %11, align 4, !tbaa !5
  %221 = sub nsw i32 %220, 1
  %222 = icmp slt i32 %219, %221
  br i1 %222, label %223, label %346

223:                                              ; preds = %218
  %224 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %225 = getelementptr inbounds %struct.TA_LibcPriv, ptr %224, i32 0, i32 8
  %226 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %225, i64 0, i64 2
  %227 = getelementptr inbounds %struct.TA_CandleSetting, ptr %226, i32 0, i32 1
  %228 = load i32, ptr %227, align 4, !tbaa !15
  %229 = icmp eq i32 %228, 0
  br i1 %229, label %230, label %244

230:                                              ; preds = %223
  %231 = load ptr, ptr %16, align 8, !tbaa !9
  %232 = load i32, ptr %22, align 4, !tbaa !5
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds float, ptr %231, i64 %233
  %235 = load float, ptr %234, align 4, !tbaa !16
  %236 = load ptr, ptr %13, align 8, !tbaa !9
  %237 = load i32, ptr %22, align 4, !tbaa !5
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds float, ptr %236, i64 %238
  %240 = load float, ptr %239, align 4, !tbaa !16
  %241 = fsub float %235, %240
  %242 = fpext float %241 to double
  %243 = call double @llvm.fabs.f64(double %242)
  br label %340

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

251:                                              ; preds = %244
  %252 = load ptr, ptr %14, align 8, !tbaa !9
  %253 = load i32, ptr %22, align 4, !tbaa !5
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds float, ptr %252, i64 %254
  %256 = load float, ptr %255, align 4, !tbaa !16
  %257 = load ptr, ptr %15, align 8, !tbaa !9
  %258 = load i32, ptr %22, align 4, !tbaa !5
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds float, ptr %257, i64 %259
  %261 = load float, ptr %260, align 4, !tbaa !16
  %262 = fsub float %256, %261
  br label %337

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

270:                                              ; preds = %263
  %271 = load ptr, ptr %14, align 8, !tbaa !9
  %272 = load i32, ptr %22, align 4, !tbaa !5
  %273 = sext i32 %272 to i64
  %274 = getelementptr inbounds float, ptr %271, i64 %273
  %275 = load float, ptr %274, align 4, !tbaa !16
  %276 = load ptr, ptr %16, align 8, !tbaa !9
  %277 = load i32, ptr %22, align 4, !tbaa !5
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds float, ptr %276, i64 %278
  %280 = load float, ptr %279, align 4, !tbaa !16
  %281 = load ptr, ptr %13, align 8, !tbaa !9
  %282 = load i32, ptr %22, align 4, !tbaa !5
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds float, ptr %281, i64 %283
  %285 = load float, ptr %284, align 4, !tbaa !16
  %286 = fcmp oge float %280, %285
  br i1 %286, label %287, label %293

287:                                              ; preds = %270
  %288 = load ptr, ptr %16, align 8, !tbaa !9
  %289 = load i32, ptr %22, align 4, !tbaa !5
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds float, ptr %288, i64 %290
  %292 = load float, ptr %291, align 4, !tbaa !16
  br label %299

293:                                              ; preds = %270
  %294 = load ptr, ptr %13, align 8, !tbaa !9
  %295 = load i32, ptr %22, align 4, !tbaa !5
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds float, ptr %294, i64 %296
  %298 = load float, ptr %297, align 4, !tbaa !16
  br label %299

299:                                              ; preds = %293, %287
  %300 = phi float [ %292, %287 ], [ %298, %293 ]
  %301 = fsub float %275, %300
  %302 = load ptr, ptr %16, align 8, !tbaa !9
  %303 = load i32, ptr %22, align 4, !tbaa !5
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds float, ptr %302, i64 %304
  %306 = load float, ptr %305, align 4, !tbaa !16
  %307 = load ptr, ptr %13, align 8, !tbaa !9
  %308 = load i32, ptr %22, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds float, ptr %307, i64 %309
  %311 = load float, ptr %310, align 4, !tbaa !16
  %312 = fcmp oge float %306, %311
  br i1 %312, label %313, label %319

313:                                              ; preds = %299
  %314 = load ptr, ptr %13, align 8, !tbaa !9
  %315 = load i32, ptr %22, align 4, !tbaa !5
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds float, ptr %314, i64 %316
  %318 = load float, ptr %317, align 4, !tbaa !16
  br label %325

319:                                              ; preds = %299
  %320 = load ptr, ptr %16, align 8, !tbaa !9
  %321 = load i32, ptr %22, align 4, !tbaa !5
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds float, ptr %320, i64 %322
  %324 = load float, ptr %323, align 4, !tbaa !16
  br label %325

325:                                              ; preds = %319, %313
  %326 = phi float [ %318, %313 ], [ %324, %319 ]
  %327 = load ptr, ptr %15, align 8, !tbaa !9
  %328 = load i32, ptr %22, align 4, !tbaa !5
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds float, ptr %327, i64 %329
  %331 = load float, ptr %330, align 4, !tbaa !16
  %332 = fsub float %326, %331
  %333 = fadd float %301, %332
  br label %335

334:                                              ; preds = %263
  br label %335

335:                                              ; preds = %334, %325
  %336 = phi float [ %333, %325 ], [ 0.000000e+00, %334 ]
  br label %337

337:                                              ; preds = %335, %251
  %338 = phi float [ %262, %251 ], [ %336, %335 ]
  %339 = fpext float %338 to double
  br label %340

340:                                              ; preds = %337, %230
  %341 = phi double [ %243, %230 ], [ %339, %337 ]
  %342 = load double, ptr %20, align 8, !tbaa !11
  %343 = fadd double %342, %341
  store double %343, ptr %20, align 8, !tbaa !11
  %344 = load i32, ptr %22, align 4, !tbaa !5
  %345 = add nsw i32 %344, 1
  store i32 %345, ptr %22, align 4, !tbaa !5
  br label %218, !llvm.loop !20

346:                                              ; preds = %218
  %347 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %347, ptr %22, align 4, !tbaa !5
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %348

348:                                              ; preds = %1466, %346
  %349 = load ptr, ptr %16, align 8, !tbaa !9
  %350 = load i32, ptr %22, align 4, !tbaa !5
  %351 = sub nsw i32 %350, 2
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds float, ptr %349, i64 %352
  %354 = load float, ptr %353, align 4, !tbaa !16
  %355 = load ptr, ptr %13, align 8, !tbaa !9
  %356 = load i32, ptr %22, align 4, !tbaa !5
  %357 = sub nsw i32 %356, 2
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds float, ptr %355, i64 %358
  %360 = load float, ptr %359, align 4, !tbaa !16
  %361 = fsub float %354, %360
  %362 = fpext float %361 to double
  %363 = call double @llvm.fabs.f64(double %362)
  %364 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %365 = getelementptr inbounds %struct.TA_LibcPriv, ptr %364, i32 0, i32 8
  %366 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %365, i64 0, i64 0
  %367 = getelementptr inbounds %struct.TA_CandleSetting, ptr %366, i32 0, i32 3
  %368 = load double, ptr %367, align 8, !tbaa !21
  %369 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %370 = getelementptr inbounds %struct.TA_LibcPriv, ptr %369, i32 0, i32 8
  %371 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %370, i64 0, i64 0
  %372 = getelementptr inbounds %struct.TA_CandleSetting, ptr %371, i32 0, i32 2
  %373 = load i32, ptr %372, align 8, !tbaa !13
  %374 = sitofp i32 %373 to double
  %375 = fcmp une double %374, 0.000000e+00
  br i1 %375, label %376, label %385

376:                                              ; preds = %348
  %377 = load double, ptr %21, align 8, !tbaa !11
  %378 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %379 = getelementptr inbounds %struct.TA_LibcPriv, ptr %378, i32 0, i32 8
  %380 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %379, i64 0, i64 0
  %381 = getelementptr inbounds %struct.TA_CandleSetting, ptr %380, i32 0, i32 2
  %382 = load i32, ptr %381, align 8, !tbaa !13
  %383 = sitofp i32 %382 to double
  %384 = fdiv double %377, %383
  br label %518

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

392:                                              ; preds = %385
  %393 = load ptr, ptr %16, align 8, !tbaa !9
  %394 = load i32, ptr %22, align 4, !tbaa !5
  %395 = sub nsw i32 %394, 2
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds float, ptr %393, i64 %396
  %398 = load float, ptr %397, align 4, !tbaa !16
  %399 = load ptr, ptr %13, align 8, !tbaa !9
  %400 = load i32, ptr %22, align 4, !tbaa !5
  %401 = sub nsw i32 %400, 2
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds float, ptr %399, i64 %402
  %404 = load float, ptr %403, align 4, !tbaa !16
  %405 = fsub float %398, %404
  %406 = fpext float %405 to double
  %407 = call double @llvm.fabs.f64(double %406)
  br label %516

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

415:                                              ; preds = %408
  %416 = load ptr, ptr %14, align 8, !tbaa !9
  %417 = load i32, ptr %22, align 4, !tbaa !5
  %418 = sub nsw i32 %417, 2
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %416, i64 %419
  %421 = load float, ptr %420, align 4, !tbaa !16
  %422 = load ptr, ptr %15, align 8, !tbaa !9
  %423 = load i32, ptr %22, align 4, !tbaa !5
  %424 = sub nsw i32 %423, 2
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds float, ptr %422, i64 %425
  %427 = load float, ptr %426, align 4, !tbaa !16
  %428 = fsub float %421, %427
  br label %513

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

436:                                              ; preds = %429
  %437 = load ptr, ptr %14, align 8, !tbaa !9
  %438 = load i32, ptr %22, align 4, !tbaa !5
  %439 = sub nsw i32 %438, 2
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds float, ptr %437, i64 %440
  %442 = load float, ptr %441, align 4, !tbaa !16
  %443 = load ptr, ptr %16, align 8, !tbaa !9
  %444 = load i32, ptr %22, align 4, !tbaa !5
  %445 = sub nsw i32 %444, 2
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds float, ptr %443, i64 %446
  %448 = load float, ptr %447, align 4, !tbaa !16
  %449 = load ptr, ptr %13, align 8, !tbaa !9
  %450 = load i32, ptr %22, align 4, !tbaa !5
  %451 = sub nsw i32 %450, 2
  %452 = sext i32 %451 to i64
  %453 = getelementptr inbounds float, ptr %449, i64 %452
  %454 = load float, ptr %453, align 4, !tbaa !16
  %455 = fcmp oge float %448, %454
  br i1 %455, label %456, label %463

456:                                              ; preds = %436
  %457 = load ptr, ptr %16, align 8, !tbaa !9
  %458 = load i32, ptr %22, align 4, !tbaa !5
  %459 = sub nsw i32 %458, 2
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds float, ptr %457, i64 %460
  %462 = load float, ptr %461, align 4, !tbaa !16
  br label %470

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

470:                                              ; preds = %463, %456
  %471 = phi float [ %462, %456 ], [ %469, %463 ]
  %472 = fsub float %442, %471
  %473 = load ptr, ptr %16, align 8, !tbaa !9
  %474 = load i32, ptr %22, align 4, !tbaa !5
  %475 = sub nsw i32 %474, 2
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds float, ptr %473, i64 %476
  %478 = load float, ptr %477, align 4, !tbaa !16
  %479 = load ptr, ptr %13, align 8, !tbaa !9
  %480 = load i32, ptr %22, align 4, !tbaa !5
  %481 = sub nsw i32 %480, 2
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds float, ptr %479, i64 %482
  %484 = load float, ptr %483, align 4, !tbaa !16
  %485 = fcmp oge float %478, %484
  br i1 %485, label %486, label %493

486:                                              ; preds = %470
  %487 = load ptr, ptr %13, align 8, !tbaa !9
  %488 = load i32, ptr %22, align 4, !tbaa !5
  %489 = sub nsw i32 %488, 2
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds float, ptr %487, i64 %490
  %492 = load float, ptr %491, align 4, !tbaa !16
  br label %500

493:                                              ; preds = %470
  %494 = load ptr, ptr %16, align 8, !tbaa !9
  %495 = load i32, ptr %22, align 4, !tbaa !5
  %496 = sub nsw i32 %495, 2
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds float, ptr %494, i64 %497
  %499 = load float, ptr %498, align 4, !tbaa !16
  br label %500

500:                                              ; preds = %493, %486
  %501 = phi float [ %492, %486 ], [ %499, %493 ]
  %502 = load ptr, ptr %15, align 8, !tbaa !9
  %503 = load i32, ptr %22, align 4, !tbaa !5
  %504 = sub nsw i32 %503, 2
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %502, i64 %505
  %507 = load float, ptr %506, align 4, !tbaa !16
  %508 = fsub float %501, %507
  %509 = fadd float %472, %508
  br label %511

510:                                              ; preds = %429
  br label %511

511:                                              ; preds = %510, %500
  %512 = phi float [ %509, %500 ], [ 0.000000e+00, %510 ]
  br label %513

513:                                              ; preds = %511, %415
  %514 = phi float [ %428, %415 ], [ %512, %511 ]
  %515 = fpext float %514 to double
  br label %516

516:                                              ; preds = %513, %392
  %517 = phi double [ %407, %392 ], [ %515, %513 ]
  br label %518

518:                                              ; preds = %516, %376
  %519 = phi double [ %384, %376 ], [ %517, %516 ]
  %520 = fmul double %368, %519
  %521 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %522 = getelementptr inbounds %struct.TA_LibcPriv, ptr %521, i32 0, i32 8
  %523 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %522, i64 0, i64 0
  %524 = getelementptr inbounds %struct.TA_CandleSetting, ptr %523, i32 0, i32 1
  %525 = load i32, ptr %524, align 4, !tbaa !15
  %526 = icmp eq i32 %525, 2
  %527 = zext i1 %526 to i64
  %528 = select i1 %526, double 2.000000e+00, double 1.000000e+00
  %529 = fdiv double %520, %528
  %530 = fcmp ogt double %363, %529
  br i1 %530, label %531, label %947

531:                                              ; preds = %518
  %532 = load ptr, ptr %16, align 8, !tbaa !9
  %533 = load i32, ptr %22, align 4, !tbaa !5
  %534 = sub nsw i32 %533, 1
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds float, ptr %532, i64 %535
  %537 = load float, ptr %536, align 4, !tbaa !16
  %538 = load ptr, ptr %13, align 8, !tbaa !9
  %539 = load i32, ptr %22, align 4, !tbaa !5
  %540 = sub nsw i32 %539, 1
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds float, ptr %538, i64 %541
  %543 = load float, ptr %542, align 4, !tbaa !16
  %544 = fsub float %537, %543
  %545 = fpext float %544 to double
  %546 = call double @llvm.fabs.f64(double %545)
  %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 2
  %550 = getelementptr inbounds %struct.TA_CandleSetting, ptr %549, i32 0, i32 3
  %551 = load double, ptr %550, align 8, !tbaa !21
  %552 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %553 = getelementptr inbounds %struct.TA_LibcPriv, ptr %552, i32 0, i32 8
  %554 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %553, i64 0, i64 2
  %555 = getelementptr inbounds %struct.TA_CandleSetting, ptr %554, i32 0, i32 2
  %556 = load i32, ptr %555, align 8, !tbaa !13
  %557 = sitofp i32 %556 to double
  %558 = fcmp une double %557, 0.000000e+00
  br i1 %558, label %559, label %568

559:                                              ; preds = %531
  %560 = load double, ptr %20, align 8, !tbaa !11
  %561 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %562 = getelementptr inbounds %struct.TA_LibcPriv, ptr %561, i32 0, i32 8
  %563 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %562, i64 0, i64 2
  %564 = getelementptr inbounds %struct.TA_CandleSetting, ptr %563, i32 0, i32 2
  %565 = load i32, ptr %564, align 8, !tbaa !13
  %566 = sitofp i32 %565 to double
  %567 = fdiv double %560, %566
  br label %701

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

575:                                              ; preds = %568
  %576 = load ptr, ptr %16, align 8, !tbaa !9
  %577 = load i32, ptr %22, align 4, !tbaa !5
  %578 = sub nsw i32 %577, 1
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %576, i64 %579
  %581 = load float, ptr %580, align 4, !tbaa !16
  %582 = load ptr, ptr %13, align 8, !tbaa !9
  %583 = load i32, ptr %22, align 4, !tbaa !5
  %584 = sub nsw i32 %583, 1
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds float, ptr %582, i64 %585
  %587 = load float, ptr %586, align 4, !tbaa !16
  %588 = fsub float %581, %587
  %589 = fpext float %588 to double
  %590 = call double @llvm.fabs.f64(double %589)
  br label %699

591:                                              ; preds = %568
  %592 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %593 = getelementptr inbounds %struct.TA_LibcPriv, ptr %592, i32 0, i32 8
  %594 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %593, i64 0, i64 2
  %595 = getelementptr inbounds %struct.TA_CandleSetting, ptr %594, i32 0, i32 1
  %596 = load i32, ptr %595, align 4, !tbaa !15
  %597 = icmp eq i32 %596, 1
  br i1 %597, label %598, label %612

598:                                              ; preds = %591
  %599 = load ptr, ptr %14, align 8, !tbaa !9
  %600 = load i32, ptr %22, align 4, !tbaa !5
  %601 = sub nsw i32 %600, 1
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds float, ptr %599, i64 %602
  %604 = load float, ptr %603, align 4, !tbaa !16
  %605 = load ptr, ptr %15, align 8, !tbaa !9
  %606 = load i32, ptr %22, align 4, !tbaa !5
  %607 = sub nsw i32 %606, 1
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds float, ptr %605, i64 %608
  %610 = load float, ptr %609, align 4, !tbaa !16
  %611 = fsub float %604, %610
  br label %696

612:                                              ; preds = %591
  %613 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %614 = getelementptr inbounds %struct.TA_LibcPriv, ptr %613, i32 0, i32 8
  %615 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %614, i64 0, i64 2
  %616 = getelementptr inbounds %struct.TA_CandleSetting, ptr %615, i32 0, i32 1
  %617 = load i32, ptr %616, align 4, !tbaa !15
  %618 = icmp eq i32 %617, 2
  br i1 %618, label %619, label %693

619:                                              ; preds = %612
  %620 = load ptr, ptr %14, align 8, !tbaa !9
  %621 = load i32, ptr %22, align 4, !tbaa !5
  %622 = sub nsw i32 %621, 1
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds float, ptr %620, i64 %623
  %625 = load float, ptr %624, align 4, !tbaa !16
  %626 = load ptr, ptr %16, align 8, !tbaa !9
  %627 = load i32, ptr %22, align 4, !tbaa !5
  %628 = sub nsw i32 %627, 1
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds float, ptr %626, i64 %629
  %631 = load float, ptr %630, align 4, !tbaa !16
  %632 = load ptr, ptr %13, align 8, !tbaa !9
  %633 = load i32, ptr %22, align 4, !tbaa !5
  %634 = sub nsw i32 %633, 1
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds float, ptr %632, i64 %635
  %637 = load float, ptr %636, align 4, !tbaa !16
  %638 = fcmp oge float %631, %637
  br i1 %638, label %639, label %646

639:                                              ; preds = %619
  %640 = load ptr, ptr %16, align 8, !tbaa !9
  %641 = load i32, ptr %22, align 4, !tbaa !5
  %642 = sub nsw i32 %641, 1
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds float, ptr %640, i64 %643
  %645 = load float, ptr %644, align 4, !tbaa !16
  br label %653

646:                                              ; preds = %619
  %647 = load ptr, ptr %13, align 8, !tbaa !9
  %648 = load i32, ptr %22, align 4, !tbaa !5
  %649 = sub nsw i32 %648, 1
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds float, ptr %647, i64 %650
  %652 = load float, ptr %651, align 4, !tbaa !16
  br label %653

653:                                              ; preds = %646, %639
  %654 = phi float [ %645, %639 ], [ %652, %646 ]
  %655 = fsub float %625, %654
  %656 = load ptr, ptr %16, align 8, !tbaa !9
  %657 = load i32, ptr %22, align 4, !tbaa !5
  %658 = sub nsw i32 %657, 1
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds float, ptr %656, i64 %659
  %661 = load float, ptr %660, align 4, !tbaa !16
  %662 = load ptr, ptr %13, align 8, !tbaa !9
  %663 = load i32, ptr %22, align 4, !tbaa !5
  %664 = sub nsw i32 %663, 1
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds float, ptr %662, i64 %665
  %667 = load float, ptr %666, align 4, !tbaa !16
  %668 = fcmp oge float %661, %667
  br i1 %668, label %669, label %676

669:                                              ; preds = %653
  %670 = load ptr, ptr %13, align 8, !tbaa !9
  %671 = load i32, ptr %22, align 4, !tbaa !5
  %672 = sub nsw i32 %671, 1
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds float, ptr %670, i64 %673
  %675 = load float, ptr %674, align 4, !tbaa !16
  br label %683

676:                                              ; preds = %653
  %677 = load ptr, ptr %16, align 8, !tbaa !9
  %678 = load i32, ptr %22, align 4, !tbaa !5
  %679 = sub nsw i32 %678, 1
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds float, ptr %677, i64 %680
  %682 = load float, ptr %681, align 4, !tbaa !16
  br label %683

683:                                              ; preds = %676, %669
  %684 = phi float [ %675, %669 ], [ %682, %676 ]
  %685 = load ptr, ptr %15, align 8, !tbaa !9
  %686 = load i32, ptr %22, align 4, !tbaa !5
  %687 = sub nsw i32 %686, 1
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds float, ptr %685, i64 %688
  %690 = load float, ptr %689, align 4, !tbaa !16
  %691 = fsub float %684, %690
  %692 = fadd float %655, %691
  br label %694

693:                                              ; preds = %612
  br label %694

694:                                              ; preds = %693, %683
  %695 = phi float [ %692, %683 ], [ 0.000000e+00, %693 ]
  br label %696

696:                                              ; preds = %694, %598
  %697 = phi float [ %611, %598 ], [ %695, %694 ]
  %698 = fpext float %697 to double
  br label %699

699:                                              ; preds = %696, %575
  %700 = phi double [ %590, %575 ], [ %698, %696 ]
  br label %701

701:                                              ; preds = %699, %559
  %702 = phi double [ %567, %559 ], [ %700, %699 ]
  %703 = fmul double %551, %702
  %704 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %705 = getelementptr inbounds %struct.TA_LibcPriv, ptr %704, i32 0, i32 8
  %706 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %705, i64 0, i64 2
  %707 = getelementptr inbounds %struct.TA_CandleSetting, ptr %706, i32 0, i32 1
  %708 = load i32, ptr %707, align 4, !tbaa !15
  %709 = icmp eq i32 %708, 2
  %710 = zext i1 %709 to i64
  %711 = select i1 %709, double 2.000000e+00, double 1.000000e+00
  %712 = fdiv double %703, %711
  %713 = fcmp ole double %546, %712
  br i1 %713, label %714, label %947

714:                                              ; preds = %701
  %715 = load ptr, ptr %16, align 8, !tbaa !9
  %716 = load i32, ptr %22, align 4, !tbaa !5
  %717 = sub nsw i32 %716, 1
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds float, ptr %715, i64 %718
  %720 = load float, ptr %719, align 4, !tbaa !16
  %721 = load ptr, ptr %13, align 8, !tbaa !9
  %722 = load i32, ptr %22, align 4, !tbaa !5
  %723 = sub nsw i32 %722, 1
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds float, ptr %721, i64 %724
  %726 = load float, ptr %725, align 4, !tbaa !16
  %727 = fcmp ogt float %720, %726
  br i1 %727, label %728, label %735

728:                                              ; preds = %714
  %729 = load ptr, ptr %16, align 8, !tbaa !9
  %730 = load i32, ptr %22, align 4, !tbaa !5
  %731 = sub nsw i32 %730, 1
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds float, ptr %729, i64 %732
  %734 = load float, ptr %733, align 4, !tbaa !16
  br label %742

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

742:                                              ; preds = %735, %728
  %743 = phi float [ %734, %728 ], [ %741, %735 ]
  %744 = load ptr, ptr %16, align 8, !tbaa !9
  %745 = load i32, ptr %22, align 4, !tbaa !5
  %746 = sub nsw i32 %745, 2
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds float, ptr %744, i64 %747
  %749 = load float, ptr %748, align 4, !tbaa !16
  %750 = load ptr, ptr %13, align 8, !tbaa !9
  %751 = load i32, ptr %22, align 4, !tbaa !5
  %752 = sub nsw i32 %751, 2
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds float, ptr %750, i64 %753
  %755 = load float, ptr %754, align 4, !tbaa !16
  %756 = fcmp ogt float %749, %755
  br i1 %756, label %757, label %764

757:                                              ; preds = %742
  %758 = load ptr, ptr %16, align 8, !tbaa !9
  %759 = load i32, ptr %22, align 4, !tbaa !5
  %760 = sub nsw i32 %759, 2
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds float, ptr %758, i64 %761
  %763 = load float, ptr %762, align 4, !tbaa !16
  br label %771

764:                                              ; preds = %742
  %765 = load ptr, ptr %13, align 8, !tbaa !9
  %766 = load i32, ptr %22, align 4, !tbaa !5
  %767 = sub nsw i32 %766, 2
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds float, ptr %765, i64 %768
  %770 = load float, ptr %769, align 4, !tbaa !16
  br label %771

771:                                              ; preds = %764, %757
  %772 = phi float [ %763, %757 ], [ %770, %764 ]
  %773 = fcmp olt float %743, %772
  br i1 %773, label %774, label %947

774:                                              ; preds = %771
  %775 = load ptr, ptr %16, align 8, !tbaa !9
  %776 = load i32, ptr %22, align 4, !tbaa !5
  %777 = sub nsw i32 %776, 1
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds float, ptr %775, i64 %778
  %780 = load float, ptr %779, align 4, !tbaa !16
  %781 = load ptr, ptr %13, align 8, !tbaa !9
  %782 = load i32, ptr %22, align 4, !tbaa !5
  %783 = sub nsw i32 %782, 1
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds float, ptr %781, i64 %784
  %786 = load float, ptr %785, align 4, !tbaa !16
  %787 = fcmp olt float %780, %786
  br i1 %787, label %788, label %795

788:                                              ; preds = %774
  %789 = load ptr, ptr %16, align 8, !tbaa !9
  %790 = load i32, ptr %22, align 4, !tbaa !5
  %791 = sub nsw i32 %790, 1
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds float, ptr %789, i64 %792
  %794 = load float, ptr %793, align 4, !tbaa !16
  br label %802

795:                                              ; preds = %774
  %796 = load ptr, ptr %13, align 8, !tbaa !9
  %797 = load i32, ptr %22, align 4, !tbaa !5
  %798 = sub nsw i32 %797, 1
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds float, ptr %796, i64 %799
  %801 = load float, ptr %800, align 4, !tbaa !16
  br label %802

802:                                              ; preds = %795, %788
  %803 = phi float [ %794, %788 ], [ %801, %795 ]
  %804 = load ptr, ptr %16, align 8, !tbaa !9
  %805 = load i32, ptr %22, align 4, !tbaa !5
  %806 = sub nsw i32 %805, 2
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds float, ptr %804, i64 %807
  %809 = load float, ptr %808, align 4, !tbaa !16
  %810 = load ptr, ptr %13, align 8, !tbaa !9
  %811 = load i32, ptr %22, align 4, !tbaa !5
  %812 = sub nsw i32 %811, 2
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds float, ptr %810, i64 %813
  %815 = load float, ptr %814, align 4, !tbaa !16
  %816 = fcmp olt float %809, %815
  br i1 %816, label %817, label %824

817:                                              ; preds = %802
  %818 = load ptr, ptr %16, align 8, !tbaa !9
  %819 = load i32, ptr %22, align 4, !tbaa !5
  %820 = sub nsw i32 %819, 2
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds float, ptr %818, i64 %821
  %823 = load float, ptr %822, align 4, !tbaa !16
  br label %831

824:                                              ; preds = %802
  %825 = load ptr, ptr %13, align 8, !tbaa !9
  %826 = load i32, ptr %22, align 4, !tbaa !5
  %827 = sub nsw i32 %826, 2
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds float, ptr %825, i64 %828
  %830 = load float, ptr %829, align 4, !tbaa !16
  br label %831

831:                                              ; preds = %824, %817
  %832 = phi float [ %823, %817 ], [ %830, %824 ]
  %833 = fcmp ogt float %803, %832
  br i1 %833, label %834, label %947

834:                                              ; preds = %831
  %835 = load ptr, ptr %16, align 8, !tbaa !9
  %836 = load i32, ptr %22, align 4, !tbaa !5
  %837 = sub nsw i32 %836, 2
  %838 = sext i32 %837 to i64
  %839 = getelementptr inbounds float, ptr %835, i64 %838
  %840 = load float, ptr %839, align 4, !tbaa !16
  %841 = load ptr, ptr %13, align 8, !tbaa !9
  %842 = load i32, ptr %22, align 4, !tbaa !5
  %843 = sub nsw i32 %842, 2
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds float, ptr %841, i64 %844
  %846 = load float, ptr %845, align 4, !tbaa !16
  %847 = fcmp oge float %840, %846
  %848 = zext i1 %847 to i64
  %849 = select i1 %847, i32 1, i32 -1
  %850 = icmp eq i32 %849, 1
  br i1 %850, label %851, label %879

851:                                              ; preds = %834
  %852 = load ptr, ptr %16, align 8, !tbaa !9
  %853 = load i32, ptr %22, align 4, !tbaa !5
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds float, ptr %852, i64 %854
  %856 = load float, ptr %855, align 4, !tbaa !16
  %857 = load ptr, ptr %13, align 8, !tbaa !9
  %858 = load i32, ptr %22, align 4, !tbaa !5
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds float, ptr %857, i64 %859
  %861 = load float, ptr %860, align 4, !tbaa !16
  %862 = fcmp oge float %856, %861
  %863 = zext i1 %862 to i64
  %864 = select i1 %862, i32 1, i32 -1
  %865 = icmp eq i32 %864, -1
  br i1 %865, label %866, label %879

866:                                              ; preds = %851
  %867 = load ptr, ptr %16, align 8, !tbaa !9
  %868 = load i32, ptr %22, align 4, !tbaa !5
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds float, ptr %867, i64 %869
  %871 = load float, ptr %870, align 4, !tbaa !16
  %872 = load ptr, ptr %13, align 8, !tbaa !9
  %873 = load i32, ptr %22, align 4, !tbaa !5
  %874 = sub nsw i32 %873, 2
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds float, ptr %872, i64 %875
  %877 = load float, ptr %876, align 4, !tbaa !16
  %878 = fcmp olt float %871, %877
  br i1 %878, label %924, label %879

879:                                              ; preds = %866, %851, %834
  %880 = load ptr, ptr %16, align 8, !tbaa !9
  %881 = load i32, ptr %22, align 4, !tbaa !5
  %882 = sub nsw i32 %881, 2
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds float, ptr %880, i64 %883
  %885 = load float, ptr %884, align 4, !tbaa !16
  %886 = load ptr, ptr %13, align 8, !tbaa !9
  %887 = load i32, ptr %22, align 4, !tbaa !5
  %888 = sub nsw i32 %887, 2
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds float, ptr %886, i64 %889
  %891 = load float, ptr %890, align 4, !tbaa !16
  %892 = fcmp oge float %885, %891
  %893 = zext i1 %892 to i64
  %894 = select i1 %892, i32 1, i32 -1
  %895 = icmp eq i32 %894, -1
  br i1 %895, label %896, label %947

896:                                              ; preds = %879
  %897 = load ptr, ptr %16, align 8, !tbaa !9
  %898 = load i32, ptr %22, align 4, !tbaa !5
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds float, ptr %897, i64 %899
  %901 = load float, ptr %900, align 4, !tbaa !16
  %902 = load ptr, ptr %13, align 8, !tbaa !9
  %903 = load i32, ptr %22, align 4, !tbaa !5
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds float, ptr %902, i64 %904
  %906 = load float, ptr %905, align 4, !tbaa !16
  %907 = fcmp oge float %901, %906
  %908 = zext i1 %907 to i64
  %909 = select i1 %907, i32 1, i32 -1
  %910 = icmp eq i32 %909, 1
  br i1 %910, label %911, label %947

911:                                              ; preds = %896
  %912 = load ptr, ptr %16, align 8, !tbaa !9
  %913 = load i32, ptr %22, align 4, !tbaa !5
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds float, ptr %912, i64 %914
  %916 = load float, ptr %915, align 4, !tbaa !16
  %917 = load ptr, ptr %13, align 8, !tbaa !9
  %918 = load i32, ptr %22, align 4, !tbaa !5
  %919 = sub nsw i32 %918, 2
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds float, ptr %917, i64 %920
  %922 = load float, ptr %921, align 4, !tbaa !16
  %923 = fcmp ogt float %916, %922
  br i1 %923, label %924, label %947

924:                                              ; preds = %911, %866
  %925 = load ptr, ptr %16, align 8, !tbaa !9
  %926 = load i32, ptr %22, align 4, !tbaa !5
  %927 = sub nsw i32 %926, 2
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds float, ptr %925, i64 %928
  %930 = load float, ptr %929, align 4, !tbaa !16
  %931 = load ptr, ptr %13, align 8, !tbaa !9
  %932 = load i32, ptr %22, align 4, !tbaa !5
  %933 = sub nsw i32 %932, 2
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds float, ptr %931, i64 %934
  %936 = load float, ptr %935, align 4, !tbaa !16
  %937 = fcmp oge float %930, %936
  %938 = zext i1 %937 to i64
  %939 = select i1 %937, i32 1, i32 -1
  %940 = sub nsw i32 0, %939
  %941 = mul nsw i32 %940, 100
  %942 = load ptr, ptr %19, align 8, !tbaa !9
  %943 = load i32, ptr %23, align 4, !tbaa !5
  %944 = add nsw i32 %943, 1
  store i32 %944, ptr %23, align 4, !tbaa !5
  %945 = sext i32 %943 to i64
  %946 = getelementptr inbounds i32, ptr %942, i64 %945
  store i32 %941, ptr %946, align 4, !tbaa !5
  br label %953

947:                                              ; preds = %911, %896, %879, %831, %771, %701, %518
  %948 = load ptr, ptr %19, align 8, !tbaa !9
  %949 = load i32, ptr %23, align 4, !tbaa !5
  %950 = add nsw i32 %949, 1
  store i32 %950, ptr %23, align 4, !tbaa !5
  %951 = sext i32 %949 to i64
  %952 = getelementptr inbounds i32, ptr %948, i64 %951
  store i32 0, ptr %952, align 4, !tbaa !5
  br label %953

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

960:                                              ; preds = %953
  %961 = load ptr, ptr %16, align 8, !tbaa !9
  %962 = load i32, ptr %22, align 4, !tbaa !5
  %963 = sub nsw i32 %962, 2
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds float, ptr %961, i64 %964
  %966 = load float, ptr %965, align 4, !tbaa !16
  %967 = load ptr, ptr %13, align 8, !tbaa !9
  %968 = load i32, ptr %22, align 4, !tbaa !5
  %969 = sub nsw i32 %968, 2
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds float, ptr %967, i64 %970
  %972 = load float, ptr %971, align 4, !tbaa !16
  %973 = fsub float %966, %972
  %974 = fpext float %973 to double
  %975 = call double @llvm.fabs.f64(double %974)
  br label %1084

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

983:                                              ; preds = %976
  %984 = load ptr, ptr %14, align 8, !tbaa !9
  %985 = load i32, ptr %22, align 4, !tbaa !5
  %986 = sub nsw i32 %985, 2
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds float, ptr %984, i64 %987
  %989 = load float, ptr %988, align 4, !tbaa !16
  %990 = load ptr, ptr %15, align 8, !tbaa !9
  %991 = load i32, ptr %22, align 4, !tbaa !5
  %992 = sub nsw i32 %991, 2
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds float, ptr %990, i64 %993
  %995 = load float, ptr %994, align 4, !tbaa !16
  %996 = fsub float %989, %995
  br label %1081

997:                                              ; preds = %976
  %998 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %999 = getelementptr inbounds %struct.TA_LibcPriv, ptr %998, i32 0, i32 8
  %1000 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %999, i64 0, i64 0
  %1001 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1000, i32 0, i32 1
  %1002 = load i32, ptr %1001, align 4, !tbaa !15
  %1003 = icmp eq i32 %1002, 2
  br i1 %1003, label %1004, label %1078

1004:                                             ; preds = %997
  %1005 = load ptr, ptr %14, align 8, !tbaa !9
  %1006 = load i32, ptr %22, align 4, !tbaa !5
  %1007 = sub nsw i32 %1006, 2
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds float, ptr %1005, i64 %1008
  %1010 = load float, ptr %1009, align 4, !tbaa !16
  %1011 = load ptr, ptr %16, align 8, !tbaa !9
  %1012 = load i32, ptr %22, align 4, !tbaa !5
  %1013 = sub nsw i32 %1012, 2
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds float, ptr %1011, i64 %1014
  %1016 = load float, ptr %1015, align 4, !tbaa !16
  %1017 = load ptr, ptr %13, align 8, !tbaa !9
  %1018 = load i32, ptr %22, align 4, !tbaa !5
  %1019 = sub nsw i32 %1018, 2
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds float, ptr %1017, i64 %1020
  %1022 = load float, ptr %1021, align 4, !tbaa !16
  %1023 = fcmp oge float %1016, %1022
  br i1 %1023, label %1024, label %1031

1024:                                             ; preds = %1004
  %1025 = load ptr, ptr %16, align 8, !tbaa !9
  %1026 = load i32, ptr %22, align 4, !tbaa !5
  %1027 = sub nsw i32 %1026, 2
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds float, ptr %1025, i64 %1028
  %1030 = load float, ptr %1029, align 4, !tbaa !16
  br label %1038

1031:                                             ; preds = %1004
  %1032 = load ptr, ptr %13, align 8, !tbaa !9
  %1033 = load i32, ptr %22, align 4, !tbaa !5
  %1034 = sub nsw i32 %1033, 2
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds float, ptr %1032, i64 %1035
  %1037 = load float, ptr %1036, align 4, !tbaa !16
  br label %1038

1038:                                             ; preds = %1031, %1024
  %1039 = phi float [ %1030, %1024 ], [ %1037, %1031 ]
  %1040 = fsub float %1010, %1039
  %1041 = load ptr, ptr %16, align 8, !tbaa !9
  %1042 = load i32, ptr %22, align 4, !tbaa !5
  %1043 = sub nsw i32 %1042, 2
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds float, ptr %1041, i64 %1044
  %1046 = load float, ptr %1045, align 4, !tbaa !16
  %1047 = load ptr, ptr %13, align 8, !tbaa !9
  %1048 = load i32, ptr %22, align 4, !tbaa !5
  %1049 = sub nsw i32 %1048, 2
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds float, ptr %1047, i64 %1050
  %1052 = load float, ptr %1051, align 4, !tbaa !16
  %1053 = fcmp oge float %1046, %1052
  br i1 %1053, label %1054, label %1061

1054:                                             ; preds = %1038
  %1055 = load ptr, ptr %13, align 8, !tbaa !9
  %1056 = load i32, ptr %22, align 4, !tbaa !5
  %1057 = sub nsw i32 %1056, 2
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds float, ptr %1055, i64 %1058
  %1060 = load float, ptr %1059, align 4, !tbaa !16
  br label %1068

1061:                                             ; preds = %1038
  %1062 = load ptr, ptr %16, align 8, !tbaa !9
  %1063 = load i32, ptr %22, align 4, !tbaa !5
  %1064 = sub nsw i32 %1063, 2
  %1065 = sext i32 %1064 to i64
  %1066 = getelementptr inbounds float, ptr %1062, i64 %1065
  %1067 = load float, ptr %1066, align 4, !tbaa !16
  br label %1068

1068:                                             ; preds = %1061, %1054
  %1069 = phi float [ %1060, %1054 ], [ %1067, %1061 ]
  %1070 = load ptr, ptr %15, align 8, !tbaa !9
  %1071 = load i32, ptr %22, align 4, !tbaa !5
  %1072 = sub nsw i32 %1071, 2
  %1073 = sext i32 %1072 to i64
  %1074 = getelementptr inbounds float, ptr %1070, i64 %1073
  %1075 = load float, ptr %1074, align 4, !tbaa !16
  %1076 = fsub float %1069, %1075
  %1077 = fadd float %1040, %1076
  br label %1079

1078:                                             ; preds = %997
  br label %1079

1079:                                             ; preds = %1078, %1068
  %1080 = phi float [ %1077, %1068 ], [ 0.000000e+00, %1078 ]
  br label %1081

1081:                                             ; preds = %1079, %983
  %1082 = phi float [ %996, %983 ], [ %1080, %1079 ]
  %1083 = fpext float %1082 to double
  br label %1084

1084:                                             ; preds = %1081, %960
  %1085 = phi double [ %975, %960 ], [ %1083, %1081 ]
  %1086 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1087 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1086, i32 0, i32 8
  %1088 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1087, i64 0, i64 0
  %1089 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1088, i32 0, i32 1
  %1090 = load i32, ptr %1089, align 4, !tbaa !15
  %1091 = icmp eq i32 %1090, 0
  br i1 %1091, label %1092, label %1106

1092:                                             ; preds = %1084
  %1093 = load ptr, ptr %16, align 8, !tbaa !9
  %1094 = load i32, ptr %25, align 4, !tbaa !5
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds float, ptr %1093, i64 %1095
  %1097 = load float, ptr %1096, align 4, !tbaa !16
  %1098 = load ptr, ptr %13, align 8, !tbaa !9
  %1099 = load i32, ptr %25, align 4, !tbaa !5
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds float, ptr %1098, i64 %1100
  %1102 = load float, ptr %1101, align 4, !tbaa !16
  %1103 = fsub float %1097, %1102
  %1104 = fpext float %1103 to double
  %1105 = call double @llvm.fabs.f64(double %1104)
  br label %1202

1106:                                             ; preds = %1084
  %1107 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1108 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1107, i32 0, i32 8
  %1109 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1108, i64 0, i64 0
  %1110 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1109, i32 0, i32 1
  %1111 = load i32, ptr %1110, align 4, !tbaa !15
  %1112 = icmp eq i32 %1111, 1
  br i1 %1112, label %1113, label %1125

1113:                                             ; preds = %1106
  %1114 = load ptr, ptr %14, align 8, !tbaa !9
  %1115 = load i32, ptr %25, align 4, !tbaa !5
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds float, ptr %1114, i64 %1116
  %1118 = load float, ptr %1117, align 4, !tbaa !16
  %1119 = load ptr, ptr %15, align 8, !tbaa !9
  %1120 = load i32, ptr %25, align 4, !tbaa !5
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr inbounds float, ptr %1119, i64 %1121
  %1123 = load float, ptr %1122, align 4, !tbaa !16
  %1124 = fsub float %1118, %1123
  br label %1199

1125:                                             ; preds = %1106
  %1126 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1127 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1126, i32 0, i32 8
  %1128 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1127, i64 0, i64 0
  %1129 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1128, i32 0, i32 1
  %1130 = load i32, ptr %1129, align 4, !tbaa !15
  %1131 = icmp eq i32 %1130, 2
  br i1 %1131, label %1132, label %1196

1132:                                             ; preds = %1125
  %1133 = load ptr, ptr %14, align 8, !tbaa !9
  %1134 = load i32, ptr %25, align 4, !tbaa !5
  %1135 = sext i32 %1134 to i64
  %1136 = getelementptr inbounds float, ptr %1133, i64 %1135
  %1137 = load float, ptr %1136, align 4, !tbaa !16
  %1138 = load ptr, ptr %16, align 8, !tbaa !9
  %1139 = load i32, ptr %25, align 4, !tbaa !5
  %1140 = sext i32 %1139 to i64
  %1141 = getelementptr inbounds float, ptr %1138, i64 %1140
  %1142 = load float, ptr %1141, align 4, !tbaa !16
  %1143 = load ptr, ptr %13, align 8, !tbaa !9
  %1144 = load i32, ptr %25, align 4, !tbaa !5
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds float, ptr %1143, i64 %1145
  %1147 = load float, ptr %1146, align 4, !tbaa !16
  %1148 = fcmp oge float %1142, %1147
  br i1 %1148, label %1149, label %1155

1149:                                             ; preds = %1132
  %1150 = load ptr, ptr %16, align 8, !tbaa !9
  %1151 = load i32, ptr %25, align 4, !tbaa !5
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds float, ptr %1150, i64 %1152
  %1154 = load float, ptr %1153, align 4, !tbaa !16
  br label %1161

1155:                                             ; preds = %1132
  %1156 = load ptr, ptr %13, align 8, !tbaa !9
  %1157 = load i32, ptr %25, align 4, !tbaa !5
  %1158 = sext i32 %1157 to i64
  %1159 = getelementptr inbounds float, ptr %1156, i64 %1158
  %1160 = load float, ptr %1159, align 4, !tbaa !16
  br label %1161

1161:                                             ; preds = %1155, %1149
  %1162 = phi float [ %1154, %1149 ], [ %1160, %1155 ]
  %1163 = fsub float %1137, %1162
  %1164 = load ptr, ptr %16, align 8, !tbaa !9
  %1165 = load i32, ptr %25, align 4, !tbaa !5
  %1166 = sext i32 %1165 to i64
  %1167 = getelementptr inbounds float, ptr %1164, i64 %1166
  %1168 = load float, ptr %1167, align 4, !tbaa !16
  %1169 = load ptr, ptr %13, align 8, !tbaa !9
  %1170 = load i32, ptr %25, align 4, !tbaa !5
  %1171 = sext i32 %1170 to i64
  %1172 = getelementptr inbounds float, ptr %1169, i64 %1171
  %1173 = load float, ptr %1172, align 4, !tbaa !16
  %1174 = fcmp oge float %1168, %1173
  br i1 %1174, label %1175, label %1181

1175:                                             ; preds = %1161
  %1176 = load ptr, ptr %13, align 8, !tbaa !9
  %1177 = load i32, ptr %25, align 4, !tbaa !5
  %1178 = sext i32 %1177 to i64
  %1179 = getelementptr inbounds float, ptr %1176, i64 %1178
  %1180 = load float, ptr %1179, align 4, !tbaa !16
  br label %1187

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

1187:                                             ; preds = %1181, %1175
  %1188 = phi float [ %1180, %1175 ], [ %1186, %1181 ]
  %1189 = load ptr, ptr %15, align 8, !tbaa !9
  %1190 = load i32, ptr %25, align 4, !tbaa !5
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds float, ptr %1189, i64 %1191
  %1193 = load float, ptr %1192, align 4, !tbaa !16
  %1194 = fsub float %1188, %1193
  %1195 = fadd float %1163, %1194
  br label %1197

1196:                                             ; preds = %1125
  br label %1197

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

1199:                                             ; preds = %1197, %1113
  %1200 = phi float [ %1124, %1113 ], [ %1198, %1197 ]
  %1201 = fpext float %1200 to double
  br label %1202

1202:                                             ; preds = %1199, %1092
  %1203 = phi double [ %1105, %1092 ], [ %1201, %1199 ]
  %1204 = fsub double %1085, %1203
  %1205 = load double, ptr %21, align 8, !tbaa !11
  %1206 = fadd double %1205, %1204
  store double %1206, ptr %21, align 8, !tbaa !11
  %1207 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1208 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1207, i32 0, i32 8
  %1209 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1208, i64 0, i64 2
  %1210 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1209, i32 0, i32 1
  %1211 = load i32, ptr %1210, align 4, !tbaa !15
  %1212 = icmp eq i32 %1211, 0
  br i1 %1212, label %1213, label %1229

1213:                                             ; preds = %1202
  %1214 = load ptr, ptr %16, align 8, !tbaa !9
  %1215 = load i32, ptr %22, align 4, !tbaa !5
  %1216 = sub nsw i32 %1215, 1
  %1217 = sext i32 %1216 to i64
  %1218 = getelementptr inbounds float, ptr %1214, i64 %1217
  %1219 = load float, ptr %1218, align 4, !tbaa !16
  %1220 = load ptr, ptr %13, align 8, !tbaa !9
  %1221 = load i32, ptr %22, align 4, !tbaa !5
  %1222 = sub nsw i32 %1221, 1
  %1223 = sext i32 %1222 to i64
  %1224 = getelementptr inbounds float, ptr %1220, i64 %1223
  %1225 = load float, ptr %1224, align 4, !tbaa !16
  %1226 = fsub float %1219, %1225
  %1227 = fpext float %1226 to double
  %1228 = call double @llvm.fabs.f64(double %1227)
  br label %1337

1229:                                             ; preds = %1202
  %1230 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1231 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1230, i32 0, i32 8
  %1232 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1231, i64 0, i64 2
  %1233 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1232, i32 0, i32 1
  %1234 = load i32, ptr %1233, align 4, !tbaa !15
  %1235 = icmp eq i32 %1234, 1
  br i1 %1235, label %1236, label %1250

1236:                                             ; preds = %1229
  %1237 = load ptr, ptr %14, align 8, !tbaa !9
  %1238 = load i32, ptr %22, align 4, !tbaa !5
  %1239 = sub nsw i32 %1238, 1
  %1240 = sext i32 %1239 to i64
  %1241 = getelementptr inbounds float, ptr %1237, i64 %1240
  %1242 = load float, ptr %1241, align 4, !tbaa !16
  %1243 = load ptr, ptr %15, align 8, !tbaa !9
  %1244 = load i32, ptr %22, align 4, !tbaa !5
  %1245 = sub nsw i32 %1244, 1
  %1246 = sext i32 %1245 to i64
  %1247 = getelementptr inbounds float, ptr %1243, i64 %1246
  %1248 = load float, ptr %1247, align 4, !tbaa !16
  %1249 = fsub float %1242, %1248
  br label %1334

1250:                                             ; preds = %1229
  %1251 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1252 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1251, i32 0, i32 8
  %1253 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1252, i64 0, i64 2
  %1254 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1253, i32 0, i32 1
  %1255 = load i32, ptr %1254, align 4, !tbaa !15
  %1256 = icmp eq i32 %1255, 2
  br i1 %1256, label %1257, label %1331

1257:                                             ; preds = %1250
  %1258 = load ptr, ptr %14, align 8, !tbaa !9
  %1259 = load i32, ptr %22, align 4, !tbaa !5
  %1260 = sub nsw i32 %1259, 1
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds float, ptr %1258, i64 %1261
  %1263 = load float, ptr %1262, align 4, !tbaa !16
  %1264 = load ptr, ptr %16, align 8, !tbaa !9
  %1265 = load i32, ptr %22, align 4, !tbaa !5
  %1266 = sub nsw i32 %1265, 1
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds float, ptr %1264, i64 %1267
  %1269 = load float, ptr %1268, align 4, !tbaa !16
  %1270 = load ptr, ptr %13, align 8, !tbaa !9
  %1271 = load i32, ptr %22, align 4, !tbaa !5
  %1272 = sub nsw i32 %1271, 1
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds float, ptr %1270, i64 %1273
  %1275 = load float, ptr %1274, align 4, !tbaa !16
  %1276 = fcmp oge float %1269, %1275
  br i1 %1276, label %1277, label %1284

1277:                                             ; preds = %1257
  %1278 = load ptr, ptr %16, align 8, !tbaa !9
  %1279 = load i32, ptr %22, align 4, !tbaa !5
  %1280 = sub nsw i32 %1279, 1
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds float, ptr %1278, i64 %1281
  %1283 = load float, ptr %1282, align 4, !tbaa !16
  br label %1291

1284:                                             ; preds = %1257
  %1285 = load ptr, ptr %13, align 8, !tbaa !9
  %1286 = load i32, ptr %22, align 4, !tbaa !5
  %1287 = sub nsw i32 %1286, 1
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds float, ptr %1285, i64 %1288
  %1290 = load float, ptr %1289, align 4, !tbaa !16
  br label %1291

1291:                                             ; preds = %1284, %1277
  %1292 = phi float [ %1283, %1277 ], [ %1290, %1284 ]
  %1293 = fsub float %1263, %1292
  %1294 = load ptr, ptr %16, align 8, !tbaa !9
  %1295 = load i32, ptr %22, align 4, !tbaa !5
  %1296 = sub nsw i32 %1295, 1
  %1297 = sext i32 %1296 to i64
  %1298 = getelementptr inbounds float, ptr %1294, i64 %1297
  %1299 = load float, ptr %1298, align 4, !tbaa !16
  %1300 = load ptr, ptr %13, align 8, !tbaa !9
  %1301 = load i32, ptr %22, align 4, !tbaa !5
  %1302 = sub nsw i32 %1301, 1
  %1303 = sext i32 %1302 to i64
  %1304 = getelementptr inbounds float, ptr %1300, i64 %1303
  %1305 = load float, ptr %1304, align 4, !tbaa !16
  %1306 = fcmp oge float %1299, %1305
  br i1 %1306, label %1307, label %1314

1307:                                             ; preds = %1291
  %1308 = load ptr, ptr %13, align 8, !tbaa !9
  %1309 = load i32, ptr %22, align 4, !tbaa !5
  %1310 = sub nsw i32 %1309, 1
  %1311 = sext i32 %1310 to i64
  %1312 = getelementptr inbounds float, ptr %1308, i64 %1311
  %1313 = load float, ptr %1312, align 4, !tbaa !16
  br label %1321

1314:                                             ; preds = %1291
  %1315 = load ptr, ptr %16, align 8, !tbaa !9
  %1316 = load i32, ptr %22, align 4, !tbaa !5
  %1317 = sub nsw i32 %1316, 1
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds float, ptr %1315, i64 %1318
  %1320 = load float, ptr %1319, align 4, !tbaa !16
  br label %1321

1321:                                             ; preds = %1314, %1307
  %1322 = phi float [ %1313, %1307 ], [ %1320, %1314 ]
  %1323 = load ptr, ptr %15, align 8, !tbaa !9
  %1324 = load i32, ptr %22, align 4, !tbaa !5
  %1325 = sub nsw i32 %1324, 1
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds float, ptr %1323, i64 %1326
  %1328 = load float, ptr %1327, align 4, !tbaa !16
  %1329 = fsub float %1322, %1328
  %1330 = fadd float %1293, %1329
  br label %1332

1331:                                             ; preds = %1250
  br label %1332

1332:                                             ; preds = %1331, %1321
  %1333 = phi float [ %1330, %1321 ], [ 0.000000e+00, %1331 ]
  br label %1334

1334:                                             ; preds = %1332, %1236
  %1335 = phi float [ %1249, %1236 ], [ %1333, %1332 ]
  %1336 = fpext float %1335 to double
  br label %1337

1337:                                             ; preds = %1334, %1213
  %1338 = phi double [ %1228, %1213 ], [ %1336, %1334 ]
  %1339 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1340 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1339, i32 0, i32 8
  %1341 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1340, i64 0, i64 2
  %1342 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1341, i32 0, i32 1
  %1343 = load i32, ptr %1342, align 4, !tbaa !15
  %1344 = icmp eq i32 %1343, 0
  br i1 %1344, label %1345, label %1359

1345:                                             ; preds = %1337
  %1346 = load ptr, ptr %16, align 8, !tbaa !9
  %1347 = load i32, ptr %24, align 4, !tbaa !5
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds float, ptr %1346, i64 %1348
  %1350 = load float, ptr %1349, align 4, !tbaa !16
  %1351 = load ptr, ptr %13, align 8, !tbaa !9
  %1352 = load i32, ptr %24, align 4, !tbaa !5
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds float, ptr %1351, i64 %1353
  %1355 = load float, ptr %1354, align 4, !tbaa !16
  %1356 = fsub float %1350, %1355
  %1357 = fpext float %1356 to double
  %1358 = call double @llvm.fabs.f64(double %1357)
  br label %1455

1359:                                             ; preds = %1337
  %1360 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1361 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1360, i32 0, i32 8
  %1362 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1361, i64 0, i64 2
  %1363 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1362, i32 0, i32 1
  %1364 = load i32, ptr %1363, align 4, !tbaa !15
  %1365 = icmp eq i32 %1364, 1
  br i1 %1365, label %1366, label %1378

1366:                                             ; preds = %1359
  %1367 = load ptr, ptr %14, align 8, !tbaa !9
  %1368 = load i32, ptr %24, align 4, !tbaa !5
  %1369 = sext i32 %1368 to i64
  %1370 = getelementptr inbounds float, ptr %1367, i64 %1369
  %1371 = load float, ptr %1370, align 4, !tbaa !16
  %1372 = load ptr, ptr %15, align 8, !tbaa !9
  %1373 = load i32, ptr %24, align 4, !tbaa !5
  %1374 = sext i32 %1373 to i64
  %1375 = getelementptr inbounds float, ptr %1372, i64 %1374
  %1376 = load float, ptr %1375, align 4, !tbaa !16
  %1377 = fsub float %1371, %1376
  br label %1452

1378:                                             ; preds = %1359
  %1379 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1380 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1379, i32 0, i32 8
  %1381 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1380, i64 0, i64 2
  %1382 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1381, i32 0, i32 1
  %1383 = load i32, ptr %1382, align 4, !tbaa !15
  %1384 = icmp eq i32 %1383, 2
  br i1 %1384, label %1385, label %1449

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

1402:                                             ; preds = %1385
  %1403 = load ptr, ptr %16, align 8, !tbaa !9
  %1404 = load i32, ptr %24, align 4, !tbaa !5
  %1405 = sext i32 %1404 to i64
  %1406 = getelementptr inbounds float, ptr %1403, i64 %1405
  %1407 = load float, ptr %1406, align 4, !tbaa !16
  br label %1414

1408:                                             ; preds = %1385
  %1409 = load ptr, ptr %13, align 8, !tbaa !9
  %1410 = load i32, ptr %24, align 4, !tbaa !5
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds float, ptr %1409, i64 %1411
  %1413 = load float, ptr %1412, align 4, !tbaa !16
  br label %1414

1414:                                             ; preds = %1408, %1402
  %1415 = phi float [ %1407, %1402 ], [ %1413, %1408 ]
  %1416 = fsub float %1390, %1415
  %1417 = load ptr, ptr %16, align 8, !tbaa !9
  %1418 = load i32, ptr %24, align 4, !tbaa !5
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds float, ptr %1417, i64 %1419
  %1421 = load float, ptr %1420, align 4, !tbaa !16
  %1422 = load ptr, ptr %13, align 8, !tbaa !9
  %1423 = load i32, ptr %24, align 4, !tbaa !5
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds float, ptr %1422, i64 %1424
  %1426 = load float, ptr %1425, align 4, !tbaa !16
  %1427 = fcmp oge float %1421, %1426
  br i1 %1427, label %1428, label %1434

1428:                                             ; preds = %1414
  %1429 = load ptr, ptr %13, align 8, !tbaa !9
  %1430 = load i32, ptr %24, align 4, !tbaa !5
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds float, ptr %1429, i64 %1431
  %1433 = load float, ptr %1432, align 4, !tbaa !16
  br label %1440

1434:                                             ; preds = %1414
  %1435 = load ptr, ptr %16, align 8, !tbaa !9
  %1436 = load i32, ptr %24, align 4, !tbaa !5
  %1437 = sext i32 %1436 to i64
  %1438 = getelementptr inbounds float, ptr %1435, i64 %1437
  %1439 = load float, ptr %1438, align 4, !tbaa !16
  br label %1440

1440:                                             ; preds = %1434, %1428
  %1441 = phi float [ %1433, %1428 ], [ %1439, %1434 ]
  %1442 = load ptr, ptr %15, align 8, !tbaa !9
  %1443 = load i32, ptr %24, align 4, !tbaa !5
  %1444 = sext i32 %1443 to i64
  %1445 = getelementptr inbounds float, ptr %1442, i64 %1444
  %1446 = load float, ptr %1445, align 4, !tbaa !16
  %1447 = fsub float %1441, %1446
  %1448 = fadd float %1416, %1447
  br label %1450

1449:                                             ; preds = %1378
  br label %1450

1450:                                             ; preds = %1449, %1440
  %1451 = phi float [ %1448, %1440 ], [ 0.000000e+00, %1449 ]
  br label %1452

1452:                                             ; preds = %1450, %1366
  %1453 = phi float [ %1377, %1366 ], [ %1451, %1450 ]
  %1454 = fpext float %1453 to double
  br label %1455

1455:                                             ; preds = %1452, %1345
  %1456 = phi double [ %1358, %1345 ], [ %1454, %1452 ]
  %1457 = fsub double %1338, %1456
  %1458 = load double, ptr %20, align 8, !tbaa !11
  %1459 = fadd double %1458, %1457
  store double %1459, ptr %20, align 8, !tbaa !11
  %1460 = load i32, ptr %22, align 4, !tbaa !5
  %1461 = add nsw i32 %1460, 1
  store i32 %1461, ptr %22, align 4, !tbaa !5
  %1462 = load i32, ptr %25, align 4, !tbaa !5
  %1463 = add nsw i32 %1462, 1
  store i32 %1463, ptr %25, align 4, !tbaa !5
  %1464 = load i32, ptr %24, align 4, !tbaa !5
  %1465 = add nsw i32 %1464, 1
  store i32 %1465, ptr %24, align 4, !tbaa !5
  br label %1466

1466:                                             ; preds = %1455
  %1467 = load i32, ptr %22, align 4, !tbaa !5
  %1468 = load i32, ptr %12, align 4, !tbaa !5
  %1469 = icmp sle i32 %1467, %1468
  br i1 %1469, label %348, label %1470, !llvm.loop !22

1470:                                             ; preds = %1466
  %1471 = load i32, ptr %23, align 4, !tbaa !5
  %1472 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %1471, ptr %1472, align 4, !tbaa !5
  %1473 = load i32, ptr %11, align 4, !tbaa !5
  %1474 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %1473, ptr %1474, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %27, align 4
  br label %1475

1475:                                             ; preds = %1470, %67, %55, %51, %38, %30
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #3
  %1476 = load i32, ptr %10, align 4
  ret i32 %1476
}

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

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

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


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

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

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

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

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

.lr.ph:                                           ; preds = %25
  %36 = getelementptr inbounds i8, ptr %27, i64 212
  %37 = load i32, ptr %36, align 4, !tbaa !14
  switch i32 %37, label %.preheader454 [
    i32 0, label %.lr.ph.split.us.preheader
    i32 1, label %.lr.ph.split.us457.preheader
    i32 2, label %.lr.ph.split.us463.preheader
  ]

.lr.ph.split.us463.preheader:                     ; preds = %.lr.ph
  %38 = sext i32 %30 to i64
  %39 = sext i32 %26 to i64
  br label %.lr.ph.split.us463

.lr.ph.split.us457.preheader:                     ; preds = %.lr.ph
  %40 = sext i32 %30 to i64
  %41 = sext i32 %26 to i64
  br label %.lr.ph.split.us457

.lr.ph.split.us.preheader:                        ; preds = %.lr.ph
  %42 = sext i32 %30 to i64
  %43 = sext i32 %26 to i64
  br label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.preheader, %.lr.ph.split.us
  %indvars.iv483 = phi i64 [ %42, %.lr.ph.split.us.preheader ], [ %indvars.iv.next484, %.lr.ph.split.us ]
  %.0348455.us = phi double [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %51, %.lr.ph.split.us ]
  %44 = getelementptr inbounds float, ptr %5, i64 %indvars.iv483
  %45 = load float, ptr %44, align 4, !tbaa !15
  %46 = getelementptr inbounds float, ptr %2, i64 %indvars.iv483
  %47 = load float, ptr %46, align 4, !tbaa !15
  %48 = fsub float %45, %47
  %49 = tail call float @llvm.fabs.f32(float %48)
  %50 = fpext float %49 to double
  %51 = fadd double %.0348455.us, %50
  %indvars.iv.next484 = add nsw i64 %indvars.iv483, 1
  %52 = icmp slt i64 %indvars.iv.next484, %43
  br i1 %52, label %.lr.ph.split.us, label %.preheader454, !llvm.loop !17

.lr.ph.split.us457:                               ; preds = %.lr.ph.split.us457.preheader, %.lr.ph.split.us457
  %indvars.iv480 = phi i64 [ %40, %.lr.ph.split.us457.preheader ], [ %indvars.iv.next481, %.lr.ph.split.us457 ]
  %.0348455.us459 = phi double [ 0.000000e+00, %.lr.ph.split.us457.preheader ], [ %59, %.lr.ph.split.us457 ]
  %53 = getelementptr inbounds float, ptr %3, i64 %indvars.iv480
  %54 = load float, ptr %53, align 4, !tbaa !15
  %55 = getelementptr inbounds float, ptr %4, i64 %indvars.iv480
  %56 = load float, ptr %55, align 4, !tbaa !15
  %57 = fsub float %54, %56
  %58 = fpext float %57 to double
  %59 = fadd double %.0348455.us459, %58
  %indvars.iv.next481 = add nsw i64 %indvars.iv480, 1
  %60 = icmp slt i64 %indvars.iv.next481, %41
  br i1 %60, label %.lr.ph.split.us457, label %.preheader454, !llvm.loop !17

.lr.ph.split.us463:                               ; preds = %.lr.ph.split.us463.preheader, %.lr.ph.split.us463
  %indvars.iv = phi i64 [ %38, %.lr.ph.split.us463.preheader ], [ %indvars.iv.next, %.lr.ph.split.us463 ]
  %.0348455.us465 = phi double [ 0.000000e+00, %.lr.ph.split.us463.preheader ], [ %75, %.lr.ph.split.us463 ]
  %61 = getelementptr inbounds float, ptr %3, i64 %indvars.iv
  %62 = load float, ptr %61, align 4, !tbaa !15
  %63 = getelementptr inbounds float, ptr %5, i64 %indvars.iv
  %64 = load float, ptr %63, align 4, !tbaa !15
  %65 = getelementptr inbounds float, ptr %2, i64 %indvars.iv
  %66 = load float, ptr %65, align 4, !tbaa !15
  %67 = fcmp ult float %64, %66
  %..us = select i1 %67, float %66, float %64
  %68 = fsub float %62, %..us
  %69 = select i1 %67, float %64, float %66
  %70 = getelementptr inbounds float, ptr %4, i64 %indvars.iv
  %71 = load float, ptr %70, align 4, !tbaa !15
  %72 = fsub float %69, %71
  %73 = fadd float %68, %72
  %74 = fpext float %73 to double
  %75 = fadd double %.0348455.us465, %74
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %76 = icmp slt i64 %indvars.iv.next, %39
  br i1 %76, label %.lr.ph.split.us463, label %.preheader454, !llvm.loop !17

.preheader454:                                    ; preds = %.lr.ph.split.us463, %.lr.ph.split.us457, %.lr.ph.split.us, %.lr.ph, %25
  %.0348.lcssa = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %.lr.ph ], [ %51, %.lr.ph.split.us ], [ %59, %.lr.ph.split.us457 ], [ %75, %.lr.ph.split.us463 ]
  %77 = icmp sgt i32 %33, 0
  br i1 %77, label %.lr.ph471, label %.preheader454..preheader_crit_edge

.preheader454..preheader_crit_edge:               ; preds = %.preheader454
  %.pre503 = sext i32 %34 to i64
  br label %.preheader

.lr.ph471:                                        ; preds = %.preheader454
  %78 = getelementptr inbounds i8, ptr %27, i64 260
  %79 = load i32, ptr %78, align 4, !tbaa !14
  %80 = sext i32 %34 to i64
  %81 = sext i32 %31 to i64
  br label %91

.preheader:                                       ; preds = %119, %.preheader454..preheader_crit_edge
  %.pre-phi = phi i64 [ %.pre503, %.preheader454..preheader_crit_edge ], [ %80, %119 ]
  %.0350.lcssa = phi double [ 0.000000e+00, %.preheader454..preheader_crit_edge ], [ %121, %119 ]
  %82 = getelementptr inbounds i8, ptr %27, i64 224
  %83 = load double, ptr %82, align 8, !tbaa !19
  %84 = getelementptr inbounds i8, ptr %27, i64 212
  %85 = getelementptr inbounds i8, ptr %27, i64 260
  %86 = getelementptr inbounds i8, ptr %27, i64 272
  %87 = sext i32 %22 to i64
  %88 = zext nneg i32 %0 to i64
  %smax = tail call i64 @llvm.smax.i64(i64 %87, i64 %88)
  %89 = sext i32 %1 to i64
  %90 = sext i32 %30 to i64
  br label %123

91:                                               ; preds = %.lr.ph471, %119
  %indvars.iv486 = phi i64 [ %80, %.lr.ph471 ], [ %indvars.iv.next487, %119 ]
  %.0350469 = phi double [ 0.000000e+00, %.lr.ph471 ], [ %121, %119 ]
  switch i32 %79, label %119 [
    i32 0, label %92
    i32 1, label %99
    i32 2, label %105
  ]

92:                                               ; preds = %91
  %93 = getelementptr inbounds float, ptr %5, i64 %indvars.iv486
  %94 = load float, ptr %93, align 4, !tbaa !15
  %95 = getelementptr inbounds float, ptr %2, i64 %indvars.iv486
  %96 = load float, ptr %95, align 4, !tbaa !15
  %97 = fsub float %94, %96
  %98 = tail call float @llvm.fabs.f32(float %97)
  br label %119

99:                                               ; preds = %91
  %100 = getelementptr inbounds float, ptr %3, i64 %indvars.iv486
  %101 = load float, ptr %100, align 4, !tbaa !15
  %102 = getelementptr inbounds float, ptr %4, i64 %indvars.iv486
  %103 = load float, ptr %102, align 4, !tbaa !15
  %104 = fsub float %101, %103
  br label %119

105:                                              ; preds = %91
  %106 = getelementptr inbounds float, ptr %3, i64 %indvars.iv486
  %107 = load float, ptr %106, align 4, !tbaa !15
  %108 = getelementptr inbounds float, ptr %5, i64 %indvars.iv486
  %109 = load float, ptr %108, align 4, !tbaa !15
  %110 = getelementptr inbounds float, ptr %2, i64 %indvars.iv486
  %111 = load float, ptr %110, align 4, !tbaa !15
  %112 = fcmp ult float %109, %111
  %.423 = select i1 %112, float %111, float %109
  %113 = fsub float %107, %.423
  %114 = select i1 %112, float %109, float %111
  %115 = getelementptr inbounds float, ptr %4, i64 %indvars.iv486
  %116 = load float, ptr %115, align 4, !tbaa !15
  %117 = fsub float %114, %116
  %118 = fadd float %113, %117
  br label %119

119:                                              ; preds = %99, %105, %91, %92
  %.in420 = phi float [ %98, %92 ], [ %104, %99 ], [ %118, %105 ], [ 0.000000e+00, %91 ]
  %120 = fpext float %.in420 to double
  %121 = fadd double %.0350469, %120
  %indvars.iv.next487 = add nsw i64 %indvars.iv486, 1
  %122 = icmp slt i64 %indvars.iv.next487, %81
  br i1 %122, label %91, label %.preheader, !llvm.loop !20

123:                                              ; preds = %.preheader, %338
  %indvars.iv495 = phi i64 [ %90, %.preheader ], [ %indvars.iv.next496, %338 ]
  %indvars.iv493 = phi i64 [ %.pre-phi, %.preheader ], [ %indvars.iv.next494, %338 ]
  %indvars.iv491 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next492, %338 ]
  %indvars.iv489 = phi i64 [ %smax, %.preheader ], [ %indvars.iv.next490, %338 ]
  %.1351 = phi double [ %.0350.lcssa, %.preheader ], [ %342, %338 ]
  %.1349 = phi double [ %.0348.lcssa, %.preheader ], [ %282, %338 ]
  %124 = add nsw i64 %indvars.iv489, -2
  %125 = getelementptr inbounds float, ptr %5, i64 %124
  %126 = load float, ptr %125, align 4, !tbaa !15
  %127 = getelementptr inbounds float, ptr %2, i64 %124
  %128 = load float, ptr %127, align 4, !tbaa !15
  %129 = fsub float %126, %128
  %130 = tail call float @llvm.fabs.f32(float %129)
  %131 = fpext float %130 to double
  %132 = load i32, ptr %28, align 8, !tbaa !11
  %.not414 = icmp eq i32 %132, 0
  br i1 %.not414, label %136, label %133

133:                                              ; preds = %123
  %134 = sitofp i32 %132 to double
  %135 = fdiv double %.1349, %134
  %.pre = load i32, ptr %84, align 4, !tbaa !14
  br label %157

136:                                              ; preds = %123
  %137 = load i32, ptr %84, align 4, !tbaa !14
  switch i32 %137, label %154 [
    i32 0, label %.thread
    i32 1, label %138
    i32 2, label %144
  ]

138:                                              ; preds = %136
  %139 = getelementptr inbounds float, ptr %3, i64 %124
  %140 = load float, ptr %139, align 4, !tbaa !15
  %141 = getelementptr inbounds float, ptr %4, i64 %124
  %142 = load float, ptr %141, align 4, !tbaa !15
  %143 = fsub float %140, %142
  br label %154

144:                                              ; preds = %136
  %145 = getelementptr inbounds float, ptr %3, i64 %124
  %146 = load float, ptr %145, align 4, !tbaa !15
  %147 = fcmp ult float %126, %128
  %.424 = select i1 %147, float %128, float %126
  %148 = fsub float %146, %.424
  %149 = select i1 %147, float %126, float %128
  %150 = getelementptr inbounds float, ptr %4, i64 %124
  %151 = load float, ptr %150, align 4, !tbaa !15
  %152 = fsub float %149, %151
  %153 = fadd float %148, %152
  br label %154

154:                                              ; preds = %136, %144, %138
  %155 = phi float [ %143, %138 ], [ %153, %144 ], [ 0.000000e+00, %136 ]
  %156 = fpext float %155 to double
  br label %157

157:                                              ; preds = %154, %133
  %158 = phi i32 [ %.pre, %133 ], [ %137, %154 ]
  %159 = phi double [ %135, %133 ], [ %156, %154 ]
  %.fr = freeze i32 %158
  %160 = icmp eq i32 %.fr, 2
  br i1 %160, label %161, label %.thread

161:                                              ; preds = %157
  br label %.thread

.thread:                                          ; preds = %136, %157, %161
  %.pn = phi double [ %159, %161 ], [ %159, %157 ], [ %131, %136 ]
  %162 = phi double [ 2.000000e+00, %161 ], [ 1.000000e+00, %157 ], [ 1.000000e+00, %136 ]
  %163 = fmul double %83, %.pn
  %164 = fdiv double %163, %162
  %165 = fcmp olt double %164, %131
  br i1 %165, label %166, label %235

166:                                              ; preds = %.thread
  %167 = add nsw i64 %indvars.iv489, -1
  %168 = getelementptr inbounds float, ptr %5, i64 %167
  %169 = load float, ptr %168, align 4, !tbaa !15
  %170 = getelementptr inbounds float, ptr %2, i64 %167
  %171 = load float, ptr %170, align 4, !tbaa !15
  %172 = fsub float %169, %171
  %173 = tail call float @llvm.fabs.f32(float %172)
  %174 = fpext float %173 to double
  %175 = load double, ptr %86, align 8, !tbaa !19
  %176 = load i32, ptr %32, align 8, !tbaa !11
  %.not415 = icmp eq i32 %176, 0
  br i1 %.not415, label %180, label %177

177:                                              ; preds = %166
  %178 = sitofp i32 %176 to double
  %179 = fdiv double %.1351, %178
  %.pre502 = load i32, ptr %85, align 4, !tbaa !14
  br label %201

180:                                              ; preds = %166
  %181 = load i32, ptr %85, align 4, !tbaa !14
  switch i32 %181, label %198 [
    i32 0, label %.thread506
    i32 1, label %182
    i32 2, label %188
  ]

182:                                              ; preds = %180
  %183 = getelementptr inbounds float, ptr %3, i64 %167
  %184 = load float, ptr %183, align 4, !tbaa !15
  %185 = getelementptr inbounds float, ptr %4, i64 %167
  %186 = load float, ptr %185, align 4, !tbaa !15
  %187 = fsub float %184, %186
  br label %198

188:                                              ; preds = %180
  %189 = getelementptr inbounds float, ptr %3, i64 %167
  %190 = load float, ptr %189, align 4, !tbaa !15
  %191 = fcmp ult float %169, %171
  %.425 = select i1 %191, float %171, float %169
  %192 = fsub float %190, %.425
  %193 = select i1 %191, float %169, float %171
  %194 = getelementptr inbounds float, ptr %4, i64 %167
  %195 = load float, ptr %194, align 4, !tbaa !15
  %196 = fsub float %193, %195
  %197 = fadd float %192, %196
  br label %198

198:                                              ; preds = %180, %188, %182
  %199 = phi float [ %187, %182 ], [ %197, %188 ], [ 0.000000e+00, %180 ]
  %200 = fpext float %199 to double
  br label %201

201:                                              ; preds = %198, %177
  %202 = phi i32 [ %.pre502, %177 ], [ %181, %198 ]
  %203 = phi double [ %179, %177 ], [ %200, %198 ]
  %.fr514 = freeze i32 %202
  %204 = icmp eq i32 %.fr514, 2
  br i1 %204, label %205, label %.thread506

205:                                              ; preds = %201
  br label %.thread506

.thread506:                                       ; preds = %180, %201, %205
  %.pn515 = phi double [ %203, %205 ], [ %203, %201 ], [ %174, %180 ]
  %206 = phi double [ 2.000000e+00, %205 ], [ 1.000000e+00, %201 ], [ 1.000000e+00, %180 ]
  %207 = fmul double %175, %.pn515
  %208 = fdiv double %207, %206
  %209 = fcmp ult double %208, %174
  br i1 %209, label %235, label %210

210:                                              ; preds = %.thread506
  %211 = fcmp ogt float %169, %171
  %.426 = select i1 %211, float %169, float %171
  %212 = fcmp ogt float %126, %128
  %213 = select i1 %212, float %126, float %128
  %214 = fcmp olt float %.426, %213
  br i1 %214, label %215, label %235

215:                                              ; preds = %210
  %216 = fcmp olt float %169, %171
  %.427 = select i1 %216, float %169, float %171
  %217 = fcmp olt float %126, %128
  %218 = select i1 %217, float %126, float %128
  %219 = fcmp ogt float %.427, %218
  br i1 %219, label %220, label %235

220:                                              ; preds = %215
  %221 = fcmp ult float %126, %128
  %222 = getelementptr inbounds float, ptr %5, i64 %indvars.iv489
  %223 = load float, ptr %222, align 4, !tbaa !15
  %224 = getelementptr inbounds float, ptr %2, i64 %indvars.iv489
  %225 = load float, ptr %224, align 4, !tbaa !15
  br i1 %221, label %229, label %226

226:                                              ; preds = %220
  %227 = fcmp ult float %223, %225
  %228 = fcmp olt float %223, %128
  %or.cond428 = and i1 %228, %227
  br i1 %or.cond428, label %232, label %235

229:                                              ; preds = %220
  %230 = fcmp oge float %223, %225
  %231 = fcmp ogt float %223, %128
  %or.cond429 = and i1 %231, %230
  br i1 %or.cond429, label %232, label %235

232:                                              ; preds = %229, %226
  %233 = fcmp oge float %126, %128
  %234 = select i1 %233, i32 -100, i32 100
  br label %235

235:                                              ; preds = %.thread, %.thread506, %210, %215, %229, %226, %232
  %.sink = phi i32 [ %234, %232 ], [ 0, %226 ], [ 0, %229 ], [ 0, %215 ], [ 0, %210 ], [ 0, %.thread506 ], [ 0, %.thread ]
  %236 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv491
  store i32 %.sink, ptr %236, align 4, !tbaa !5
  %indvars.iv.next492 = add nuw nsw i64 %indvars.iv491, 1
  %237 = load i32, ptr %84, align 4, !tbaa !14
  switch i32 %237, label %278 [
    i32 0, label %.thread435
    i32 1, label %.thread437
    i32 2, label %.thread439
  ]

.thread435:                                       ; preds = %235
  %238 = getelementptr inbounds float, ptr %5, i64 %indvars.iv495
  %239 = load float, ptr %238, align 4, !tbaa !15
  %240 = getelementptr inbounds float, ptr %2, i64 %indvars.iv495
  %241 = load float, ptr %240, align 4, !tbaa !15
  %242 = fsub float %239, %241
  %243 = tail call float @llvm.fabs.f32(float %242)
  br label %278

.thread437:                                       ; preds = %235
  %244 = getelementptr inbounds float, ptr %3, i64 %124
  %245 = load float, ptr %244, align 4, !tbaa !15
  %246 = getelementptr inbounds float, ptr %4, i64 %124
  %247 = load float, ptr %246, align 4, !tbaa !15
  %248 = fsub float %245, %247
  %249 = fpext float %248 to double
  %250 = getelementptr inbounds float, ptr %3, i64 %indvars.iv495
  %251 = load float, ptr %250, align 4, !tbaa !15
  %252 = getelementptr inbounds float, ptr %4, i64 %indvars.iv495
  %253 = load float, ptr %252, align 4, !tbaa !15
  %254 = fsub float %251, %253
  br label %278

.thread439:                                       ; preds = %235
  %255 = getelementptr inbounds float, ptr %3, i64 %124
  %256 = load float, ptr %255, align 4, !tbaa !15
  %257 = fcmp ult float %126, %128
  %.430 = select i1 %257, float %128, float %126
  %258 = fsub float %256, %.430
  %259 = select i1 %257, float %126, float %128
  %260 = getelementptr inbounds float, ptr %4, i64 %124
  %261 = load float, ptr %260, align 4, !tbaa !15
  %262 = fsub float %259, %261
  %263 = fadd float %258, %262
  %264 = fpext float %263 to double
  %265 = getelementptr inbounds float, ptr %3, i64 %indvars.iv495
  %266 = load float, ptr %265, align 4, !tbaa !15
  %267 = getelementptr inbounds float, ptr %5, i64 %indvars.iv495
  %268 = load float, ptr %267, align 4, !tbaa !15
  %269 = getelementptr inbounds float, ptr %2, i64 %indvars.iv495
  %270 = load float, ptr %269, align 4, !tbaa !15
  %271 = fcmp ult float %268, %270
  %.431 = select i1 %271, float %270, float %268
  %272 = fsub float %266, %.431
  %273 = select i1 %271, float %268, float %270
  %274 = getelementptr inbounds float, ptr %4, i64 %indvars.iv495
  %275 = load float, ptr %274, align 4, !tbaa !15
  %276 = fsub float %273, %275
  %277 = fadd float %272, %276
  br label %278

278:                                              ; preds = %235, %.thread437, %.thread439, %.thread435
  %279 = phi double [ %131, %.thread435 ], [ %249, %.thread437 ], [ %264, %.thread439 ], [ 0.000000e+00, %235 ]
  %.in416 = phi float [ %243, %.thread435 ], [ %254, %.thread437 ], [ %277, %.thread439 ], [ 0.000000e+00, %235 ]
  %280 = fpext float %.in416 to double
  %281 = fsub double %279, %280
  %282 = fadd double %.1349, %281
  %283 = load i32, ptr %85, align 4, !tbaa !14
  switch i32 %283, label %338 [
    i32 0, label %.thread441
    i32 1, label %.thread443
    i32 2, label %.thread445
  ]

.thread441:                                       ; preds = %278
  %284 = add nsw i64 %indvars.iv489, -1
  %285 = getelementptr inbounds float, ptr %5, i64 %284
  %286 = load float, ptr %285, align 4, !tbaa !15
  %287 = getelementptr inbounds float, ptr %2, i64 %284
  %288 = load float, ptr %287, align 4, !tbaa !15
  %289 = fsub float %286, %288
  %290 = tail call float @llvm.fabs.f32(float %289)
  %291 = fpext float %290 to double
  %292 = getelementptr inbounds float, ptr %5, i64 %indvars.iv493
  %293 = load float, ptr %292, align 4, !tbaa !15
  %294 = getelementptr inbounds float, ptr %2, i64 %indvars.iv493
  %295 = load float, ptr %294, align 4, !tbaa !15
  %296 = fsub float %293, %295
  %297 = tail call float @llvm.fabs.f32(float %296)
  br label %338

.thread443:                                       ; preds = %278
  %298 = add nsw i64 %indvars.iv489, -1
  %299 = getelementptr inbounds float, ptr %3, i64 %298
  %300 = load float, ptr %299, align 4, !tbaa !15
  %301 = getelementptr inbounds float, ptr %4, i64 %298
  %302 = load float, ptr %301, align 4, !tbaa !15
  %303 = fsub float %300, %302
  %304 = fpext float %303 to double
  %305 = getelementptr inbounds float, ptr %3, i64 %indvars.iv493
  %306 = load float, ptr %305, align 4, !tbaa !15
  %307 = getelementptr inbounds float, ptr %4, i64 %indvars.iv493
  %308 = load float, ptr %307, align 4, !tbaa !15
  %309 = fsub float %306, %308
  br label %338

.thread445:                                       ; preds = %278
  %310 = add nsw i64 %indvars.iv489, -1
  %311 = getelementptr inbounds float, ptr %3, i64 %310
  %312 = load float, ptr %311, align 4, !tbaa !15
  %313 = getelementptr inbounds float, ptr %5, i64 %310
  %314 = load float, ptr %313, align 4, !tbaa !15
  %315 = getelementptr inbounds float, ptr %2, i64 %310
  %316 = load float, ptr %315, align 4, !tbaa !15
  %317 = fcmp ult float %314, %316
  %.432 = select i1 %317, float %316, float %314
  %318 = fsub float %312, %.432
  %319 = select i1 %317, float %314, float %316
  %320 = getelementptr inbounds float, ptr %4, i64 %310
  %321 = load float, ptr %320, align 4, !tbaa !15
  %322 = fsub float %319, %321
  %323 = fadd float %318, %322
  %324 = fpext float %323 to double
  %325 = getelementptr inbounds float, ptr %3, i64 %indvars.iv493
  %326 = load float, ptr %325, align 4, !tbaa !15
  %327 = getelementptr inbounds float, ptr %5, i64 %indvars.iv493
  %328 = load float, ptr %327, align 4, !tbaa !15
  %329 = getelementptr inbounds float, ptr %2, i64 %indvars.iv493
  %330 = load float, ptr %329, align 4, !tbaa !15
  %331 = fcmp ult float %328, %330
  %.433 = select i1 %331, float %330, float %328
  %332 = fsub float %326, %.433
  %333 = select i1 %331, float %328, float %330
  %334 = getelementptr inbounds float, ptr %4, i64 %indvars.iv493
  %335 = load float, ptr %334, align 4, !tbaa !15
  %336 = fsub float %333, %335
  %337 = fadd float %332, %336
  br label %338

338:                                              ; preds = %278, %.thread443, %.thread445, %.thread441
  %339 = phi double [ %291, %.thread441 ], [ %304, %.thread443 ], [ %324, %.thread445 ], [ 0.000000e+00, %278 ]
  %.in418 = phi float [ %297, %.thread441 ], [ %309, %.thread443 ], [ %337, %.thread445 ], [ 0.000000e+00, %278 ]
  %340 = fpext float %.in418 to double
  %341 = fsub double %339, %340
  %342 = fadd double %.1351, %341
  %indvars.iv.next490 = add nuw nsw i64 %indvars.iv489, 1
  %indvars.iv.next496 = add nsw i64 %indvars.iv495, 1
  %indvars.iv.next494 = add nsw i64 %indvars.iv493, 1
  %.not419.not = icmp slt i64 %indvars.iv489, %89
  br i1 %.not419.not, label %123, label %343, !llvm.loop !21

343:                                              ; preds = %338
  %344 = trunc nuw i64 %indvars.iv.next492 to i32
  store i32 %344, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %345

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

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

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

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

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

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

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


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