; LLVM IR from askforalfred/alfred :: gen/ff_planner (relax)

; 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._EfConn = type { i32, i8, i8, float, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, i32, float, i8, i32, i8, i32, i32 }
%struct._FlConn = type { ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, i8, ptr, ptr, i32, i8, float, i8, ptr, ptr, i8, float, i32 }

@gef_conn = external global ptr, align 8
@gfl_conn = external global ptr, align 8
@gnum_ef_conn = external global i32, align 4
@gnum_fnumeric_goal = external global i32, align 4
@gfnumeric_goal_fl = external global ptr, align 8
@gfnumeric_goal_c = external global ptr, align 8

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

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

; Function Attrs: nounwind uwtable
define dso_local void @get_mneed(i32 noundef %0, ptr noundef %1, ptr noundef %2) #1 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca i8, align 1
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  store ptr %2, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #2
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #2
  store i32 0, ptr %11, align 4, !tbaa !5
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %18

18:                                               ; preds = %459, %3
  %19 = load i32, ptr %7, align 4, !tbaa !5
  %20 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !5
  %21 = icmp slt i32 %19, %20
  br i1 %21, label %22, label %462

22:                                               ; preds = %18
  store i32 0, ptr %8, align 4, !tbaa !5
  br label %23

23:                                               ; preds = %141, %22
  %24 = load i32, ptr %8, align 4, !tbaa !5
  %25 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %26 = load i32, ptr %7, align 4, !tbaa !5
  %27 = sext i32 %26 to i64
  %28 = getelementptr inbounds %struct._EfConn, ptr %25, i64 %27
  %29 = getelementptr inbounds %struct._EfConn, ptr %28, i32 0, i32 9
  %30 = load i32, ptr %29, align 8, !tbaa !11
  %31 = icmp slt i32 %24, %30
  br i1 %31, label %32, label %144

32:                                               ; preds = %23
  %33 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %34 = load i32, ptr %7, align 4, !tbaa !5
  %35 = sext i32 %34 to i64
  %36 = getelementptr inbounds %struct._EfConn, ptr %33, i64 %35
  %37 = getelementptr inbounds %struct._EfConn, ptr %36, i32 0, i32 7
  %38 = load ptr, ptr %37, align 8, !tbaa !14
  %39 = load i32, ptr %8, align 4, !tbaa !5
  %40 = sext i32 %39 to i64
  %41 = getelementptr inbounds i32, ptr %38, i64 %40
  %42 = load i32, ptr %41, align 4, !tbaa !5
  store i32 %42, ptr %10, align 4, !tbaa !5
  %43 = load i32, ptr %10, align 4, !tbaa !5
  %44 = icmp slt i32 %43, 0
  br i1 %44, label %45, label %46

45:                                               ; preds = %32
  br label %141

46:                                               ; preds = %32
  %47 = load i32, ptr %10, align 4, !tbaa !5
  %48 = load i32, ptr %4, align 4, !tbaa !5
  %49 = icmp eq i32 %47, %48
  br i1 %49, label %50, label %74

50:                                               ; preds = %46
  %51 = load i32, ptr %11, align 4, !tbaa !5
  %52 = add nsw i32 %51, 1
  store i32 %52, ptr %11, align 4, !tbaa !5
  %53 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %54 = load i32, ptr %7, align 4, !tbaa !5
  %55 = sext i32 %54 to i64
  %56 = getelementptr inbounds %struct._EfConn, ptr %53, i64 %55
  %57 = getelementptr inbounds %struct._EfConn, ptr %56, i32 0, i32 8
  %58 = load ptr, ptr %57, align 8, !tbaa !15
  %59 = load i32, ptr %8, align 4, !tbaa !5
  %60 = sext i32 %59 to i64
  %61 = getelementptr inbounds float, ptr %58, i64 %60
  %62 = load float, ptr %61, align 4, !tbaa !16
  store float %62, ptr %15, align 4, !tbaa !16
  %63 = load i32, ptr %11, align 4, !tbaa !5
  %64 = icmp eq i32 %63, 1
  br i1 %64, label %70, label %65

65:                                               ; preds = %50
  %66 = load float, ptr %15, align 4, !tbaa !16
  %67 = load ptr, ptr %6, align 8, !tbaa !9
  %68 = load float, ptr %67, align 4, !tbaa !16
  %69 = fcmp ogt float %66, %68
  br i1 %69, label %70, label %73

70:                                               ; preds = %65, %50
  %71 = load float, ptr %15, align 4, !tbaa !16
  %72 = load ptr, ptr %6, align 8, !tbaa !9
  store float %71, ptr %72, align 4, !tbaa !16
  br label %73

73:                                               ; preds = %70, %65
  br label %141

74:                                               ; preds = %46
  %75 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %76 = load i32, ptr %10, align 4, !tbaa !5
  %77 = sext i32 %76 to i64
  %78 = getelementptr inbounds %struct._FlConn, ptr %75, i64 %77
  %79 = getelementptr inbounds %struct._FlConn, ptr %78, i32 0, i32 10
  %80 = load i8, ptr %79, align 4, !tbaa !17
  %81 = icmp ne i8 %80, 0
  br i1 %81, label %83, label %82

82:                                               ; preds = %74
  br label %141

83:                                               ; preds = %74
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %84

84:                                               ; preds = %137, %83
  %85 = load i32, ptr %9, align 4, !tbaa !5
  %86 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %87 = load i32, ptr %10, align 4, !tbaa !5
  %88 = sext i32 %87 to i64
  %89 = getelementptr inbounds %struct._FlConn, ptr %86, i64 %88
  %90 = getelementptr inbounds %struct._FlConn, ptr %89, i32 0, i32 13
  %91 = load i32, ptr %90, align 8, !tbaa !19
  %92 = icmp slt i32 %85, %91
  br i1 %92, label %93, label %140

93:                                               ; preds = %84
  %94 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %95 = load i32, ptr %10, align 4, !tbaa !5
  %96 = sext i32 %95 to i64
  %97 = getelementptr inbounds %struct._FlConn, ptr %94, i64 %96
  %98 = getelementptr inbounds %struct._FlConn, ptr %97, i32 0, i32 11
  %99 = load ptr, ptr %98, align 8, !tbaa !20
  %100 = load i32, ptr %9, align 4, !tbaa !5
  %101 = sext i32 %100 to i64
  %102 = getelementptr inbounds i32, ptr %99, i64 %101
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = load i32, ptr %4, align 4, !tbaa !5
  %105 = icmp eq i32 %103, %104
  br i1 %105, label %106, label %136

106:                                              ; preds = %93
  %107 = load i32, ptr %4, align 4, !tbaa !5
  %108 = load i32, ptr %10, align 4, !tbaa !5
  %109 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %110 = load i32, ptr %7, align 4, !tbaa !5
  %111 = sext i32 %110 to i64
  %112 = getelementptr inbounds %struct._EfConn, ptr %109, i64 %111
  %113 = getelementptr inbounds %struct._EfConn, ptr %112, i32 0, i32 8
  %114 = load ptr, ptr %113, align 8, !tbaa !15
  %115 = load i32, ptr %8, align 4, !tbaa !5
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds float, ptr %114, i64 %116
  %118 = load float, ptr %117, align 4, !tbaa !16
  %119 = call zeroext i8 @supv(ptr noundef %15, i32 noundef %107, i32 noundef %108, float noundef %118)
  %120 = icmp ne i8 %119, 0
  br i1 %120, label %121, label %135

121:                                              ; preds = %106
  %122 = load i32, ptr %11, align 4, !tbaa !5
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr %11, align 4, !tbaa !5
  %124 = load i32, ptr %11, align 4, !tbaa !5
  %125 = icmp eq i32 %124, 1
  br i1 %125, label %131, label %126

126:                                              ; preds = %121
  %127 = load float, ptr %15, align 4, !tbaa !16
  %128 = load ptr, ptr %6, align 8, !tbaa !9
  %129 = load float, ptr %128, align 4, !tbaa !16
  %130 = fcmp ogt float %127, %129
  br i1 %130, label %131, label %134

131:                                              ; preds = %126, %121
  %132 = load float, ptr %15, align 4, !tbaa !16
  %133 = load ptr, ptr %6, align 8, !tbaa !9
  store float %132, ptr %133, align 4, !tbaa !16
  br label %134

134:                                              ; preds = %131, %126
  br label %135

135:                                              ; preds = %134, %106
  br label %140

136:                                              ; preds = %93
  br label %137

137:                                              ; preds = %136
  %138 = load i32, ptr %9, align 4, !tbaa !5
  %139 = add nsw i32 %138, 1
  store i32 %139, ptr %9, align 4, !tbaa !5
  br label %84, !llvm.loop !21

140:                                              ; preds = %135, %84
  br label %141

141:                                              ; preds = %140, %82, %73, %45
  %142 = load i32, ptr %8, align 4, !tbaa !5
  %143 = add nsw i32 %142, 1
  store i32 %143, ptr %8, align 4, !tbaa !5
  br label %23, !llvm.loop !23

144:                                              ; preds = %23
  store i32 0, ptr %12, align 4, !tbaa !5
  br label %145

145:                                              ; preds = %283, %144
  %146 = load i32, ptr %12, align 4, !tbaa !5
  %147 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %148 = load i32, ptr %7, align 4, !tbaa !5
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds %struct._EfConn, ptr %147, i64 %149
  %151 = getelementptr inbounds %struct._EfConn, ptr %150, i32 0, i32 19
  %152 = load i32, ptr %151, align 8, !tbaa !24
  %153 = icmp slt i32 %146, %152
  br i1 %153, label %154, label %286

154:                                              ; preds = %145
  %155 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %156 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %157 = load i32, ptr %7, align 4, !tbaa !5
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds %struct._EfConn, ptr %156, i64 %158
  %160 = getelementptr inbounds %struct._EfConn, ptr %159, i32 0, i32 16
  %161 = load ptr, ptr %160, align 8, !tbaa !25
  %162 = load i32, ptr %12, align 4, !tbaa !5
  %163 = sext i32 %162 to i64
  %164 = getelementptr inbounds i32, ptr %161, i64 %163
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds %struct._FlConn, ptr %155, i64 %166
  %168 = getelementptr inbounds %struct._FlConn, ptr %167, i32 0, i32 16
  %169 = load i8, ptr %168, align 4, !tbaa !26
  %170 = icmp ne i8 %169, 0
  br i1 %170, label %172, label %171

171:                                              ; preds = %154
  br label %283

172:                                              ; preds = %154
  %173 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %174 = load i32, ptr %7, align 4, !tbaa !5
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds %struct._EfConn, ptr %173, i64 %175
  %177 = getelementptr inbounds %struct._EfConn, ptr %176, i32 0, i32 17
  %178 = load ptr, ptr %177, align 8, !tbaa !27
  %179 = load i32, ptr %12, align 4, !tbaa !5
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds i32, ptr %178, i64 %180
  %182 = load i32, ptr %181, align 4, !tbaa !5
  store i32 %182, ptr %10, align 4, !tbaa !5
  %183 = load i32, ptr %10, align 4, !tbaa !5
  %184 = icmp slt i32 %183, 0
  br i1 %184, label %185, label %186

185:                                              ; preds = %172
  br label %283

186:                                              ; preds = %172
  %187 = load i32, ptr %10, align 4, !tbaa !5
  %188 = load i32, ptr %4, align 4, !tbaa !5
  %189 = icmp eq i32 %187, %188
  br i1 %189, label %190, label %215

190:                                              ; preds = %186
  %191 = load i32, ptr %11, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr %11, align 4, !tbaa !5
  %193 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %194 = load i32, ptr %7, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds %struct._EfConn, ptr %193, i64 %195
  %197 = getelementptr inbounds %struct._EfConn, ptr %196, i32 0, i32 18
  %198 = load ptr, ptr %197, align 8, !tbaa !28
  %199 = load i32, ptr %12, align 4, !tbaa !5
  %200 = sext i32 %199 to i64
  %201 = getelementptr inbounds float, ptr %198, i64 %200
  %202 = load float, ptr %201, align 4, !tbaa !16
  %203 = fmul float -1.000000e+00, %202
  store float %203, ptr %15, align 4, !tbaa !16
  %204 = load i32, ptr %11, align 4, !tbaa !5
  %205 = icmp eq i32 %204, 1
  br i1 %205, label %211, label %206

206:                                              ; preds = %190
  %207 = load float, ptr %15, align 4, !tbaa !16
  %208 = load ptr, ptr %6, align 8, !tbaa !9
  %209 = load float, ptr %208, align 4, !tbaa !16
  %210 = fcmp ogt float %207, %209
  br i1 %210, label %211, label %214

211:                                              ; preds = %206, %190
  %212 = load float, ptr %15, align 4, !tbaa !16
  %213 = load ptr, ptr %6, align 8, !tbaa !9
  store float %212, ptr %213, align 4, !tbaa !16
  br label %214

214:                                              ; preds = %211, %206
  br label %283

215:                                              ; preds = %186
  %216 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %217 = load i32, ptr %10, align 4, !tbaa !5
  %218 = sext i32 %217 to i64
  %219 = getelementptr inbounds %struct._FlConn, ptr %216, i64 %218
  %220 = getelementptr inbounds %struct._FlConn, ptr %219, i32 0, i32 10
  %221 = load i8, ptr %220, align 4, !tbaa !17
  %222 = icmp ne i8 %221, 0
  br i1 %222, label %224, label %223

223:                                              ; preds = %215
  br label %283

224:                                              ; preds = %215
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %225

225:                                              ; preds = %279, %224
  %226 = load i32, ptr %9, align 4, !tbaa !5
  %227 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %228 = load i32, ptr %10, align 4, !tbaa !5
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds %struct._FlConn, ptr %227, i64 %229
  %231 = getelementptr inbounds %struct._FlConn, ptr %230, i32 0, i32 13
  %232 = load i32, ptr %231, align 8, !tbaa !19
  %233 = icmp slt i32 %226, %232
  br i1 %233, label %234, label %282

234:                                              ; preds = %225
  %235 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %236 = load i32, ptr %10, align 4, !tbaa !5
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds %struct._FlConn, ptr %235, i64 %237
  %239 = getelementptr inbounds %struct._FlConn, ptr %238, i32 0, i32 11
  %240 = load ptr, ptr %239, align 8, !tbaa !20
  %241 = load i32, ptr %9, align 4, !tbaa !5
  %242 = sext i32 %241 to i64
  %243 = getelementptr inbounds i32, ptr %240, i64 %242
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = load i32, ptr %4, align 4, !tbaa !5
  %246 = icmp eq i32 %244, %245
  br i1 %246, label %247, label %278

247:                                              ; preds = %234
  %248 = load i32, ptr %4, align 4, !tbaa !5
  %249 = load i32, ptr %10, align 4, !tbaa !5
  %250 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %251 = load i32, ptr %7, align 4, !tbaa !5
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds %struct._EfConn, ptr %250, i64 %252
  %254 = getelementptr inbounds %struct._EfConn, ptr %253, i32 0, i32 18
  %255 = load ptr, ptr %254, align 8, !tbaa !28
  %256 = load i32, ptr %12, align 4, !tbaa !5
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds float, ptr %255, i64 %257
  %259 = load float, ptr %258, align 4, !tbaa !16
  %260 = fmul float -1.000000e+00, %259
  %261 = call zeroext i8 @supv(ptr noundef %15, i32 noundef %248, i32 noundef %249, float noundef %260)
  %262 = icmp ne i8 %261, 0
  br i1 %262, label %263, label %277

263:                                              ; preds = %247
  %264 = load i32, ptr %11, align 4, !tbaa !5
  %265 = add nsw i32 %264, 1
  store i32 %265, ptr %11, align 4, !tbaa !5
  %266 = load i32, ptr %11, align 4, !tbaa !5
  %267 = icmp eq i32 %266, 1
  br i1 %267, label %273, label %268

268:                                              ; preds = %263
  %269 = load float, ptr %15, align 4, !tbaa !16
  %270 = load ptr, ptr %6, align 8, !tbaa !9
  %271 = load float, ptr %270, align 4, !tbaa !16
  %272 = fcmp ogt float %269, %271
  br i1 %272, label %273, label %276

273:                                              ; preds = %268, %263
  %274 = load float, ptr %15, align 4, !tbaa !16
  %275 = load ptr, ptr %6, align 8, !tbaa !9
  store float %274, ptr %275, align 4, !tbaa !16
  br label %276

276:                                              ; preds = %273, %268
  br label %277

277:                                              ; preds = %276, %247
  br label %282

278:                                              ; preds = %234
  br label %279

279:                                              ; preds = %278
  %280 = load i32, ptr %9, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  store i32 %281, ptr %9, align 4, !tbaa !5
  br label %225, !llvm.loop !29

282:                                              ; preds = %277, %225
  br label %283

283:                                              ; preds = %282, %223, %214, %185, %171
  %284 = load i32, ptr %12, align 4, !tbaa !5
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr %12, align 4, !tbaa !5
  br label %145, !llvm.loop !30

286:                                              ; preds = %145
  store i32 0, ptr %14, align 4, !tbaa !5
  br label %287

287:                                              ; preds = %455, %286
  %288 = load i32, ptr %14, align 4, !tbaa !5
  %289 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %290 = load i32, ptr %7, align 4, !tbaa !5
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds %struct._EfConn, ptr %289, i64 %291
  %293 = getelementptr inbounds %struct._EfConn, ptr %292, i32 0, i32 23
  %294 = load i32, ptr %293, align 8, !tbaa !31
  %295 = icmp slt i32 %288, %294
  br i1 %295, label %296, label %458

296:                                              ; preds = %287
  %297 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %298 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %299 = load i32, ptr %7, align 4, !tbaa !5
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds %struct._EfConn, ptr %298, i64 %300
  %302 = getelementptr inbounds %struct._EfConn, ptr %301, i32 0, i32 20
  %303 = load ptr, ptr %302, align 8, !tbaa !32
  %304 = load i32, ptr %14, align 4, !tbaa !5
  %305 = sext i32 %304 to i64
  %306 = getelementptr inbounds i32, ptr %303, i64 %305
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = sext i32 %307 to i64
  %309 = getelementptr inbounds %struct._FlConn, ptr %297, i64 %308
  %310 = getelementptr inbounds %struct._FlConn, ptr %309, i32 0, i32 16
  %311 = load i8, ptr %310, align 4, !tbaa !26
  %312 = icmp ne i8 %311, 0
  br i1 %312, label %314, label %313

313:                                              ; preds = %296
  br label %455

314:                                              ; preds = %296
  %315 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %316 = load i32, ptr %7, align 4, !tbaa !5
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds %struct._EfConn, ptr %315, i64 %317
  %319 = getelementptr inbounds %struct._EfConn, ptr %318, i32 0, i32 21
  %320 = load ptr, ptr %319, align 8, !tbaa !33
  %321 = load i32, ptr %14, align 4, !tbaa !5
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds i32, ptr %320, i64 %322
  %324 = load i32, ptr %323, align 4, !tbaa !5
  store i32 %324, ptr %10, align 4, !tbaa !5
  %325 = load i32, ptr %10, align 4, !tbaa !5
  %326 = icmp slt i32 %325, 0
  br i1 %326, label %327, label %328

327:                                              ; preds = %314
  br label %455

328:                                              ; preds = %314
  %329 = load i32, ptr %10, align 4, !tbaa !5
  %330 = load i32, ptr %4, align 4, !tbaa !5
  %331 = icmp eq i32 %329, %330
  br i1 %331, label %332, label %372

332:                                              ; preds = %328
  %333 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %334 = load i32, ptr %7, align 4, !tbaa !5
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds %struct._EfConn, ptr %333, i64 %335
  %337 = getelementptr inbounds %struct._EfConn, ptr %336, i32 0, i32 20
  %338 = load ptr, ptr %337, align 8, !tbaa !32
  %339 = load i32, ptr %14, align 4, !tbaa !5
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds i32, ptr %338, i64 %340
  %342 = load i32, ptr %341, align 4, !tbaa !5
  call void @get_mneed(i32 noundef %342, ptr noundef %17, ptr noundef %16)
  %343 = load i8, ptr %17, align 1, !tbaa !34
  %344 = icmp ne i8 %343, 0
  br i1 %344, label %371, label %345

345:                                              ; preds = %332
  %346 = load i32, ptr %11, align 4, !tbaa !5
  %347 = add nsw i32 %346, 1
  store i32 %347, ptr %11, align 4, !tbaa !5
  %348 = load float, ptr %16, align 4, !tbaa !16
  %349 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %350 = load i32, ptr %7, align 4, !tbaa !5
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds %struct._EfConn, ptr %349, i64 %351
  %353 = getelementptr inbounds %struct._EfConn, ptr %352, i32 0, i32 22
  %354 = load ptr, ptr %353, align 8, !tbaa !35
  %355 = load i32, ptr %14, align 4, !tbaa !5
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds float, ptr %354, i64 %356
  %358 = load float, ptr %357, align 4, !tbaa !16
  %359 = fsub float %348, %358
  store float %359, ptr %15, align 4, !tbaa !16
  %360 = load i32, ptr %11, align 4, !tbaa !5
  %361 = icmp eq i32 %360, 1
  br i1 %361, label %367, label %362

362:                                              ; preds = %345
  %363 = load float, ptr %15, align 4, !tbaa !16
  %364 = load ptr, ptr %6, align 8, !tbaa !9
  %365 = load float, ptr %364, align 4, !tbaa !16
  %366 = fcmp ogt float %363, %365
  br i1 %366, label %367, label %370

367:                                              ; preds = %362, %345
  %368 = load float, ptr %15, align 4, !tbaa !16
  %369 = load ptr, ptr %6, align 8, !tbaa !9
  store float %368, ptr %369, align 4, !tbaa !16
  br label %370

370:                                              ; preds = %367, %362
  br label %371

371:                                              ; preds = %370, %332
  br label %455

372:                                              ; preds = %328
  %373 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %374 = load i32, ptr %10, align 4, !tbaa !5
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds %struct._FlConn, ptr %373, i64 %375
  %377 = getelementptr inbounds %struct._FlConn, ptr %376, i32 0, i32 10
  %378 = load i8, ptr %377, align 4, !tbaa !17
  %379 = icmp ne i8 %378, 0
  br i1 %379, label %381, label %380

380:                                              ; preds = %372
  br label %455

381:                                              ; preds = %372
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %382

382:                                              ; preds = %451, %381
  %383 = load i32, ptr %9, align 4, !tbaa !5
  %384 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %385 = load i32, ptr %10, align 4, !tbaa !5
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds %struct._FlConn, ptr %384, i64 %386
  %388 = getelementptr inbounds %struct._FlConn, ptr %387, i32 0, i32 13
  %389 = load i32, ptr %388, align 8, !tbaa !19
  %390 = icmp slt i32 %383, %389
  br i1 %390, label %391, label %454

391:                                              ; preds = %382
  %392 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %393 = load i32, ptr %10, align 4, !tbaa !5
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds %struct._FlConn, ptr %392, i64 %394
  %396 = getelementptr inbounds %struct._FlConn, ptr %395, i32 0, i32 11
  %397 = load ptr, ptr %396, align 8, !tbaa !20
  %398 = load i32, ptr %9, align 4, !tbaa !5
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds i32, ptr %397, i64 %399
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = load i32, ptr %4, align 4, !tbaa !5
  %403 = icmp eq i32 %401, %402
  br i1 %403, label %404, label %450

404:                                              ; preds = %391
  %405 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %406 = load i32, ptr %7, align 4, !tbaa !5
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds %struct._EfConn, ptr %405, i64 %407
  %409 = getelementptr inbounds %struct._EfConn, ptr %408, i32 0, i32 20
  %410 = load ptr, ptr %409, align 8, !tbaa !32
  %411 = load i32, ptr %14, align 4, !tbaa !5
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds i32, ptr %410, i64 %412
  %414 = load i32, ptr %413, align 4, !tbaa !5
  call void @get_mneed(i32 noundef %414, ptr noundef %17, ptr noundef %16)
  %415 = load i8, ptr %17, align 1, !tbaa !34
  %416 = icmp ne i8 %415, 0
  br i1 %416, label %449, label %417

417:                                              ; preds = %404
  %418 = load i32, ptr %4, align 4, !tbaa !5
  %419 = load i32, ptr %10, align 4, !tbaa !5
  %420 = load float, ptr %16, align 4, !tbaa !16
  %421 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %422 = load i32, ptr %7, align 4, !tbaa !5
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds %struct._EfConn, ptr %421, i64 %423
  %425 = getelementptr inbounds %struct._EfConn, ptr %424, i32 0, i32 22
  %426 = load ptr, ptr %425, align 8, !tbaa !35
  %427 = load i32, ptr %14, align 4, !tbaa !5
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds float, ptr %426, i64 %428
  %430 = load float, ptr %429, align 4, !tbaa !16
  %431 = fsub float %420, %430
  %432 = call zeroext i8 @supv(ptr noundef %15, i32 noundef %418, i32 noundef %419, float noundef %431)
  %433 = icmp ne i8 %432, 0
  br i1 %433, label %434, label %448

434:                                              ; preds = %417
  %435 = load i32, ptr %11, align 4, !tbaa !5
  %436 = add nsw i32 %435, 1
  store i32 %436, ptr %11, align 4, !tbaa !5
  %437 = load i32, ptr %11, align 4, !tbaa !5
  %438 = icmp eq i32 %437, 1
  br i1 %438, label %444, label %439

439:                                              ; preds = %434
  %440 = load float, ptr %15, align 4, !tbaa !16
  %441 = load ptr, ptr %6, align 8, !tbaa !9
  %442 = load float, ptr %441, align 4, !tbaa !16
  %443 = fcmp ogt float %440, %442
  br i1 %443, label %444, label %447

444:                                              ; preds = %439, %434
  %445 = load float, ptr %15, align 4, !tbaa !16
  %446 = load ptr, ptr %6, align 8, !tbaa !9
  store float %445, ptr %446, align 4, !tbaa !16
  br label %447

447:                                              ; preds = %444, %439
  br label %448

448:                                              ; preds = %447, %417
  br label %454

449:                                              ; preds = %404
  br label %450

450:                                              ; preds = %449, %391
  br label %451

451:                                              ; preds = %450
  %452 = load i32, ptr %9, align 4, !tbaa !5
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr %9, align 4, !tbaa !5
  br label %382, !llvm.loop !36

454:                                              ; preds = %448, %382
  br label %455

455:                                              ; preds = %454, %380, %371, %327, %313
  %456 = load i32, ptr %14, align 4, !tbaa !5
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr %14, align 4, !tbaa !5
  br label %287, !llvm.loop !37

458:                                              ; preds = %287
  br label %459

459:                                              ; preds = %458
  %460 = load i32, ptr %7, align 4, !tbaa !5
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr %7, align 4, !tbaa !5
  br label %18, !llvm.loop !38

462:                                              ; preds = %18
  store i32 0, ptr %13, align 4, !tbaa !5
  br label %463

463:                                              ; preds = %561, %462
  %464 = load i32, ptr %13, align 4, !tbaa !5
  %465 = load i32, ptr @gnum_fnumeric_goal, align 4, !tbaa !5
  %466 = icmp slt i32 %464, %465
  br i1 %466, label %467, label %564

467:                                              ; preds = %463
  %468 = load ptr, ptr @gfnumeric_goal_fl, align 8, !tbaa !9
  %469 = load i32, ptr %13, align 4, !tbaa !5
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds i32, ptr %468, i64 %470
  %472 = load i32, ptr %471, align 4, !tbaa !5
  store i32 %472, ptr %10, align 4, !tbaa !5
  %473 = load i32, ptr %10, align 4, !tbaa !5
  %474 = icmp slt i32 %473, 0
  br i1 %474, label %475, label %476

475:                                              ; preds = %467
  br label %561

476:                                              ; preds = %467
  %477 = load i32, ptr %10, align 4, !tbaa !5
  %478 = load i32, ptr %4, align 4, !tbaa !5
  %479 = icmp eq i32 %477, %478
  br i1 %479, label %480, label %499

480:                                              ; preds = %476
  %481 = load i32, ptr %11, align 4, !tbaa !5
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr %11, align 4, !tbaa !5
  %483 = load ptr, ptr @gfnumeric_goal_c, align 8, !tbaa !9
  %484 = load i32, ptr %13, align 4, !tbaa !5
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds float, ptr %483, i64 %485
  %487 = load float, ptr %486, align 4, !tbaa !16
  store float %487, ptr %15, align 4, !tbaa !16
  %488 = load i32, ptr %11, align 4, !tbaa !5
  %489 = icmp eq i32 %488, 1
  br i1 %489, label %495, label %490

490:                                              ; preds = %480
  %491 = load float, ptr %15, align 4, !tbaa !16
  %492 = load ptr, ptr %6, align 8, !tbaa !9
  %493 = load float, ptr %492, align 4, !tbaa !16
  %494 = fcmp ogt float %491, %493
  br i1 %494, label %495, label %498

495:                                              ; preds = %490, %480
  %496 = load float, ptr %15, align 4, !tbaa !16
  %497 = load ptr, ptr %6, align 8, !tbaa !9
  store float %496, ptr %497, align 4, !tbaa !16
  br label %498

498:                                              ; preds = %495, %490
  br label %499

499:                                              ; preds = %498, %476
  %500 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %501 = load i32, ptr %10, align 4, !tbaa !5
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds %struct._FlConn, ptr %500, i64 %502
  %504 = getelementptr inbounds %struct._FlConn, ptr %503, i32 0, i32 10
  %505 = load i8, ptr %504, align 4, !tbaa !17
  %506 = icmp ne i8 %505, 0
  br i1 %506, label %508, label %507

507:                                              ; preds = %499
  br label %561

508:                                              ; preds = %499
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %509

509:                                              ; preds = %557, %508
  %510 = load i32, ptr %9, align 4, !tbaa !5
  %511 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %512 = load i32, ptr %10, align 4, !tbaa !5
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds %struct._FlConn, ptr %511, i64 %513
  %515 = getelementptr inbounds %struct._FlConn, ptr %514, i32 0, i32 13
  %516 = load i32, ptr %515, align 8, !tbaa !19
  %517 = icmp slt i32 %510, %516
  br i1 %517, label %518, label %560

518:                                              ; preds = %509
  %519 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %520 = load i32, ptr %10, align 4, !tbaa !5
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds %struct._FlConn, ptr %519, i64 %521
  %523 = getelementptr inbounds %struct._FlConn, ptr %522, i32 0, i32 11
  %524 = load ptr, ptr %523, align 8, !tbaa !20
  %525 = load i32, ptr %9, align 4, !tbaa !5
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds i32, ptr %524, i64 %526
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = load i32, ptr %4, align 4, !tbaa !5
  %530 = icmp eq i32 %528, %529
  br i1 %530, label %531, label %556

531:                                              ; preds = %518
  %532 = load i32, ptr %4, align 4, !tbaa !5
  %533 = load i32, ptr %10, align 4, !tbaa !5
  %534 = load ptr, ptr @gfnumeric_goal_c, align 8, !tbaa !9
  %535 = load i32, ptr %13, align 4, !tbaa !5
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds float, ptr %534, i64 %536
  %538 = load float, ptr %537, align 4, !tbaa !16
  %539 = call zeroext i8 @supv(ptr noundef %15, i32 noundef %532, i32 noundef %533, float noundef %538)
  %540 = icmp ne i8 %539, 0
  br i1 %540, label %541, label %555

541:                                              ; preds = %531
  %542 = load i32, ptr %11, align 4, !tbaa !5
  %543 = add nsw i32 %542, 1
  store i32 %543, ptr %11, align 4, !tbaa !5
  %544 = load i32, ptr %11, align 4, !tbaa !5
  %545 = icmp eq i32 %544, 1
  br i1 %545, label %551, label %546

546:                                              ; preds = %541
  %547 = load float, ptr %15, align 4, !tbaa !16
  %548 = load ptr, ptr %6, align 8, !tbaa !9
  %549 = load float, ptr %548, align 4, !tbaa !16
  %550 = fcmp ogt float %547, %549
  br i1 %550, label %551, label %554

551:                                              ; preds = %546, %541
  %552 = load float, ptr %15, align 4, !tbaa !16
  %553 = load ptr, ptr %6, align 8, !tbaa !9
  store float %552, ptr %553, align 4, !tbaa !16
  br label %554

554:                                              ; preds = %551, %546
  br label %555

555:                                              ; preds = %554, %531
  br label %560

556:                                              ; preds = %518
  br label %557

557:                                              ; preds = %556
  %558 = load i32, ptr %9, align 4, !tbaa !5
  %559 = add nsw i32 %558, 1
  store i32 %559, ptr %9, align 4, !tbaa !5
  br label %509, !llvm.loop !39

560:                                              ; preds = %555, %509
  br label %561

561:                                              ; preds = %560, %507, %475
  %562 = load i32, ptr %13, align 4, !tbaa !5
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr %13, align 4, !tbaa !5
  br label %463, !llvm.loop !40

564:                                              ; preds = %463
  %565 = load i32, ptr %11, align 4, !tbaa !5
  %566 = icmp eq i32 %565, 0
  %567 = zext i1 %566 to i64
  %568 = select i1 %566, i32 1, i32 0
  %569 = trunc i32 %568 to i8
  %570 = load ptr, ptr %5, align 8, !tbaa !9
  store i8 %569, ptr %570, align 1, !tbaa !34
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #2
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @supv(ptr noundef, i32 noundef, i32 noundef, float noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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, !6, i64 56}
!12 = !{!"_EfConn", !6, i64 0, !7, i64 4, !7, i64 5, !13, i64 8, !10, i64 16, !6, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !6, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !6, i64 88, !10, i64 96, !6, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !6, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !6, i64 168, !10, i64 176, !6, i64 184, !6, i64 188, !13, i64 192, !7, i64 196, !6, i64 200, !7, i64 204, !6, i64 208, !6, i64 212}
!13 = !{!"float", !7, i64 0}
!14 = !{!12, !10, i64 40}
!15 = !{!12, !10, i64 48}
!16 = !{!13, !13, i64 0}
!17 = !{!18, !7, i64 76}
!18 = !{!"_FlConn", !10, i64 0, !6, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !6, i64 72, !7, i64 76, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100, !13, i64 104, !7, i64 108, !10, i64 112, !10, i64 120, !7, i64 128, !13, i64 132, !6, i64 136}
!19 = !{!18, !6, i64 96}
!20 = !{!18, !10, i64 80}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}
!24 = !{!12, !6, i64 136}
!25 = !{!12, !10, i64 112}
!26 = !{!18, !7, i64 108}
!27 = !{!12, !10, i64 120}
!28 = !{!12, !10, i64 128}
!29 = distinct !{!29, !22}
!30 = distinct !{!30, !22}
!31 = !{!12, !6, i64 168}
!32 = !{!12, !10, i64 144}
!33 = !{!12, !10, i64 152}
!34 = !{!7, !7, i64 0}
!35 = !{!12, !10, i64 160}
!36 = distinct !{!36, !22}
!37 = distinct !{!37, !22}
!38 = distinct !{!38, !22}
!39 = distinct !{!39, !22}
!40 = distinct !{!40, !22}


; 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"

%struct._EfConn = type { i32, i8, i8, float, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, i32, float, i8, i32, i8, i32, i32 }
%struct._FlConn = type { ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, i8, ptr, ptr, i32, i8, float, i8, ptr, ptr, i8, float, i32 }

@gef_conn = external local_unnamed_addr global ptr, align 8
@gfl_conn = external local_unnamed_addr global ptr, align 8
@gnum_ef_conn = external local_unnamed_addr global i32, align 4
@gnum_fnumeric_goal = external local_unnamed_addr global i32, align 4
@gfnumeric_goal_fl = external local_unnamed_addr global ptr, align 8
@gfnumeric_goal_c = external local_unnamed_addr global ptr, align 8

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

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

; Function Attrs: nounwind uwtable
define dso_local void @get_mneed(i32 noundef %0, ptr nocapture noundef writeonly %1, ptr nocapture noundef %2) local_unnamed_addr #1 {
  %4 = alloca float, align 4
  %5 = alloca float, align 4
  %6 = alloca i8, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #2
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #2
  %7 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !5
  %8 = icmp sgt i32 %7, 0
  br i1 %8, label %.preheader168.preheader, label %.preheader159

.preheader168.preheader:                          ; preds = %3
  %.pre = load ptr, ptr @gef_conn, align 8, !tbaa !9
  br label %.preheader168

.preheader168:                                    ; preds = %.preheader168.preheader, %._crit_edge
  %9 = phi ptr [ %.pre, %.preheader168.preheader ], [ %222, %._crit_edge ]
  %indvars.iv214 = phi i64 [ 0, %.preheader168.preheader ], [ %indvars.iv.next215, %._crit_edge ]
  %.0125187 = phi i32 [ 0, %.preheader168.preheader ], [ %.5.lcssa, %._crit_edge ]
  %10 = getelementptr inbounds %struct._EfConn, ptr %9, i64 %indvars.iv214
  %11 = getelementptr inbounds i8, ptr %10, i64 56
  %12 = load i32, ptr %11, align 8, !tbaa !11
  %13 = icmp sgt i32 %12, 0
  br i1 %13, label %.lr.ph172, label %.preheader167

.preheader159:                                    ; preds = %._crit_edge, %3
  %.0125.lcssa = phi i32 [ 0, %3 ], [ %.5.lcssa, %._crit_edge ]
  %14 = load i32, ptr @gnum_fnumeric_goal, align 4, !tbaa !5
  %15 = icmp sgt i32 %14, 0
  br i1 %15, label %.lr.ph193.preheader, label %._crit_edge194

.lr.ph193.preheader:                              ; preds = %.preheader159
  %.pre233 = load ptr, ptr @gfnumeric_goal_fl, align 8, !tbaa !9
  br label %.lr.ph193

.preheader167:                                    ; preds = %.loopexit165, %.preheader168
  %16 = phi ptr [ %9, %.preheader168 ], [ %68, %.loopexit165 ]
  %.1.lcssa = phi i32 [ %.0125187, %.preheader168 ], [ %.2, %.loopexit165 ]
  %17 = getelementptr inbounds %struct._EfConn, ptr %16, i64 %indvars.iv214
  %18 = getelementptr inbounds i8, ptr %17, i64 136
  %19 = load i32, ptr %18, align 8, !tbaa !14
  %20 = icmp sgt i32 %19, 0
  br i1 %20, label %.lr.ph178.preheader, label %.preheader166

.lr.ph178.preheader:                              ; preds = %.preheader167
  %.pre227 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  br label %.lr.ph178

.lr.ph172:                                        ; preds = %.preheader168, %.loopexit165
  %indvars.iv197 = phi i64 [ %indvars.iv.next198, %.loopexit165 ], [ 0, %.preheader168 ]
  %21 = phi ptr [ %69, %.loopexit165 ], [ %10, %.preheader168 ]
  %22 = phi ptr [ %68, %.loopexit165 ], [ %9, %.preheader168 ]
  %.1171 = phi i32 [ %.2, %.loopexit165 ], [ %.0125187, %.preheader168 ]
  %23 = getelementptr inbounds i8, ptr %21, i64 40
  %24 = load ptr, ptr %23, align 8, !tbaa !15
  %25 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv197
  %26 = load i32, ptr %25, align 4, !tbaa !5
  %27 = icmp slt i32 %26, 0
  br i1 %27, label %.loopexit165, label %28

28:                                               ; preds = %.lr.ph172
  %29 = icmp eq i32 %26, %0
  br i1 %29, label %30, label %40

30:                                               ; preds = %28
  %31 = add nsw i32 %.1171, 1
  %32 = getelementptr inbounds i8, ptr %21, i64 48
  %33 = load ptr, ptr %32, align 8, !tbaa !16
  %34 = getelementptr inbounds float, ptr %33, i64 %indvars.iv197
  %35 = load float, ptr %34, align 4, !tbaa !17
  store float %35, ptr %4, align 4, !tbaa !17
  %36 = icmp eq i32 %.1171, 0
  br i1 %36, label %.loopexit165.sink.split, label %37

37:                                               ; preds = %30
  %38 = load float, ptr %2, align 4, !tbaa !17
  %39 = fcmp ogt float %35, %38
  br i1 %39, label %.loopexit165.sink.split, label %.loopexit165

40:                                               ; preds = %28
  %41 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %42 = zext nneg i32 %26 to i64
  %43 = getelementptr inbounds %struct._FlConn, ptr %41, i64 %42, i32 10
  %44 = load i8, ptr %43, align 4, !tbaa !18
  %.not157 = icmp eq i8 %44, 0
  br i1 %.not157, label %.loopexit165, label %.preheader164

.preheader164:                                    ; preds = %40
  %45 = getelementptr inbounds %struct._FlConn, ptr %41, i64 %42
  %46 = getelementptr inbounds i8, ptr %45, i64 96
  %47 = load i32, ptr %46, align 8, !tbaa !20
  %48 = icmp sgt i32 %47, 0
  br i1 %48, label %.lr.ph, label %.loopexit165

.lr.ph:                                           ; preds = %.preheader164
  %49 = getelementptr inbounds i8, ptr %45, i64 80
  %50 = load ptr, ptr %49, align 8, !tbaa !21
  %wide.trip.count = zext nneg i32 %47 to i64
  br label %52

51:                                               ; preds = %52
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit165, label %52, !llvm.loop !22

52:                                               ; preds = %.lr.ph, %51
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %51 ]
  %53 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv
  %54 = load i32, ptr %53, align 4, !tbaa !5
  %55 = icmp eq i32 %54, %0
  br i1 %55, label %56, label %51

56:                                               ; preds = %52
  %57 = getelementptr inbounds %struct._EfConn, ptr %22, i64 %indvars.iv214, i32 8
  %58 = load ptr, ptr %57, align 8, !tbaa !16
  %59 = getelementptr inbounds float, ptr %58, i64 %indvars.iv197
  %60 = load float, ptr %59, align 4, !tbaa !17
  %61 = call zeroext i8 @supv(ptr noundef nonnull %4, i32 noundef %0, i32 noundef %26, float noundef %60)
  %.not158 = icmp eq i8 %61, 0
  br i1 %.not158, label %.loopexit165, label %62

62:                                               ; preds = %56
  %63 = add nsw i32 %.1171, 1
  %64 = icmp eq i32 %.1171, 0
  %.pre225 = load float, ptr %4, align 4, !tbaa !17
  br i1 %64, label %.loopexit165.sink.split, label %65

65:                                               ; preds = %62
  %66 = load float, ptr %2, align 4, !tbaa !17
  %67 = fcmp ogt float %.pre225, %66
  br i1 %67, label %.loopexit165.sink.split, label %.loopexit165

.loopexit165.sink.split:                          ; preds = %62, %65, %30, %37
  %.pre225.sink = phi float [ %35, %37 ], [ %35, %30 ], [ %.pre225, %65 ], [ %.pre225, %62 ]
  %.2.ph = phi i32 [ %31, %37 ], [ %31, %30 ], [ %63, %65 ], [ %63, %62 ]
  store float %.pre225.sink, ptr %2, align 4, !tbaa !17
  br label %.loopexit165

.loopexit165:                                     ; preds = %51, %.loopexit165.sink.split, %.preheader164, %65, %56, %40, %37, %.lr.ph172
  %.2 = phi i32 [ %.1171, %.lr.ph172 ], [ %31, %37 ], [ %63, %65 ], [ %.1171, %56 ], [ %.1171, %40 ], [ %.1171, %.preheader164 ], [ %.2.ph, %.loopexit165.sink.split ], [ %.1171, %51 ]
  %indvars.iv.next198 = add nuw nsw i64 %indvars.iv197, 1
  %68 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %69 = getelementptr inbounds %struct._EfConn, ptr %68, i64 %indvars.iv214
  %70 = getelementptr inbounds i8, ptr %69, i64 56
  %71 = load i32, ptr %70, align 8, !tbaa !11
  %72 = sext i32 %71 to i64
  %73 = icmp slt i64 %indvars.iv.next198, %72
  br i1 %73, label %.lr.ph172, label %.preheader167, !llvm.loop !24

.preheader166:                                    ; preds = %.loopexit163, %.preheader167
  %74 = phi ptr [ %16, %.preheader167 ], [ %137, %.loopexit163 ]
  %.3.lcssa = phi i32 [ %.1.lcssa, %.preheader167 ], [ %.4, %.loopexit163 ]
  %75 = getelementptr inbounds %struct._EfConn, ptr %74, i64 %indvars.iv214
  %76 = getelementptr inbounds i8, ptr %75, i64 168
  %77 = load i32, ptr %76, align 8, !tbaa !25
  %78 = icmp sgt i32 %77, 0
  br i1 %78, label %.lr.ph184, label %._crit_edge

.lr.ph178:                                        ; preds = %.lr.ph178.preheader, %.loopexit163
  %79 = phi ptr [ %.pre227, %.lr.ph178.preheader ], [ %136, %.loopexit163 ]
  %indvars.iv205 = phi i64 [ 0, %.lr.ph178.preheader ], [ %indvars.iv.next206, %.loopexit163 ]
  %80 = phi ptr [ %17, %.lr.ph178.preheader ], [ %138, %.loopexit163 ]
  %81 = phi ptr [ %16, %.lr.ph178.preheader ], [ %137, %.loopexit163 ]
  %.3176 = phi i32 [ %.1.lcssa, %.lr.ph178.preheader ], [ %.4, %.loopexit163 ]
  %82 = getelementptr inbounds i8, ptr %80, i64 112
  %83 = load ptr, ptr %82, align 8, !tbaa !26
  %84 = getelementptr inbounds i32, ptr %83, i64 %indvars.iv205
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = sext i32 %85 to i64
  %87 = getelementptr inbounds %struct._FlConn, ptr %79, i64 %86, i32 16
  %88 = load i8, ptr %87, align 4, !tbaa !27
  %.not154 = icmp eq i8 %88, 0
  br i1 %.not154, label %.loopexit163, label %89

89:                                               ; preds = %.lr.ph178
  %90 = getelementptr inbounds i8, ptr %80, i64 120
  %91 = load ptr, ptr %90, align 8, !tbaa !28
  %92 = getelementptr inbounds i32, ptr %91, i64 %indvars.iv205
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = icmp slt i32 %93, 0
  br i1 %94, label %.loopexit163, label %95

95:                                               ; preds = %89
  %96 = icmp eq i32 %93, %0
  br i1 %96, label %97, label %108

97:                                               ; preds = %95
  %98 = add nsw i32 %.3176, 1
  %99 = getelementptr inbounds i8, ptr %80, i64 128
  %100 = load ptr, ptr %99, align 8, !tbaa !29
  %101 = getelementptr inbounds float, ptr %100, i64 %indvars.iv205
  %102 = load float, ptr %101, align 4, !tbaa !17
  %103 = fneg float %102
  store float %103, ptr %4, align 4, !tbaa !17
  %104 = icmp eq i32 %.3176, 0
  br i1 %104, label %.loopexit163.sink.split, label %105

105:                                              ; preds = %97
  %106 = load float, ptr %2, align 4, !tbaa !17
  %107 = fcmp olt float %106, %103
  br i1 %107, label %.loopexit163.sink.split, label %.loopexit163

108:                                              ; preds = %95
  %109 = zext nneg i32 %93 to i64
  %110 = getelementptr inbounds %struct._FlConn, ptr %79, i64 %109, i32 10
  %111 = load i8, ptr %110, align 4, !tbaa !18
  %.not155 = icmp eq i8 %111, 0
  br i1 %.not155, label %.loopexit163, label %.preheader162

.preheader162:                                    ; preds = %108
  %112 = getelementptr inbounds %struct._FlConn, ptr %79, i64 %109
  %113 = getelementptr inbounds i8, ptr %112, i64 96
  %114 = load i32, ptr %113, align 8, !tbaa !20
  %115 = icmp sgt i32 %114, 0
  br i1 %115, label %.lr.ph175, label %.loopexit163

.lr.ph175:                                        ; preds = %.preheader162
  %116 = getelementptr inbounds i8, ptr %112, i64 80
  %117 = load ptr, ptr %116, align 8, !tbaa !21
  %wide.trip.count203 = zext nneg i32 %114 to i64
  br label %119

118:                                              ; preds = %119
  %indvars.iv.next201 = add nuw nsw i64 %indvars.iv200, 1
  %exitcond204.not = icmp eq i64 %indvars.iv.next201, %wide.trip.count203
  br i1 %exitcond204.not, label %.loopexit163, label %119, !llvm.loop !30

119:                                              ; preds = %.lr.ph175, %118
  %indvars.iv200 = phi i64 [ 0, %.lr.ph175 ], [ %indvars.iv.next201, %118 ]
  %120 = getelementptr inbounds i32, ptr %117, i64 %indvars.iv200
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = icmp eq i32 %121, %0
  br i1 %122, label %123, label %118

123:                                              ; preds = %119
  %124 = getelementptr inbounds %struct._EfConn, ptr %81, i64 %indvars.iv214, i32 18
  %125 = load ptr, ptr %124, align 8, !tbaa !29
  %126 = getelementptr inbounds float, ptr %125, i64 %indvars.iv205
  %127 = load float, ptr %126, align 4, !tbaa !17
  %128 = fneg float %127
  %129 = call zeroext i8 @supv(ptr noundef nonnull %4, i32 noundef %0, i32 noundef %93, float noundef %128)
  %.not156 = icmp eq i8 %129, 0
  %.pre226 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  br i1 %.not156, label %.loopexit163, label %130

130:                                              ; preds = %123
  %131 = add nsw i32 %.3176, 1
  %132 = icmp eq i32 %.3176, 0
  %.pre228 = load float, ptr %4, align 4, !tbaa !17
  br i1 %132, label %.loopexit163.sink.split, label %133

133:                                              ; preds = %130
  %134 = load float, ptr %2, align 4, !tbaa !17
  %135 = fcmp ogt float %.pre228, %134
  br i1 %135, label %.loopexit163.sink.split, label %.loopexit163

.loopexit163.sink.split:                          ; preds = %130, %133, %97, %105
  %.pre228.sink = phi float [ %103, %105 ], [ %103, %97 ], [ %.pre228, %133 ], [ %.pre228, %130 ]
  %.ph = phi ptr [ %79, %105 ], [ %79, %97 ], [ %.pre226, %133 ], [ %.pre226, %130 ]
  %.4.ph = phi i32 [ %98, %105 ], [ %98, %97 ], [ %131, %133 ], [ %131, %130 ]
  store float %.pre228.sink, ptr %2, align 4, !tbaa !17
  br label %.loopexit163

.loopexit163:                                     ; preds = %118, %.loopexit163.sink.split, %.preheader162, %133, %123, %108, %105, %89, %.lr.ph178
  %136 = phi ptr [ %79, %89 ], [ %79, %105 ], [ %.pre226, %133 ], [ %.pre226, %123 ], [ %79, %108 ], [ %79, %.lr.ph178 ], [ %79, %.preheader162 ], [ %.ph, %.loopexit163.sink.split ], [ %79, %118 ]
  %.4 = phi i32 [ %.3176, %89 ], [ %98, %105 ], [ %131, %133 ], [ %.3176, %123 ], [ %.3176, %108 ], [ %.3176, %.lr.ph178 ], [ %.3176, %.preheader162 ], [ %.4.ph, %.loopexit163.sink.split ], [ %.3176, %118 ]
  %indvars.iv.next206 = add nuw nsw i64 %indvars.iv205, 1
  %137 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %138 = getelementptr inbounds %struct._EfConn, ptr %137, i64 %indvars.iv214
  %139 = getelementptr inbounds i8, ptr %138, i64 136
  %140 = load i32, ptr %139, align 8, !tbaa !14
  %141 = sext i32 %140 to i64
  %142 = icmp slt i64 %indvars.iv.next206, %141
  br i1 %142, label %.lr.ph178, label %.preheader166, !llvm.loop !31

.lr.ph184:                                        ; preds = %.preheader166, %.loopexit161
  %indvars.iv211 = phi i64 [ %indvars.iv.next212, %.loopexit161 ], [ 0, %.preheader166 ]
  %143 = phi ptr [ %217, %.loopexit161 ], [ %75, %.preheader166 ]
  %.5182 = phi i32 [ %.6, %.loopexit161 ], [ %.3.lcssa, %.preheader166 ]
  %144 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %145 = getelementptr inbounds i8, ptr %143, i64 144
  %146 = load ptr, ptr %145, align 8, !tbaa !32
  %147 = getelementptr inbounds i32, ptr %146, i64 %indvars.iv211
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds %struct._FlConn, ptr %144, i64 %149, i32 16
  %151 = load i8, ptr %150, align 4, !tbaa !27
  %.not149 = icmp eq i8 %151, 0
  br i1 %.not149, label %.loopexit161, label %152

152:                                              ; preds = %.lr.ph184
  %153 = getelementptr inbounds i8, ptr %143, i64 152
  %154 = load ptr, ptr %153, align 8, !tbaa !33
  %155 = getelementptr inbounds i32, ptr %154, i64 %indvars.iv211
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = icmp slt i32 %156, 0
  br i1 %157, label %.loopexit161, label %158

158:                                              ; preds = %152
  %159 = icmp eq i32 %156, %0
  br i1 %159, label %160, label %175

160:                                              ; preds = %158
  call void @get_mneed(i32 noundef %148, ptr noundef nonnull %6, ptr noundef nonnull %5)
  %161 = load i8, ptr %6, align 1, !tbaa !34
  %.not153 = icmp eq i8 %161, 0
  br i1 %.not153, label %162, label %.loopexit161

162:                                              ; preds = %160
  %163 = add nsw i32 %.5182, 1
  %164 = load float, ptr %5, align 4, !tbaa !17
  %165 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %166 = getelementptr inbounds %struct._EfConn, ptr %165, i64 %indvars.iv214, i32 22
  %167 = load ptr, ptr %166, align 8, !tbaa !35
  %168 = getelementptr inbounds float, ptr %167, i64 %indvars.iv211
  %169 = load float, ptr %168, align 4, !tbaa !17
  %170 = fsub float %164, %169
  store float %170, ptr %4, align 4, !tbaa !17
  %171 = icmp eq i32 %.5182, 0
  br i1 %171, label %.loopexit161.sink.split, label %172

172:                                              ; preds = %162
  %173 = load float, ptr %2, align 4, !tbaa !17
  %174 = fcmp ogt float %170, %173
  br i1 %174, label %.loopexit161.sink.split, label %.loopexit161

175:                                              ; preds = %158
  %176 = zext nneg i32 %156 to i64
  %177 = getelementptr inbounds %struct._FlConn, ptr %144, i64 %176, i32 10
  %178 = load i8, ptr %177, align 4, !tbaa !18
  %.not150 = icmp eq i8 %178, 0
  br i1 %.not150, label %.loopexit161, label %.preheader160

.preheader160:                                    ; preds = %175
  %179 = getelementptr inbounds %struct._FlConn, ptr %144, i64 %176, i32 13
  %180 = load i32, ptr %179, align 8, !tbaa !20
  %181 = icmp sgt i32 %180, 0
  br i1 %181, label %.lr.ph181, label %.loopexit161

.lr.ph181:                                        ; preds = %.preheader160, %210
  %182 = phi ptr [ %211, %210 ], [ %144, %.preheader160 ]
  %indvars.iv208 = phi i64 [ %indvars.iv.next209, %210 ], [ 0, %.preheader160 ]
  %183 = getelementptr inbounds %struct._FlConn, ptr %182, i64 %176, i32 11
  %184 = load ptr, ptr %183, align 8, !tbaa !21
  %185 = getelementptr inbounds i32, ptr %184, i64 %indvars.iv208
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = icmp eq i32 %186, %0
  br i1 %187, label %188, label %210

188:                                              ; preds = %.lr.ph181
  %189 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %190 = getelementptr inbounds %struct._EfConn, ptr %189, i64 %indvars.iv214, i32 20
  %191 = load ptr, ptr %190, align 8, !tbaa !32
  %192 = getelementptr inbounds i32, ptr %191, i64 %indvars.iv211
  %193 = load i32, ptr %192, align 4, !tbaa !5
  call void @get_mneed(i32 noundef %193, ptr noundef nonnull %6, ptr noundef nonnull %5)
  %194 = load i8, ptr %6, align 1, !tbaa !34
  %.not151 = icmp eq i8 %194, 0
  br i1 %.not151, label %195, label %._crit_edge229

._crit_edge229:                                   ; preds = %188
  %.pre230 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  br label %210

195:                                              ; preds = %188
  %196 = load float, ptr %5, align 4, !tbaa !17
  %197 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %198 = getelementptr inbounds %struct._EfConn, ptr %197, i64 %indvars.iv214, i32 22
  %199 = load ptr, ptr %198, align 8, !tbaa !35
  %200 = getelementptr inbounds float, ptr %199, i64 %indvars.iv211
  %201 = load float, ptr %200, align 4, !tbaa !17
  %202 = fsub float %196, %201
  %203 = call zeroext i8 @supv(ptr noundef nonnull %4, i32 noundef %0, i32 noundef %156, float noundef %202)
  %.not152 = icmp eq i8 %203, 0
  br i1 %.not152, label %.loopexit161, label %204

204:                                              ; preds = %195
  %205 = add nsw i32 %.5182, 1
  %206 = icmp eq i32 %.5182, 0
  %.pre231 = load float, ptr %4, align 4, !tbaa !17
  br i1 %206, label %.loopexit161.sink.split, label %207

207:                                              ; preds = %204
  %208 = load float, ptr %2, align 4, !tbaa !17
  %209 = fcmp ogt float %.pre231, %208
  br i1 %209, label %.loopexit161.sink.split, label %.loopexit161

210:                                              ; preds = %._crit_edge229, %.lr.ph181
  %211 = phi ptr [ %.pre230, %._crit_edge229 ], [ %182, %.lr.ph181 ]
  %indvars.iv.next209 = add nuw nsw i64 %indvars.iv208, 1
  %212 = getelementptr inbounds %struct._FlConn, ptr %211, i64 %176, i32 13
  %213 = load i32, ptr %212, align 8, !tbaa !20
  %214 = sext i32 %213 to i64
  %215 = icmp slt i64 %indvars.iv.next209, %214
  br i1 %215, label %.lr.ph181, label %.loopexit161, !llvm.loop !36

.loopexit161.sink.split:                          ; preds = %204, %207, %162, %172
  %.pre231.sink = phi float [ %170, %172 ], [ %170, %162 ], [ %.pre231, %207 ], [ %.pre231, %204 ]
  %.6.ph = phi i32 [ %163, %172 ], [ %163, %162 ], [ %205, %207 ], [ %205, %204 ]
  store float %.pre231.sink, ptr %2, align 4, !tbaa !17
  br label %.loopexit161

.loopexit161:                                     ; preds = %210, %.loopexit161.sink.split, %.preheader160, %207, %195, %175, %160, %172, %152, %.lr.ph184
  %.6 = phi i32 [ %.5182, %152 ], [ %.5182, %160 ], [ %163, %172 ], [ %205, %207 ], [ %.5182, %195 ], [ %.5182, %175 ], [ %.5182, %.lr.ph184 ], [ %.5182, %.preheader160 ], [ %.6.ph, %.loopexit161.sink.split ], [ %.5182, %210 ]
  %indvars.iv.next212 = add nuw nsw i64 %indvars.iv211, 1
  %216 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %217 = getelementptr inbounds %struct._EfConn, ptr %216, i64 %indvars.iv214
  %218 = getelementptr inbounds i8, ptr %217, i64 168
  %219 = load i32, ptr %218, align 8, !tbaa !25
  %220 = sext i32 %219 to i64
  %221 = icmp slt i64 %indvars.iv.next212, %220
  br i1 %221, label %.lr.ph184, label %._crit_edge, !llvm.loop !37

._crit_edge:                                      ; preds = %.loopexit161, %.preheader166
  %222 = phi ptr [ %74, %.preheader166 ], [ %216, %.loopexit161 ]
  %.5.lcssa = phi i32 [ %.3.lcssa, %.preheader166 ], [ %.6, %.loopexit161 ]
  %indvars.iv.next215 = add nuw nsw i64 %indvars.iv214, 1
  %223 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !5
  %224 = sext i32 %223 to i64
  %225 = icmp slt i64 %indvars.iv.next215, %224
  br i1 %225, label %.preheader168, label %.preheader159, !llvm.loop !38

.lr.ph193:                                        ; preds = %.lr.ph193.preheader, %.loopexit
  %226 = phi ptr [ %.pre233, %.lr.ph193.preheader ], [ %270, %.loopexit ]
  %indvars.iv222 = phi i64 [ 0, %.lr.ph193.preheader ], [ %indvars.iv.next223, %.loopexit ]
  %.7191 = phi i32 [ %.0125.lcssa, %.lr.ph193.preheader ], [ %.9, %.loopexit ]
  %227 = getelementptr inbounds i32, ptr %226, i64 %indvars.iv222
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = icmp slt i32 %228, 0
  br i1 %229, label %.loopexit, label %230

230:                                              ; preds = %.lr.ph193
  %231 = icmp eq i32 %228, %0
  br i1 %231, label %232, label %242

232:                                              ; preds = %230
  %233 = add nsw i32 %.7191, 1
  %234 = load ptr, ptr @gfnumeric_goal_c, align 8, !tbaa !9
  %235 = getelementptr inbounds float, ptr %234, i64 %indvars.iv222
  %236 = load float, ptr %235, align 4, !tbaa !17
  store float %236, ptr %4, align 4, !tbaa !17
  %237 = icmp eq i32 %.7191, 0
  br i1 %237, label %241, label %238

238:                                              ; preds = %232
  %239 = load float, ptr %2, align 4, !tbaa !17
  %240 = fcmp ogt float %236, %239
  br i1 %240, label %241, label %242

241:                                              ; preds = %238, %232
  store float %236, ptr %2, align 4, !tbaa !17
  br label %242

242:                                              ; preds = %238, %241, %230
  %.8 = phi i32 [ %233, %241 ], [ %233, %238 ], [ %.7191, %230 ]
  %243 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %244 = zext nneg i32 %228 to i64
  %245 = getelementptr inbounds %struct._FlConn, ptr %243, i64 %244, i32 10
  %246 = load i8, ptr %245, align 4, !tbaa !18
  %.not = icmp eq i8 %246, 0
  br i1 %.not, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %242
  %247 = getelementptr inbounds %struct._FlConn, ptr %243, i64 %244
  %248 = getelementptr inbounds i8, ptr %247, i64 96
  %249 = load i32, ptr %248, align 8, !tbaa !20
  %250 = icmp sgt i32 %249, 0
  br i1 %250, label %.lr.ph190, label %.loopexit

.lr.ph190:                                        ; preds = %.preheader
  %251 = getelementptr inbounds i8, ptr %247, i64 80
  %252 = load ptr, ptr %251, align 8, !tbaa !21
  %wide.trip.count220 = zext nneg i32 %249 to i64
  br label %254

253:                                              ; preds = %254
  %indvars.iv.next218 = add nuw nsw i64 %indvars.iv217, 1
  %exitcond221.not = icmp eq i64 %indvars.iv.next218, %wide.trip.count220
  br i1 %exitcond221.not, label %.loopexit, label %254, !llvm.loop !39

254:                                              ; preds = %.lr.ph190, %253
  %indvars.iv217 = phi i64 [ 0, %.lr.ph190 ], [ %indvars.iv.next218, %253 ]
  %255 = getelementptr inbounds i32, ptr %252, i64 %indvars.iv217
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = icmp eq i32 %256, %0
  br i1 %257, label %258, label %253

258:                                              ; preds = %254
  %259 = load ptr, ptr @gfnumeric_goal_c, align 8, !tbaa !9
  %260 = getelementptr inbounds float, ptr %259, i64 %indvars.iv222
  %261 = load float, ptr %260, align 4, !tbaa !17
  %262 = call zeroext i8 @supv(ptr noundef nonnull %4, i32 noundef %0, i32 noundef %228, float noundef %261)
  %.not148 = icmp eq i8 %262, 0
  %.pre232 = load ptr, ptr @gfnumeric_goal_fl, align 8, !tbaa !9
  br i1 %.not148, label %.loopexit, label %263

263:                                              ; preds = %258
  %264 = add nsw i32 %.8, 1
  %265 = icmp eq i32 %.8, 0
  %.pre234 = load float, ptr %4, align 4, !tbaa !17
  br i1 %265, label %269, label %266

266:                                              ; preds = %263
  %267 = load float, ptr %2, align 4, !tbaa !17
  %268 = fcmp ogt float %.pre234, %267
  br i1 %268, label %269, label %.loopexit

269:                                              ; preds = %266, %263
  store float %.pre234, ptr %2, align 4, !tbaa !17
  br label %.loopexit

.loopexit:                                        ; preds = %253, %.preheader, %266, %269, %258, %242, %.lr.ph193
  %270 = phi ptr [ %226, %.lr.ph193 ], [ %.pre232, %269 ], [ %.pre232, %266 ], [ %.pre232, %258 ], [ %226, %242 ], [ %226, %.preheader ], [ %226, %253 ]
  %.9 = phi i32 [ %.7191, %.lr.ph193 ], [ %264, %269 ], [ %264, %266 ], [ %.8, %258 ], [ %.8, %242 ], [ %.8, %.preheader ], [ %.8, %253 ]
  %indvars.iv.next223 = add nuw nsw i64 %indvars.iv222, 1
  %271 = load i32, ptr @gnum_fnumeric_goal, align 4, !tbaa !5
  %272 = sext i32 %271 to i64
  %273 = icmp slt i64 %indvars.iv.next223, %272
  br i1 %273, label %.lr.ph193, label %._crit_edge194, !llvm.loop !40

._crit_edge194:                                   ; preds = %.loopexit, %.preheader159
  %.7.lcssa = phi i32 [ %.0125.lcssa, %.preheader159 ], [ %.9, %.loopexit ]
  %274 = icmp eq i32 %.7.lcssa, 0
  %275 = zext i1 %274 to i8
  store i8 %275, ptr %1, align 1, !tbaa !34
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #2
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @supv(ptr noundef, i32 noundef, i32 noundef, float noundef) local_unnamed_addr #1

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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, !6, i64 56}
!12 = !{!"_EfConn", !6, i64 0, !7, i64 4, !7, i64 5, !13, i64 8, !10, i64 16, !6, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !6, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !6, i64 88, !10, i64 96, !6, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !6, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !6, i64 168, !10, i64 176, !6, i64 184, !6, i64 188, !13, i64 192, !7, i64 196, !6, i64 200, !7, i64 204, !6, i64 208, !6, i64 212}
!13 = !{!"float", !7, i64 0}
!14 = !{!12, !6, i64 136}
!15 = !{!12, !10, i64 40}
!16 = !{!12, !10, i64 48}
!17 = !{!13, !13, i64 0}
!18 = !{!19, !7, i64 76}
!19 = !{!"_FlConn", !10, i64 0, !6, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !6, i64 72, !7, i64 76, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100, !13, i64 104, !7, i64 108, !10, i64 112, !10, i64 120, !7, i64 128, !13, i64 132, !6, i64 136}
!20 = !{!19, !6, i64 96}
!21 = !{!19, !10, i64 80}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}
!24 = distinct !{!24, !23}
!25 = !{!12, !6, i64 168}
!26 = !{!12, !10, i64 112}
!27 = !{!19, !7, i64 108}
!28 = !{!12, !10, i64 120}
!29 = !{!12, !10, i64 128}
!30 = distinct !{!30, !23}
!31 = distinct !{!31, !23}
!32 = !{!12, !10, i64 144}
!33 = !{!12, !10, i64 152}
!34 = !{!7, !7, i64 0}
!35 = !{!12, !10, i64 160}
!36 = distinct !{!36, !23}
!37 = distinct !{!37, !23}
!38 = distinct !{!38, !23}
!39 = distinct !{!39, !23}
!40 = distinct !{!40, !23}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass