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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @TA_CDLGRAVESTONEDOJI(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 %1367

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

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

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

56:                                               ; preds = %52
  %57 = call i32 @TA_CDLGRAVESTONEDOJI_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 %1367

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

86:                                               ; preds = %205, %70
  %87 = load i32, ptr %22, align 4, !tbaa !5
  %88 = load i32, ptr %11, align 4, !tbaa !5
  %89 = icmp slt i32 %87, %88
  br i1 %89, label %90, label %211

90:                                               ; preds = %86
  %91 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %92 = getelementptr inbounds %struct.TA_LibcPriv, ptr %91, i32 0, i32 8
  %93 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %92, i64 0, i64 3
  %94 = getelementptr inbounds %struct.TA_CandleSetting, ptr %93, i32 0, i32 1
  %95 = load i32, ptr %94, align 4, !tbaa !15
  %96 = icmp eq i32 %95, 0
  br i1 %96, label %97, label %110

97:                                               ; preds = %90
  %98 = load ptr, ptr %16, align 8, !tbaa !9
  %99 = load i32, ptr %22, align 4, !tbaa !5
  %100 = sext i32 %99 to i64
  %101 = getelementptr inbounds double, ptr %98, i64 %100
  %102 = load double, ptr %101, align 8, !tbaa !11
  %103 = load ptr, ptr %13, align 8, !tbaa !9
  %104 = load i32, ptr %22, align 4, !tbaa !5
  %105 = sext i32 %104 to i64
  %106 = getelementptr inbounds double, ptr %103, i64 %105
  %107 = load double, ptr %106, align 8, !tbaa !11
  %108 = fsub double %102, %107
  %109 = call double @llvm.fabs.f64(double %108)
  br label %205

110:                                              ; preds = %90
  %111 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %112 = getelementptr inbounds %struct.TA_LibcPriv, ptr %111, i32 0, i32 8
  %113 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %112, i64 0, i64 3
  %114 = getelementptr inbounds %struct.TA_CandleSetting, ptr %113, i32 0, i32 1
  %115 = load i32, ptr %114, align 4, !tbaa !15
  %116 = icmp eq i32 %115, 1
  br i1 %116, label %117, label %129

117:                                              ; preds = %110
  %118 = load ptr, ptr %14, align 8, !tbaa !9
  %119 = load i32, ptr %22, align 4, !tbaa !5
  %120 = sext i32 %119 to i64
  %121 = getelementptr inbounds double, ptr %118, i64 %120
  %122 = load double, ptr %121, align 8, !tbaa !11
  %123 = load ptr, ptr %15, align 8, !tbaa !9
  %124 = load i32, ptr %22, align 4, !tbaa !5
  %125 = sext i32 %124 to i64
  %126 = getelementptr inbounds double, ptr %123, i64 %125
  %127 = load double, ptr %126, align 8, !tbaa !11
  %128 = fsub double %122, %127
  br label %203

129:                                              ; preds = %110
  %130 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %131 = getelementptr inbounds %struct.TA_LibcPriv, ptr %130, i32 0, i32 8
  %132 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %131, i64 0, i64 3
  %133 = getelementptr inbounds %struct.TA_CandleSetting, ptr %132, i32 0, i32 1
  %134 = load i32, ptr %133, align 4, !tbaa !15
  %135 = icmp eq i32 %134, 2
  br i1 %135, label %136, label %200

136:                                              ; preds = %129
  %137 = load ptr, ptr %14, align 8, !tbaa !9
  %138 = load i32, ptr %22, align 4, !tbaa !5
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds double, ptr %137, i64 %139
  %141 = load double, ptr %140, align 8, !tbaa !11
  %142 = load ptr, ptr %16, align 8, !tbaa !9
  %143 = load i32, ptr %22, align 4, !tbaa !5
  %144 = sext i32 %143 to i64
  %145 = getelementptr inbounds double, ptr %142, i64 %144
  %146 = load double, ptr %145, align 8, !tbaa !11
  %147 = load ptr, ptr %13, align 8, !tbaa !9
  %148 = load i32, ptr %22, align 4, !tbaa !5
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds double, ptr %147, i64 %149
  %151 = load double, ptr %150, align 8, !tbaa !11
  %152 = fcmp oge double %146, %151
  br i1 %152, label %153, label %159

153:                                              ; preds = %136
  %154 = load ptr, ptr %16, align 8, !tbaa !9
  %155 = load i32, ptr %22, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds double, ptr %154, i64 %156
  %158 = load double, ptr %157, align 8, !tbaa !11
  br label %165

159:                                              ; preds = %136
  %160 = load ptr, ptr %13, align 8, !tbaa !9
  %161 = load i32, ptr %22, align 4, !tbaa !5
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds double, ptr %160, i64 %162
  %164 = load double, ptr %163, align 8, !tbaa !11
  br label %165

165:                                              ; preds = %159, %153
  %166 = phi double [ %158, %153 ], [ %164, %159 ]
  %167 = fsub double %141, %166
  %168 = load ptr, ptr %16, align 8, !tbaa !9
  %169 = load i32, ptr %22, align 4, !tbaa !5
  %170 = sext i32 %169 to i64
  %171 = getelementptr inbounds double, ptr %168, i64 %170
  %172 = load double, ptr %171, align 8, !tbaa !11
  %173 = load ptr, ptr %13, align 8, !tbaa !9
  %174 = load i32, ptr %22, align 4, !tbaa !5
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds double, ptr %173, i64 %175
  %177 = load double, ptr %176, align 8, !tbaa !11
  %178 = fcmp oge double %172, %177
  br i1 %178, label %179, label %185

179:                                              ; preds = %165
  %180 = load ptr, ptr %13, align 8, !tbaa !9
  %181 = load i32, ptr %22, align 4, !tbaa !5
  %182 = sext i32 %181 to i64
  %183 = getelementptr inbounds double, ptr %180, i64 %182
  %184 = load double, ptr %183, align 8, !tbaa !11
  br label %191

185:                                              ; preds = %165
  %186 = load ptr, ptr %16, align 8, !tbaa !9
  %187 = load i32, ptr %22, align 4, !tbaa !5
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds double, ptr %186, i64 %188
  %190 = load double, ptr %189, align 8, !tbaa !11
  br label %191

191:                                              ; preds = %185, %179
  %192 = phi double [ %184, %179 ], [ %190, %185 ]
  %193 = load ptr, ptr %15, align 8, !tbaa !9
  %194 = load i32, ptr %22, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds double, ptr %193, i64 %195
  %197 = load double, ptr %196, align 8, !tbaa !11
  %198 = fsub double %192, %197
  %199 = fadd double %167, %198
  br label %201

200:                                              ; preds = %129
  br label %201

201:                                              ; preds = %200, %191
  %202 = phi double [ %199, %191 ], [ 0.000000e+00, %200 ]
  br label %203

203:                                              ; preds = %201, %117
  %204 = phi double [ %128, %117 ], [ %202, %201 ]
  br label %205

205:                                              ; preds = %203, %97
  %206 = phi double [ %109, %97 ], [ %204, %203 ]
  %207 = load double, ptr %20, align 8, !tbaa !11
  %208 = fadd double %207, %206
  store double %208, ptr %20, align 8, !tbaa !11
  %209 = load i32, ptr %22, align 4, !tbaa !5
  %210 = add nsw i32 %209, 1
  store i32 %210, ptr %22, align 4, !tbaa !5
  br label %86, !llvm.loop !16

211:                                              ; preds = %86
  %212 = load i32, ptr %25, align 4, !tbaa !5
  store i32 %212, ptr %22, align 4, !tbaa !5
  br label %213

213:                                              ; preds = %332, %211
  %214 = load i32, ptr %22, align 4, !tbaa !5
  %215 = load i32, ptr %11, align 4, !tbaa !5
  %216 = icmp slt i32 %214, %215
  br i1 %216, label %217, label %338

217:                                              ; preds = %213
  %218 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %219 = getelementptr inbounds %struct.TA_LibcPriv, ptr %218, i32 0, i32 8
  %220 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %219, i64 0, i64 7
  %221 = getelementptr inbounds %struct.TA_CandleSetting, ptr %220, i32 0, i32 1
  %222 = load i32, ptr %221, align 4, !tbaa !15
  %223 = icmp eq i32 %222, 0
  br i1 %223, label %224, label %237

224:                                              ; preds = %217
  %225 = load ptr, ptr %16, align 8, !tbaa !9
  %226 = load i32, ptr %22, align 4, !tbaa !5
  %227 = sext i32 %226 to i64
  %228 = getelementptr inbounds double, ptr %225, i64 %227
  %229 = load double, ptr %228, align 8, !tbaa !11
  %230 = load ptr, ptr %13, align 8, !tbaa !9
  %231 = load i32, ptr %22, align 4, !tbaa !5
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds double, ptr %230, i64 %232
  %234 = load double, ptr %233, align 8, !tbaa !11
  %235 = fsub double %229, %234
  %236 = call double @llvm.fabs.f64(double %235)
  br label %332

237:                                              ; preds = %217
  %238 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %239 = getelementptr inbounds %struct.TA_LibcPriv, ptr %238, i32 0, i32 8
  %240 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %239, i64 0, i64 7
  %241 = getelementptr inbounds %struct.TA_CandleSetting, ptr %240, i32 0, i32 1
  %242 = load i32, ptr %241, align 4, !tbaa !15
  %243 = icmp eq i32 %242, 1
  br i1 %243, label %244, label %256

244:                                              ; preds = %237
  %245 = load ptr, ptr %14, align 8, !tbaa !9
  %246 = load i32, ptr %22, align 4, !tbaa !5
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds double, ptr %245, i64 %247
  %249 = load double, ptr %248, align 8, !tbaa !11
  %250 = load ptr, ptr %15, align 8, !tbaa !9
  %251 = load i32, ptr %22, align 4, !tbaa !5
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds double, ptr %250, i64 %252
  %254 = load double, ptr %253, align 8, !tbaa !11
  %255 = fsub double %249, %254
  br label %330

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

263:                                              ; preds = %256
  %264 = load ptr, ptr %14, align 8, !tbaa !9
  %265 = load i32, ptr %22, align 4, !tbaa !5
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds double, ptr %264, i64 %266
  %268 = load double, ptr %267, align 8, !tbaa !11
  %269 = load ptr, ptr %16, align 8, !tbaa !9
  %270 = load i32, ptr %22, align 4, !tbaa !5
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds double, ptr %269, i64 %271
  %273 = load double, ptr %272, align 8, !tbaa !11
  %274 = load ptr, ptr %13, align 8, !tbaa !9
  %275 = load i32, ptr %22, align 4, !tbaa !5
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds double, ptr %274, i64 %276
  %278 = load double, ptr %277, align 8, !tbaa !11
  %279 = fcmp oge double %273, %278
  br i1 %279, label %280, label %286

280:                                              ; preds = %263
  %281 = load ptr, ptr %16, align 8, !tbaa !9
  %282 = load i32, ptr %22, align 4, !tbaa !5
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds double, ptr %281, i64 %283
  %285 = load double, ptr %284, align 8, !tbaa !11
  br label %292

286:                                              ; preds = %263
  %287 = load ptr, ptr %13, align 8, !tbaa !9
  %288 = load i32, ptr %22, align 4, !tbaa !5
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds double, ptr %287, i64 %289
  %291 = load double, ptr %290, align 8, !tbaa !11
  br label %292

292:                                              ; preds = %286, %280
  %293 = phi double [ %285, %280 ], [ %291, %286 ]
  %294 = fsub double %268, %293
  %295 = load ptr, ptr %16, align 8, !tbaa !9
  %296 = load i32, ptr %22, align 4, !tbaa !5
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds double, ptr %295, i64 %297
  %299 = load double, ptr %298, align 8, !tbaa !11
  %300 = load ptr, ptr %13, align 8, !tbaa !9
  %301 = load i32, ptr %22, align 4, !tbaa !5
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds double, ptr %300, i64 %302
  %304 = load double, ptr %303, align 8, !tbaa !11
  %305 = fcmp oge double %299, %304
  br i1 %305, label %306, label %312

306:                                              ; preds = %292
  %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 double, ptr %307, i64 %309
  %311 = load double, ptr %310, align 8, !tbaa !11
  br label %318

312:                                              ; preds = %292
  %313 = load ptr, ptr %16, align 8, !tbaa !9
  %314 = load i32, ptr %22, align 4, !tbaa !5
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds double, ptr %313, i64 %315
  %317 = load double, ptr %316, align 8, !tbaa !11
  br label %318

318:                                              ; preds = %312, %306
  %319 = phi double [ %311, %306 ], [ %317, %312 ]
  %320 = load ptr, ptr %15, align 8, !tbaa !9
  %321 = load i32, ptr %22, align 4, !tbaa !5
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds double, ptr %320, i64 %322
  %324 = load double, ptr %323, align 8, !tbaa !11
  %325 = fsub double %319, %324
  %326 = fadd double %294, %325
  br label %328

327:                                              ; preds = %256
  br label %328

328:                                              ; preds = %327, %318
  %329 = phi double [ %326, %318 ], [ 0.000000e+00, %327 ]
  br label %330

330:                                              ; preds = %328, %244
  %331 = phi double [ %255, %244 ], [ %329, %328 ]
  br label %332

332:                                              ; preds = %330, %224
  %333 = phi double [ %236, %224 ], [ %331, %330 ]
  %334 = load double, ptr %21, align 8, !tbaa !11
  %335 = fadd double %334, %333
  store double %335, ptr %21, align 8, !tbaa !11
  %336 = load i32, ptr %22, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr %22, align 4, !tbaa !5
  br label %213, !llvm.loop !18

338:                                              ; preds = %213
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %339

339:                                              ; preds = %1358, %338
  %340 = load ptr, ptr %16, align 8, !tbaa !9
  %341 = load i32, ptr %22, align 4, !tbaa !5
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds double, ptr %340, i64 %342
  %344 = load double, ptr %343, align 8, !tbaa !11
  %345 = load ptr, ptr %13, align 8, !tbaa !9
  %346 = load i32, ptr %22, align 4, !tbaa !5
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds double, ptr %345, i64 %347
  %349 = load double, ptr %348, align 8, !tbaa !11
  %350 = fsub double %344, %349
  %351 = call double @llvm.fabs.f64(double %350)
  %352 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %353 = getelementptr inbounds %struct.TA_LibcPriv, ptr %352, i32 0, i32 8
  %354 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %353, i64 0, i64 3
  %355 = getelementptr inbounds %struct.TA_CandleSetting, ptr %354, i32 0, i32 3
  %356 = load double, ptr %355, align 8, !tbaa !19
  %357 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %358 = getelementptr inbounds %struct.TA_LibcPriv, ptr %357, i32 0, i32 8
  %359 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %358, i64 0, i64 3
  %360 = getelementptr inbounds %struct.TA_CandleSetting, ptr %359, i32 0, i32 2
  %361 = load i32, ptr %360, align 8, !tbaa !13
  %362 = sitofp i32 %361 to double
  %363 = fcmp une double %362, 0.000000e+00
  br i1 %363, label %364, label %373

364:                                              ; preds = %339
  %365 = load double, ptr %20, align 8, !tbaa !11
  %366 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %367 = getelementptr inbounds %struct.TA_LibcPriv, ptr %366, i32 0, i32 8
  %368 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %367, i64 0, i64 3
  %369 = getelementptr inbounds %struct.TA_CandleSetting, ptr %368, i32 0, i32 2
  %370 = load i32, ptr %369, align 8, !tbaa !13
  %371 = sitofp i32 %370 to double
  %372 = fdiv double %365, %371
  br label %490

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

380:                                              ; preds = %373
  %381 = load ptr, ptr %16, align 8, !tbaa !9
  %382 = load i32, ptr %22, align 4, !tbaa !5
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds double, ptr %381, i64 %383
  %385 = load double, ptr %384, align 8, !tbaa !11
  %386 = load ptr, ptr %13, align 8, !tbaa !9
  %387 = load i32, ptr %22, align 4, !tbaa !5
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds double, ptr %386, i64 %388
  %390 = load double, ptr %389, align 8, !tbaa !11
  %391 = fsub double %385, %390
  %392 = call double @llvm.fabs.f64(double %391)
  br label %488

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

400:                                              ; preds = %393
  %401 = load ptr, ptr %14, align 8, !tbaa !9
  %402 = load i32, ptr %22, align 4, !tbaa !5
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds double, ptr %401, i64 %403
  %405 = load double, ptr %404, align 8, !tbaa !11
  %406 = load ptr, ptr %15, align 8, !tbaa !9
  %407 = load i32, ptr %22, align 4, !tbaa !5
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds double, ptr %406, i64 %408
  %410 = load double, ptr %409, align 8, !tbaa !11
  %411 = fsub double %405, %410
  br label %486

412:                                              ; preds = %393
  %413 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %414 = getelementptr inbounds %struct.TA_LibcPriv, ptr %413, i32 0, i32 8
  %415 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %414, i64 0, i64 3
  %416 = getelementptr inbounds %struct.TA_CandleSetting, ptr %415, i32 0, i32 1
  %417 = load i32, ptr %416, align 4, !tbaa !15
  %418 = icmp eq i32 %417, 2
  br i1 %418, label %419, label %483

419:                                              ; preds = %412
  %420 = load ptr, ptr %14, align 8, !tbaa !9
  %421 = load i32, ptr %22, align 4, !tbaa !5
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds double, ptr %420, i64 %422
  %424 = load double, ptr %423, align 8, !tbaa !11
  %425 = load ptr, ptr %16, align 8, !tbaa !9
  %426 = load i32, ptr %22, align 4, !tbaa !5
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds double, ptr %425, i64 %427
  %429 = load double, ptr %428, align 8, !tbaa !11
  %430 = load ptr, ptr %13, align 8, !tbaa !9
  %431 = load i32, ptr %22, align 4, !tbaa !5
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds double, ptr %430, i64 %432
  %434 = load double, ptr %433, align 8, !tbaa !11
  %435 = fcmp oge double %429, %434
  br i1 %435, label %436, label %442

436:                                              ; preds = %419
  %437 = load ptr, ptr %16, align 8, !tbaa !9
  %438 = load i32, ptr %22, align 4, !tbaa !5
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds double, ptr %437, i64 %439
  %441 = load double, ptr %440, align 8, !tbaa !11
  br label %448

442:                                              ; preds = %419
  %443 = load ptr, ptr %13, align 8, !tbaa !9
  %444 = load i32, ptr %22, align 4, !tbaa !5
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds double, ptr %443, i64 %445
  %447 = load double, ptr %446, align 8, !tbaa !11
  br label %448

448:                                              ; preds = %442, %436
  %449 = phi double [ %441, %436 ], [ %447, %442 ]
  %450 = fsub double %424, %449
  %451 = load ptr, ptr %16, align 8, !tbaa !9
  %452 = load i32, ptr %22, align 4, !tbaa !5
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds double, ptr %451, i64 %453
  %455 = load double, ptr %454, align 8, !tbaa !11
  %456 = load ptr, ptr %13, align 8, !tbaa !9
  %457 = load i32, ptr %22, align 4, !tbaa !5
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds double, ptr %456, i64 %458
  %460 = load double, ptr %459, align 8, !tbaa !11
  %461 = fcmp oge double %455, %460
  br i1 %461, label %462, label %468

462:                                              ; preds = %448
  %463 = load ptr, ptr %13, align 8, !tbaa !9
  %464 = load i32, ptr %22, align 4, !tbaa !5
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds double, ptr %463, i64 %465
  %467 = load double, ptr %466, align 8, !tbaa !11
  br label %474

468:                                              ; preds = %448
  %469 = load ptr, ptr %16, align 8, !tbaa !9
  %470 = load i32, ptr %22, align 4, !tbaa !5
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds double, ptr %469, i64 %471
  %473 = load double, ptr %472, align 8, !tbaa !11
  br label %474

474:                                              ; preds = %468, %462
  %475 = phi double [ %467, %462 ], [ %473, %468 ]
  %476 = load ptr, ptr %15, align 8, !tbaa !9
  %477 = load i32, ptr %22, align 4, !tbaa !5
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds double, ptr %476, i64 %478
  %480 = load double, ptr %479, align 8, !tbaa !11
  %481 = fsub double %475, %480
  %482 = fadd double %450, %481
  br label %484

483:                                              ; preds = %412
  br label %484

484:                                              ; preds = %483, %474
  %485 = phi double [ %482, %474 ], [ 0.000000e+00, %483 ]
  br label %486

486:                                              ; preds = %484, %400
  %487 = phi double [ %411, %400 ], [ %485, %484 ]
  br label %488

488:                                              ; preds = %486, %380
  %489 = phi double [ %392, %380 ], [ %487, %486 ]
  br label %490

490:                                              ; preds = %488, %364
  %491 = phi double [ %372, %364 ], [ %489, %488 ]
  %492 = fmul double %356, %491
  %493 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %494 = getelementptr inbounds %struct.TA_LibcPriv, ptr %493, i32 0, i32 8
  %495 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %494, i64 0, i64 3
  %496 = getelementptr inbounds %struct.TA_CandleSetting, ptr %495, i32 0, i32 1
  %497 = load i32, ptr %496, align 4, !tbaa !15
  %498 = icmp eq i32 %497, 2
  %499 = zext i1 %498 to i64
  %500 = select i1 %498, double 2.000000e+00, double 1.000000e+00
  %501 = fdiv double %492, %500
  %502 = fcmp ole double %351, %501
  br i1 %502, label %503, label %875

503:                                              ; preds = %490
  %504 = load ptr, ptr %16, align 8, !tbaa !9
  %505 = load i32, ptr %22, align 4, !tbaa !5
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds double, ptr %504, i64 %506
  %508 = load double, ptr %507, align 8, !tbaa !11
  %509 = load ptr, ptr %13, align 8, !tbaa !9
  %510 = load i32, ptr %22, align 4, !tbaa !5
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds double, ptr %509, i64 %511
  %513 = load double, ptr %512, align 8, !tbaa !11
  %514 = fcmp oge double %508, %513
  br i1 %514, label %515, label %521

515:                                              ; preds = %503
  %516 = load ptr, ptr %13, align 8, !tbaa !9
  %517 = load i32, ptr %22, align 4, !tbaa !5
  %518 = sext i32 %517 to i64
  %519 = getelementptr inbounds double, ptr %516, i64 %518
  %520 = load double, ptr %519, align 8, !tbaa !11
  br label %527

521:                                              ; preds = %503
  %522 = load ptr, ptr %16, align 8, !tbaa !9
  %523 = load i32, ptr %22, align 4, !tbaa !5
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds double, ptr %522, i64 %524
  %526 = load double, ptr %525, align 8, !tbaa !11
  br label %527

527:                                              ; preds = %521, %515
  %528 = phi double [ %520, %515 ], [ %526, %521 ]
  %529 = load ptr, ptr %15, align 8, !tbaa !9
  %530 = load i32, ptr %22, align 4, !tbaa !5
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds double, ptr %529, i64 %531
  %533 = load double, ptr %532, align 8, !tbaa !11
  %534 = fsub double %528, %533
  %535 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %536 = getelementptr inbounds %struct.TA_LibcPriv, ptr %535, i32 0, i32 8
  %537 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %536, i64 0, i64 7
  %538 = getelementptr inbounds %struct.TA_CandleSetting, ptr %537, i32 0, i32 3
  %539 = load double, ptr %538, align 8, !tbaa !19
  %540 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %541 = getelementptr inbounds %struct.TA_LibcPriv, ptr %540, i32 0, i32 8
  %542 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %541, i64 0, i64 7
  %543 = getelementptr inbounds %struct.TA_CandleSetting, ptr %542, i32 0, i32 2
  %544 = load i32, ptr %543, align 8, !tbaa !13
  %545 = sitofp i32 %544 to double
  %546 = fcmp une double %545, 0.000000e+00
  br i1 %546, label %547, label %556

547:                                              ; preds = %527
  %548 = load double, ptr %21, align 8, !tbaa !11
  %549 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %550 = getelementptr inbounds %struct.TA_LibcPriv, ptr %549, i32 0, i32 8
  %551 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %550, i64 0, i64 7
  %552 = getelementptr inbounds %struct.TA_CandleSetting, ptr %551, i32 0, i32 2
  %553 = load i32, ptr %552, align 8, !tbaa !13
  %554 = sitofp i32 %553 to double
  %555 = fdiv double %548, %554
  br label %673

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

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

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

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

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

602:                                              ; preds = %595
  %603 = load ptr, ptr %14, align 8, !tbaa !9
  %604 = load i32, ptr %22, align 4, !tbaa !5
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds double, ptr %603, i64 %605
  %607 = load double, ptr %606, align 8, !tbaa !11
  %608 = load ptr, ptr %16, align 8, !tbaa !9
  %609 = load i32, ptr %22, align 4, !tbaa !5
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds double, ptr %608, i64 %610
  %612 = load double, ptr %611, align 8, !tbaa !11
  %613 = load ptr, ptr %13, align 8, !tbaa !9
  %614 = load i32, ptr %22, align 4, !tbaa !5
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds double, ptr %613, i64 %615
  %617 = load double, ptr %616, align 8, !tbaa !11
  %618 = fcmp oge double %612, %617
  br i1 %618, label %619, label %625

619:                                              ; preds = %602
  %620 = load ptr, ptr %16, align 8, !tbaa !9
  %621 = load i32, ptr %22, align 4, !tbaa !5
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds double, ptr %620, i64 %622
  %624 = load double, ptr %623, align 8, !tbaa !11
  br label %631

625:                                              ; preds = %602
  %626 = load ptr, ptr %13, align 8, !tbaa !9
  %627 = load i32, ptr %22, align 4, !tbaa !5
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds double, ptr %626, i64 %628
  %630 = load double, ptr %629, align 8, !tbaa !11
  br label %631

631:                                              ; preds = %625, %619
  %632 = phi double [ %624, %619 ], [ %630, %625 ]
  %633 = fsub double %607, %632
  %634 = load ptr, ptr %16, align 8, !tbaa !9
  %635 = load i32, ptr %22, align 4, !tbaa !5
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds double, ptr %634, i64 %636
  %638 = load double, ptr %637, align 8, !tbaa !11
  %639 = load ptr, ptr %13, align 8, !tbaa !9
  %640 = load i32, ptr %22, align 4, !tbaa !5
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds double, ptr %639, i64 %641
  %643 = load double, ptr %642, align 8, !tbaa !11
  %644 = fcmp oge double %638, %643
  br i1 %644, label %645, label %651

645:                                              ; preds = %631
  %646 = load ptr, ptr %13, align 8, !tbaa !9
  %647 = load i32, ptr %22, align 4, !tbaa !5
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds double, ptr %646, i64 %648
  %650 = load double, ptr %649, align 8, !tbaa !11
  br label %657

651:                                              ; preds = %631
  %652 = load ptr, ptr %16, align 8, !tbaa !9
  %653 = load i32, ptr %22, align 4, !tbaa !5
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds double, ptr %652, i64 %654
  %656 = load double, ptr %655, align 8, !tbaa !11
  br label %657

657:                                              ; preds = %651, %645
  %658 = phi double [ %650, %645 ], [ %656, %651 ]
  %659 = load ptr, ptr %15, align 8, !tbaa !9
  %660 = load i32, ptr %22, align 4, !tbaa !5
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds double, ptr %659, i64 %661
  %663 = load double, ptr %662, align 8, !tbaa !11
  %664 = fsub double %658, %663
  %665 = fadd double %633, %664
  br label %667

666:                                              ; preds = %595
  br label %667

667:                                              ; preds = %666, %657
  %668 = phi double [ %665, %657 ], [ 0.000000e+00, %666 ]
  br label %669

669:                                              ; preds = %667, %583
  %670 = phi double [ %594, %583 ], [ %668, %667 ]
  br label %671

671:                                              ; preds = %669, %563
  %672 = phi double [ %575, %563 ], [ %670, %669 ]
  br label %673

673:                                              ; preds = %671, %547
  %674 = phi double [ %555, %547 ], [ %672, %671 ]
  %675 = fmul double %539, %674
  %676 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %677 = getelementptr inbounds %struct.TA_LibcPriv, ptr %676, i32 0, i32 8
  %678 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %677, i64 0, i64 7
  %679 = getelementptr inbounds %struct.TA_CandleSetting, ptr %678, i32 0, i32 1
  %680 = load i32, ptr %679, align 4, !tbaa !15
  %681 = icmp eq i32 %680, 2
  %682 = zext i1 %681 to i64
  %683 = select i1 %681, double 2.000000e+00, double 1.000000e+00
  %684 = fdiv double %675, %683
  %685 = fcmp olt double %534, %684
  br i1 %685, label %686, label %875

686:                                              ; preds = %673
  %687 = load ptr, ptr %14, align 8, !tbaa !9
  %688 = load i32, ptr %22, align 4, !tbaa !5
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds double, ptr %687, i64 %689
  %691 = load double, ptr %690, align 8, !tbaa !11
  %692 = load ptr, ptr %16, align 8, !tbaa !9
  %693 = load i32, ptr %22, align 4, !tbaa !5
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds double, ptr %692, i64 %694
  %696 = load double, ptr %695, align 8, !tbaa !11
  %697 = load ptr, ptr %13, align 8, !tbaa !9
  %698 = load i32, ptr %22, align 4, !tbaa !5
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds double, ptr %697, i64 %699
  %701 = load double, ptr %700, align 8, !tbaa !11
  %702 = fcmp oge double %696, %701
  br i1 %702, label %703, label %709

703:                                              ; preds = %686
  %704 = load ptr, ptr %16, align 8, !tbaa !9
  %705 = load i32, ptr %22, align 4, !tbaa !5
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds double, ptr %704, i64 %706
  %708 = load double, ptr %707, align 8, !tbaa !11
  br label %715

709:                                              ; preds = %686
  %710 = load ptr, ptr %13, align 8, !tbaa !9
  %711 = load i32, ptr %22, align 4, !tbaa !5
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds double, ptr %710, i64 %712
  %714 = load double, ptr %713, align 8, !tbaa !11
  br label %715

715:                                              ; preds = %709, %703
  %716 = phi double [ %708, %703 ], [ %714, %709 ]
  %717 = fsub double %691, %716
  %718 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %719 = getelementptr inbounds %struct.TA_LibcPriv, ptr %718, i32 0, i32 8
  %720 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %719, i64 0, i64 7
  %721 = getelementptr inbounds %struct.TA_CandleSetting, ptr %720, i32 0, i32 3
  %722 = load double, ptr %721, align 8, !tbaa !19
  %723 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %724 = getelementptr inbounds %struct.TA_LibcPriv, ptr %723, i32 0, i32 8
  %725 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %724, i64 0, i64 7
  %726 = getelementptr inbounds %struct.TA_CandleSetting, ptr %725, i32 0, i32 2
  %727 = load i32, ptr %726, align 8, !tbaa !13
  %728 = sitofp i32 %727 to double
  %729 = fcmp une double %728, 0.000000e+00
  br i1 %729, label %730, label %739

730:                                              ; preds = %715
  %731 = load double, ptr %21, align 8, !tbaa !11
  %732 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %733 = getelementptr inbounds %struct.TA_LibcPriv, ptr %732, i32 0, i32 8
  %734 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %733, i64 0, i64 7
  %735 = getelementptr inbounds %struct.TA_CandleSetting, ptr %734, i32 0, i32 2
  %736 = load i32, ptr %735, align 8, !tbaa !13
  %737 = sitofp i32 %736 to double
  %738 = fdiv double %731, %737
  br label %856

739:                                              ; preds = %715
  %740 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %741 = getelementptr inbounds %struct.TA_LibcPriv, ptr %740, i32 0, i32 8
  %742 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %741, i64 0, i64 7
  %743 = getelementptr inbounds %struct.TA_CandleSetting, ptr %742, i32 0, i32 1
  %744 = load i32, ptr %743, align 4, !tbaa !15
  %745 = icmp eq i32 %744, 0
  br i1 %745, label %746, label %759

746:                                              ; preds = %739
  %747 = load ptr, ptr %16, align 8, !tbaa !9
  %748 = load i32, ptr %22, align 4, !tbaa !5
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds double, ptr %747, i64 %749
  %751 = load double, ptr %750, align 8, !tbaa !11
  %752 = load ptr, ptr %13, align 8, !tbaa !9
  %753 = load i32, ptr %22, align 4, !tbaa !5
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds double, ptr %752, i64 %754
  %756 = load double, ptr %755, align 8, !tbaa !11
  %757 = fsub double %751, %756
  %758 = call double @llvm.fabs.f64(double %757)
  br label %854

759:                                              ; preds = %739
  %760 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %761 = getelementptr inbounds %struct.TA_LibcPriv, ptr %760, i32 0, i32 8
  %762 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %761, i64 0, i64 7
  %763 = getelementptr inbounds %struct.TA_CandleSetting, ptr %762, i32 0, i32 1
  %764 = load i32, ptr %763, align 4, !tbaa !15
  %765 = icmp eq i32 %764, 1
  br i1 %765, label %766, label %778

766:                                              ; preds = %759
  %767 = load ptr, ptr %14, align 8, !tbaa !9
  %768 = load i32, ptr %22, align 4, !tbaa !5
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds double, ptr %767, i64 %769
  %771 = load double, ptr %770, align 8, !tbaa !11
  %772 = load ptr, ptr %15, align 8, !tbaa !9
  %773 = load i32, ptr %22, align 4, !tbaa !5
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds double, ptr %772, i64 %774
  %776 = load double, ptr %775, align 8, !tbaa !11
  %777 = fsub double %771, %776
  br label %852

778:                                              ; preds = %759
  %779 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %780 = getelementptr inbounds %struct.TA_LibcPriv, ptr %779, i32 0, i32 8
  %781 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %780, i64 0, i64 7
  %782 = getelementptr inbounds %struct.TA_CandleSetting, ptr %781, i32 0, i32 1
  %783 = load i32, ptr %782, align 4, !tbaa !15
  %784 = icmp eq i32 %783, 2
  br i1 %784, label %785, label %849

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

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

808:                                              ; preds = %785
  %809 = load ptr, ptr %13, align 8, !tbaa !9
  %810 = load i32, ptr %22, align 4, !tbaa !5
  %811 = sext i32 %810 to i64
  %812 = getelementptr inbounds double, ptr %809, i64 %811
  %813 = load double, ptr %812, align 8, !tbaa !11
  br label %814

814:                                              ; preds = %808, %802
  %815 = phi double [ %807, %802 ], [ %813, %808 ]
  %816 = fsub double %790, %815
  %817 = load ptr, ptr %16, align 8, !tbaa !9
  %818 = load i32, ptr %22, align 4, !tbaa !5
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds double, ptr %817, i64 %819
  %821 = load double, ptr %820, align 8, !tbaa !11
  %822 = load ptr, ptr %13, align 8, !tbaa !9
  %823 = load i32, ptr %22, align 4, !tbaa !5
  %824 = sext i32 %823 to i64
  %825 = getelementptr inbounds double, ptr %822, i64 %824
  %826 = load double, ptr %825, align 8, !tbaa !11
  %827 = fcmp oge double %821, %826
  br i1 %827, label %828, label %834

828:                                              ; preds = %814
  %829 = load ptr, ptr %13, align 8, !tbaa !9
  %830 = load i32, ptr %22, align 4, !tbaa !5
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds double, ptr %829, i64 %831
  %833 = load double, ptr %832, align 8, !tbaa !11
  br label %840

834:                                              ; preds = %814
  %835 = load ptr, ptr %16, align 8, !tbaa !9
  %836 = load i32, ptr %22, align 4, !tbaa !5
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds double, ptr %835, i64 %837
  %839 = load double, ptr %838, align 8, !tbaa !11
  br label %840

840:                                              ; preds = %834, %828
  %841 = phi double [ %833, %828 ], [ %839, %834 ]
  %842 = load ptr, ptr %15, align 8, !tbaa !9
  %843 = load i32, ptr %22, align 4, !tbaa !5
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds double, ptr %842, i64 %844
  %846 = load double, ptr %845, align 8, !tbaa !11
  %847 = fsub double %841, %846
  %848 = fadd double %816, %847
  br label %850

849:                                              ; preds = %778
  br label %850

850:                                              ; preds = %849, %840
  %851 = phi double [ %848, %840 ], [ 0.000000e+00, %849 ]
  br label %852

852:                                              ; preds = %850, %766
  %853 = phi double [ %777, %766 ], [ %851, %850 ]
  br label %854

854:                                              ; preds = %852, %746
  %855 = phi double [ %758, %746 ], [ %853, %852 ]
  br label %856

856:                                              ; preds = %854, %730
  %857 = phi double [ %738, %730 ], [ %855, %854 ]
  %858 = fmul double %722, %857
  %859 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %860 = getelementptr inbounds %struct.TA_LibcPriv, ptr %859, i32 0, i32 8
  %861 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %860, i64 0, i64 7
  %862 = getelementptr inbounds %struct.TA_CandleSetting, ptr %861, i32 0, i32 1
  %863 = load i32, ptr %862, align 4, !tbaa !15
  %864 = icmp eq i32 %863, 2
  %865 = zext i1 %864 to i64
  %866 = select i1 %864, double 2.000000e+00, double 1.000000e+00
  %867 = fdiv double %858, %866
  %868 = fcmp ogt double %717, %867
  br i1 %868, label %869, label %875

869:                                              ; preds = %856
  %870 = load ptr, ptr %19, align 8, !tbaa !9
  %871 = load i32, ptr %23, align 4, !tbaa !5
  %872 = add nsw i32 %871, 1
  store i32 %872, ptr %23, align 4, !tbaa !5
  %873 = sext i32 %871 to i64
  %874 = getelementptr inbounds i32, ptr %870, i64 %873
  store i32 100, ptr %874, align 4, !tbaa !5
  br label %881

875:                                              ; preds = %856, %673, %490
  %876 = load ptr, ptr %19, align 8, !tbaa !9
  %877 = load i32, ptr %23, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr %23, align 4, !tbaa !5
  %879 = sext i32 %877 to i64
  %880 = getelementptr inbounds i32, ptr %876, i64 %879
  store i32 0, ptr %880, align 4, !tbaa !5
  br label %881

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

888:                                              ; preds = %881
  %889 = load ptr, ptr %16, align 8, !tbaa !9
  %890 = load i32, ptr %22, align 4, !tbaa !5
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds double, ptr %889, i64 %891
  %893 = load double, ptr %892, align 8, !tbaa !11
  %894 = load ptr, ptr %13, align 8, !tbaa !9
  %895 = load i32, ptr %22, align 4, !tbaa !5
  %896 = sext i32 %895 to i64
  %897 = getelementptr inbounds double, ptr %894, i64 %896
  %898 = load double, ptr %897, align 8, !tbaa !11
  %899 = fsub double %893, %898
  %900 = call double @llvm.fabs.f64(double %899)
  br label %996

901:                                              ; preds = %881
  %902 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %903 = getelementptr inbounds %struct.TA_LibcPriv, ptr %902, i32 0, i32 8
  %904 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %903, i64 0, i64 3
  %905 = getelementptr inbounds %struct.TA_CandleSetting, ptr %904, i32 0, i32 1
  %906 = load i32, ptr %905, align 4, !tbaa !15
  %907 = icmp eq i32 %906, 1
  br i1 %907, label %908, label %920

908:                                              ; preds = %901
  %909 = load ptr, ptr %14, align 8, !tbaa !9
  %910 = load i32, ptr %22, align 4, !tbaa !5
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds double, ptr %909, i64 %911
  %913 = load double, ptr %912, align 8, !tbaa !11
  %914 = load ptr, ptr %15, align 8, !tbaa !9
  %915 = load i32, ptr %22, align 4, !tbaa !5
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds double, ptr %914, i64 %916
  %918 = load double, ptr %917, align 8, !tbaa !11
  %919 = fsub double %913, %918
  br label %994

920:                                              ; preds = %901
  %921 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %922 = getelementptr inbounds %struct.TA_LibcPriv, ptr %921, i32 0, i32 8
  %923 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %922, i64 0, i64 3
  %924 = getelementptr inbounds %struct.TA_CandleSetting, ptr %923, i32 0, i32 1
  %925 = load i32, ptr %924, align 4, !tbaa !15
  %926 = icmp eq i32 %925, 2
  br i1 %926, label %927, label %991

927:                                              ; preds = %920
  %928 = load ptr, ptr %14, align 8, !tbaa !9
  %929 = load i32, ptr %22, align 4, !tbaa !5
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds double, ptr %928, i64 %930
  %932 = load double, ptr %931, align 8, !tbaa !11
  %933 = load ptr, ptr %16, align 8, !tbaa !9
  %934 = load i32, ptr %22, align 4, !tbaa !5
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds double, ptr %933, i64 %935
  %937 = load double, ptr %936, align 8, !tbaa !11
  %938 = load ptr, ptr %13, align 8, !tbaa !9
  %939 = load i32, ptr %22, align 4, !tbaa !5
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds double, ptr %938, i64 %940
  %942 = load double, ptr %941, align 8, !tbaa !11
  %943 = fcmp oge double %937, %942
  br i1 %943, label %944, label %950

944:                                              ; preds = %927
  %945 = load ptr, ptr %16, align 8, !tbaa !9
  %946 = load i32, ptr %22, align 4, !tbaa !5
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds double, ptr %945, i64 %947
  %949 = load double, ptr %948, align 8, !tbaa !11
  br label %956

950:                                              ; preds = %927
  %951 = load ptr, ptr %13, align 8, !tbaa !9
  %952 = load i32, ptr %22, align 4, !tbaa !5
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds double, ptr %951, i64 %953
  %955 = load double, ptr %954, align 8, !tbaa !11
  br label %956

956:                                              ; preds = %950, %944
  %957 = phi double [ %949, %944 ], [ %955, %950 ]
  %958 = fsub double %932, %957
  %959 = load ptr, ptr %16, align 8, !tbaa !9
  %960 = load i32, ptr %22, align 4, !tbaa !5
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds double, ptr %959, i64 %961
  %963 = load double, ptr %962, align 8, !tbaa !11
  %964 = load ptr, ptr %13, align 8, !tbaa !9
  %965 = load i32, ptr %22, align 4, !tbaa !5
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds double, ptr %964, i64 %966
  %968 = load double, ptr %967, align 8, !tbaa !11
  %969 = fcmp oge double %963, %968
  br i1 %969, label %970, label %976

970:                                              ; preds = %956
  %971 = load ptr, ptr %13, align 8, !tbaa !9
  %972 = load i32, ptr %22, align 4, !tbaa !5
  %973 = sext i32 %972 to i64
  %974 = getelementptr inbounds double, ptr %971, i64 %973
  %975 = load double, ptr %974, align 8, !tbaa !11
  br label %982

976:                                              ; preds = %956
  %977 = load ptr, ptr %16, align 8, !tbaa !9
  %978 = load i32, ptr %22, align 4, !tbaa !5
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds double, ptr %977, i64 %979
  %981 = load double, ptr %980, align 8, !tbaa !11
  br label %982

982:                                              ; preds = %976, %970
  %983 = phi double [ %975, %970 ], [ %981, %976 ]
  %984 = load ptr, ptr %15, align 8, !tbaa !9
  %985 = load i32, ptr %22, align 4, !tbaa !5
  %986 = sext i32 %985 to i64
  %987 = getelementptr inbounds double, ptr %984, i64 %986
  %988 = load double, ptr %987, align 8, !tbaa !11
  %989 = fsub double %983, %988
  %990 = fadd double %958, %989
  br label %992

991:                                              ; preds = %920
  br label %992

992:                                              ; preds = %991, %982
  %993 = phi double [ %990, %982 ], [ 0.000000e+00, %991 ]
  br label %994

994:                                              ; preds = %992, %908
  %995 = phi double [ %919, %908 ], [ %993, %992 ]
  br label %996

996:                                              ; preds = %994, %888
  %997 = phi double [ %900, %888 ], [ %995, %994 ]
  %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 3
  %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, 0
  br i1 %1003, label %1004, label %1017

1004:                                             ; preds = %996
  %1005 = load ptr, ptr %16, align 8, !tbaa !9
  %1006 = load i32, ptr %24, align 4, !tbaa !5
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds double, ptr %1005, i64 %1007
  %1009 = load double, ptr %1008, align 8, !tbaa !11
  %1010 = load ptr, ptr %13, align 8, !tbaa !9
  %1011 = load i32, ptr %24, align 4, !tbaa !5
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds double, ptr %1010, i64 %1012
  %1014 = load double, ptr %1013, align 8, !tbaa !11
  %1015 = fsub double %1009, %1014
  %1016 = call double @llvm.fabs.f64(double %1015)
  br label %1112

1017:                                             ; preds = %996
  %1018 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1019 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1018, i32 0, i32 8
  %1020 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1019, i64 0, i64 3
  %1021 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1020, i32 0, i32 1
  %1022 = load i32, ptr %1021, align 4, !tbaa !15
  %1023 = icmp eq i32 %1022, 1
  br i1 %1023, label %1024, label %1036

1024:                                             ; preds = %1017
  %1025 = load ptr, ptr %14, align 8, !tbaa !9
  %1026 = load i32, ptr %24, align 4, !tbaa !5
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds double, ptr %1025, i64 %1027
  %1029 = load double, ptr %1028, align 8, !tbaa !11
  %1030 = load ptr, ptr %15, align 8, !tbaa !9
  %1031 = load i32, ptr %24, align 4, !tbaa !5
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds double, ptr %1030, i64 %1032
  %1034 = load double, ptr %1033, align 8, !tbaa !11
  %1035 = fsub double %1029, %1034
  br label %1110

1036:                                             ; preds = %1017
  %1037 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1038 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1037, i32 0, i32 8
  %1039 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1038, i64 0, i64 3
  %1040 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1039, i32 0, i32 1
  %1041 = load i32, ptr %1040, align 4, !tbaa !15
  %1042 = icmp eq i32 %1041, 2
  br i1 %1042, label %1043, label %1107

1043:                                             ; preds = %1036
  %1044 = load ptr, ptr %14, align 8, !tbaa !9
  %1045 = load i32, ptr %24, align 4, !tbaa !5
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds double, ptr %1044, i64 %1046
  %1048 = load double, ptr %1047, align 8, !tbaa !11
  %1049 = load ptr, ptr %16, align 8, !tbaa !9
  %1050 = load i32, ptr %24, align 4, !tbaa !5
  %1051 = sext i32 %1050 to i64
  %1052 = getelementptr inbounds double, ptr %1049, i64 %1051
  %1053 = load double, ptr %1052, align 8, !tbaa !11
  %1054 = load ptr, ptr %13, align 8, !tbaa !9
  %1055 = load i32, ptr %24, align 4, !tbaa !5
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds double, ptr %1054, i64 %1056
  %1058 = load double, ptr %1057, align 8, !tbaa !11
  %1059 = fcmp oge double %1053, %1058
  br i1 %1059, label %1060, label %1066

1060:                                             ; preds = %1043
  %1061 = load ptr, ptr %16, align 8, !tbaa !9
  %1062 = load i32, ptr %24, align 4, !tbaa !5
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds double, ptr %1061, i64 %1063
  %1065 = load double, ptr %1064, align 8, !tbaa !11
  br label %1072

1066:                                             ; preds = %1043
  %1067 = load ptr, ptr %13, align 8, !tbaa !9
  %1068 = load i32, ptr %24, align 4, !tbaa !5
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds double, ptr %1067, i64 %1069
  %1071 = load double, ptr %1070, align 8, !tbaa !11
  br label %1072

1072:                                             ; preds = %1066, %1060
  %1073 = phi double [ %1065, %1060 ], [ %1071, %1066 ]
  %1074 = fsub double %1048, %1073
  %1075 = load ptr, ptr %16, align 8, !tbaa !9
  %1076 = load i32, ptr %24, align 4, !tbaa !5
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds double, ptr %1075, i64 %1077
  %1079 = load double, ptr %1078, align 8, !tbaa !11
  %1080 = load ptr, ptr %13, align 8, !tbaa !9
  %1081 = load i32, ptr %24, align 4, !tbaa !5
  %1082 = sext i32 %1081 to i64
  %1083 = getelementptr inbounds double, ptr %1080, i64 %1082
  %1084 = load double, ptr %1083, align 8, !tbaa !11
  %1085 = fcmp oge double %1079, %1084
  br i1 %1085, label %1086, label %1092

1086:                                             ; preds = %1072
  %1087 = load ptr, ptr %13, align 8, !tbaa !9
  %1088 = load i32, ptr %24, align 4, !tbaa !5
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds double, ptr %1087, i64 %1089
  %1091 = load double, ptr %1090, align 8, !tbaa !11
  br label %1098

1092:                                             ; preds = %1072
  %1093 = load ptr, ptr %16, align 8, !tbaa !9
  %1094 = load i32, ptr %24, align 4, !tbaa !5
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds double, ptr %1093, i64 %1095
  %1097 = load double, ptr %1096, align 8, !tbaa !11
  br label %1098

1098:                                             ; preds = %1092, %1086
  %1099 = phi double [ %1091, %1086 ], [ %1097, %1092 ]
  %1100 = load ptr, ptr %15, align 8, !tbaa !9
  %1101 = load i32, ptr %24, align 4, !tbaa !5
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds double, ptr %1100, i64 %1102
  %1104 = load double, ptr %1103, align 8, !tbaa !11
  %1105 = fsub double %1099, %1104
  %1106 = fadd double %1074, %1105
  br label %1108

1107:                                             ; preds = %1036
  br label %1108

1108:                                             ; preds = %1107, %1098
  %1109 = phi double [ %1106, %1098 ], [ 0.000000e+00, %1107 ]
  br label %1110

1110:                                             ; preds = %1108, %1024
  %1111 = phi double [ %1035, %1024 ], [ %1109, %1108 ]
  br label %1112

1112:                                             ; preds = %1110, %1004
  %1113 = phi double [ %1016, %1004 ], [ %1111, %1110 ]
  %1114 = fsub double %997, %1113
  %1115 = load double, ptr %20, align 8, !tbaa !11
  %1116 = fadd double %1115, %1114
  store double %1116, ptr %20, align 8, !tbaa !11
  %1117 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1118 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1117, i32 0, i32 8
  %1119 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1118, i64 0, i64 7
  %1120 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1119, i32 0, i32 1
  %1121 = load i32, ptr %1120, align 4, !tbaa !15
  %1122 = icmp eq i32 %1121, 0
  br i1 %1122, label %1123, label %1136

1123:                                             ; preds = %1112
  %1124 = load ptr, ptr %16, align 8, !tbaa !9
  %1125 = load i32, ptr %22, align 4, !tbaa !5
  %1126 = sext i32 %1125 to i64
  %1127 = getelementptr inbounds double, ptr %1124, i64 %1126
  %1128 = load double, ptr %1127, align 8, !tbaa !11
  %1129 = load ptr, ptr %13, align 8, !tbaa !9
  %1130 = load i32, ptr %22, align 4, !tbaa !5
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds double, ptr %1129, i64 %1131
  %1133 = load double, ptr %1132, align 8, !tbaa !11
  %1134 = fsub double %1128, %1133
  %1135 = call double @llvm.fabs.f64(double %1134)
  br label %1231

1136:                                             ; preds = %1112
  %1137 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1138 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1137, i32 0, i32 8
  %1139 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1138, i64 0, i64 7
  %1140 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1139, i32 0, i32 1
  %1141 = load i32, ptr %1140, align 4, !tbaa !15
  %1142 = icmp eq i32 %1141, 1
  br i1 %1142, label %1143, label %1155

1143:                                             ; preds = %1136
  %1144 = load ptr, ptr %14, align 8, !tbaa !9
  %1145 = load i32, ptr %22, align 4, !tbaa !5
  %1146 = sext i32 %1145 to i64
  %1147 = getelementptr inbounds double, ptr %1144, i64 %1146
  %1148 = load double, ptr %1147, align 8, !tbaa !11
  %1149 = load ptr, ptr %15, align 8, !tbaa !9
  %1150 = load i32, ptr %22, align 4, !tbaa !5
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds double, ptr %1149, i64 %1151
  %1153 = load double, ptr %1152, align 8, !tbaa !11
  %1154 = fsub double %1148, %1153
  br label %1229

1155:                                             ; preds = %1136
  %1156 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1157 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1156, i32 0, i32 8
  %1158 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1157, i64 0, i64 7
  %1159 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1158, i32 0, i32 1
  %1160 = load i32, ptr %1159, align 4, !tbaa !15
  %1161 = icmp eq i32 %1160, 2
  br i1 %1161, label %1162, label %1226

1162:                                             ; preds = %1155
  %1163 = load ptr, ptr %14, align 8, !tbaa !9
  %1164 = load i32, ptr %22, align 4, !tbaa !5
  %1165 = sext i32 %1164 to i64
  %1166 = getelementptr inbounds double, ptr %1163, i64 %1165
  %1167 = load double, ptr %1166, align 8, !tbaa !11
  %1168 = load ptr, ptr %16, align 8, !tbaa !9
  %1169 = load i32, ptr %22, align 4, !tbaa !5
  %1170 = sext i32 %1169 to i64
  %1171 = getelementptr inbounds double, ptr %1168, i64 %1170
  %1172 = load double, ptr %1171, align 8, !tbaa !11
  %1173 = load ptr, ptr %13, align 8, !tbaa !9
  %1174 = load i32, ptr %22, align 4, !tbaa !5
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds double, ptr %1173, i64 %1175
  %1177 = load double, ptr %1176, align 8, !tbaa !11
  %1178 = fcmp oge double %1172, %1177
  br i1 %1178, label %1179, label %1185

1179:                                             ; preds = %1162
  %1180 = load ptr, ptr %16, align 8, !tbaa !9
  %1181 = load i32, ptr %22, align 4, !tbaa !5
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds double, ptr %1180, i64 %1182
  %1184 = load double, ptr %1183, align 8, !tbaa !11
  br label %1191

1185:                                             ; preds = %1162
  %1186 = load ptr, ptr %13, align 8, !tbaa !9
  %1187 = load i32, ptr %22, align 4, !tbaa !5
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds double, ptr %1186, i64 %1188
  %1190 = load double, ptr %1189, align 8, !tbaa !11
  br label %1191

1191:                                             ; preds = %1185, %1179
  %1192 = phi double [ %1184, %1179 ], [ %1190, %1185 ]
  %1193 = fsub double %1167, %1192
  %1194 = load ptr, ptr %16, align 8, !tbaa !9
  %1195 = load i32, ptr %22, align 4, !tbaa !5
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds double, ptr %1194, i64 %1196
  %1198 = load double, ptr %1197, align 8, !tbaa !11
  %1199 = load ptr, ptr %13, align 8, !tbaa !9
  %1200 = load i32, ptr %22, align 4, !tbaa !5
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds double, ptr %1199, i64 %1201
  %1203 = load double, ptr %1202, align 8, !tbaa !11
  %1204 = fcmp oge double %1198, %1203
  br i1 %1204, label %1205, label %1211

1205:                                             ; preds = %1191
  %1206 = load ptr, ptr %13, align 8, !tbaa !9
  %1207 = load i32, ptr %22, align 4, !tbaa !5
  %1208 = sext i32 %1207 to i64
  %1209 = getelementptr inbounds double, ptr %1206, i64 %1208
  %1210 = load double, ptr %1209, align 8, !tbaa !11
  br label %1217

1211:                                             ; preds = %1191
  %1212 = load ptr, ptr %16, align 8, !tbaa !9
  %1213 = load i32, ptr %22, align 4, !tbaa !5
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds double, ptr %1212, i64 %1214
  %1216 = load double, ptr %1215, align 8, !tbaa !11
  br label %1217

1217:                                             ; preds = %1211, %1205
  %1218 = phi double [ %1210, %1205 ], [ %1216, %1211 ]
  %1219 = load ptr, ptr %15, align 8, !tbaa !9
  %1220 = load i32, ptr %22, align 4, !tbaa !5
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds double, ptr %1219, i64 %1221
  %1223 = load double, ptr %1222, align 8, !tbaa !11
  %1224 = fsub double %1218, %1223
  %1225 = fadd double %1193, %1224
  br label %1227

1226:                                             ; preds = %1155
  br label %1227

1227:                                             ; preds = %1226, %1217
  %1228 = phi double [ %1225, %1217 ], [ 0.000000e+00, %1226 ]
  br label %1229

1229:                                             ; preds = %1227, %1143
  %1230 = phi double [ %1154, %1143 ], [ %1228, %1227 ]
  br label %1231

1231:                                             ; preds = %1229, %1123
  %1232 = phi double [ %1135, %1123 ], [ %1230, %1229 ]
  %1233 = load ptr, ptr @TA_Globals, align 8, !tbaa !9
  %1234 = getelementptr inbounds %struct.TA_LibcPriv, ptr %1233, i32 0, i32 8
  %1235 = getelementptr inbounds [11 x %struct.TA_CandleSetting], ptr %1234, i64 0, i64 7
  %1236 = getelementptr inbounds %struct.TA_CandleSetting, ptr %1235, i32 0, i32 1
  %1237 = load i32, ptr %1236, align 4, !tbaa !15
  %1238 = icmp eq i32 %1237, 0
  br i1 %1238, label %1239, label %1252

1239:                                             ; preds = %1231
  %1240 = load ptr, ptr %16, align 8, !tbaa !9
  %1241 = load i32, ptr %25, align 4, !tbaa !5
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds double, ptr %1240, i64 %1242
  %1244 = load double, ptr %1243, align 8, !tbaa !11
  %1245 = load ptr, ptr %13, align 8, !tbaa !9
  %1246 = load i32, ptr %25, align 4, !tbaa !5
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds double, ptr %1245, i64 %1247
  %1249 = load double, ptr %1248, align 8, !tbaa !11
  %1250 = fsub double %1244, %1249
  %1251 = call double @llvm.fabs.f64(double %1250)
  br label %1347

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

1259:                                             ; preds = %1252
  %1260 = load ptr, ptr %14, align 8, !tbaa !9
  %1261 = load i32, ptr %25, align 4, !tbaa !5
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds double, ptr %1260, i64 %1262
  %1264 = load double, ptr %1263, align 8, !tbaa !11
  %1265 = load ptr, ptr %15, align 8, !tbaa !9
  %1266 = load i32, ptr %25, align 4, !tbaa !5
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds double, ptr %1265, i64 %1267
  %1269 = load double, ptr %1268, align 8, !tbaa !11
  %1270 = fsub double %1264, %1269
  br label %1345

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

1278:                                             ; preds = %1271
  %1279 = load ptr, ptr %14, align 8, !tbaa !9
  %1280 = load i32, ptr %25, align 4, !tbaa !5
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds double, ptr %1279, i64 %1281
  %1283 = load double, ptr %1282, align 8, !tbaa !11
  %1284 = load ptr, ptr %16, align 8, !tbaa !9
  %1285 = load i32, ptr %25, align 4, !tbaa !5
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds double, ptr %1284, i64 %1286
  %1288 = load double, ptr %1287, align 8, !tbaa !11
  %1289 = load ptr, ptr %13, align 8, !tbaa !9
  %1290 = load i32, ptr %25, align 4, !tbaa !5
  %1291 = sext i32 %1290 to i64
  %1292 = getelementptr inbounds double, ptr %1289, i64 %1291
  %1293 = load double, ptr %1292, align 8, !tbaa !11
  %1294 = fcmp oge double %1288, %1293
  br i1 %1294, label %1295, label %1301

1295:                                             ; preds = %1278
  %1296 = load ptr, ptr %16, align 8, !tbaa !9
  %1297 = load i32, ptr %25, align 4, !tbaa !5
  %1298 = sext i32 %1297 to i64
  %1299 = getelementptr inbounds double, ptr %1296, i64 %1298
  %1300 = load double, ptr %1299, align 8, !tbaa !11
  br label %1307

1301:                                             ; preds = %1278
  %1302 = load ptr, ptr %13, align 8, !tbaa !9
  %1303 = load i32, ptr %25, align 4, !tbaa !5
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds double, ptr %1302, i64 %1304
  %1306 = load double, ptr %1305, align 8, !tbaa !11
  br label %1307

1307:                                             ; preds = %1301, %1295
  %1308 = phi double [ %1300, %1295 ], [ %1306, %1301 ]
  %1309 = fsub double %1283, %1308
  %1310 = load ptr, ptr %16, align 8, !tbaa !9
  %1311 = load i32, ptr %25, align 4, !tbaa !5
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds double, ptr %1310, i64 %1312
  %1314 = load double, ptr %1313, align 8, !tbaa !11
  %1315 = load ptr, ptr %13, align 8, !tbaa !9
  %1316 = load i32, ptr %25, align 4, !tbaa !5
  %1317 = sext i32 %1316 to i64
  %1318 = getelementptr inbounds double, ptr %1315, i64 %1317
  %1319 = load double, ptr %1318, align 8, !tbaa !11
  %1320 = fcmp oge double %1314, %1319
  br i1 %1320, label %1321, label %1327

1321:                                             ; preds = %1307
  %1322 = load ptr, ptr %13, align 8, !tbaa !9
  %1323 = load i32, ptr %25, align 4, !tbaa !5
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds double, ptr %1322, i64 %1324
  %1326 = load double, ptr %1325, align 8, !tbaa !11
  br label %1333

1327:                                             ; preds = %1307
  %1328 = load ptr, ptr %16, align 8, !tbaa !9
  %1329 = load i32, ptr %25, align 4, !tbaa !5
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds double, ptr %1328, i64 %1330
  %1332 = load double, ptr %1331, align 8, !tbaa !11
  br label %1333

1333:                                             ; preds = %1327, %1321
  %1334 = phi double [ %1326, %1321 ], [ %1332, %1327 ]
  %1335 = load ptr, ptr %15, align 8, !tbaa !9
  %1336 = load i32, ptr %25, align 4, !tbaa !5
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds double, ptr %1335, i64 %1337
  %1339 = load double, ptr %1338, align 8, !tbaa !11
  %1340 = fsub double %1334, %1339
  %1341 = fadd double %1309, %1340
  br label %1343

1342:                                             ; preds = %1271
  br label %1343

1343:                                             ; preds = %1342, %1333
  %1344 = phi double [ %1341, %1333 ], [ 0.000000e+00, %1342 ]
  br label %1345

1345:                                             ; preds = %1343, %1259
  %1346 = phi double [ %1270, %1259 ], [ %1344, %1343 ]
  br label %1347

1347:                                             ; preds = %1345, %1239
  %1348 = phi double [ %1251, %1239 ], [ %1346, %1345 ]
  %1349 = fsub double %1232, %1348
  %1350 = load double, ptr %21, align 8, !tbaa !11
  %1351 = fadd double %1350, %1349
  store double %1351, ptr %21, align 8, !tbaa !11
  %1352 = load i32, ptr %22, align 4, !tbaa !5
  %1353 = add nsw i32 %1352, 1
  store i32 %1353, ptr %22, align 4, !tbaa !5
  %1354 = load i32, ptr %24, align 4, !tbaa !5
  %1355 = add nsw i32 %1354, 1
  store i32 %1355, ptr %24, align 4, !tbaa !5
  %1356 = load i32, ptr %25, align 4, !tbaa !5
  %1357 = add nsw i32 %1356, 1
  store i32 %1357, ptr %25, align 4, !tbaa !5
  br label %1358

1358:                                             ; preds = %1347
  %1359 = load i32, ptr %22, align 4, !tbaa !5
  %1360 = load i32, ptr %12, align 4, !tbaa !5
  %1361 = icmp sle i32 %1359, %1360
  br i1 %1361, label %339, label %1362, !llvm.loop !20

1362:                                             ; preds = %1358
  %1363 = load i32, ptr %23, align 4, !tbaa !5
  %1364 = load ptr, ptr %18, align 8, !tbaa !9
  store i32 %1363, ptr %1364, align 4, !tbaa !5
  %1365 = load i32, ptr %11, align 4, !tbaa !5
  %1366 = load ptr, ptr %17, align 8, !tbaa !9
  store i32 %1365, ptr %1366, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  store i32 1, ptr %27, align 4
  br label %1367

1367:                                             ; preds = %1362, %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
  %1368 = load i32, ptr %10, align 4
  ret i32 %1368
}

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

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

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

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

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

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


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

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

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

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

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

.lr.ph:                                           ; preds = %25
  %34 = getelementptr inbounds i8, ptr %26, i64 284
  %35 = load i32, ptr %34, align 4, !tbaa !14
  switch i32 %35, label %.preheader426 [
    i32 0, label %.lr.ph.split.us.preheader
    i32 1, label %.lr.ph.split.us429.preheader
    i32 2, label %.lr.ph.split.us434.preheader
  ]

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

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

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

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.preheader, %.lr.ph.split.us
  %indvars.iv479 = phi i64 [ %40, %.lr.ph.split.us.preheader ], [ %indvars.iv.next480, %.lr.ph.split.us ]
  %.0334427.us = phi double [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %48, %.lr.ph.split.us ]
  %42 = getelementptr inbounds double, ptr %5, i64 %indvars.iv479
  %43 = load double, ptr %42, align 8, !tbaa !15
  %44 = getelementptr inbounds double, ptr %2, i64 %indvars.iv479
  %45 = load double, ptr %44, align 8, !tbaa !15
  %46 = fsub double %43, %45
  %47 = tail call double @llvm.fabs.f64(double %46)
  %48 = fadd double %.0334427.us, %47
  %indvars.iv.next480 = add nsw i64 %indvars.iv479, 1
  %49 = icmp slt i64 %indvars.iv.next480, %41
  br i1 %49, label %.lr.ph.split.us, label %.preheader426, !llvm.loop !16

.lr.ph.split.us429:                               ; preds = %.lr.ph.split.us429.preheader, %.lr.ph.split.us429
  %indvars.iv476 = phi i64 [ %38, %.lr.ph.split.us429.preheader ], [ %indvars.iv.next477, %.lr.ph.split.us429 ]
  %.0334427.us431 = phi double [ 0.000000e+00, %.lr.ph.split.us429.preheader ], [ %55, %.lr.ph.split.us429 ]
  %50 = getelementptr inbounds double, ptr %3, i64 %indvars.iv476
  %51 = load double, ptr %50, align 8, !tbaa !15
  %52 = getelementptr inbounds double, ptr %4, i64 %indvars.iv476
  %53 = load double, ptr %52, align 8, !tbaa !15
  %54 = fsub double %51, %53
  %55 = fadd double %.0334427.us431, %54
  %indvars.iv.next477 = add nsw i64 %indvars.iv476, 1
  %56 = icmp slt i64 %indvars.iv.next477, %39
  br i1 %56, label %.lr.ph.split.us429, label %.preheader426, !llvm.loop !16

.lr.ph.split.us434:                               ; preds = %.lr.ph.split.us434.preheader, %.lr.ph.split.us434
  %indvars.iv = phi i64 [ %36, %.lr.ph.split.us434.preheader ], [ %indvars.iv.next, %.lr.ph.split.us434 ]
  %.0334427.us436 = phi double [ 0.000000e+00, %.lr.ph.split.us434.preheader ], [ %70, %.lr.ph.split.us434 ]
  %57 = getelementptr inbounds double, ptr %3, i64 %indvars.iv
  %58 = load double, ptr %57, align 8, !tbaa !15
  %59 = getelementptr inbounds double, ptr %5, i64 %indvars.iv
  %60 = load double, ptr %59, align 8, !tbaa !15
  %61 = getelementptr inbounds double, ptr %2, i64 %indvars.iv
  %62 = load double, ptr %61, align 8, !tbaa !15
  %63 = fcmp ult double %60, %62
  %..us = select i1 %63, double %62, double %60
  %64 = fsub double %58, %..us
  %65 = select i1 %63, double %60, double %62
  %66 = getelementptr inbounds double, ptr %4, i64 %indvars.iv
  %67 = load double, ptr %66, align 8, !tbaa !15
  %68 = fsub double %65, %67
  %69 = fadd double %64, %68
  %70 = fadd double %.0334427.us436, %69
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %71 = icmp slt i64 %indvars.iv.next, %37
  br i1 %71, label %.lr.ph.split.us434, label %.preheader426, !llvm.loop !16

.preheader426:                                    ; preds = %.lr.ph.split.us434, %.lr.ph.split.us429, %.lr.ph.split.us, %.lr.ph, %25
  %.0334.lcssa = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %.lr.ph ], [ %48, %.lr.ph.split.us ], [ %55, %.lr.ph.split.us429 ], [ %70, %.lr.ph.split.us434 ]
  %72 = icmp sgt i32 %31, 0
  br i1 %72, label %.lr.ph441, label %.preheader

.lr.ph441:                                        ; preds = %.preheader426
  %73 = getelementptr inbounds i8, ptr %26, i64 380
  %74 = load i32, ptr %73, align 4, !tbaa !14
  switch i32 %74, label %.lr.ph441.split.preheader [
    i32 0, label %.lr.ph441.split.us.preheader
    i32 1, label %.lr.ph441.split.us446.preheader
    i32 2, label %.lr.ph441.split.us453.preheader
  ]

.lr.ph441.split.us453.preheader:                  ; preds = %.lr.ph441
  %75 = sext i32 %32 to i64
  %76 = zext nneg i32 %spec.select to i64
  br label %.lr.ph441.split.us453

.lr.ph441.split.us446.preheader:                  ; preds = %.lr.ph441
  %77 = sext i32 %32 to i64
  %78 = zext nneg i32 %spec.select to i64
  br label %.lr.ph441.split.us446

.lr.ph441.split.us.preheader:                     ; preds = %.lr.ph441
  %79 = sext i32 %32 to i64
  %80 = zext nneg i32 %spec.select to i64
  br label %.lr.ph441.split.us

.lr.ph441.split.preheader:                        ; preds = %.lr.ph441
  %81 = add nuw i32 %spec.select, 1
  %82 = sub i32 %81, %31
  %smax491 = tail call i32 @llvm.smax.i32(i32 %spec.select, i32 %82)
  br label %.preheader

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

.lr.ph441.split.us446:                            ; preds = %.lr.ph441.split.us446.preheader, %.lr.ph441.split.us446
  %indvars.iv485 = phi i64 [ %77, %.lr.ph441.split.us446.preheader ], [ %indvars.iv.next486, %.lr.ph441.split.us446 ]
  %.0332439.us448 = phi double [ 0.000000e+00, %.lr.ph441.split.us446.preheader ], [ %96, %.lr.ph441.split.us446 ]
  %91 = getelementptr inbounds double, ptr %3, i64 %indvars.iv485
  %92 = load double, ptr %91, align 8, !tbaa !15
  %93 = getelementptr inbounds double, ptr %4, i64 %indvars.iv485
  %94 = load double, ptr %93, align 8, !tbaa !15
  %95 = fsub double %92, %94
  %96 = fadd double %.0332439.us448, %95
  %indvars.iv.next486 = add nsw i64 %indvars.iv485, 1
  %97 = icmp slt i64 %indvars.iv.next486, %78
  br i1 %97, label %.lr.ph441.split.us446, label %.preheader.loopexit461, !llvm.loop !18

.lr.ph441.split.us453:                            ; preds = %.lr.ph441.split.us453.preheader, %.lr.ph441.split.us453
  %indvars.iv482 = phi i64 [ %75, %.lr.ph441.split.us453.preheader ], [ %indvars.iv.next483, %.lr.ph441.split.us453 ]
  %.0332439.us455 = phi double [ 0.000000e+00, %.lr.ph441.split.us453.preheader ], [ %111, %.lr.ph441.split.us453 ]
  %98 = getelementptr inbounds double, ptr %3, i64 %indvars.iv482
  %99 = load double, ptr %98, align 8, !tbaa !15
  %100 = getelementptr inbounds double, ptr %5, i64 %indvars.iv482
  %101 = load double, ptr %100, align 8, !tbaa !15
  %102 = getelementptr inbounds double, ptr %2, i64 %indvars.iv482
  %103 = load double, ptr %102, align 8, !tbaa !15
  %104 = fcmp ult double %101, %103
  %.403.us = select i1 %104, double %103, double %101
  %105 = fsub double %99, %.403.us
  %106 = select i1 %104, double %101, double %103
  %107 = getelementptr inbounds double, ptr %4, i64 %indvars.iv482
  %108 = load double, ptr %107, align 8, !tbaa !15
  %109 = fsub double %106, %108
  %110 = fadd double %105, %109
  %111 = fadd double %.0332439.us455, %110
  %indvars.iv.next483 = add nsw i64 %indvars.iv482, 1
  %112 = icmp slt i64 %indvars.iv.next483, %76
  br i1 %112, label %.lr.ph441.split.us453, label %.preheader.loopexit462, !llvm.loop !18

.preheader.loopexit460:                           ; preds = %.lr.ph441.split.us
  %113 = trunc nsw i64 %indvars.iv.next489 to i32
  br label %.preheader

.preheader.loopexit461:                           ; preds = %.lr.ph441.split.us446
  %114 = trunc nsw i64 %indvars.iv.next486 to i32
  br label %.preheader

.preheader.loopexit462:                           ; preds = %.lr.ph441.split.us453
  %115 = trunc nsw i64 %indvars.iv.next483 to i32
  br label %.preheader

.preheader:                                       ; preds = %.preheader.loopexit462, %.preheader.loopexit461, %.preheader.loopexit460, %.lr.ph441.split.preheader, %.preheader426
  %.0332.lcssa = phi double [ 0.000000e+00, %.preheader426 ], [ 0.000000e+00, %.lr.ph441.split.preheader ], [ %89, %.preheader.loopexit460 ], [ %96, %.preheader.loopexit461 ], [ %111, %.preheader.loopexit462 ]
  %.1331.lcssa = phi i32 [ %32, %.preheader426 ], [ %smax491, %.lr.ph441.split.preheader ], [ %113, %.preheader.loopexit460 ], [ %114, %.preheader.loopexit461 ], [ %115, %.preheader.loopexit462 ]
  %116 = getelementptr inbounds i8, ptr %26, i64 296
  %117 = load double, ptr %116, align 8, !tbaa !19
  %118 = getelementptr inbounds i8, ptr %26, i64 284
  %119 = getelementptr inbounds i8, ptr %26, i64 380
  %120 = getelementptr inbounds i8, ptr %26, i64 392
  %121 = zext i32 %.1331.lcssa to i64
  %122 = sext i32 %29 to i64
  %123 = sext i32 %32 to i64
  %smax507 = tail call i32 @llvm.smax.i32(i32 %.1331.lcssa, i32 %1)
  %124 = add i32 %smax507, 1
  %125 = sub i32 %124, %.1331.lcssa
  %wide.trip.count = zext i32 %125 to i64
  br label %126

126:                                              ; preds = %.preheader, %292
  %indvars.iv498 = phi i64 [ %123, %.preheader ], [ %indvars.iv.next499, %292 ]
  %indvars.iv496 = phi i64 [ %122, %.preheader ], [ %indvars.iv.next497, %292 ]
  %indvars.iv494 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next495, %292 ]
  %indvars.iv492 = phi i64 [ %121, %.preheader ], [ %indvars.iv.next493, %292 ]
  %.1335 = phi double [ %.0334.lcssa, %.preheader ], [ %252, %292 ]
  %.1333 = phi double [ %.0332.lcssa, %.preheader ], [ %296, %292 ]
  %127 = getelementptr inbounds double, ptr %5, i64 %indvars.iv492
  %128 = load double, ptr %127, align 8, !tbaa !15
  %129 = getelementptr inbounds double, ptr %2, i64 %indvars.iv492
  %130 = load double, ptr %129, align 8, !tbaa !15
  %131 = fsub double %128, %130
  %132 = tail call double @llvm.fabs.f64(double %131)
  %133 = load i32, ptr %27, align 8, !tbaa !11
  %.not398 = icmp eq i32 %133, 0
  br i1 %.not398, label %134, label %151

134:                                              ; preds = %126
  %135 = load i32, ptr %118, align 4, !tbaa !14
  switch i32 %135, label %.fold.split [
    i32 0, label %.thread510
    i32 1, label %136
    i32 2, label %.thread512
  ]

136:                                              ; preds = %134
  %137 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %138 = load double, ptr %137, align 8, !tbaa !15
  %139 = getelementptr inbounds double, ptr %4, i64 %indvars.iv492
  %140 = load double, ptr %139, align 8, !tbaa !15
  %141 = fsub double %138, %140
  br label %.thread510

.thread512:                                       ; preds = %134
  %142 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %143 = load double, ptr %142, align 8, !tbaa !15
  %144 = fcmp ult double %128, %130
  %.404 = select i1 %144, double %130, double %128
  %145 = fsub double %143, %.404
  %146 = select i1 %144, double %128, double %130
  %147 = getelementptr inbounds double, ptr %4, i64 %indvars.iv492
  %148 = load double, ptr %147, align 8, !tbaa !15
  %149 = fsub double %146, %148
  %150 = fadd double %145, %149
  br label %.thread510

.fold.split:                                      ; preds = %134
  br label %.thread510

151:                                              ; preds = %126
  %152 = sitofp i32 %133 to double
  %153 = fdiv double %.1335, %152
  %.pre = load i32, ptr %118, align 4, !tbaa !14
  %.pre.fr = freeze i32 %.pre
  %154 = icmp eq i32 %.pre.fr, 2
  br i1 %154, label %155, label %.thread510

155:                                              ; preds = %151
  br label %.thread510

.thread510:                                       ; preds = %.fold.split, %134, %136, %.thread512, %151, %155
  %.pn = phi double [ %153, %151 ], [ %150, %.thread512 ], [ %153, %155 ], [ 0.000000e+00, %.fold.split ], [ %132, %134 ], [ %141, %136 ]
  %156 = phi double [ 1.000000e+00, %151 ], [ 2.000000e+00, %.thread512 ], [ 2.000000e+00, %155 ], [ 1.000000e+00, %.fold.split ], [ 1.000000e+00, %134 ], [ 1.000000e+00, %136 ]
  %157 = fmul double %117, %.pn
  %158 = fdiv double %157, %156
  %159 = fcmp ugt double %132, %158
  br i1 %159, label %206, label %160

160:                                              ; preds = %.thread510
  %161 = fcmp ult double %128, %130
  %.405 = select i1 %161, double %128, double %130
  %162 = getelementptr inbounds double, ptr %4, i64 %indvars.iv492
  %163 = load double, ptr %162, align 8, !tbaa !15
  %164 = fsub double %.405, %163
  %165 = load double, ptr %120, align 8, !tbaa !19
  %166 = load i32, ptr %30, align 8, !tbaa !11
  %.not399 = icmp eq i32 %166, 0
  br i1 %.not399, label %167, label %178

167:                                              ; preds = %160
  %168 = load i32, ptr %119, align 4, !tbaa !14
  switch i32 %168, label %.thread517 [
    i32 0, label %169
    i32 1, label %170
    i32 2, label %.thread519
  ]

169:                                              ; preds = %167
  br label %.thread517

170:                                              ; preds = %167
  %171 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %172 = load double, ptr %171, align 8, !tbaa !15
  %173 = fsub double %172, %163
  br label %.thread517

.thread519:                                       ; preds = %167
  %174 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %175 = load double, ptr %174, align 8, !tbaa !15
  %.406 = select i1 %161, double %130, double %128
  %176 = fsub double %175, %.406
  %177 = fadd double %164, %176
  br label %.thread517

178:                                              ; preds = %160
  %179 = sitofp i32 %166 to double
  %180 = fdiv double %.1333, %179
  %.pre508 = load i32, ptr %119, align 4, !tbaa !14
  %.pre508.fr = freeze i32 %.pre508
  %181 = icmp eq i32 %.pre508.fr, 2
  br i1 %181, label %182, label %.thread517

182:                                              ; preds = %178
  br label %.thread517

.thread517:                                       ; preds = %167, %170, %169, %.thread519, %178, %182
  %.pn529 = phi double [ %180, %178 ], [ %177, %.thread519 ], [ %180, %182 ], [ 0.000000e+00, %167 ], [ %173, %170 ], [ %132, %169 ]
  %183 = phi i32 [ %.pre508.fr, %178 ], [ 2, %.thread519 ], [ %.pre508.fr, %182 ], [ %168, %167 ], [ %168, %170 ], [ %168, %169 ]
  %184 = phi double [ 1.000000e+00, %178 ], [ 2.000000e+00, %.thread519 ], [ 2.000000e+00, %182 ], [ 1.000000e+00, %167 ], [ 1.000000e+00, %170 ], [ 1.000000e+00, %169 ]
  %185 = fmul double %165, %.pn529
  %186 = fdiv double %185, %184
  %187 = fcmp olt double %164, %186
  br i1 %187, label %188, label %206

188:                                              ; preds = %.thread517
  %189 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %190 = load double, ptr %189, align 8, !tbaa !15
  %.407 = select i1 %161, double %130, double %128
  %191 = fsub double %190, %.407
  br i1 %.not399, label %195, label %192

192:                                              ; preds = %188
  %193 = sitofp i32 %166 to double
  %194 = fdiv double %.1333, %193
  br label %201

195:                                              ; preds = %188
  switch i32 %183, label %201 [
    i32 0, label %196
    i32 1, label %197
    i32 2, label %199
  ]

196:                                              ; preds = %195
  br label %201

197:                                              ; preds = %195
  %198 = fsub double %190, %163
  br label %201

199:                                              ; preds = %195
  %200 = fadd double %164, %191
  br label %201

201:                                              ; preds = %195, %196, %199, %197, %192
  %202 = phi double [ %194, %192 ], [ %132, %196 ], [ %198, %197 ], [ %200, %199 ], [ 0.000000e+00, %195 ]
  %203 = fmul double %165, %202
  %204 = fdiv double %203, %184
  %205 = fcmp ogt double %191, %204
  br i1 %205, label %207, label %206

206:                                              ; preds = %201, %.thread517, %.thread510
  br label %207

207:                                              ; preds = %201, %206
  %.sink = phi i32 [ 0, %206 ], [ 100, %201 ]
  %208 = getelementptr inbounds i32, ptr %8, i64 %indvars.iv494
  store i32 %.sink, ptr %208, align 4, !tbaa !5
  %indvars.iv.next495 = add nuw nsw i64 %indvars.iv494, 1
  %209 = load i32, ptr %118, align 4, !tbaa !14
  switch i32 %209, label %248 [
    i32 0, label %.thread
    i32 1, label %.thread414
    i32 2, label %.thread415
  ]

.thread414:                                       ; preds = %207
  %210 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %211 = load double, ptr %210, align 8, !tbaa !15
  %212 = getelementptr inbounds double, ptr %4, i64 %indvars.iv492
  %213 = load double, ptr %212, align 8, !tbaa !15
  %214 = fsub double %211, %213
  %215 = getelementptr inbounds double, ptr %3, i64 %indvars.iv496
  %216 = load double, ptr %215, align 8, !tbaa !15
  %217 = getelementptr inbounds double, ptr %4, i64 %indvars.iv496
  %218 = load double, ptr %217, align 8, !tbaa !15
  %219 = fsub double %216, %218
  br label %248

.thread415:                                       ; preds = %207
  %220 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %221 = load double, ptr %220, align 8, !tbaa !15
  %222 = fcmp ult double %128, %130
  %.409 = select i1 %222, double %130, double %128
  %223 = fsub double %221, %.409
  %224 = select i1 %222, double %128, double %130
  %225 = getelementptr inbounds double, ptr %4, i64 %indvars.iv492
  %226 = load double, ptr %225, align 8, !tbaa !15
  %227 = fsub double %224, %226
  %228 = fadd double %223, %227
  %229 = getelementptr inbounds double, ptr %3, i64 %indvars.iv496
  %230 = load double, ptr %229, align 8, !tbaa !15
  %231 = getelementptr inbounds double, ptr %5, i64 %indvars.iv496
  %232 = load double, ptr %231, align 8, !tbaa !15
  %233 = getelementptr inbounds double, ptr %2, i64 %indvars.iv496
  %234 = load double, ptr %233, align 8, !tbaa !15
  %235 = fcmp ult double %232, %234
  %.410 = select i1 %235, double %234, double %232
  %236 = fsub double %230, %.410
  %237 = select i1 %235, double %232, double %234
  %238 = getelementptr inbounds double, ptr %4, i64 %indvars.iv496
  %239 = load double, ptr %238, align 8, !tbaa !15
  %240 = fsub double %237, %239
  %241 = fadd double %236, %240
  br label %248

.thread:                                          ; preds = %207
  %242 = getelementptr inbounds double, ptr %5, i64 %indvars.iv496
  %243 = load double, ptr %242, align 8, !tbaa !15
  %244 = getelementptr inbounds double, ptr %2, i64 %indvars.iv496
  %245 = load double, ptr %244, align 8, !tbaa !15
  %246 = fsub double %243, %245
  %247 = tail call double @llvm.fabs.f64(double %246)
  br label %248

248:                                              ; preds = %207, %.thread414, %.thread415, %.thread
  %249 = phi double [ %132, %.thread ], [ %214, %.thread414 ], [ %228, %.thread415 ], [ 0.000000e+00, %207 ]
  %250 = phi double [ %247, %.thread ], [ %219, %.thread414 ], [ %241, %.thread415 ], [ 0.000000e+00, %207 ]
  %251 = fsub double %249, %250
  %252 = fadd double %.1335, %251
  %253 = load i32, ptr %119, align 4, !tbaa !14
  switch i32 %253, label %292 [
    i32 0, label %.thread416
    i32 1, label %.thread417
    i32 2, label %.thread418
  ]

.thread417:                                       ; preds = %248
  %254 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %255 = load double, ptr %254, align 8, !tbaa !15
  %256 = getelementptr inbounds double, ptr %4, i64 %indvars.iv492
  %257 = load double, ptr %256, align 8, !tbaa !15
  %258 = fsub double %255, %257
  %259 = getelementptr inbounds double, ptr %3, i64 %indvars.iv498
  %260 = load double, ptr %259, align 8, !tbaa !15
  %261 = getelementptr inbounds double, ptr %4, i64 %indvars.iv498
  %262 = load double, ptr %261, align 8, !tbaa !15
  %263 = fsub double %260, %262
  br label %292

.thread418:                                       ; preds = %248
  %264 = getelementptr inbounds double, ptr %3, i64 %indvars.iv492
  %265 = load double, ptr %264, align 8, !tbaa !15
  %266 = fcmp ult double %128, %130
  %.411 = select i1 %266, double %130, double %128
  %267 = fsub double %265, %.411
  %268 = select i1 %266, double %128, double %130
  %269 = getelementptr inbounds double, ptr %4, i64 %indvars.iv492
  %270 = load double, ptr %269, align 8, !tbaa !15
  %271 = fsub double %268, %270
  %272 = fadd double %267, %271
  %273 = getelementptr inbounds double, ptr %3, i64 %indvars.iv498
  %274 = load double, ptr %273, align 8, !tbaa !15
  %275 = getelementptr inbounds double, ptr %5, i64 %indvars.iv498
  %276 = load double, ptr %275, align 8, !tbaa !15
  %277 = getelementptr inbounds double, ptr %2, i64 %indvars.iv498
  %278 = load double, ptr %277, align 8, !tbaa !15
  %279 = fcmp ult double %276, %278
  %.412 = select i1 %279, double %278, double %276
  %280 = fsub double %274, %.412
  %281 = select i1 %279, double %276, double %278
  %282 = getelementptr inbounds double, ptr %4, i64 %indvars.iv498
  %283 = load double, ptr %282, align 8, !tbaa !15
  %284 = fsub double %281, %283
  %285 = fadd double %280, %284
  br label %292

.thread416:                                       ; preds = %248
  %286 = getelementptr inbounds double, ptr %5, i64 %indvars.iv498
  %287 = load double, ptr %286, align 8, !tbaa !15
  %288 = getelementptr inbounds double, ptr %2, i64 %indvars.iv498
  %289 = load double, ptr %288, align 8, !tbaa !15
  %290 = fsub double %287, %289
  %291 = tail call double @llvm.fabs.f64(double %290)
  br label %292

292:                                              ; preds = %248, %.thread417, %.thread418, %.thread416
  %293 = phi double [ %132, %.thread416 ], [ %258, %.thread417 ], [ %272, %.thread418 ], [ 0.000000e+00, %248 ]
  %294 = phi double [ %291, %.thread416 ], [ %263, %.thread417 ], [ %285, %.thread418 ], [ 0.000000e+00, %248 ]
  %295 = fsub double %293, %294
  %296 = fadd double %.1333, %295
  %indvars.iv.next493 = add nuw nsw i64 %indvars.iv492, 1
  %indvars.iv.next497 = add nsw i64 %indvars.iv496, 1
  %indvars.iv.next499 = add nsw i64 %indvars.iv498, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next495, %wide.trip.count
  br i1 %exitcond.not, label %297, label %126, !llvm.loop !20

297:                                              ; preds = %292
  store i32 %125, ptr %7, align 4, !tbaa !5
  store i32 %spec.select, ptr %6, align 4, !tbaa !5
  br label %298

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

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

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

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

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

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


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