; 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._FtConn = type { ptr, i32, ptr, i32, ptr, i32, ptr, i32, i32, float, i8, i32, i32, i8, i32, i8 }

@gef_conn = external global ptr, align 8
@gft_conn = external global ptr, align 8
@lch_F = external dso_local global ptr, align 8
@lnum_ch_F = external dso_local global i32, align 4
@lin_plan_E = external dso_local global ptr, align 8
@lnum_in_plan_E = external dso_local global i32, align 4
@lf_goals_c_at = external dso_local global ptr, align 8
@lf_goals_comp_at = external dso_local 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

declare zeroext i8 @number_comparison_holds(i32 noundef, float noundef, float noundef) #1

; Function Attrs: nounwind uwtable
define dso_local void @introduce_benefits_and_enforcements(i32 noundef %0, i32 noundef %1) #2 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca float, align 4
  store i32 %0, ptr %3, align 4, !tbaa !5
  store i32 %1, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #3
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %10

10:                                               ; preds = %56, %2
  %11 = load i32, ptr %5, align 4, !tbaa !5
  %12 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %13 = load i32, ptr %4, align 4, !tbaa !5
  %14 = sext i32 %13 to i64
  %15 = getelementptr inbounds %struct._EfConn, ptr %12, i64 %14
  %16 = getelementptr inbounds %struct._EfConn, ptr %15, i32 0, i32 13
  %17 = load i32, ptr %16, align 8, !tbaa !11
  %18 = icmp slt i32 %11, %17
  br i1 %18, label %19, label %59

19:                                               ; preds = %10
  %20 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %21 = load i32, ptr %4, align 4, !tbaa !5
  %22 = sext i32 %21 to i64
  %23 = getelementptr inbounds %struct._EfConn, ptr %20, i64 %22
  %24 = getelementptr inbounds %struct._EfConn, ptr %23, i32 0, i32 12
  %25 = load ptr, ptr %24, align 8, !tbaa !14
  %26 = load i32, ptr %5, align 4, !tbaa !5
  %27 = sext i32 %26 to i64
  %28 = getelementptr inbounds i32, ptr %25, i64 %27
  %29 = load i32, ptr %28, align 4, !tbaa !5
  store i32 %29, ptr %7, align 4, !tbaa !5
  %30 = load i32, ptr %3, align 4, !tbaa !5
  %31 = load ptr, ptr @gft_conn, align 8, !tbaa !9
  %32 = load i32, ptr %7, align 4, !tbaa !5
  %33 = sext i32 %32 to i64
  %34 = getelementptr inbounds %struct._FtConn, ptr %31, i64 %33
  %35 = getelementptr inbounds %struct._FtConn, ptr %34, i32 0, i32 12
  store i32 %30, ptr %35, align 4, !tbaa !15
  %36 = load ptr, ptr @gft_conn, align 8, !tbaa !9
  %37 = load i32, ptr %7, align 4, !tbaa !5
  %38 = sext i32 %37 to i64
  %39 = getelementptr inbounds %struct._FtConn, ptr %36, i64 %38
  %40 = getelementptr inbounds %struct._FtConn, ptr %39, i32 0, i32 13
  %41 = load i8, ptr %40, align 8, !tbaa !17
  %42 = icmp ne i8 %41, 0
  br i1 %42, label %55, label %43

43:                                               ; preds = %19
  %44 = load i32, ptr %7, align 4, !tbaa !5
  %45 = load ptr, ptr @lch_F, align 8, !tbaa !9
  %46 = load i32, ptr @lnum_ch_F, align 4, !tbaa !5
  %47 = add nsw i32 %46, 1
  store i32 %47, ptr @lnum_ch_F, align 4, !tbaa !5
  %48 = sext i32 %46 to i64
  %49 = getelementptr inbounds i32, ptr %45, i64 %48
  store i32 %44, ptr %49, align 4, !tbaa !5
  %50 = load ptr, ptr @gft_conn, align 8, !tbaa !9
  %51 = load i32, ptr %7, align 4, !tbaa !5
  %52 = sext i32 %51 to i64
  %53 = getelementptr inbounds %struct._FtConn, ptr %50, i64 %52
  %54 = getelementptr inbounds %struct._FtConn, ptr %53, i32 0, i32 13
  store i8 1, ptr %54, align 8, !tbaa !17
  br label %55

55:                                               ; preds = %43, %19
  br label %56

56:                                               ; preds = %55
  %57 = load i32, ptr %5, align 4, !tbaa !5
  %58 = add nsw i32 %57, 1
  store i32 %58, ptr %5, align 4, !tbaa !5
  br label %10, !llvm.loop !18

59:                                               ; preds = %10
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %60

60:                                               ; preds = %135, %59
  %61 = load i32, ptr %5, align 4, !tbaa !5
  %62 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %63 = load i32, ptr %4, align 4, !tbaa !5
  %64 = sext i32 %63 to i64
  %65 = getelementptr inbounds %struct._EfConn, ptr %62, i64 %64
  %66 = getelementptr inbounds %struct._EfConn, ptr %65, i32 0, i32 23
  %67 = load i32, ptr %66, align 8, !tbaa !20
  %68 = icmp slt i32 %61, %67
  br i1 %68, label %69, label %138

69:                                               ; preds = %60
  %70 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %71 = load i32, ptr %4, align 4, !tbaa !5
  %72 = sext i32 %71 to i64
  %73 = getelementptr inbounds %struct._EfConn, ptr %70, i64 %72
  %74 = getelementptr inbounds %struct._EfConn, ptr %73, i32 0, i32 20
  %75 = load ptr, ptr %74, align 8, !tbaa !21
  %76 = load i32, ptr %5, align 4, !tbaa !5
  %77 = sext i32 %76 to i64
  %78 = getelementptr inbounds i32, ptr %75, i64 %77
  %79 = load i32, ptr %78, align 4, !tbaa !5
  store i32 %79, ptr %8, align 4, !tbaa !5
  %80 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !9
  %81 = load i32, ptr %3, align 4, !tbaa !5
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds ptr, ptr %80, i64 %82
  %84 = load ptr, ptr %83, align 8, !tbaa !9
  %85 = load i32, ptr %8, align 4, !tbaa !5
  %86 = sext i32 %85 to i64
  %87 = getelementptr inbounds i32, ptr %84, i64 %86
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = icmp eq i32 %88, 3000
  br i1 %89, label %90, label %91

90:                                               ; preds = %69
  br label %135

91:                                               ; preds = %69
  %92 = load i32, ptr %4, align 4, !tbaa !5
  %93 = load i32, ptr %3, align 4, !tbaa !5
  %94 = sub nsw i32 %93, 1
  %95 = load i32, ptr %5, align 4, !tbaa !5
  %96 = call zeroext i8 @assign_value(i32 noundef %92, i32 noundef %94, i32 noundef %95, ptr noundef %9)
  %97 = icmp ne i8 %96, 0
  br i1 %97, label %99, label %98

98:                                               ; preds = %91
  br label %135

99:                                               ; preds = %91
  %100 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !9
  %101 = load i32, ptr %3, align 4, !tbaa !5
  %102 = sext i32 %101 to i64
  %103 = getelementptr inbounds ptr, ptr %100, i64 %102
  %104 = load ptr, ptr %103, align 8, !tbaa !9
  %105 = load i32, ptr %8, align 4, !tbaa !5
  %106 = sext i32 %105 to i64
  %107 = getelementptr inbounds i32, ptr %104, i64 %106
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = load float, ptr %9, align 4, !tbaa !22
  %110 = load ptr, ptr @lf_goals_c_at, align 8, !tbaa !9
  %111 = load i32, ptr %3, align 4, !tbaa !5
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds ptr, ptr %110, i64 %112
  %114 = load ptr, ptr %113, align 8, !tbaa !9
  %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 !22
  %119 = call zeroext i8 @number_comparison_holds(i32 noundef %108, float noundef %109, float noundef %118)
  %120 = icmp ne i8 %119, 0
  br i1 %120, label %121, label %134

121:                                              ; preds = %99
  %122 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !9
  %123 = load i32, ptr %3, align 4, !tbaa !5
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds ptr, ptr %122, i64 %124
  %126 = load ptr, ptr %125, align 8, !tbaa !9
  %127 = load i32, ptr %8, align 4, !tbaa !5
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds i32, ptr %126, i64 %128
  store i32 3000, ptr %129, align 4, !tbaa !5
  %130 = load i32, ptr %4, align 4, !tbaa !5
  %131 = load i32, ptr %3, align 4, !tbaa !5
  %132 = sub nsw i32 %131, 1
  %133 = load i32, ptr %5, align 4, !tbaa !5
  call void @enforce_assign(i32 noundef %130, i32 noundef %132, i32 noundef %133)
  br label %134

134:                                              ; preds = %121, %99
  br label %135

135:                                              ; preds = %134, %98, %90
  %136 = load i32, ptr %5, align 4, !tbaa !5
  %137 = add nsw i32 %136, 1
  store i32 %137, ptr %5, align 4, !tbaa !5
  br label %60, !llvm.loop !23

138:                                              ; preds = %60
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %139

139:                                              ; preds = %198, %138
  %140 = load i32, ptr %5, align 4, !tbaa !5
  %141 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %142 = load i32, ptr %4, align 4, !tbaa !5
  %143 = sext i32 %142 to i64
  %144 = getelementptr inbounds %struct._EfConn, ptr %141, i64 %143
  %145 = getelementptr inbounds %struct._EfConn, ptr %144, i32 0, i32 19
  %146 = load i32, ptr %145, align 8, !tbaa !24
  %147 = icmp slt i32 %140, %146
  br i1 %147, label %148, label %201

148:                                              ; preds = %139
  %149 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %150 = load i32, ptr %4, align 4, !tbaa !5
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds %struct._EfConn, ptr %149, i64 %151
  %153 = getelementptr inbounds %struct._EfConn, ptr %152, i32 0, i32 16
  %154 = load ptr, ptr %153, align 8, !tbaa !25
  %155 = load i32, ptr %5, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds i32, ptr %154, i64 %156
  %158 = load i32, ptr %157, align 4, !tbaa !5
  store i32 %158, ptr %8, align 4, !tbaa !5
  %159 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !9
  %160 = load i32, ptr %3, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds ptr, ptr %159, i64 %161
  %163 = load ptr, ptr %162, align 8, !tbaa !9
  %164 = load i32, ptr %8, align 4, !tbaa !5
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds i32, ptr %163, i64 %165
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = icmp eq i32 %167, 3000
  br i1 %168, label %169, label %170

169:                                              ; preds = %148
  br label %198

170:                                              ; preds = %148
  %171 = load i32, ptr %4, align 4, !tbaa !5
  %172 = load i32, ptr %3, align 4, !tbaa !5
  %173 = sub nsw i32 %172, 1
  %174 = load i32, ptr %5, align 4, !tbaa !5
  %175 = call zeroext i8 @increase_value(i32 noundef %171, i32 noundef %173, i32 noundef %174, ptr noundef %9)
  %176 = icmp ne i8 %175, 0
  br i1 %176, label %178, label %177

177:                                              ; preds = %170
  br label %198

178:                                              ; preds = %170
  %179 = load float, ptr %9, align 4, !tbaa !22
  %180 = fcmp ogt float %179, 0.000000e+00
  br i1 %180, label %181, label %197

181:                                              ; preds = %178
  %182 = load float, ptr %9, align 4, !tbaa !22
  %183 = load ptr, ptr @lf_goals_c_at, align 8, !tbaa !9
  %184 = load i32, ptr %3, align 4, !tbaa !5
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds ptr, ptr %183, i64 %185
  %187 = load ptr, ptr %186, align 8, !tbaa !9
  %188 = load i32, ptr %8, align 4, !tbaa !5
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds float, ptr %187, i64 %189
  %191 = load float, ptr %190, align 4, !tbaa !22
  %192 = fsub float %191, %182
  store float %192, ptr %190, align 4, !tbaa !22
  %193 = load i32, ptr %4, align 4, !tbaa !5
  %194 = load i32, ptr %3, align 4, !tbaa !5
  %195 = sub nsw i32 %194, 1
  %196 = load i32, ptr %5, align 4, !tbaa !5
  call void @enforce_increase(i32 noundef %193, i32 noundef %195, i32 noundef %196)
  br label %197

197:                                              ; preds = %181, %178
  br label %198

198:                                              ; preds = %197, %177, %169
  %199 = load i32, ptr %5, align 4, !tbaa !5
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr %5, align 4, !tbaa !5
  br label %139, !llvm.loop !26

201:                                              ; preds = %139
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %202

202:                                              ; preds = %564, %201
  %203 = load i32, ptr %5, align 4, !tbaa !5
  %204 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %205 = load i32, ptr %4, align 4, !tbaa !5
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds %struct._EfConn, ptr %204, i64 %206
  %208 = getelementptr inbounds %struct._EfConn, ptr %207, i32 0, i32 25
  %209 = load i32, ptr %208, align 8, !tbaa !27
  %210 = icmp slt i32 %203, %209
  br i1 %210, label %211, label %567

211:                                              ; preds = %202
  %212 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %213 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %214 = load i32, ptr %4, align 4, !tbaa !5
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds %struct._EfConn, ptr %213, i64 %215
  %217 = getelementptr inbounds %struct._EfConn, ptr %216, i32 0, i32 24
  %218 = load ptr, ptr %217, align 8, !tbaa !28
  %219 = load i32, ptr %5, align 4, !tbaa !5
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds i32, ptr %218, i64 %220
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds %struct._EfConn, ptr %212, i64 %223
  %225 = getelementptr inbounds %struct._EfConn, ptr %224, i32 0, i32 32
  %226 = load i32, ptr %225, align 4, !tbaa !29
  %227 = load i32, ptr %3, align 4, !tbaa !5
  %228 = sub nsw i32 %227, 1
  %229 = icmp eq i32 %226, %228
  br i1 %229, label %230, label %231

230:                                              ; preds = %211
  br label %564

231:                                              ; preds = %211
  %232 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %233 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %234 = load i32, ptr %4, align 4, !tbaa !5
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds %struct._EfConn, ptr %233, i64 %235
  %237 = getelementptr inbounds %struct._EfConn, ptr %236, i32 0, i32 24
  %238 = load ptr, ptr %237, align 8, !tbaa !28
  %239 = load i32, ptr %5, align 4, !tbaa !5
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds i32, ptr %238, i64 %240
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds %struct._EfConn, ptr %232, i64 %243
  %245 = getelementptr inbounds %struct._EfConn, ptr %244, i32 0, i32 32
  %246 = load i32, ptr %245, align 4, !tbaa !29
  %247 = icmp eq i32 %246, -1
  br i1 %247, label %248, label %264

248:                                              ; preds = %231
  %249 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %250 = load i32, ptr %4, align 4, !tbaa !5
  %251 = sext i32 %250 to i64
  %252 = getelementptr inbounds %struct._EfConn, ptr %249, i64 %251
  %253 = getelementptr inbounds %struct._EfConn, ptr %252, i32 0, i32 24
  %254 = load ptr, ptr %253, align 8, !tbaa !28
  %255 = load i32, ptr %5, align 4, !tbaa !5
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds i32, ptr %254, i64 %256
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = load ptr, ptr @lin_plan_E, align 8, !tbaa !9
  %260 = load i32, ptr @lnum_in_plan_E, align 4, !tbaa !5
  %261 = add nsw i32 %260, 1
  store i32 %261, ptr @lnum_in_plan_E, align 4, !tbaa !5
  %262 = sext i32 %260 to i64
  %263 = getelementptr inbounds i32, ptr %259, i64 %262
  store i32 %258, ptr %263, align 4, !tbaa !5
  br label %264

264:                                              ; preds = %248, %231
  %265 = load i32, ptr %3, align 4, !tbaa !5
  %266 = sub nsw i32 %265, 1
  %267 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %268 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %269 = load i32, ptr %4, align 4, !tbaa !5
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds %struct._EfConn, ptr %268, i64 %270
  %272 = getelementptr inbounds %struct._EfConn, ptr %271, i32 0, i32 24
  %273 = load ptr, ptr %272, align 8, !tbaa !28
  %274 = load i32, ptr %5, align 4, !tbaa !5
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds i32, ptr %273, i64 %275
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds %struct._EfConn, ptr %267, i64 %278
  %280 = getelementptr inbounds %struct._EfConn, ptr %279, i32 0, i32 32
  store i32 %266, ptr %280, align 4, !tbaa !29
  br label %281

281:                                              ; preds = %264
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %282

282:                                              ; preds = %346, %281
  %283 = load i32, ptr %6, align 4, !tbaa !5
  %284 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %285 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %286 = load i32, ptr %4, align 4, !tbaa !5
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds %struct._EfConn, ptr %285, i64 %287
  %289 = getelementptr inbounds %struct._EfConn, ptr %288, i32 0, i32 24
  %290 = load ptr, ptr %289, align 8, !tbaa !28
  %291 = load i32, ptr %5, align 4, !tbaa !5
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds i32, ptr %290, i64 %292
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds %struct._EfConn, ptr %284, i64 %295
  %297 = getelementptr inbounds %struct._EfConn, ptr %296, i32 0, i32 13
  %298 = load i32, ptr %297, align 8, !tbaa !11
  %299 = icmp slt i32 %283, %298
  br i1 %299, label %300, label %349

300:                                              ; preds = %282
  %301 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %302 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %303 = load i32, ptr %4, align 4, !tbaa !5
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds %struct._EfConn, ptr %302, i64 %304
  %306 = getelementptr inbounds %struct._EfConn, ptr %305, i32 0, i32 24
  %307 = load ptr, ptr %306, align 8, !tbaa !28
  %308 = load i32, ptr %5, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds i32, ptr %307, i64 %309
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds %struct._EfConn, ptr %301, i64 %312
  %314 = getelementptr inbounds %struct._EfConn, ptr %313, i32 0, i32 12
  %315 = load ptr, ptr %314, align 8, !tbaa !14
  %316 = load i32, ptr %6, align 4, !tbaa !5
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds i32, ptr %315, i64 %317
  %319 = load i32, ptr %318, align 4, !tbaa !5
  store i32 %319, ptr %7, align 4, !tbaa !5
  %320 = load i32, ptr %3, align 4, !tbaa !5
  %321 = load ptr, ptr @gft_conn, align 8, !tbaa !9
  %322 = load i32, ptr %7, align 4, !tbaa !5
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds %struct._FtConn, ptr %321, i64 %323
  %325 = getelementptr inbounds %struct._FtConn, ptr %324, i32 0, i32 12
  store i32 %320, ptr %325, align 4, !tbaa !15
  %326 = load ptr, ptr @gft_conn, align 8, !tbaa !9
  %327 = load i32, ptr %7, align 4, !tbaa !5
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds %struct._FtConn, ptr %326, i64 %328
  %330 = getelementptr inbounds %struct._FtConn, ptr %329, i32 0, i32 13
  %331 = load i8, ptr %330, align 8, !tbaa !17
  %332 = icmp ne i8 %331, 0
  br i1 %332, label %345, label %333

333:                                              ; preds = %300
  %334 = load i32, ptr %7, align 4, !tbaa !5
  %335 = load ptr, ptr @lch_F, align 8, !tbaa !9
  %336 = load i32, ptr @lnum_ch_F, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr @lnum_ch_F, align 4, !tbaa !5
  %338 = sext i32 %336 to i64
  %339 = getelementptr inbounds i32, ptr %335, i64 %338
  store i32 %334, ptr %339, align 4, !tbaa !5
  %340 = load ptr, ptr @gft_conn, align 8, !tbaa !9
  %341 = load i32, ptr %7, align 4, !tbaa !5
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds %struct._FtConn, ptr %340, i64 %342
  %344 = getelementptr inbounds %struct._FtConn, ptr %343, i32 0, i32 13
  store i8 1, ptr %344, align 8, !tbaa !17
  br label %345

345:                                              ; preds = %333, %300
  br label %346

346:                                              ; preds = %345
  %347 = load i32, ptr %6, align 4, !tbaa !5
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr %6, align 4, !tbaa !5
  br label %282, !llvm.loop !30

349:                                              ; preds = %282
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %350

350:                                              ; preds = %461, %349
  %351 = load i32, ptr %6, align 4, !tbaa !5
  %352 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %353 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %354 = load i32, ptr %4, align 4, !tbaa !5
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds %struct._EfConn, ptr %353, i64 %355
  %357 = getelementptr inbounds %struct._EfConn, ptr %356, i32 0, i32 24
  %358 = load ptr, ptr %357, align 8, !tbaa !28
  %359 = load i32, ptr %5, align 4, !tbaa !5
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds i32, ptr %358, i64 %360
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds %struct._EfConn, ptr %352, i64 %363
  %365 = getelementptr inbounds %struct._EfConn, ptr %364, i32 0, i32 23
  %366 = load i32, ptr %365, align 8, !tbaa !20
  %367 = icmp slt i32 %351, %366
  br i1 %367, label %368, label %464

368:                                              ; preds = %350
  %369 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %370 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %371 = load i32, ptr %4, align 4, !tbaa !5
  %372 = sext i32 %371 to i64
  %373 = getelementptr inbounds %struct._EfConn, ptr %370, i64 %372
  %374 = getelementptr inbounds %struct._EfConn, ptr %373, i32 0, i32 24
  %375 = load ptr, ptr %374, align 8, !tbaa !28
  %376 = load i32, ptr %5, align 4, !tbaa !5
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds i32, ptr %375, i64 %377
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %380 = sext i32 %379 to i64
  %381 = getelementptr inbounds %struct._EfConn, ptr %369, i64 %380
  %382 = getelementptr inbounds %struct._EfConn, ptr %381, i32 0, i32 20
  %383 = load ptr, ptr %382, align 8, !tbaa !21
  %384 = load i32, ptr %6, align 4, !tbaa !5
  %385 = sext i32 %384 to i64
  %386 = getelementptr inbounds i32, ptr %383, i64 %385
  %387 = load i32, ptr %386, align 4, !tbaa !5
  store i32 %387, ptr %8, align 4, !tbaa !5
  %388 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !9
  %389 = load i32, ptr %3, align 4, !tbaa !5
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds ptr, ptr %388, i64 %390
  %392 = load ptr, ptr %391, align 8, !tbaa !9
  %393 = load i32, ptr %8, align 4, !tbaa !5
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds i32, ptr %392, i64 %394
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = icmp eq i32 %396, 3000
  br i1 %397, label %398, label %399

398:                                              ; preds = %368
  br label %461

399:                                              ; preds = %368
  %400 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %401 = load i32, ptr %4, align 4, !tbaa !5
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds %struct._EfConn, ptr %400, i64 %402
  %404 = getelementptr inbounds %struct._EfConn, ptr %403, i32 0, i32 24
  %405 = load ptr, ptr %404, align 8, !tbaa !28
  %406 = load i32, ptr %5, align 4, !tbaa !5
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds i32, ptr %405, i64 %407
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = load i32, ptr %3, align 4, !tbaa !5
  %411 = sub nsw i32 %410, 1
  %412 = load i32, ptr %6, align 4, !tbaa !5
  %413 = call zeroext i8 @assign_value(i32 noundef %409, i32 noundef %411, i32 noundef %412, ptr noundef %9)
  %414 = icmp ne i8 %413, 0
  br i1 %414, label %416, label %415

415:                                              ; preds = %399
  br label %461

416:                                              ; preds = %399
  %417 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !9
  %418 = load i32, ptr %3, align 4, !tbaa !5
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds ptr, ptr %417, i64 %419
  %421 = load ptr, ptr %420, align 8, !tbaa !9
  %422 = load i32, ptr %8, align 4, !tbaa !5
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds i32, ptr %421, i64 %423
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = load float, ptr %9, align 4, !tbaa !22
  %427 = load ptr, ptr @lf_goals_c_at, align 8, !tbaa !9
  %428 = load i32, ptr %3, align 4, !tbaa !5
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds ptr, ptr %427, i64 %429
  %431 = load ptr, ptr %430, align 8, !tbaa !9
  %432 = load i32, ptr %8, align 4, !tbaa !5
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds float, ptr %431, i64 %433
  %435 = load float, ptr %434, align 4, !tbaa !22
  %436 = call zeroext i8 @number_comparison_holds(i32 noundef %425, float noundef %426, float noundef %435)
  %437 = icmp ne i8 %436, 0
  br i1 %437, label %438, label %460

438:                                              ; preds = %416
  %439 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !9
  %440 = load i32, ptr %3, align 4, !tbaa !5
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds ptr, ptr %439, i64 %441
  %443 = load ptr, ptr %442, align 8, !tbaa !9
  %444 = load i32, ptr %8, align 4, !tbaa !5
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds i32, ptr %443, i64 %445
  store i32 3000, ptr %446, align 4, !tbaa !5
  %447 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %448 = load i32, ptr %4, align 4, !tbaa !5
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds %struct._EfConn, ptr %447, i64 %449
  %451 = getelementptr inbounds %struct._EfConn, ptr %450, i32 0, i32 24
  %452 = load ptr, ptr %451, align 8, !tbaa !28
  %453 = load i32, ptr %5, align 4, !tbaa !5
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds i32, ptr %452, i64 %454
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = load i32, ptr %3, align 4, !tbaa !5
  %458 = sub nsw i32 %457, 1
  %459 = load i32, ptr %6, align 4, !tbaa !5
  call void @enforce_assign(i32 noundef %456, i32 noundef %458, i32 noundef %459)
  br label %460

460:                                              ; preds = %438, %416
  br label %461

461:                                              ; preds = %460, %415, %398
  %462 = load i32, ptr %6, align 4, !tbaa !5
  %463 = add nsw i32 %462, 1
  store i32 %463, ptr %6, align 4, !tbaa !5
  br label %350, !llvm.loop !31

464:                                              ; preds = %350
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %465

465:                                              ; preds = %560, %464
  %466 = load i32, ptr %6, align 4, !tbaa !5
  %467 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %468 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %469 = load i32, ptr %4, align 4, !tbaa !5
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds %struct._EfConn, ptr %468, i64 %470
  %472 = getelementptr inbounds %struct._EfConn, ptr %471, i32 0, i32 24
  %473 = load ptr, ptr %472, align 8, !tbaa !28
  %474 = load i32, ptr %5, align 4, !tbaa !5
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds i32, ptr %473, i64 %475
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds %struct._EfConn, ptr %467, i64 %478
  %480 = getelementptr inbounds %struct._EfConn, ptr %479, i32 0, i32 19
  %481 = load i32, ptr %480, align 8, !tbaa !24
  %482 = icmp slt i32 %466, %481
  br i1 %482, label %483, label %563

483:                                              ; preds = %465
  %484 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %485 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %486 = load i32, ptr %4, align 4, !tbaa !5
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds %struct._EfConn, ptr %485, i64 %487
  %489 = getelementptr inbounds %struct._EfConn, ptr %488, i32 0, i32 24
  %490 = load ptr, ptr %489, align 8, !tbaa !28
  %491 = load i32, ptr %5, align 4, !tbaa !5
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds i32, ptr %490, i64 %492
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds %struct._EfConn, ptr %484, i64 %495
  %497 = getelementptr inbounds %struct._EfConn, ptr %496, i32 0, i32 16
  %498 = load ptr, ptr %497, align 8, !tbaa !25
  %499 = load i32, ptr %6, align 4, !tbaa !5
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds i32, ptr %498, i64 %500
  %502 = load i32, ptr %501, align 4, !tbaa !5
  store i32 %502, ptr %8, align 4, !tbaa !5
  %503 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !9
  %504 = load i32, ptr %3, align 4, !tbaa !5
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds ptr, ptr %503, i64 %505
  %507 = load ptr, ptr %506, align 8, !tbaa !9
  %508 = load i32, ptr %8, align 4, !tbaa !5
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds i32, ptr %507, i64 %509
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = icmp eq i32 %511, 3000
  br i1 %512, label %513, label %514

513:                                              ; preds = %483
  br label %560

514:                                              ; preds = %483
  %515 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %516 = load i32, ptr %4, align 4, !tbaa !5
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds %struct._EfConn, ptr %515, i64 %517
  %519 = getelementptr inbounds %struct._EfConn, ptr %518, i32 0, i32 24
  %520 = load ptr, ptr %519, align 8, !tbaa !28
  %521 = load i32, ptr %5, align 4, !tbaa !5
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds i32, ptr %520, i64 %522
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = load i32, ptr %3, align 4, !tbaa !5
  %526 = sub nsw i32 %525, 1
  %527 = load i32, ptr %6, align 4, !tbaa !5
  %528 = call zeroext i8 @increase_value(i32 noundef %524, i32 noundef %526, i32 noundef %527, ptr noundef %9)
  %529 = icmp ne i8 %528, 0
  br i1 %529, label %531, label %530

530:                                              ; preds = %514
  br label %560

531:                                              ; preds = %514
  %532 = load float, ptr %9, align 4, !tbaa !22
  %533 = fcmp ogt float %532, 0.000000e+00
  br i1 %533, label %534, label %559

534:                                              ; preds = %531
  %535 = load float, ptr %9, align 4, !tbaa !22
  %536 = load ptr, ptr @lf_goals_c_at, align 8, !tbaa !9
  %537 = load i32, ptr %3, align 4, !tbaa !5
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds ptr, ptr %536, i64 %538
  %540 = load ptr, ptr %539, align 8, !tbaa !9
  %541 = load i32, ptr %8, align 4, !tbaa !5
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds float, ptr %540, i64 %542
  %544 = load float, ptr %543, align 4, !tbaa !22
  %545 = fsub float %544, %535
  store float %545, ptr %543, align 4, !tbaa !22
  %546 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %547 = load i32, ptr %4, align 4, !tbaa !5
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds %struct._EfConn, ptr %546, i64 %548
  %550 = getelementptr inbounds %struct._EfConn, ptr %549, i32 0, i32 24
  %551 = load ptr, ptr %550, align 8, !tbaa !28
  %552 = load i32, ptr %5, align 4, !tbaa !5
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds i32, ptr %551, i64 %553
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = load i32, ptr %3, align 4, !tbaa !5
  %557 = sub nsw i32 %556, 1
  %558 = load i32, ptr %6, align 4, !tbaa !5
  call void @enforce_increase(i32 noundef %555, i32 noundef %557, i32 noundef %558)
  br label %559

559:                                              ; preds = %534, %531
  br label %560

560:                                              ; preds = %559, %530, %513
  %561 = load i32, ptr %6, align 4, !tbaa !5
  %562 = add nsw i32 %561, 1
  store i32 %562, ptr %6, align 4, !tbaa !5
  br label %465, !llvm.loop !32

563:                                              ; preds = %465
  br label %564

564:                                              ; preds = %563, %230
  %565 = load i32, ptr %5, align 4, !tbaa !5
  %566 = add nsw i32 %565, 1
  store i32 %566, ptr %5, align 4, !tbaa !5
  br label %202, !llvm.loop !33

567:                                              ; preds = %202
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #3
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @assign_value(i32 noundef, i32 noundef, i32 noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local void @enforce_assign(i32 noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @increase_value(i32 noundef, i32 noundef, i32 noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local void @enforce_increase(i32 noundef, i32 noundef, i32 noundef) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 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 #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, !6, i64 88}
!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 80}
!15 = !{!16, !6, i64 76}
!16 = !{!"_FtConn", !10, i64 0, !6, i64 8, !10, i64 16, !6, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !6, i64 56, !6, i64 60, !13, i64 64, !7, i64 68, !6, i64 72, !6, i64 76, !7, i64 80, !6, i64 84, !7, i64 88}
!17 = !{!16, !7, i64 80}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = !{!12, !6, i64 168}
!21 = !{!12, !10, i64 144}
!22 = !{!13, !13, i64 0}
!23 = distinct !{!23, !19}
!24 = !{!12, !6, i64 136}
!25 = !{!12, !10, i64 112}
!26 = distinct !{!26, !19}
!27 = !{!12, !6, i64 184}
!28 = !{!12, !10, i64 176}
!29 = !{!12, !6, i64 212}
!30 = distinct !{!30, !19}
!31 = distinct !{!31, !19}
!32 = distinct !{!32, !19}
!33 = distinct !{!33, !19}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%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._FtConn = type { ptr, i32, ptr, i32, ptr, i32, ptr, i32, i32, float, i8, i32, i32, i8, i32, i8 }

@gef_conn = external local_unnamed_addr global ptr, align 8
@gft_conn = external local_unnamed_addr global ptr, align 8
@lch_F = external dso_local local_unnamed_addr global ptr, align 8
@lnum_ch_F = external dso_local local_unnamed_addr global i32, align 4
@lin_plan_E = external dso_local local_unnamed_addr global ptr, align 8
@lnum_in_plan_E = external dso_local local_unnamed_addr global i32, align 4
@lf_goals_c_at = external dso_local local_unnamed_addr global ptr, align 8
@lf_goals_comp_at = external dso_local 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

declare zeroext i8 @number_comparison_holds(i32 noundef, float noundef, float noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @introduce_benefits_and_enforcements(i32 noundef %0, i32 noundef %1) local_unnamed_addr #2 {
  %3 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #3
  %4 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %5 = sext i32 %1 to i64
  %6 = getelementptr inbounds %struct._EfConn, ptr %4, i64 %5
  %7 = getelementptr inbounds i8, ptr %6, i64 88
  %8 = load i32, ptr %7, align 8, !tbaa !9
  %9 = icmp sgt i32 %8, 0
  br i1 %9, label %.lr.ph, label %.preheader129

.lr.ph:                                           ; preds = %2
  %10 = getelementptr inbounds i8, ptr %6, i64 80
  %11 = load ptr, ptr %10, align 8, !tbaa !13
  %12 = load ptr, ptr @gft_conn, align 8, !tbaa !5
  %13 = load ptr, ptr @lch_F, align 8
  br label %19

.preheader129:                                    ; preds = %32, %2
  %14 = getelementptr inbounds %struct._EfConn, ptr %4, i64 %5, i32 23
  %15 = load i32, ptr %14, align 8, !tbaa !14
  %16 = icmp sgt i32 %15, 0
  br i1 %16, label %.lr.ph132, label %.preheader128

.lr.ph132:                                        ; preds = %.preheader129
  %17 = sext i32 %0 to i64
  %18 = add nsw i32 %0, -1
  br label %42

19:                                               ; preds = %.lr.ph, %32
  %20 = phi i32 [ %8, %.lr.ph ], [ %33, %32 ]
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %32 ]
  %21 = getelementptr inbounds i32, ptr %11, i64 %indvars.iv
  %22 = load i32, ptr %21, align 4, !tbaa !15
  %23 = sext i32 %22 to i64
  %24 = getelementptr inbounds %struct._FtConn, ptr %12, i64 %23, i32 12
  store i32 %0, ptr %24, align 4, !tbaa !16
  %25 = getelementptr inbounds %struct._FtConn, ptr %12, i64 %23, i32 13
  %26 = load i8, ptr %25, align 8, !tbaa !18
  %.not125 = icmp eq i8 %26, 0
  br i1 %.not125, label %27, label %32

27:                                               ; preds = %19
  %28 = load i32, ptr @lnum_ch_F, align 4, !tbaa !15
  %29 = add nsw i32 %28, 1
  store i32 %29, ptr @lnum_ch_F, align 4, !tbaa !15
  %30 = sext i32 %28 to i64
  %31 = getelementptr inbounds i32, ptr %13, i64 %30
  store i32 %22, ptr %31, align 4, !tbaa !15
  store i8 1, ptr %25, align 8, !tbaa !18
  %.pre = load i32, ptr %7, align 8, !tbaa !9
  br label %32

32:                                               ; preds = %19, %27
  %33 = phi i32 [ %20, %19 ], [ %.pre, %27 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %34 = sext i32 %33 to i64
  %35 = icmp slt i64 %indvars.iv.next, %34
  br i1 %35, label %19, label %.preheader129, !llvm.loop !19

.preheader128:                                    ; preds = %76, %.preheader129
  %36 = phi ptr [ %4, %.preheader129 ], [ %77, %76 ]
  %37 = getelementptr inbounds %struct._EfConn, ptr %36, i64 %5, i32 19
  %38 = load i32, ptr %37, align 8, !tbaa !21
  %39 = icmp sgt i32 %38, 0
  br i1 %39, label %.lr.ph134, label %.preheader127

.lr.ph134:                                        ; preds = %.preheader128
  %40 = sext i32 %0 to i64
  %41 = add nsw i32 %0, -1
  br label %88

42:                                               ; preds = %.lr.ph132, %76
  %indvars.iv144 = phi i64 [ 0, %.lr.ph132 ], [ %indvars.iv.next145, %76 ]
  %43 = phi ptr [ %4, %.lr.ph132 ], [ %77, %76 ]
  %44 = getelementptr inbounds %struct._EfConn, ptr %43, i64 %5, i32 20
  %45 = load ptr, ptr %44, align 8, !tbaa !22
  %46 = getelementptr inbounds i32, ptr %45, i64 %indvars.iv144
  %47 = load i32, ptr %46, align 4, !tbaa !15
  %48 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !5
  %49 = getelementptr inbounds ptr, ptr %48, i64 %17
  %50 = load ptr, ptr %49, align 8, !tbaa !5
  %51 = sext i32 %47 to i64
  %52 = getelementptr inbounds i32, ptr %50, i64 %51
  %53 = load i32, ptr %52, align 4, !tbaa !15
  %54 = icmp eq i32 %53, 3000
  br i1 %54, label %76, label %55

55:                                               ; preds = %42
  %56 = trunc nuw nsw i64 %indvars.iv144 to i32
  %57 = call zeroext i8 @assign_value(i32 noundef %1, i32 noundef %18, i32 noundef %56, ptr noundef nonnull %3)
  %.not123 = icmp eq i8 %57, 0
  br i1 %.not123, label %76, label %58

58:                                               ; preds = %55
  %59 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !5
  %60 = getelementptr inbounds ptr, ptr %59, i64 %17
  %61 = load ptr, ptr %60, align 8, !tbaa !5
  %62 = getelementptr inbounds i32, ptr %61, i64 %51
  %63 = load i32, ptr %62, align 4, !tbaa !15
  %64 = load float, ptr %3, align 4, !tbaa !23
  %65 = load ptr, ptr @lf_goals_c_at, align 8, !tbaa !5
  %66 = getelementptr inbounds ptr, ptr %65, i64 %17
  %67 = load ptr, ptr %66, align 8, !tbaa !5
  %68 = getelementptr inbounds float, ptr %67, i64 %51
  %69 = load float, ptr %68, align 4, !tbaa !23
  %70 = call zeroext i8 @number_comparison_holds(i32 noundef %63, float noundef %64, float noundef %69) #3
  %.not124 = icmp eq i8 %70, 0
  br i1 %.not124, label %76, label %71

71:                                               ; preds = %58
  %72 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !5
  %73 = getelementptr inbounds ptr, ptr %72, i64 %17
  %74 = load ptr, ptr %73, align 8, !tbaa !5
  %75 = getelementptr inbounds i32, ptr %74, i64 %51
  store i32 3000, ptr %75, align 4, !tbaa !15
  call void @enforce_assign(i32 noundef %1, i32 noundef %18, i32 noundef %56)
  br label %76

76:                                               ; preds = %58, %71, %55, %42
  %indvars.iv.next145 = add nuw nsw i64 %indvars.iv144, 1
  %77 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct._EfConn, ptr %77, i64 %5, i32 23
  %79 = load i32, ptr %78, align 8, !tbaa !14
  %80 = sext i32 %79 to i64
  %81 = icmp slt i64 %indvars.iv.next145, %80
  br i1 %81, label %42, label %.preheader128, !llvm.loop !24

.preheader127:                                    ; preds = %114, %.preheader128
  %82 = phi ptr [ %36, %.preheader128 ], [ %115, %114 ]
  %83 = getelementptr inbounds %struct._EfConn, ptr %82, i64 %5, i32 25
  %84 = load i32, ptr %83, align 8, !tbaa !25
  %85 = icmp sgt i32 %84, 0
  br i1 %85, label %.lr.ph142, label %._crit_edge

.lr.ph142:                                        ; preds = %.preheader127
  %86 = add nsw i32 %0, -1
  %87 = sext i32 %0 to i64
  br label %120

88:                                               ; preds = %.lr.ph134, %114
  %indvars.iv147 = phi i64 [ 0, %.lr.ph134 ], [ %indvars.iv.next148, %114 ]
  %89 = phi ptr [ %36, %.lr.ph134 ], [ %115, %114 ]
  %90 = getelementptr inbounds %struct._EfConn, ptr %89, i64 %5, i32 16
  %91 = load ptr, ptr %90, align 8, !tbaa !26
  %92 = getelementptr inbounds i32, ptr %91, i64 %indvars.iv147
  %93 = load i32, ptr %92, align 4, !tbaa !15
  %94 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !5
  %95 = getelementptr inbounds ptr, ptr %94, i64 %40
  %96 = load ptr, ptr %95, align 8, !tbaa !5
  %97 = sext i32 %93 to i64
  %98 = getelementptr inbounds i32, ptr %96, i64 %97
  %99 = load i32, ptr %98, align 4, !tbaa !15
  %100 = icmp eq i32 %99, 3000
  br i1 %100, label %114, label %101

101:                                              ; preds = %88
  %102 = trunc nuw nsw i64 %indvars.iv147 to i32
  %103 = call zeroext i8 @increase_value(i32 noundef %1, i32 noundef %41, i32 noundef %102, ptr noundef nonnull %3)
  %104 = icmp ne i8 %103, 0
  %105 = load float, ptr %3, align 4
  %106 = fcmp ogt float %105, 0.000000e+00
  %or.cond = select i1 %104, i1 %106, i1 false
  br i1 %or.cond, label %107, label %114

107:                                              ; preds = %101
  %108 = load ptr, ptr @lf_goals_c_at, align 8, !tbaa !5
  %109 = getelementptr inbounds ptr, ptr %108, i64 %40
  %110 = load ptr, ptr %109, align 8, !tbaa !5
  %111 = getelementptr inbounds float, ptr %110, i64 %97
  %112 = load float, ptr %111, align 4, !tbaa !23
  %113 = fsub float %112, %105
  store float %113, ptr %111, align 4, !tbaa !23
  call void @enforce_increase(i32 noundef %1, i32 noundef %41, i32 noundef %102)
  br label %114

114:                                              ; preds = %107, %101, %88
  %indvars.iv.next148 = add nuw nsw i64 %indvars.iv147, 1
  %115 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %116 = getelementptr inbounds %struct._EfConn, ptr %115, i64 %5, i32 19
  %117 = load i32, ptr %116, align 8, !tbaa !21
  %118 = sext i32 %117 to i64
  %119 = icmp slt i64 %indvars.iv.next148, %118
  br i1 %119, label %88, label %.preheader127, !llvm.loop !27

120:                                              ; preds = %.lr.ph142, %.loopexit
  %121 = phi ptr [ %82, %.lr.ph142 ], [ %276, %.loopexit ]
  %indvars.iv159 = phi i64 [ 0, %.lr.ph142 ], [ %indvars.iv.next160, %.loopexit ]
  %122 = getelementptr inbounds %struct._EfConn, ptr %121, i64 %5, i32 24
  %123 = load ptr, ptr %122, align 8, !tbaa !28
  %124 = getelementptr inbounds i32, ptr %123, i64 %indvars.iv159
  %125 = load i32, ptr %124, align 4, !tbaa !15
  %126 = sext i32 %125 to i64
  %127 = getelementptr inbounds %struct._EfConn, ptr %121, i64 %126, i32 32
  %128 = load i32, ptr %127, align 4, !tbaa !29
  %129 = icmp eq i32 %128, %86
  br i1 %129, label %.loopexit, label %130

130:                                              ; preds = %120
  %131 = icmp eq i32 %128, -1
  br i1 %131, label %132, label %138

132:                                              ; preds = %130
  %133 = load ptr, ptr @lin_plan_E, align 8, !tbaa !5
  %134 = load i32, ptr @lnum_in_plan_E, align 4, !tbaa !15
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr @lnum_in_plan_E, align 4, !tbaa !15
  %136 = sext i32 %134 to i64
  %137 = getelementptr inbounds i32, ptr %133, i64 %136
  store i32 %125, ptr %137, align 4, !tbaa !15
  %.pre162 = load i32, ptr %124, align 4, !tbaa !15
  %.pre165 = sext i32 %.pre162 to i64
  br label %138

138:                                              ; preds = %132, %130
  %.pre-phi = phi i64 [ %.pre165, %132 ], [ %126, %130 ]
  %139 = getelementptr inbounds %struct._EfConn, ptr %121, i64 %.pre-phi, i32 32
  store i32 %86, ptr %139, align 4, !tbaa !29
  %140 = load i32, ptr %124, align 4, !tbaa !15
  %141 = sext i32 %140 to i64
  %142 = getelementptr inbounds %struct._EfConn, ptr %121, i64 %141, i32 13
  %143 = load i32, ptr %142, align 8, !tbaa !9
  %144 = icmp sgt i32 %143, 0
  br i1 %144, label %.lr.ph136, label %.preheader126

.lr.ph136:                                        ; preds = %138
  %145 = load ptr, ptr @gft_conn, align 8, !tbaa !5
  %146 = load ptr, ptr @lch_F, align 8
  br label %152

.preheader126:                                    ; preds = %167, %138
  %.pre-phi166 = phi i64 [ %141, %138 ], [ %169, %167 ]
  %147 = phi i32 [ %140, %138 ], [ %168, %167 ]
  %148 = getelementptr inbounds %struct._EfConn, ptr %121, i64 %.pre-phi166
  %149 = getelementptr inbounds i8, ptr %148, i64 168
  %150 = load i32, ptr %149, align 8, !tbaa !14
  %151 = icmp sgt i32 %150, 0
  br i1 %151, label %.lr.ph138, label %.preheader

152:                                              ; preds = %.lr.ph136, %167
  %indvars.iv150 = phi i64 [ 0, %.lr.ph136 ], [ %indvars.iv.next151, %167 ]
  %153 = phi i64 [ %141, %.lr.ph136 ], [ %169, %167 ]
  %154 = getelementptr inbounds %struct._EfConn, ptr %121, i64 %153, i32 12
  %155 = load ptr, ptr %154, align 8, !tbaa !13
  %156 = getelementptr inbounds i32, ptr %155, i64 %indvars.iv150
  %157 = load i32, ptr %156, align 4, !tbaa !15
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds %struct._FtConn, ptr %145, i64 %158, i32 12
  store i32 %0, ptr %159, align 4, !tbaa !16
  %160 = getelementptr inbounds %struct._FtConn, ptr %145, i64 %158, i32 13
  %161 = load i8, ptr %160, align 8, !tbaa !18
  %.not122 = icmp eq i8 %161, 0
  br i1 %.not122, label %162, label %167

162:                                              ; preds = %152
  %163 = load i32, ptr @lnum_ch_F, align 4, !tbaa !15
  %164 = add nsw i32 %163, 1
  store i32 %164, ptr @lnum_ch_F, align 4, !tbaa !15
  %165 = sext i32 %163 to i64
  %166 = getelementptr inbounds i32, ptr %146, i64 %165
  store i32 %157, ptr %166, align 4, !tbaa !15
  store i8 1, ptr %160, align 8, !tbaa !18
  br label %167

167:                                              ; preds = %152, %162
  %indvars.iv.next151 = add nuw nsw i64 %indvars.iv150, 1
  %168 = load i32, ptr %124, align 4, !tbaa !15
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds %struct._EfConn, ptr %121, i64 %169, i32 13
  %171 = load i32, ptr %170, align 8, !tbaa !9
  %172 = sext i32 %171 to i64
  %173 = icmp slt i64 %indvars.iv.next151, %172
  br i1 %173, label %152, label %.preheader126, !llvm.loop !30

.preheader:                                       ; preds = %219, %.preheader126
  %.pre-phi167 = phi i64 [ %.pre-phi166, %.preheader126 ], [ %225, %219 ]
  %174 = phi ptr [ %121, %.preheader126 ], [ %220, %219 ]
  %175 = phi i32 [ %147, %.preheader126 ], [ %224, %219 ]
  %176 = getelementptr inbounds %struct._EfConn, ptr %174, i64 %.pre-phi167
  %177 = getelementptr inbounds i8, ptr %176, i64 136
  %178 = load i32, ptr %177, align 8, !tbaa !21
  %179 = icmp sgt i32 %178, 0
  br i1 %179, label %.lr.ph140, label %.loopexit

.lr.ph138:                                        ; preds = %.preheader126, %219
  %indvars.iv153 = phi i64 [ %indvars.iv.next154, %219 ], [ 0, %.preheader126 ]
  %180 = phi ptr [ %226, %219 ], [ %148, %.preheader126 ]
  %181 = phi i32 [ %224, %219 ], [ %147, %.preheader126 ]
  %182 = getelementptr inbounds i8, ptr %180, i64 144
  %183 = load ptr, ptr %182, align 8, !tbaa !22
  %184 = getelementptr inbounds i32, ptr %183, i64 %indvars.iv153
  %185 = load i32, ptr %184, align 4, !tbaa !15
  %186 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !5
  %187 = getelementptr inbounds ptr, ptr %186, i64 %87
  %188 = load ptr, ptr %187, align 8, !tbaa !5
  %189 = sext i32 %185 to i64
  %190 = getelementptr inbounds i32, ptr %188, i64 %189
  %191 = load i32, ptr %190, align 4, !tbaa !15
  %192 = icmp eq i32 %191, 3000
  br i1 %192, label %219, label %193

193:                                              ; preds = %.lr.ph138
  %194 = trunc nuw nsw i64 %indvars.iv153 to i32
  %195 = call zeroext i8 @assign_value(i32 noundef %181, i32 noundef %86, i32 noundef %194, ptr noundef nonnull %3)
  %.not = icmp eq i8 %195, 0
  br i1 %.not, label %219, label %196

196:                                              ; preds = %193
  %197 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !5
  %198 = getelementptr inbounds ptr, ptr %197, i64 %87
  %199 = load ptr, ptr %198, align 8, !tbaa !5
  %200 = getelementptr inbounds i32, ptr %199, i64 %189
  %201 = load i32, ptr %200, align 4, !tbaa !15
  %202 = load float, ptr %3, align 4, !tbaa !23
  %203 = load ptr, ptr @lf_goals_c_at, align 8, !tbaa !5
  %204 = getelementptr inbounds ptr, ptr %203, i64 %87
  %205 = load ptr, ptr %204, align 8, !tbaa !5
  %206 = getelementptr inbounds float, ptr %205, i64 %189
  %207 = load float, ptr %206, align 4, !tbaa !23
  %208 = call zeroext i8 @number_comparison_holds(i32 noundef %201, float noundef %202, float noundef %207) #3
  %.not121 = icmp eq i8 %208, 0
  br i1 %.not121, label %219, label %209

209:                                              ; preds = %196
  %210 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !5
  %211 = getelementptr inbounds ptr, ptr %210, i64 %87
  %212 = load ptr, ptr %211, align 8, !tbaa !5
  %213 = getelementptr inbounds i32, ptr %212, i64 %189
  store i32 3000, ptr %213, align 4, !tbaa !15
  %214 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct._EfConn, ptr %214, i64 %5, i32 24
  %216 = load ptr, ptr %215, align 8, !tbaa !28
  %217 = getelementptr inbounds i32, ptr %216, i64 %indvars.iv159
  %218 = load i32, ptr %217, align 4, !tbaa !15
  call void @enforce_assign(i32 noundef %218, i32 noundef %86, i32 noundef %194)
  br label %219

219:                                              ; preds = %196, %209, %193, %.lr.ph138
  %indvars.iv.next154 = add nuw nsw i64 %indvars.iv153, 1
  %220 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct._EfConn, ptr %220, i64 %5, i32 24
  %222 = load ptr, ptr %221, align 8, !tbaa !28
  %223 = getelementptr inbounds i32, ptr %222, i64 %indvars.iv159
  %224 = load i32, ptr %223, align 4, !tbaa !15
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds %struct._EfConn, ptr %220, i64 %225
  %227 = getelementptr inbounds i8, ptr %226, i64 168
  %228 = load i32, ptr %227, align 8, !tbaa !14
  %229 = sext i32 %228 to i64
  %230 = icmp slt i64 %indvars.iv.next154, %229
  br i1 %230, label %.lr.ph138, label %.preheader, !llvm.loop !31

.lr.ph140:                                        ; preds = %.preheader, %263
  %231 = phi ptr [ %264, %263 ], [ %174, %.preheader ]
  %232 = phi ptr [ %265, %263 ], [ %174, %.preheader ]
  %indvars.iv156 = phi i64 [ %indvars.iv.next157, %263 ], [ 0, %.preheader ]
  %233 = phi ptr [ %271, %263 ], [ %176, %.preheader ]
  %234 = phi i32 [ %269, %263 ], [ %175, %.preheader ]
  %235 = getelementptr inbounds i8, ptr %233, i64 112
  %236 = load ptr, ptr %235, align 8, !tbaa !26
  %237 = getelementptr inbounds i32, ptr %236, i64 %indvars.iv156
  %238 = load i32, ptr %237, align 4, !tbaa !15
  %239 = load ptr, ptr @lf_goals_comp_at, align 8, !tbaa !5
  %240 = getelementptr inbounds ptr, ptr %239, i64 %87
  %241 = load ptr, ptr %240, align 8, !tbaa !5
  %242 = sext i32 %238 to i64
  %243 = getelementptr inbounds i32, ptr %241, i64 %242
  %244 = load i32, ptr %243, align 4, !tbaa !15
  %245 = icmp eq i32 %244, 3000
  br i1 %245, label %263, label %246

246:                                              ; preds = %.lr.ph140
  %247 = trunc nuw nsw i64 %indvars.iv156 to i32
  %248 = call zeroext i8 @increase_value(i32 noundef %234, i32 noundef %86, i32 noundef %247, ptr noundef nonnull %3)
  %249 = icmp ne i8 %248, 0
  %250 = load float, ptr %3, align 4
  %251 = fcmp ogt float %250, 0.000000e+00
  %or.cond3 = select i1 %249, i1 %251, i1 false
  %.pre164 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  br i1 %or.cond3, label %252, label %263

252:                                              ; preds = %246
  %253 = load ptr, ptr @lf_goals_c_at, align 8, !tbaa !5
  %254 = getelementptr inbounds ptr, ptr %253, i64 %87
  %255 = load ptr, ptr %254, align 8, !tbaa !5
  %256 = getelementptr inbounds float, ptr %255, i64 %242
  %257 = load float, ptr %256, align 4, !tbaa !23
  %258 = fsub float %257, %250
  store float %258, ptr %256, align 4, !tbaa !23
  %259 = getelementptr inbounds %struct._EfConn, ptr %.pre164, i64 %5, i32 24
  %260 = load ptr, ptr %259, align 8, !tbaa !28
  %261 = getelementptr inbounds i32, ptr %260, i64 %indvars.iv159
  %262 = load i32, ptr %261, align 4, !tbaa !15
  call void @enforce_increase(i32 noundef %262, i32 noundef %86, i32 noundef %247)
  %.pre163 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  br label %263

263:                                              ; preds = %252, %246, %.lr.ph140
  %264 = phi ptr [ %.pre163, %252 ], [ %.pre164, %246 ], [ %231, %.lr.ph140 ]
  %265 = phi ptr [ %.pre163, %252 ], [ %.pre164, %246 ], [ %232, %.lr.ph140 ]
  %indvars.iv.next157 = add nuw nsw i64 %indvars.iv156, 1
  %266 = getelementptr inbounds %struct._EfConn, ptr %265, i64 %5, i32 24
  %267 = load ptr, ptr %266, align 8, !tbaa !28
  %268 = getelementptr inbounds i32, ptr %267, i64 %indvars.iv159
  %269 = load i32, ptr %268, align 4, !tbaa !15
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds %struct._EfConn, ptr %265, i64 %270
  %272 = getelementptr inbounds i8, ptr %271, i64 136
  %273 = load i32, ptr %272, align 8, !tbaa !21
  %274 = sext i32 %273 to i64
  %275 = icmp slt i64 %indvars.iv.next157, %274
  br i1 %275, label %.lr.ph140, label %.loopexit, !llvm.loop !32

.loopexit:                                        ; preds = %263, %.preheader, %120
  %276 = phi ptr [ %174, %.preheader ], [ %121, %120 ], [ %264, %263 ]
  %indvars.iv.next160 = add nuw nsw i64 %indvars.iv159, 1
  %277 = getelementptr inbounds %struct._EfConn, ptr %276, i64 %5, i32 25
  %278 = load i32, ptr %277, align 8, !tbaa !25
  %279 = sext i32 %278 to i64
  %280 = icmp slt i64 %indvars.iv.next160, %279
  br i1 %280, label %120, label %._crit_edge, !llvm.loop !33

._crit_edge:                                      ; preds = %.loopexit, %.preheader127
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #3
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @assign_value(i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @enforce_assign(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @increase_value(i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @enforce_increase(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 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 #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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 88}
!10 = !{!"_EfConn", !11, i64 0, !7, i64 4, !7, i64 5, !12, i64 8, !6, i64 16, !11, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !11, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !11, i64 88, !6, i64 96, !11, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !11, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !11, i64 168, !6, i64 176, !11, i64 184, !11, i64 188, !12, i64 192, !7, i64 196, !11, i64 200, !7, i64 204, !11, i64 208, !11, i64 212}
!11 = !{!"int", !7, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!10, !6, i64 80}
!14 = !{!10, !11, i64 168}
!15 = !{!11, !11, i64 0}
!16 = !{!17, !11, i64 76}
!17 = !{!"_FtConn", !6, i64 0, !11, i64 8, !6, i64 16, !11, i64 24, !6, i64 32, !11, i64 40, !6, i64 48, !11, i64 56, !11, i64 60, !12, i64 64, !7, i64 68, !11, i64 72, !11, i64 76, !7, i64 80, !11, i64 84, !7, i64 88}
!18 = !{!17, !7, i64 80}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = !{!10, !11, i64 136}
!22 = !{!10, !6, i64 144}
!23 = !{!12, !12, i64 0}
!24 = distinct !{!24, !20}
!25 = !{!10, !11, i64 184}
!26 = !{!10, !6, i64 112}
!27 = distinct !{!27, !20}
!28 = !{!10, !6, i64 176}
!29 = !{!10, !11, i64 212}
!30 = distinct !{!30, !20}
!31 = distinct !{!31, !20}
!32 = distinct !{!32, !20}
!33 = distinct !{!33, !20}


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