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

; 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._LnfExpNode = type { [25 x i32], [25 x float], i32, [25 x i32], [25 x float], i32, float }
%struct._Action = type { ptr, ptr, i8, ptr, i32, [15 x i32], [15 x i32], ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, ptr }
%struct._ActionEffect = type { ptr, i32, ptr, i32, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, i8, i8, float }

@glnf_metric = external global %struct._LnfExpNode, align 4
@gactions = external global ptr, align 8
@gnum_lnf_goal = external global i32, align 4
@glnf_goal_lh = external global ptr, align 8
@.str.32 = external hidden unnamed_addr constant [37 x i8], align 1
@lminus_fluent = external dso_local global [1000 x i32], align 16

declare i32 @printf(ptr noundef, ...) #0

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #1

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

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

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

9:                                                ; preds = %175, %1
  %10 = load i32, ptr %5, align 4, !tbaa !5
  %11 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %12 = icmp slt i32 %10, %11
  br i1 %12, label %13, label %178

13:                                               ; preds = %9
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %14

14:                                               ; preds = %39, %13
  %15 = load i32, ptr %6, align 4, !tbaa !5
  %16 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %17 = load i32, ptr %5, align 4, !tbaa !5
  %18 = sext i32 %17 to i64
  %19 = getelementptr inbounds ptr, ptr %16, i64 %18
  %20 = load ptr, ptr %19, align 8, !tbaa !9
  %21 = getelementptr inbounds %struct._LnfExpNode, ptr %20, i32 0, i32 5
  %22 = load i32, ptr %21, align 4, !tbaa !11
  %23 = icmp slt i32 %15, %22
  br i1 %23, label %24, label %42

24:                                               ; preds = %14
  %25 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %26 = load i32, ptr %5, align 4, !tbaa !5
  %27 = sext i32 %26 to i64
  %28 = getelementptr inbounds ptr, ptr %25, i64 %27
  %29 = load ptr, ptr %28, align 8, !tbaa !9
  %30 = getelementptr inbounds %struct._LnfExpNode, ptr %29, i32 0, i32 3
  %31 = load i32, ptr %6, align 4, !tbaa !5
  %32 = sext i32 %31 to i64
  %33 = getelementptr inbounds [25 x i32], ptr %30, i64 0, i64 %32
  %34 = load i32, ptr %33, align 4, !tbaa !5
  %35 = load i32, ptr %2, align 4, !tbaa !5
  %36 = icmp eq i32 %34, %35
  br i1 %36, label %37, label %38

37:                                               ; preds = %24
  br label %42

38:                                               ; preds = %24
  br label %39

39:                                               ; preds = %38
  %40 = load i32, ptr %6, align 4, !tbaa !5
  %41 = add nsw i32 %40, 1
  store i32 %41, ptr %6, align 4, !tbaa !5
  br label %14, !llvm.loop !14

42:                                               ; preds = %37, %14
  %43 = load i32, ptr %6, align 4, !tbaa !5
  %44 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %45 = load i32, ptr %5, align 4, !tbaa !5
  %46 = sext i32 %45 to i64
  %47 = getelementptr inbounds ptr, ptr %44, i64 %46
  %48 = load ptr, ptr %47, align 8, !tbaa !9
  %49 = getelementptr inbounds %struct._LnfExpNode, ptr %48, i32 0, i32 5
  %50 = load i32, ptr %49, align 4, !tbaa !11
  %51 = icmp eq i32 %43, %50
  br i1 %51, label %52, label %53

52:                                               ; preds = %42
  br label %175

53:                                               ; preds = %42
  %54 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %55 = load i32, ptr %5, align 4, !tbaa !5
  %56 = sext i32 %55 to i64
  %57 = getelementptr inbounds ptr, ptr %54, i64 %56
  %58 = load ptr, ptr %57, align 8, !tbaa !9
  %59 = getelementptr inbounds %struct._LnfExpNode, ptr %58, i32 0, i32 2
  %60 = load i32, ptr %59, align 4, !tbaa !16
  %61 = icmp eq i32 %60, 25
  br i1 %61, label %62, label %64

62:                                               ; preds = %53
  %63 = call i32 (ptr, ...) @printf(ptr noundef @.str.32, i32 noundef 25)
  call void @exit(i32 noundef 1) #5
  unreachable

64:                                               ; preds = %53
  %65 = load i32, ptr %2, align 4, !tbaa !5
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds [1000 x i32], ptr @lminus_fluent, i64 0, i64 %66
  %68 = load i32, ptr %67, align 4, !tbaa !5
  %69 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %70 = load i32, ptr %5, align 4, !tbaa !5
  %71 = sext i32 %70 to i64
  %72 = getelementptr inbounds ptr, ptr %69, i64 %71
  %73 = load ptr, ptr %72, align 8, !tbaa !9
  %74 = getelementptr inbounds %struct._LnfExpNode, ptr %73, i32 0, i32 0
  %75 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %76 = load i32, ptr %5, align 4, !tbaa !5
  %77 = sext i32 %76 to i64
  %78 = getelementptr inbounds ptr, ptr %75, i64 %77
  %79 = load ptr, ptr %78, align 8, !tbaa !9
  %80 = getelementptr inbounds %struct._LnfExpNode, ptr %79, i32 0, i32 2
  %81 = load i32, ptr %80, align 4, !tbaa !16
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds [25 x i32], ptr %74, i64 0, i64 %82
  store i32 %68, ptr %83, align 4, !tbaa !5
  %84 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %85 = load i32, ptr %5, align 4, !tbaa !5
  %86 = sext i32 %85 to i64
  %87 = getelementptr inbounds ptr, ptr %84, i64 %86
  %88 = load ptr, ptr %87, align 8, !tbaa !9
  %89 = getelementptr inbounds %struct._LnfExpNode, ptr %88, i32 0, i32 4
  %90 = load i32, ptr %6, align 4, !tbaa !5
  %91 = sext i32 %90 to i64
  %92 = getelementptr inbounds [25 x float], ptr %89, i64 0, i64 %91
  %93 = load float, ptr %92, align 4, !tbaa !17
  %94 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %95 = load i32, ptr %5, align 4, !tbaa !5
  %96 = sext i32 %95 to i64
  %97 = getelementptr inbounds ptr, ptr %94, i64 %96
  %98 = load ptr, ptr %97, align 8, !tbaa !9
  %99 = getelementptr inbounds %struct._LnfExpNode, ptr %98, i32 0, i32 1
  %100 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %101 = load i32, ptr %5, 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 = getelementptr inbounds %struct._LnfExpNode, ptr %104, i32 0, i32 2
  %106 = load i32, ptr %105, align 4, !tbaa !16
  %107 = add nsw i32 %106, 1
  store i32 %107, ptr %105, align 4, !tbaa !16
  %108 = sext i32 %106 to i64
  %109 = getelementptr inbounds [25 x float], ptr %99, i64 0, i64 %108
  store float %93, ptr %109, align 4, !tbaa !17
  %110 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %110, ptr %7, align 4, !tbaa !5
  br label %111

111:                                              ; preds = %163, %64
  %112 = load i32, ptr %7, align 4, !tbaa !5
  %113 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %114 = load i32, ptr %5, align 4, !tbaa !5
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds ptr, ptr %113, i64 %115
  %117 = load ptr, ptr %116, align 8, !tbaa !9
  %118 = getelementptr inbounds %struct._LnfExpNode, ptr %117, i32 0, i32 5
  %119 = load i32, ptr %118, align 4, !tbaa !11
  %120 = sub nsw i32 %119, 1
  %121 = icmp slt i32 %112, %120
  br i1 %121, label %122, label %166

122:                                              ; preds = %111
  %123 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %124 = load i32, ptr %5, align 4, !tbaa !5
  %125 = sext i32 %124 to i64
  %126 = getelementptr inbounds ptr, ptr %123, i64 %125
  %127 = load ptr, ptr %126, align 8, !tbaa !9
  %128 = getelementptr inbounds %struct._LnfExpNode, ptr %127, i32 0, i32 3
  %129 = load i32, ptr %7, align 4, !tbaa !5
  %130 = add nsw i32 %129, 1
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds [25 x i32], ptr %128, i64 0, i64 %131
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %135 = load i32, ptr %5, align 4, !tbaa !5
  %136 = sext i32 %135 to i64
  %137 = getelementptr inbounds ptr, ptr %134, i64 %136
  %138 = load ptr, ptr %137, align 8, !tbaa !9
  %139 = getelementptr inbounds %struct._LnfExpNode, ptr %138, i32 0, i32 3
  %140 = load i32, ptr %7, align 4, !tbaa !5
  %141 = sext i32 %140 to i64
  %142 = getelementptr inbounds [25 x i32], ptr %139, i64 0, i64 %141
  store i32 %133, ptr %142, align 4, !tbaa !5
  %143 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %144 = load i32, ptr %5, align 4, !tbaa !5
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds ptr, ptr %143, i64 %145
  %147 = load ptr, ptr %146, align 8, !tbaa !9
  %148 = getelementptr inbounds %struct._LnfExpNode, ptr %147, i32 0, i32 4
  %149 = load i32, ptr %7, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds [25 x float], ptr %148, i64 0, i64 %151
  %153 = load float, ptr %152, align 4, !tbaa !17
  %154 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %155 = load i32, ptr %5, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds ptr, ptr %154, i64 %156
  %158 = load ptr, ptr %157, align 8, !tbaa !9
  %159 = getelementptr inbounds %struct._LnfExpNode, ptr %158, i32 0, i32 4
  %160 = load i32, ptr %7, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds [25 x float], ptr %159, i64 0, i64 %161
  store float %153, ptr %162, align 4, !tbaa !17
  br label %163

163:                                              ; preds = %122
  %164 = load i32, ptr %7, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr %7, align 4, !tbaa !5
  br label %111, !llvm.loop !18

166:                                              ; preds = %111
  %167 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %168 = load i32, ptr %5, align 4, !tbaa !5
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds ptr, ptr %167, i64 %169
  %171 = load ptr, ptr %170, align 8, !tbaa !9
  %172 = getelementptr inbounds %struct._LnfExpNode, ptr %171, i32 0, i32 5
  %173 = load i32, ptr %172, align 4, !tbaa !11
  %174 = add nsw i32 %173, -1
  store i32 %174, ptr %172, align 4, !tbaa !11
  br label %175

175:                                              ; preds = %166, %52
  %176 = load i32, ptr %5, align 4, !tbaa !5
  %177 = add nsw i32 %176, 1
  store i32 %177, ptr %5, align 4, !tbaa !5
  br label %9, !llvm.loop !19

178:                                              ; preds = %9
  %179 = load ptr, ptr @gactions, align 8, !tbaa !9
  store ptr %179, ptr %3, align 8, !tbaa !9
  br label %180

180:                                              ; preds = %813, %178
  %181 = load ptr, ptr %3, align 8, !tbaa !9
  %182 = icmp ne ptr %181, null
  br i1 %182, label %183, label %817

183:                                              ; preds = %180
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %184

184:                                              ; preds = %382, %183
  %185 = load i32, ptr %5, align 4, !tbaa !5
  %186 = load ptr, ptr %3, align 8, !tbaa !9
  %187 = getelementptr inbounds %struct._Action, ptr %186, i32 0, i32 16
  %188 = load i32, ptr %187, align 8, !tbaa !20
  %189 = icmp slt i32 %185, %188
  br i1 %189, label %190, label %385

190:                                              ; preds = %184
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %191

191:                                              ; preds = %220, %190
  %192 = load i32, ptr %6, align 4, !tbaa !5
  %193 = load ptr, ptr %3, align 8, !tbaa !9
  %194 = getelementptr inbounds %struct._Action, ptr %193, i32 0, i32 14
  %195 = load ptr, ptr %194, align 8, !tbaa !22
  %196 = load i32, ptr %5, align 4, !tbaa !5
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds ptr, ptr %195, i64 %197
  %199 = load ptr, ptr %198, align 8, !tbaa !9
  %200 = getelementptr inbounds %struct._LnfExpNode, ptr %199, i32 0, i32 5
  %201 = load i32, ptr %200, align 4, !tbaa !11
  %202 = icmp slt i32 %192, %201
  br i1 %202, label %203, label %223

203:                                              ; preds = %191
  %204 = load ptr, ptr %3, align 8, !tbaa !9
  %205 = getelementptr inbounds %struct._Action, ptr %204, i32 0, i32 14
  %206 = load ptr, ptr %205, align 8, !tbaa !22
  %207 = load i32, ptr %5, align 4, !tbaa !5
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds ptr, ptr %206, i64 %208
  %210 = load ptr, ptr %209, align 8, !tbaa !9
  %211 = getelementptr inbounds %struct._LnfExpNode, ptr %210, i32 0, i32 3
  %212 = load i32, ptr %6, align 4, !tbaa !5
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds [25 x i32], ptr %211, i64 0, i64 %213
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = load i32, ptr %2, align 4, !tbaa !5
  %217 = icmp eq i32 %215, %216
  br i1 %217, label %218, label %219

218:                                              ; preds = %203
  br label %223

219:                                              ; preds = %203
  br label %220

220:                                              ; preds = %219
  %221 = load i32, ptr %6, align 4, !tbaa !5
  %222 = add nsw i32 %221, 1
  store i32 %222, ptr %6, align 4, !tbaa !5
  br label %191, !llvm.loop !23

223:                                              ; preds = %218, %191
  %224 = load i32, ptr %6, align 4, !tbaa !5
  %225 = load ptr, ptr %3, align 8, !tbaa !9
  %226 = getelementptr inbounds %struct._Action, ptr %225, i32 0, i32 14
  %227 = load ptr, ptr %226, align 8, !tbaa !22
  %228 = load i32, ptr %5, align 4, !tbaa !5
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds ptr, ptr %227, i64 %229
  %231 = load ptr, ptr %230, align 8, !tbaa !9
  %232 = getelementptr inbounds %struct._LnfExpNode, ptr %231, i32 0, i32 5
  %233 = load i32, ptr %232, align 4, !tbaa !11
  %234 = icmp eq i32 %224, %233
  br i1 %234, label %235, label %236

235:                                              ; preds = %223
  br label %382

236:                                              ; preds = %223
  %237 = load ptr, ptr %3, align 8, !tbaa !9
  %238 = getelementptr inbounds %struct._Action, ptr %237, i32 0, i32 14
  %239 = load ptr, ptr %238, align 8, !tbaa !22
  %240 = load i32, ptr %5, align 4, !tbaa !5
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds ptr, ptr %239, i64 %241
  %243 = load ptr, ptr %242, align 8, !tbaa !9
  %244 = getelementptr inbounds %struct._LnfExpNode, ptr %243, i32 0, i32 2
  %245 = load i32, ptr %244, align 4, !tbaa !16
  %246 = icmp eq i32 %245, 25
  br i1 %246, label %247, label %249

247:                                              ; preds = %236
  %248 = call i32 (ptr, ...) @printf(ptr noundef @.str.32, i32 noundef 25)
  call void @exit(i32 noundef 1) #5
  unreachable

249:                                              ; preds = %236
  %250 = load i32, ptr %2, align 4, !tbaa !5
  %251 = sext i32 %250 to i64
  %252 = getelementptr inbounds [1000 x i32], ptr @lminus_fluent, i64 0, i64 %251
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = load ptr, ptr %3, align 8, !tbaa !9
  %255 = getelementptr inbounds %struct._Action, ptr %254, i32 0, i32 14
  %256 = load ptr, ptr %255, align 8, !tbaa !22
  %257 = load i32, ptr %5, align 4, !tbaa !5
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds ptr, ptr %256, i64 %258
  %260 = load ptr, ptr %259, align 8, !tbaa !9
  %261 = getelementptr inbounds %struct._LnfExpNode, ptr %260, i32 0, i32 0
  %262 = load ptr, ptr %3, align 8, !tbaa !9
  %263 = getelementptr inbounds %struct._Action, ptr %262, i32 0, i32 14
  %264 = load ptr, ptr %263, align 8, !tbaa !22
  %265 = load i32, ptr %5, align 4, !tbaa !5
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds ptr, ptr %264, i64 %266
  %268 = load ptr, ptr %267, align 8, !tbaa !9
  %269 = getelementptr inbounds %struct._LnfExpNode, ptr %268, i32 0, i32 2
  %270 = load i32, ptr %269, align 4, !tbaa !16
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds [25 x i32], ptr %261, i64 0, i64 %271
  store i32 %253, ptr %272, align 4, !tbaa !5
  %273 = load ptr, ptr %3, align 8, !tbaa !9
  %274 = getelementptr inbounds %struct._Action, ptr %273, i32 0, i32 14
  %275 = load ptr, ptr %274, align 8, !tbaa !22
  %276 = load i32, ptr %5, align 4, !tbaa !5
  %277 = sext i32 %276 to i64
  %278 = getelementptr inbounds ptr, ptr %275, i64 %277
  %279 = load ptr, ptr %278, align 8, !tbaa !9
  %280 = getelementptr inbounds %struct._LnfExpNode, ptr %279, i32 0, i32 4
  %281 = load i32, ptr %6, align 4, !tbaa !5
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds [25 x float], ptr %280, i64 0, i64 %282
  %284 = load float, ptr %283, align 4, !tbaa !17
  %285 = load ptr, ptr %3, align 8, !tbaa !9
  %286 = getelementptr inbounds %struct._Action, ptr %285, i32 0, i32 14
  %287 = load ptr, ptr %286, align 8, !tbaa !22
  %288 = load i32, ptr %5, align 4, !tbaa !5
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds ptr, ptr %287, i64 %289
  %291 = load ptr, ptr %290, align 8, !tbaa !9
  %292 = getelementptr inbounds %struct._LnfExpNode, ptr %291, i32 0, i32 1
  %293 = load ptr, ptr %3, align 8, !tbaa !9
  %294 = getelementptr inbounds %struct._Action, ptr %293, i32 0, i32 14
  %295 = load ptr, ptr %294, align 8, !tbaa !22
  %296 = load i32, ptr %5, align 4, !tbaa !5
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds ptr, ptr %295, i64 %297
  %299 = load ptr, ptr %298, align 8, !tbaa !9
  %300 = getelementptr inbounds %struct._LnfExpNode, ptr %299, i32 0, i32 2
  %301 = load i32, ptr %300, align 4, !tbaa !16
  %302 = add nsw i32 %301, 1
  store i32 %302, ptr %300, align 4, !tbaa !16
  %303 = sext i32 %301 to i64
  %304 = getelementptr inbounds [25 x float], ptr %292, i64 0, i64 %303
  store float %284, ptr %304, align 4, !tbaa !17
  %305 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %305, ptr %7, align 4, !tbaa !5
  br label %306

306:                                              ; preds = %368, %249
  %307 = load i32, ptr %7, align 4, !tbaa !5
  %308 = load ptr, ptr %3, align 8, !tbaa !9
  %309 = getelementptr inbounds %struct._Action, ptr %308, i32 0, i32 14
  %310 = load ptr, ptr %309, align 8, !tbaa !22
  %311 = load i32, ptr %5, align 4, !tbaa !5
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds ptr, ptr %310, i64 %312
  %314 = load ptr, ptr %313, align 8, !tbaa !9
  %315 = getelementptr inbounds %struct._LnfExpNode, ptr %314, i32 0, i32 5
  %316 = load i32, ptr %315, align 4, !tbaa !11
  %317 = sub nsw i32 %316, 1
  %318 = icmp slt i32 %307, %317
  br i1 %318, label %319, label %371

319:                                              ; preds = %306
  %320 = load ptr, ptr %3, align 8, !tbaa !9
  %321 = getelementptr inbounds %struct._Action, ptr %320, i32 0, i32 14
  %322 = load ptr, ptr %321, align 8, !tbaa !22
  %323 = load i32, ptr %5, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds ptr, ptr %322, i64 %324
  %326 = load ptr, ptr %325, align 8, !tbaa !9
  %327 = getelementptr inbounds %struct._LnfExpNode, ptr %326, i32 0, i32 3
  %328 = load i32, ptr %7, align 4, !tbaa !5
  %329 = add nsw i32 %328, 1
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds [25 x i32], ptr %327, i64 0, i64 %330
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = load ptr, ptr %3, align 8, !tbaa !9
  %334 = getelementptr inbounds %struct._Action, ptr %333, i32 0, i32 14
  %335 = load ptr, ptr %334, align 8, !tbaa !22
  %336 = load i32, ptr %5, align 4, !tbaa !5
  %337 = sext i32 %336 to i64
  %338 = getelementptr inbounds ptr, ptr %335, i64 %337
  %339 = load ptr, ptr %338, align 8, !tbaa !9
  %340 = getelementptr inbounds %struct._LnfExpNode, ptr %339, i32 0, i32 3
  %341 = load i32, ptr %7, align 4, !tbaa !5
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds [25 x i32], ptr %340, i64 0, i64 %342
  store i32 %332, ptr %343, align 4, !tbaa !5
  %344 = load ptr, ptr %3, align 8, !tbaa !9
  %345 = getelementptr inbounds %struct._Action, ptr %344, i32 0, i32 14
  %346 = load ptr, ptr %345, align 8, !tbaa !22
  %347 = load i32, ptr %5, align 4, !tbaa !5
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds ptr, ptr %346, i64 %348
  %350 = load ptr, ptr %349, align 8, !tbaa !9
  %351 = getelementptr inbounds %struct._LnfExpNode, ptr %350, i32 0, i32 4
  %352 = load i32, ptr %7, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds [25 x float], ptr %351, i64 0, i64 %354
  %356 = load float, ptr %355, align 4, !tbaa !17
  %357 = load ptr, ptr %3, align 8, !tbaa !9
  %358 = getelementptr inbounds %struct._Action, ptr %357, i32 0, i32 14
  %359 = load ptr, ptr %358, align 8, !tbaa !22
  %360 = load i32, ptr %5, align 4, !tbaa !5
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds ptr, ptr %359, i64 %361
  %363 = load ptr, ptr %362, align 8, !tbaa !9
  %364 = getelementptr inbounds %struct._LnfExpNode, ptr %363, i32 0, i32 4
  %365 = load i32, ptr %7, align 4, !tbaa !5
  %366 = sext i32 %365 to i64
  %367 = getelementptr inbounds [25 x float], ptr %364, i64 0, i64 %366
  store float %356, ptr %367, align 4, !tbaa !17
  br label %368

368:                                              ; preds = %319
  %369 = load i32, ptr %7, align 4, !tbaa !5
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr %7, align 4, !tbaa !5
  br label %306, !llvm.loop !24

371:                                              ; preds = %306
  %372 = load ptr, ptr %3, align 8, !tbaa !9
  %373 = getelementptr inbounds %struct._Action, ptr %372, i32 0, i32 14
  %374 = load ptr, ptr %373, align 8, !tbaa !22
  %375 = load i32, ptr %5, align 4, !tbaa !5
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds ptr, ptr %374, i64 %376
  %378 = load ptr, ptr %377, align 8, !tbaa !9
  %379 = getelementptr inbounds %struct._LnfExpNode, ptr %378, i32 0, i32 5
  %380 = load i32, ptr %379, align 4, !tbaa !11
  %381 = add nsw i32 %380, -1
  store i32 %381, ptr %379, align 4, !tbaa !11
  br label %382

382:                                              ; preds = %371, %235
  %383 = load i32, ptr %5, align 4, !tbaa !5
  %384 = add nsw i32 %383, 1
  store i32 %384, ptr %5, align 4, !tbaa !5
  br label %184, !llvm.loop !25

385:                                              ; preds = %184
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %386

386:                                              ; preds = %809, %385
  %387 = load i32, ptr %5, align 4, !tbaa !5
  %388 = load ptr, ptr %3, align 8, !tbaa !9
  %389 = getelementptr inbounds %struct._Action, ptr %388, i32 0, i32 18
  %390 = load i32, ptr %389, align 8, !tbaa !26
  %391 = icmp slt i32 %387, %390
  br i1 %391, label %392, label %812

392:                                              ; preds = %386
  %393 = load ptr, ptr %3, align 8, !tbaa !9
  %394 = getelementptr inbounds %struct._Action, ptr %393, i32 0, i32 17
  %395 = load ptr, ptr %394, align 8, !tbaa !27
  %396 = load i32, ptr %5, align 4, !tbaa !5
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds %struct._ActionEffect, ptr %395, i64 %397
  store ptr %398, ptr %4, align 8, !tbaa !9
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %399

399:                                              ; preds = %597, %392
  %400 = load i32, ptr %6, align 4, !tbaa !5
  %401 = load ptr, ptr %4, align 8, !tbaa !9
  %402 = getelementptr inbounds %struct._ActionEffect, ptr %401, i32 0, i32 17
  %403 = load i32, ptr %402, align 8, !tbaa !28
  %404 = icmp slt i32 %400, %403
  br i1 %404, label %405, label %600

405:                                              ; preds = %399
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %406

406:                                              ; preds = %435, %405
  %407 = load i32, ptr %7, align 4, !tbaa !5
  %408 = load ptr, ptr %4, align 8, !tbaa !9
  %409 = getelementptr inbounds %struct._ActionEffect, ptr %408, i32 0, i32 15
  %410 = load ptr, ptr %409, align 8, !tbaa !30
  %411 = load i32, ptr %6, align 4, !tbaa !5
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds ptr, ptr %410, i64 %412
  %414 = load ptr, ptr %413, align 8, !tbaa !9
  %415 = getelementptr inbounds %struct._LnfExpNode, ptr %414, i32 0, i32 5
  %416 = load i32, ptr %415, align 4, !tbaa !11
  %417 = icmp slt i32 %407, %416
  br i1 %417, label %418, label %438

418:                                              ; preds = %406
  %419 = load ptr, ptr %4, align 8, !tbaa !9
  %420 = getelementptr inbounds %struct._ActionEffect, ptr %419, i32 0, i32 15
  %421 = load ptr, ptr %420, align 8, !tbaa !30
  %422 = load i32, ptr %6, align 4, !tbaa !5
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds ptr, ptr %421, i64 %423
  %425 = load ptr, ptr %424, align 8, !tbaa !9
  %426 = getelementptr inbounds %struct._LnfExpNode, ptr %425, i32 0, i32 3
  %427 = load i32, ptr %7, align 4, !tbaa !5
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds [25 x i32], ptr %426, i64 0, i64 %428
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = load i32, ptr %2, align 4, !tbaa !5
  %432 = icmp eq i32 %430, %431
  br i1 %432, label %433, label %434

433:                                              ; preds = %418
  br label %438

434:                                              ; preds = %418
  br label %435

435:                                              ; preds = %434
  %436 = load i32, ptr %7, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr %7, align 4, !tbaa !5
  br label %406, !llvm.loop !31

438:                                              ; preds = %433, %406
  %439 = load i32, ptr %7, align 4, !tbaa !5
  %440 = load ptr, ptr %4, align 8, !tbaa !9
  %441 = getelementptr inbounds %struct._ActionEffect, ptr %440, i32 0, i32 15
  %442 = load ptr, ptr %441, align 8, !tbaa !30
  %443 = load i32, ptr %6, align 4, !tbaa !5
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds ptr, ptr %442, i64 %444
  %446 = load ptr, ptr %445, align 8, !tbaa !9
  %447 = getelementptr inbounds %struct._LnfExpNode, ptr %446, i32 0, i32 5
  %448 = load i32, ptr %447, align 4, !tbaa !11
  %449 = icmp eq i32 %439, %448
  br i1 %449, label %450, label %451

450:                                              ; preds = %438
  br label %597

451:                                              ; preds = %438
  %452 = load ptr, ptr %4, align 8, !tbaa !9
  %453 = getelementptr inbounds %struct._ActionEffect, ptr %452, i32 0, i32 15
  %454 = load ptr, ptr %453, align 8, !tbaa !30
  %455 = load i32, ptr %6, align 4, !tbaa !5
  %456 = sext i32 %455 to i64
  %457 = getelementptr inbounds ptr, ptr %454, i64 %456
  %458 = load ptr, ptr %457, align 8, !tbaa !9
  %459 = getelementptr inbounds %struct._LnfExpNode, ptr %458, i32 0, i32 2
  %460 = load i32, ptr %459, align 4, !tbaa !16
  %461 = icmp eq i32 %460, 25
  br i1 %461, label %462, label %464

462:                                              ; preds = %451
  %463 = call i32 (ptr, ...) @printf(ptr noundef @.str.32, i32 noundef 25)
  call void @exit(i32 noundef 1) #5
  unreachable

464:                                              ; preds = %451
  %465 = load i32, ptr %2, align 4, !tbaa !5
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds [1000 x i32], ptr @lminus_fluent, i64 0, i64 %466
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = load ptr, ptr %4, align 8, !tbaa !9
  %470 = getelementptr inbounds %struct._ActionEffect, ptr %469, i32 0, i32 15
  %471 = load ptr, ptr %470, align 8, !tbaa !30
  %472 = load i32, ptr %6, align 4, !tbaa !5
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds ptr, ptr %471, i64 %473
  %475 = load ptr, ptr %474, align 8, !tbaa !9
  %476 = getelementptr inbounds %struct._LnfExpNode, ptr %475, i32 0, i32 0
  %477 = load ptr, ptr %4, align 8, !tbaa !9
  %478 = getelementptr inbounds %struct._ActionEffect, ptr %477, i32 0, i32 15
  %479 = load ptr, ptr %478, align 8, !tbaa !30
  %480 = load i32, ptr %6, align 4, !tbaa !5
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds ptr, ptr %479, i64 %481
  %483 = load ptr, ptr %482, align 8, !tbaa !9
  %484 = getelementptr inbounds %struct._LnfExpNode, ptr %483, i32 0, i32 2
  %485 = load i32, ptr %484, align 4, !tbaa !16
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds [25 x i32], ptr %476, i64 0, i64 %486
  store i32 %468, ptr %487, align 4, !tbaa !5
  %488 = load ptr, ptr %4, align 8, !tbaa !9
  %489 = getelementptr inbounds %struct._ActionEffect, ptr %488, i32 0, i32 15
  %490 = load ptr, ptr %489, align 8, !tbaa !30
  %491 = load i32, ptr %6, align 4, !tbaa !5
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds ptr, ptr %490, i64 %492
  %494 = load ptr, ptr %493, align 8, !tbaa !9
  %495 = getelementptr inbounds %struct._LnfExpNode, ptr %494, i32 0, i32 4
  %496 = load i32, ptr %7, align 4, !tbaa !5
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds [25 x float], ptr %495, i64 0, i64 %497
  %499 = load float, ptr %498, align 4, !tbaa !17
  %500 = load ptr, ptr %4, align 8, !tbaa !9
  %501 = getelementptr inbounds %struct._ActionEffect, ptr %500, i32 0, i32 15
  %502 = load ptr, ptr %501, align 8, !tbaa !30
  %503 = load i32, ptr %6, align 4, !tbaa !5
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds ptr, ptr %502, i64 %504
  %506 = load ptr, ptr %505, align 8, !tbaa !9
  %507 = getelementptr inbounds %struct._LnfExpNode, ptr %506, i32 0, i32 1
  %508 = load ptr, ptr %4, align 8, !tbaa !9
  %509 = getelementptr inbounds %struct._ActionEffect, ptr %508, i32 0, i32 15
  %510 = load ptr, ptr %509, align 8, !tbaa !30
  %511 = load i32, ptr %6, align 4, !tbaa !5
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds ptr, ptr %510, i64 %512
  %514 = load ptr, ptr %513, align 8, !tbaa !9
  %515 = getelementptr inbounds %struct._LnfExpNode, ptr %514, i32 0, i32 2
  %516 = load i32, ptr %515, align 4, !tbaa !16
  %517 = add nsw i32 %516, 1
  store i32 %517, ptr %515, align 4, !tbaa !16
  %518 = sext i32 %516 to i64
  %519 = getelementptr inbounds [25 x float], ptr %507, i64 0, i64 %518
  store float %499, ptr %519, align 4, !tbaa !17
  %520 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %520, ptr %8, align 4, !tbaa !5
  br label %521

521:                                              ; preds = %583, %464
  %522 = load i32, ptr %8, align 4, !tbaa !5
  %523 = load ptr, ptr %4, align 8, !tbaa !9
  %524 = getelementptr inbounds %struct._ActionEffect, ptr %523, i32 0, i32 15
  %525 = load ptr, ptr %524, align 8, !tbaa !30
  %526 = load i32, ptr %6, align 4, !tbaa !5
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds ptr, ptr %525, i64 %527
  %529 = load ptr, ptr %528, align 8, !tbaa !9
  %530 = getelementptr inbounds %struct._LnfExpNode, ptr %529, i32 0, i32 5
  %531 = load i32, ptr %530, align 4, !tbaa !11
  %532 = sub nsw i32 %531, 1
  %533 = icmp slt i32 %522, %532
  br i1 %533, label %534, label %586

534:                                              ; preds = %521
  %535 = load ptr, ptr %4, align 8, !tbaa !9
  %536 = getelementptr inbounds %struct._ActionEffect, ptr %535, i32 0, i32 15
  %537 = load ptr, ptr %536, align 8, !tbaa !30
  %538 = load i32, ptr %6, align 4, !tbaa !5
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds ptr, ptr %537, i64 %539
  %541 = load ptr, ptr %540, align 8, !tbaa !9
  %542 = getelementptr inbounds %struct._LnfExpNode, ptr %541, i32 0, i32 3
  %543 = load i32, ptr %8, align 4, !tbaa !5
  %544 = add nsw i32 %543, 1
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds [25 x i32], ptr %542, i64 0, i64 %545
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = load ptr, ptr %4, align 8, !tbaa !9
  %549 = getelementptr inbounds %struct._ActionEffect, ptr %548, i32 0, i32 15
  %550 = load ptr, ptr %549, align 8, !tbaa !30
  %551 = load i32, ptr %6, align 4, !tbaa !5
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds ptr, ptr %550, i64 %552
  %554 = load ptr, ptr %553, align 8, !tbaa !9
  %555 = getelementptr inbounds %struct._LnfExpNode, ptr %554, i32 0, i32 3
  %556 = load i32, ptr %8, align 4, !tbaa !5
  %557 = sext i32 %556 to i64
  %558 = getelementptr inbounds [25 x i32], ptr %555, i64 0, i64 %557
  store i32 %547, ptr %558, align 4, !tbaa !5
  %559 = load ptr, ptr %4, align 8, !tbaa !9
  %560 = getelementptr inbounds %struct._ActionEffect, ptr %559, i32 0, i32 15
  %561 = load ptr, ptr %560, align 8, !tbaa !30
  %562 = load i32, ptr %6, align 4, !tbaa !5
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds ptr, ptr %561, i64 %563
  %565 = load ptr, ptr %564, align 8, !tbaa !9
  %566 = getelementptr inbounds %struct._LnfExpNode, ptr %565, i32 0, i32 4
  %567 = load i32, ptr %8, align 4, !tbaa !5
  %568 = add nsw i32 %567, 1
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds [25 x float], ptr %566, i64 0, i64 %569
  %571 = load float, ptr %570, align 4, !tbaa !17
  %572 = load ptr, ptr %4, align 8, !tbaa !9
  %573 = getelementptr inbounds %struct._ActionEffect, ptr %572, i32 0, i32 15
  %574 = load ptr, ptr %573, align 8, !tbaa !30
  %575 = load i32, ptr %6, align 4, !tbaa !5
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds ptr, ptr %574, i64 %576
  %578 = load ptr, ptr %577, align 8, !tbaa !9
  %579 = getelementptr inbounds %struct._LnfExpNode, ptr %578, i32 0, i32 4
  %580 = load i32, ptr %8, align 4, !tbaa !5
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds [25 x float], ptr %579, i64 0, i64 %581
  store float %571, ptr %582, align 4, !tbaa !17
  br label %583

583:                                              ; preds = %534
  %584 = load i32, ptr %8, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr %8, align 4, !tbaa !5
  br label %521, !llvm.loop !32

586:                                              ; preds = %521
  %587 = load ptr, ptr %4, align 8, !tbaa !9
  %588 = getelementptr inbounds %struct._ActionEffect, ptr %587, i32 0, i32 15
  %589 = load ptr, ptr %588, align 8, !tbaa !30
  %590 = load i32, ptr %6, align 4, !tbaa !5
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds ptr, ptr %589, i64 %591
  %593 = load ptr, ptr %592, align 8, !tbaa !9
  %594 = getelementptr inbounds %struct._LnfExpNode, ptr %593, i32 0, i32 5
  %595 = load i32, ptr %594, align 4, !tbaa !11
  %596 = add nsw i32 %595, -1
  store i32 %596, ptr %594, align 4, !tbaa !11
  br label %597

597:                                              ; preds = %586, %450
  %598 = load i32, ptr %6, align 4, !tbaa !5
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr %6, align 4, !tbaa !5
  br label %399, !llvm.loop !33

600:                                              ; preds = %399
  %601 = load ptr, ptr %4, align 8, !tbaa !9
  %602 = getelementptr inbounds %struct._ActionEffect, ptr %601, i32 0, i32 22
  %603 = load i8, ptr %602, align 4, !tbaa !34
  %604 = icmp ne i8 %603, 0
  br i1 %604, label %605, label %606

605:                                              ; preds = %600
  br label %809

606:                                              ; preds = %600
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %607

607:                                              ; preds = %805, %606
  %608 = load i32, ptr %6, align 4, !tbaa !5
  %609 = load ptr, ptr %4, align 8, !tbaa !9
  %610 = getelementptr inbounds %struct._ActionEffect, ptr %609, i32 0, i32 21
  %611 = load i32, ptr %610, align 8, !tbaa !35
  %612 = icmp slt i32 %608, %611
  br i1 %612, label %613, label %808

613:                                              ; preds = %607
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %614

614:                                              ; preds = %643, %613
  %615 = load i32, ptr %7, align 4, !tbaa !5
  %616 = load ptr, ptr %4, align 8, !tbaa !9
  %617 = getelementptr inbounds %struct._ActionEffect, ptr %616, i32 0, i32 20
  %618 = load ptr, ptr %617, align 8, !tbaa !36
  %619 = load i32, ptr %6, align 4, !tbaa !5
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds ptr, ptr %618, i64 %620
  %622 = load ptr, ptr %621, align 8, !tbaa !9
  %623 = getelementptr inbounds %struct._LnfExpNode, ptr %622, i32 0, i32 5
  %624 = load i32, ptr %623, align 4, !tbaa !11
  %625 = icmp slt i32 %615, %624
  br i1 %625, label %626, label %646

626:                                              ; preds = %614
  %627 = load ptr, ptr %4, align 8, !tbaa !9
  %628 = getelementptr inbounds %struct._ActionEffect, ptr %627, i32 0, i32 20
  %629 = load ptr, ptr %628, align 8, !tbaa !36
  %630 = load i32, ptr %6, align 4, !tbaa !5
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds ptr, ptr %629, i64 %631
  %633 = load ptr, ptr %632, align 8, !tbaa !9
  %634 = getelementptr inbounds %struct._LnfExpNode, ptr %633, i32 0, i32 3
  %635 = load i32, ptr %7, align 4, !tbaa !5
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds [25 x i32], ptr %634, i64 0, i64 %636
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = load i32, ptr %2, align 4, !tbaa !5
  %640 = icmp eq i32 %638, %639
  br i1 %640, label %641, label %642

641:                                              ; preds = %626
  br label %646

642:                                              ; preds = %626
  br label %643

643:                                              ; preds = %642
  %644 = load i32, ptr %7, align 4, !tbaa !5
  %645 = add nsw i32 %644, 1
  store i32 %645, ptr %7, align 4, !tbaa !5
  br label %614, !llvm.loop !37

646:                                              ; preds = %641, %614
  %647 = load i32, ptr %7, align 4, !tbaa !5
  %648 = load ptr, ptr %4, align 8, !tbaa !9
  %649 = getelementptr inbounds %struct._ActionEffect, ptr %648, i32 0, i32 20
  %650 = load ptr, ptr %649, align 8, !tbaa !36
  %651 = load i32, ptr %6, align 4, !tbaa !5
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds ptr, ptr %650, i64 %652
  %654 = load ptr, ptr %653, align 8, !tbaa !9
  %655 = getelementptr inbounds %struct._LnfExpNode, ptr %654, i32 0, i32 5
  %656 = load i32, ptr %655, align 4, !tbaa !11
  %657 = icmp eq i32 %647, %656
  br i1 %657, label %658, label %659

658:                                              ; preds = %646
  br label %805

659:                                              ; preds = %646
  %660 = load ptr, ptr %4, align 8, !tbaa !9
  %661 = getelementptr inbounds %struct._ActionEffect, ptr %660, i32 0, i32 20
  %662 = load ptr, ptr %661, align 8, !tbaa !36
  %663 = load i32, ptr %6, align 4, !tbaa !5
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds ptr, ptr %662, i64 %664
  %666 = load ptr, ptr %665, align 8, !tbaa !9
  %667 = getelementptr inbounds %struct._LnfExpNode, ptr %666, i32 0, i32 2
  %668 = load i32, ptr %667, align 4, !tbaa !16
  %669 = icmp eq i32 %668, 25
  br i1 %669, label %670, label %672

670:                                              ; preds = %659
  %671 = call i32 (ptr, ...) @printf(ptr noundef @.str.32, i32 noundef 25)
  call void @exit(i32 noundef 1) #5
  unreachable

672:                                              ; preds = %659
  %673 = load i32, ptr %2, align 4, !tbaa !5
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds [1000 x i32], ptr @lminus_fluent, i64 0, i64 %674
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = load ptr, ptr %4, align 8, !tbaa !9
  %678 = getelementptr inbounds %struct._ActionEffect, ptr %677, i32 0, i32 20
  %679 = load ptr, ptr %678, align 8, !tbaa !36
  %680 = load i32, ptr %6, align 4, !tbaa !5
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds ptr, ptr %679, i64 %681
  %683 = load ptr, ptr %682, align 8, !tbaa !9
  %684 = getelementptr inbounds %struct._LnfExpNode, ptr %683, i32 0, i32 0
  %685 = load ptr, ptr %4, align 8, !tbaa !9
  %686 = getelementptr inbounds %struct._ActionEffect, ptr %685, i32 0, i32 20
  %687 = load ptr, ptr %686, align 8, !tbaa !36
  %688 = load i32, ptr %6, align 4, !tbaa !5
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds ptr, ptr %687, i64 %689
  %691 = load ptr, ptr %690, align 8, !tbaa !9
  %692 = getelementptr inbounds %struct._LnfExpNode, ptr %691, i32 0, i32 2
  %693 = load i32, ptr %692, align 4, !tbaa !16
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds [25 x i32], ptr %684, i64 0, i64 %694
  store i32 %676, ptr %695, align 4, !tbaa !5
  %696 = load ptr, ptr %4, align 8, !tbaa !9
  %697 = getelementptr inbounds %struct._ActionEffect, ptr %696, i32 0, i32 20
  %698 = load ptr, ptr %697, align 8, !tbaa !36
  %699 = load i32, ptr %6, align 4, !tbaa !5
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds ptr, ptr %698, i64 %700
  %702 = load ptr, ptr %701, align 8, !tbaa !9
  %703 = getelementptr inbounds %struct._LnfExpNode, ptr %702, i32 0, i32 4
  %704 = load i32, ptr %7, align 4, !tbaa !5
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds [25 x float], ptr %703, i64 0, i64 %705
  %707 = load float, ptr %706, align 4, !tbaa !17
  %708 = load ptr, ptr %4, align 8, !tbaa !9
  %709 = getelementptr inbounds %struct._ActionEffect, ptr %708, i32 0, i32 20
  %710 = load ptr, ptr %709, align 8, !tbaa !36
  %711 = load i32, ptr %6, align 4, !tbaa !5
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds ptr, ptr %710, i64 %712
  %714 = load ptr, ptr %713, align 8, !tbaa !9
  %715 = getelementptr inbounds %struct._LnfExpNode, ptr %714, i32 0, i32 1
  %716 = load ptr, ptr %4, align 8, !tbaa !9
  %717 = getelementptr inbounds %struct._ActionEffect, ptr %716, i32 0, i32 20
  %718 = load ptr, ptr %717, align 8, !tbaa !36
  %719 = load i32, ptr %6, align 4, !tbaa !5
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds ptr, ptr %718, i64 %720
  %722 = load ptr, ptr %721, align 8, !tbaa !9
  %723 = getelementptr inbounds %struct._LnfExpNode, ptr %722, i32 0, i32 2
  %724 = load i32, ptr %723, align 4, !tbaa !16
  %725 = add nsw i32 %724, 1
  store i32 %725, ptr %723, align 4, !tbaa !16
  %726 = sext i32 %724 to i64
  %727 = getelementptr inbounds [25 x float], ptr %715, i64 0, i64 %726
  store float %707, ptr %727, align 4, !tbaa !17
  %728 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %728, ptr %8, align 4, !tbaa !5
  br label %729

729:                                              ; preds = %791, %672
  %730 = load i32, ptr %8, align 4, !tbaa !5
  %731 = load ptr, ptr %4, align 8, !tbaa !9
  %732 = getelementptr inbounds %struct._ActionEffect, ptr %731, i32 0, i32 20
  %733 = load ptr, ptr %732, align 8, !tbaa !36
  %734 = load i32, ptr %6, align 4, !tbaa !5
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds ptr, ptr %733, i64 %735
  %737 = load ptr, ptr %736, align 8, !tbaa !9
  %738 = getelementptr inbounds %struct._LnfExpNode, ptr %737, i32 0, i32 5
  %739 = load i32, ptr %738, align 4, !tbaa !11
  %740 = sub nsw i32 %739, 1
  %741 = icmp slt i32 %730, %740
  br i1 %741, label %742, label %794

742:                                              ; preds = %729
  %743 = load ptr, ptr %4, align 8, !tbaa !9
  %744 = getelementptr inbounds %struct._ActionEffect, ptr %743, i32 0, i32 20
  %745 = load ptr, ptr %744, align 8, !tbaa !36
  %746 = load i32, ptr %6, align 4, !tbaa !5
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds ptr, ptr %745, i64 %747
  %749 = load ptr, ptr %748, align 8, !tbaa !9
  %750 = getelementptr inbounds %struct._LnfExpNode, ptr %749, i32 0, i32 3
  %751 = load i32, ptr %8, align 4, !tbaa !5
  %752 = add nsw i32 %751, 1
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds [25 x i32], ptr %750, i64 0, i64 %753
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = load ptr, ptr %4, align 8, !tbaa !9
  %757 = getelementptr inbounds %struct._ActionEffect, ptr %756, i32 0, i32 20
  %758 = load ptr, ptr %757, align 8, !tbaa !36
  %759 = load i32, ptr %6, align 4, !tbaa !5
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds ptr, ptr %758, i64 %760
  %762 = load ptr, ptr %761, align 8, !tbaa !9
  %763 = getelementptr inbounds %struct._LnfExpNode, ptr %762, i32 0, i32 3
  %764 = load i32, ptr %8, align 4, !tbaa !5
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds [25 x i32], ptr %763, i64 0, i64 %765
  store i32 %755, ptr %766, align 4, !tbaa !5
  %767 = load ptr, ptr %4, align 8, !tbaa !9
  %768 = getelementptr inbounds %struct._ActionEffect, ptr %767, i32 0, i32 20
  %769 = load ptr, ptr %768, align 8, !tbaa !36
  %770 = load i32, ptr %6, align 4, !tbaa !5
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds ptr, ptr %769, i64 %771
  %773 = load ptr, ptr %772, align 8, !tbaa !9
  %774 = getelementptr inbounds %struct._LnfExpNode, ptr %773, i32 0, i32 4
  %775 = load i32, ptr %8, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds [25 x float], ptr %774, i64 0, i64 %777
  %779 = load float, ptr %778, align 4, !tbaa !17
  %780 = load ptr, ptr %4, align 8, !tbaa !9
  %781 = getelementptr inbounds %struct._ActionEffect, ptr %780, i32 0, i32 20
  %782 = load ptr, ptr %781, align 8, !tbaa !36
  %783 = load i32, ptr %6, align 4, !tbaa !5
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds ptr, ptr %782, i64 %784
  %786 = load ptr, ptr %785, align 8, !tbaa !9
  %787 = getelementptr inbounds %struct._LnfExpNode, ptr %786, i32 0, i32 4
  %788 = load i32, ptr %8, align 4, !tbaa !5
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds [25 x float], ptr %787, i64 0, i64 %789
  store float %779, ptr %790, align 4, !tbaa !17
  br label %791

791:                                              ; preds = %742
  %792 = load i32, ptr %8, align 4, !tbaa !5
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr %8, align 4, !tbaa !5
  br label %729, !llvm.loop !38

794:                                              ; preds = %729
  %795 = load ptr, ptr %4, align 8, !tbaa !9
  %796 = getelementptr inbounds %struct._ActionEffect, ptr %795, i32 0, i32 20
  %797 = load ptr, ptr %796, align 8, !tbaa !36
  %798 = load i32, ptr %6, align 4, !tbaa !5
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds ptr, ptr %797, i64 %799
  %801 = load ptr, ptr %800, align 8, !tbaa !9
  %802 = getelementptr inbounds %struct._LnfExpNode, ptr %801, i32 0, i32 5
  %803 = load i32, ptr %802, align 4, !tbaa !11
  %804 = add nsw i32 %803, -1
  store i32 %804, ptr %802, align 4, !tbaa !11
  br label %805

805:                                              ; preds = %794, %658
  %806 = load i32, ptr %6, align 4, !tbaa !5
  %807 = add nsw i32 %806, 1
  store i32 %807, ptr %6, align 4, !tbaa !5
  br label %607, !llvm.loop !39

808:                                              ; preds = %607
  br label %809

809:                                              ; preds = %808, %605
  %810 = load i32, ptr %5, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr %5, align 4, !tbaa !5
  br label %386, !llvm.loop !40

812:                                              ; preds = %386
  br label %813

813:                                              ; preds = %812
  %814 = load ptr, ptr %3, align 8, !tbaa !9
  %815 = getelementptr inbounds %struct._Action, ptr %814, i32 0, i32 19
  %816 = load ptr, ptr %815, align 8, !tbaa !41
  store ptr %816, ptr %3, align 8, !tbaa !9
  br label %180, !llvm.loop !42

817:                                              ; preds = %180
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %818

818:                                              ; preds = %831, %817
  %819 = load i32, ptr %6, align 4, !tbaa !5
  %820 = load i32, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 5), align 4, !tbaa !11
  %821 = icmp slt i32 %819, %820
  br i1 %821, label %822, label %834

822:                                              ; preds = %818
  %823 = load i32, ptr %6, align 4, !tbaa !5
  %824 = sext i32 %823 to i64
  %825 = getelementptr inbounds [25 x i32], ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 3), i64 0, i64 %824
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = load i32, ptr %2, align 4, !tbaa !5
  %828 = icmp eq i32 %826, %827
  br i1 %828, label %829, label %830

829:                                              ; preds = %822
  br label %834

830:                                              ; preds = %822
  br label %831

831:                                              ; preds = %830
  %832 = load i32, ptr %6, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr %6, align 4, !tbaa !5
  br label %818, !llvm.loop !43

834:                                              ; preds = %829, %818
  %835 = load i32, ptr %6, align 4, !tbaa !5
  %836 = load i32, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 5), align 4, !tbaa !11
  %837 = icmp slt i32 %835, %836
  br i1 %837, label %838, label %888

838:                                              ; preds = %834
  %839 = load i32, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 2), align 4, !tbaa !16
  %840 = icmp eq i32 %839, 25
  br i1 %840, label %841, label %843

841:                                              ; preds = %838
  %842 = call i32 (ptr, ...) @printf(ptr noundef @.str.32, i32 noundef 25)
  call void @exit(i32 noundef 1) #5
  unreachable

843:                                              ; preds = %838
  %844 = load i32, ptr %2, align 4, !tbaa !5
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds [1000 x i32], ptr @lminus_fluent, i64 0, i64 %845
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = load i32, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 2), align 4, !tbaa !16
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds [25 x i32], ptr @glnf_metric, i64 0, i64 %849
  store i32 %847, ptr %850, align 4, !tbaa !5
  %851 = load i32, ptr %6, align 4, !tbaa !5
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds [25 x float], ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 4), i64 0, i64 %852
  %854 = load float, ptr %853, align 4, !tbaa !17
  %855 = load i32, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 2), align 4, !tbaa !16
  %856 = add nsw i32 %855, 1
  store i32 %856, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 2), align 4, !tbaa !16
  %857 = sext i32 %855 to i64
  %858 = getelementptr inbounds [25 x float], ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 1), i64 0, i64 %857
  store float %854, ptr %858, align 4, !tbaa !17
  %859 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %859, ptr %7, align 4, !tbaa !5
  br label %860

860:                                              ; preds = %882, %843
  %861 = load i32, ptr %7, align 4, !tbaa !5
  %862 = load i32, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 5), align 4, !tbaa !11
  %863 = sub nsw i32 %862, 1
  %864 = icmp slt i32 %861, %863
  br i1 %864, label %865, label %885

865:                                              ; preds = %860
  %866 = load i32, ptr %7, align 4, !tbaa !5
  %867 = add nsw i32 %866, 1
  %868 = sext i32 %867 to i64
  %869 = getelementptr inbounds [25 x i32], ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 3), i64 0, i64 %868
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = load i32, ptr %7, align 4, !tbaa !5
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds [25 x i32], ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 3), i64 0, i64 %872
  store i32 %870, ptr %873, align 4, !tbaa !5
  %874 = load i32, ptr %7, align 4, !tbaa !5
  %875 = add nsw i32 %874, 1
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds [25 x float], ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 4), i64 0, i64 %876
  %878 = load float, ptr %877, align 4, !tbaa !17
  %879 = load i32, ptr %7, align 4, !tbaa !5
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds [25 x float], ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 4), i64 0, i64 %880
  store float %878, ptr %881, align 4, !tbaa !17
  br label %882

882:                                              ; preds = %865
  %883 = load i32, ptr %7, align 4, !tbaa !5
  %884 = add nsw i32 %883, 1
  store i32 %884, ptr %7, align 4, !tbaa !5
  br label %860, !llvm.loop !44

885:                                              ; preds = %860
  %886 = load i32, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 5), align 4, !tbaa !11
  %887 = add nsw i32 %886, -1
  store i32 %887, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 5), align 4, !tbaa !11
  br label %888

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

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn nounwind "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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { nounwind }
attributes #5 = { noreturn 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 404}
!12 = !{!"_LnfExpNode", !7, i64 0, !7, i64 100, !6, i64 200, !7, i64 204, !7, i64 304, !6, i64 404, !13, i64 408}
!13 = !{!"float", !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!12, !6, i64 200}
!17 = !{!13, !13, i64 0}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = !{!21, !6, i64 232}
!21 = !{!"_Action", !10, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !6, i64 32, !7, i64 36, !7, i64 96, !10, i64 160, !6, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !6, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !6, i64 232, !10, i64 240, !6, i64 248, !10, i64 256}
!22 = !{!21, !10, i64 216}
!23 = distinct !{!23, !15}
!24 = distinct !{!24, !15}
!25 = distinct !{!25, !15}
!26 = !{!21, !6, i64 248}
!27 = !{!21, !10, i64 240}
!28 = !{!29, !6, i64 136}
!29 = !{!"_ActionEffect", !10, i64 0, !6, i64 8, !10, i64 16, !6, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !6, i64 72, !10, i64 80, !10, 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, !7, i64 172, !7, i64 173, !13, i64 176}
!30 = !{!29, !10, i64 120}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = distinct !{!33, !15}
!34 = !{!29, !7, i64 172}
!35 = !{!29, !6, i64 168}
!36 = !{!29, !10, i64 160}
!37 = distinct !{!37, !15}
!38 = distinct !{!38, !15}
!39 = distinct !{!39, !15}
!40 = distinct !{!40, !15}
!41 = !{!21, !10, i64 256}
!42 = distinct !{!42, !15}
!43 = distinct !{!43, !15}
!44 = distinct !{!44, !15}


; 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._LnfExpNode = type { [25 x i32], [25 x float], i32, [25 x i32], [25 x float], i32, float }
%struct._ActionEffect = type { ptr, i32, ptr, i32, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, i8, i8, float }

@glnf_metric = external local_unnamed_addr global %struct._LnfExpNode, align 4
@gactions = external local_unnamed_addr global ptr, align 8
@gnum_lnf_goal = external local_unnamed_addr global i32, align 4
@glnf_goal_lh = external local_unnamed_addr global ptr, align 8
@.str.32 = external hidden unnamed_addr constant [37 x i8], align 1
@lminus_fluent = external dso_local local_unnamed_addr global [1000 x i32], align 16

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #0

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @replace_fl_in_nF_with_minus_fl(i32 noundef %0) local_unnamed_addr #2 {
  %2 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %3 = icmp sgt i32 %2, 0
  br i1 %3, label %.preheader218.lr.ph, label %.preheader217

.preheader218.lr.ph:                              ; preds = %1
  %4 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %5 = sext i32 %0 to i64
  %6 = getelementptr inbounds [1000 x i32], ptr @lminus_fluent, i64 0, i64 %5
  br label %.preheader218

.preheader218:                                    ; preds = %.preheader218.lr.ph, %._crit_edge.thread
  %7 = phi i32 [ %2, %.preheader218.lr.ph ], [ %57, %._crit_edge.thread ]
  %indvars.iv329 = phi i64 [ 0, %.preheader218.lr.ph ], [ %indvars.iv.next330, %._crit_edge.thread ]
  %8 = getelementptr inbounds ptr, ptr %4, i64 %indvars.iv329
  %9 = load ptr, ptr %8, align 8, !tbaa !9
  %10 = getelementptr inbounds i8, ptr %9, i64 404
  %11 = load i32, ptr %10, align 4, !tbaa !11
  %12 = icmp sgt i32 %11, 0
  br i1 %12, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader218
  %13 = getelementptr inbounds i8, ptr %9, i64 204
  %wide.trip.count = zext nneg i32 %11 to i64
  br label %16

.preheader217:                                    ; preds = %._crit_edge.thread, %1
  %.0203310 = load ptr, ptr @gactions, align 8, !tbaa !9
  %.not311 = icmp eq ptr %.0203310, null
  br i1 %.not311, label %.preheader, label %.preheader216.lr.ph

.preheader216.lr.ph:                              ; preds = %.preheader217
  %14 = sext i32 %0 to i64
  %15 = getelementptr inbounds [1000 x i32], ptr @lminus_fluent, i64 0, i64 %14
  br label %.preheader216

16:                                               ; preds = %.lr.ph, %20
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %20 ]
  %17 = getelementptr inbounds [25 x i32], ptr %13, i64 0, i64 %indvars.iv
  %18 = load i32, ptr %17, align 4, !tbaa !5
  %19 = icmp eq i32 %18, %0
  br i1 %19, label %._crit_edge.loopexit, label %20

20:                                               ; preds = %16
  %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 %._crit_edge.thread, label %16, !llvm.loop !14

._crit_edge.loopexit:                             ; preds = %16
  %21 = trunc nuw nsw i64 %indvars.iv to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.preheader218
  %.0195.lcssa = phi i32 [ 0, %.preheader218 ], [ %21, %._crit_edge.loopexit ]
  %22 = icmp eq i32 %.0195.lcssa, %11
  br i1 %22, label %._crit_edge.thread, label %23

23:                                               ; preds = %._crit_edge
  %24 = getelementptr inbounds i8, ptr %9, i64 200
  %25 = load i32, ptr %24, align 4, !tbaa !16
  %26 = icmp eq i32 %25, 25
  br i1 %26, label %27, label %29

27:                                               ; preds = %23
  %28 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32, i32 noundef 25)
  tail call void @exit(i32 noundef 1) #3
  unreachable

29:                                               ; preds = %23
  %30 = load i32, ptr %6, align 4, !tbaa !5
  %31 = sext i32 %25 to i64
  %32 = getelementptr inbounds [25 x i32], ptr %9, i64 0, i64 %31
  store i32 %30, ptr %32, align 4, !tbaa !5
  %33 = getelementptr inbounds i8, ptr %9, i64 304
  %34 = zext i32 %.0195.lcssa to i64
  %35 = getelementptr inbounds [25 x float], ptr %33, i64 0, i64 %34
  %36 = load float, ptr %35, align 4, !tbaa !17
  %37 = getelementptr inbounds i8, ptr %9, i64 100
  %38 = load i32, ptr %24, align 4, !tbaa !16
  %39 = add nsw i32 %38, 1
  store i32 %39, ptr %24, align 4, !tbaa !16
  %40 = sext i32 %38 to i64
  %41 = getelementptr inbounds [25 x float], ptr %37, i64 0, i64 %40
  store float %36, ptr %41, align 4, !tbaa !17
  %42 = load i32, ptr %10, align 4, !tbaa !11
  %43 = add nsw i32 %42, -1
  %44 = icmp slt i32 %.0195.lcssa, %43
  br i1 %44, label %.lr.ph248, label %._crit_edge249

.lr.ph248:                                        ; preds = %29
  %45 = getelementptr inbounds i8, ptr %9, i64 204
  br label %46

46:                                               ; preds = %.lr.ph248, %46
  %indvars.iv326 = phi i64 [ %34, %.lr.ph248 ], [ %indvars.iv.next327, %46 ]
  %indvars.iv.next327 = add nuw nsw i64 %indvars.iv326, 1
  %47 = getelementptr inbounds [25 x i32], ptr %45, i64 0, i64 %indvars.iv.next327
  %48 = load i32, ptr %47, align 4, !tbaa !5
  %49 = getelementptr inbounds [25 x i32], ptr %45, i64 0, i64 %indvars.iv326
  store i32 %48, ptr %49, align 4, !tbaa !5
  %50 = getelementptr inbounds [25 x float], ptr %33, i64 0, i64 %indvars.iv.next327
  %51 = load float, ptr %50, align 4, !tbaa !17
  %52 = getelementptr inbounds [25 x float], ptr %33, i64 0, i64 %indvars.iv326
  store float %51, ptr %52, align 4, !tbaa !17
  %53 = load i32, ptr %10, align 4, !tbaa !11
  %54 = add nsw i32 %53, -1
  %55 = trunc nuw i64 %indvars.iv.next327 to i32
  %56 = icmp sgt i32 %54, %55
  br i1 %56, label %46, label %._crit_edge249, !llvm.loop !18

._crit_edge249:                                   ; preds = %46, %29
  %.lcssa235 = phi i32 [ %43, %29 ], [ %54, %46 ]
  store i32 %.lcssa235, ptr %10, align 4, !tbaa !11
  %.pre = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %20, %._crit_edge, %._crit_edge249
  %57 = phi i32 [ %7, %._crit_edge ], [ %.pre, %._crit_edge249 ], [ %7, %20 ]
  %indvars.iv.next330 = add nuw nsw i64 %indvars.iv329, 1
  %58 = sext i32 %57 to i64
  %59 = icmp slt i64 %indvars.iv.next330, %58
  br i1 %59, label %.preheader218, label %.preheader217, !llvm.loop !19

.preheader216:                                    ; preds = %.preheader216.lr.ph, %._crit_edge309
  %.0203312 = phi ptr [ %.0203310, %.preheader216.lr.ph ], [ %.0203, %._crit_edge309 ]
  %60 = getelementptr inbounds i8, ptr %.0203312, i64 232
  %61 = load i32, ptr %60, align 8, !tbaa !20
  %62 = icmp sgt i32 %61, 0
  br i1 %62, label %.preheader214.lr.ph, label %.preheader215

.preheader214.lr.ph:                              ; preds = %.preheader216
  %63 = getelementptr inbounds i8, ptr %.0203312, i64 216
  %64 = load ptr, ptr %63, align 8, !tbaa !22
  br label %.preheader214

.preheader:                                       ; preds = %._crit_edge309, %.preheader217
  %65 = load i32, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 404), align 4, !tbaa !11
  %66 = icmp sgt i32 %65, 0
  br i1 %66, label %.lr.ph314.preheader, label %.loopexit

.lr.ph314.preheader:                              ; preds = %.preheader
  %wide.trip.count371 = zext nneg i32 %65 to i64
  br label %.lr.ph314

.preheader215:                                    ; preds = %._crit_edge255.thread, %.preheader216
  %67 = getelementptr inbounds i8, ptr %.0203312, i64 248
  %68 = load i32, ptr %67, align 8, !tbaa !23
  %69 = icmp sgt i32 %68, 0
  br i1 %69, label %.lr.ph308, label %._crit_edge309

.lr.ph308:                                        ; preds = %.preheader215
  %70 = getelementptr inbounds i8, ptr %.0203312, i64 240
  %71 = load ptr, ptr %70, align 8, !tbaa !24
  br label %123

.preheader214:                                    ; preds = %.preheader214.lr.ph, %._crit_edge255.thread
  %72 = phi i32 [ %61, %.preheader214.lr.ph ], [ %120, %._crit_edge255.thread ]
  %indvars.iv340 = phi i64 [ 0, %.preheader214.lr.ph ], [ %indvars.iv.next341, %._crit_edge255.thread ]
  %73 = getelementptr inbounds ptr, ptr %64, i64 %indvars.iv340
  %74 = load ptr, ptr %73, align 8, !tbaa !9
  %75 = getelementptr inbounds i8, ptr %74, i64 404
  %76 = load i32, ptr %75, align 4, !tbaa !11
  %77 = icmp sgt i32 %76, 0
  br i1 %77, label %.lr.ph254, label %._crit_edge255

.lr.ph254:                                        ; preds = %.preheader214
  %78 = getelementptr inbounds i8, ptr %74, i64 204
  %wide.trip.count335 = zext nneg i32 %76 to i64
  br label %79

79:                                               ; preds = %.lr.ph254, %83
  %indvars.iv332 = phi i64 [ 0, %.lr.ph254 ], [ %indvars.iv.next333, %83 ]
  %80 = getelementptr inbounds [25 x i32], ptr %78, i64 0, i64 %indvars.iv332
  %81 = load i32, ptr %80, align 4, !tbaa !5
  %82 = icmp eq i32 %81, %0
  br i1 %82, label %._crit_edge255.loopexit, label %83

83:                                               ; preds = %79
  %indvars.iv.next333 = add nuw nsw i64 %indvars.iv332, 1
  %exitcond336.not = icmp eq i64 %indvars.iv.next333, %wide.trip.count335
  br i1 %exitcond336.not, label %._crit_edge255.thread, label %79, !llvm.loop !25

._crit_edge255.loopexit:                          ; preds = %79
  %84 = trunc nuw nsw i64 %indvars.iv332 to i32
  br label %._crit_edge255

._crit_edge255:                                   ; preds = %._crit_edge255.loopexit, %.preheader214
  %.1196.lcssa = phi i32 [ 0, %.preheader214 ], [ %84, %._crit_edge255.loopexit ]
  %85 = icmp eq i32 %.1196.lcssa, %76
  br i1 %85, label %._crit_edge255.thread, label %86

86:                                               ; preds = %._crit_edge255
  %87 = getelementptr inbounds i8, ptr %74, i64 200
  %88 = load i32, ptr %87, align 4, !tbaa !16
  %89 = icmp eq i32 %88, 25
  br i1 %89, label %90, label %92

90:                                               ; preds = %86
  %91 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32, i32 noundef 25)
  tail call void @exit(i32 noundef 1) #3
  unreachable

92:                                               ; preds = %86
  %93 = load i32, ptr %15, align 4, !tbaa !5
  %94 = sext i32 %88 to i64
  %95 = getelementptr inbounds [25 x i32], ptr %74, i64 0, i64 %94
  store i32 %93, ptr %95, align 4, !tbaa !5
  %96 = getelementptr inbounds i8, ptr %74, i64 304
  %97 = zext i32 %.1196.lcssa to i64
  %98 = getelementptr inbounds [25 x float], ptr %96, i64 0, i64 %97
  %99 = load float, ptr %98, align 4, !tbaa !17
  %100 = getelementptr inbounds i8, ptr %74, i64 100
  %101 = load i32, ptr %87, align 4, !tbaa !16
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr %87, align 4, !tbaa !16
  %103 = sext i32 %101 to i64
  %104 = getelementptr inbounds [25 x float], ptr %100, i64 0, i64 %103
  store float %99, ptr %104, align 4, !tbaa !17
  %105 = load i32, ptr %75, align 4, !tbaa !11
  %106 = add nsw i32 %105, -1
  %107 = icmp slt i32 %.1196.lcssa, %106
  br i1 %107, label %.lr.ph266, label %._crit_edge267

.lr.ph266:                                        ; preds = %92
  %108 = getelementptr inbounds i8, ptr %74, i64 204
  br label %109

109:                                              ; preds = %.lr.ph266, %109
  %indvars.iv337 = phi i64 [ %97, %.lr.ph266 ], [ %indvars.iv.next338, %109 ]
  %indvars.iv.next338 = add nuw nsw i64 %indvars.iv337, 1
  %110 = getelementptr inbounds [25 x i32], ptr %108, i64 0, i64 %indvars.iv.next338
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = getelementptr inbounds [25 x i32], ptr %108, i64 0, i64 %indvars.iv337
  store i32 %111, ptr %112, align 4, !tbaa !5
  %113 = getelementptr inbounds [25 x float], ptr %96, i64 0, i64 %indvars.iv.next338
  %114 = load float, ptr %113, align 4, !tbaa !17
  %115 = getelementptr inbounds [25 x float], ptr %96, i64 0, i64 %indvars.iv337
  store float %114, ptr %115, align 4, !tbaa !17
  %116 = load i32, ptr %75, align 4, !tbaa !11
  %117 = add nsw i32 %116, -1
  %118 = trunc nuw i64 %indvars.iv.next338 to i32
  %119 = icmp sgt i32 %117, %118
  br i1 %119, label %109, label %._crit_edge267, !llvm.loop !26

._crit_edge267:                                   ; preds = %109, %92
  %.lcssa223 = phi i32 [ %106, %92 ], [ %117, %109 ]
  store i32 %.lcssa223, ptr %75, align 4, !tbaa !11
  %.pre377 = load i32, ptr %60, align 8, !tbaa !20
  br label %._crit_edge255.thread

._crit_edge255.thread:                            ; preds = %83, %._crit_edge255, %._crit_edge267
  %120 = phi i32 [ %72, %._crit_edge255 ], [ %.pre377, %._crit_edge267 ], [ %72, %83 ]
  %indvars.iv.next341 = add nuw nsw i64 %indvars.iv340, 1
  %121 = sext i32 %120 to i64
  %122 = icmp slt i64 %indvars.iv.next341, %121
  br i1 %122, label %.preheader214, label %.preheader215, !llvm.loop !27

123:                                              ; preds = %.lr.ph308, %.loopexit213
  %indvars.iv365 = phi i64 [ 0, %.lr.ph308 ], [ %indvars.iv.next366, %.loopexit213 ]
  %124 = getelementptr inbounds %struct._ActionEffect, ptr %71, i64 %indvars.iv365
  %125 = getelementptr inbounds i8, ptr %124, i64 136
  %126 = load i32, ptr %125, align 8, !tbaa !28
  %127 = icmp sgt i32 %126, 0
  br i1 %127, label %.preheader211.lr.ph, label %._crit_edge288

.preheader211.lr.ph:                              ; preds = %123
  %128 = getelementptr inbounds i8, ptr %124, i64 120
  %129 = load ptr, ptr %128, align 8, !tbaa !30
  br label %.preheader211

.preheader211:                                    ; preds = %.preheader211.lr.ph, %._crit_edge273.thread
  %130 = phi i32 [ %126, %.preheader211.lr.ph ], [ %178, %._crit_edge273.thread ]
  %indvars.iv351 = phi i64 [ 0, %.preheader211.lr.ph ], [ %indvars.iv.next352, %._crit_edge273.thread ]
  %131 = getelementptr inbounds ptr, ptr %129, i64 %indvars.iv351
  %132 = load ptr, ptr %131, align 8, !tbaa !9
  %133 = getelementptr inbounds i8, ptr %132, i64 404
  %134 = load i32, ptr %133, align 4, !tbaa !11
  %135 = icmp sgt i32 %134, 0
  br i1 %135, label %.lr.ph272, label %._crit_edge273

.lr.ph272:                                        ; preds = %.preheader211
  %136 = getelementptr inbounds i8, ptr %132, i64 204
  %wide.trip.count346 = zext nneg i32 %134 to i64
  br label %137

137:                                              ; preds = %.lr.ph272, %141
  %indvars.iv343 = phi i64 [ 0, %.lr.ph272 ], [ %indvars.iv.next344, %141 ]
  %138 = getelementptr inbounds [25 x i32], ptr %136, i64 0, i64 %indvars.iv343
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = icmp eq i32 %139, %0
  br i1 %140, label %._crit_edge273.loopexit, label %141

141:                                              ; preds = %137
  %indvars.iv.next344 = add nuw nsw i64 %indvars.iv343, 1
  %exitcond347.not = icmp eq i64 %indvars.iv.next344, %wide.trip.count346
  br i1 %exitcond347.not, label %._crit_edge273.thread, label %137, !llvm.loop !31

._crit_edge273.loopexit:                          ; preds = %137
  %142 = trunc nuw nsw i64 %indvars.iv343 to i32
  br label %._crit_edge273

._crit_edge273:                                   ; preds = %._crit_edge273.loopexit, %.preheader211
  %.2.lcssa = phi i32 [ 0, %.preheader211 ], [ %142, %._crit_edge273.loopexit ]
  %143 = icmp eq i32 %.2.lcssa, %134
  br i1 %143, label %._crit_edge273.thread, label %144

144:                                              ; preds = %._crit_edge273
  %145 = getelementptr inbounds i8, ptr %132, i64 200
  %146 = load i32, ptr %145, align 4, !tbaa !16
  %147 = icmp eq i32 %146, 25
  br i1 %147, label %148, label %150

148:                                              ; preds = %144
  %149 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32, i32 noundef 25)
  tail call void @exit(i32 noundef 1) #3
  unreachable

150:                                              ; preds = %144
  %151 = load i32, ptr %15, align 4, !tbaa !5
  %152 = sext i32 %146 to i64
  %153 = getelementptr inbounds [25 x i32], ptr %132, i64 0, i64 %152
  store i32 %151, ptr %153, align 4, !tbaa !5
  %154 = getelementptr inbounds i8, ptr %132, i64 304
  %155 = zext i32 %.2.lcssa to i64
  %156 = getelementptr inbounds [25 x float], ptr %154, i64 0, i64 %155
  %157 = load float, ptr %156, align 4, !tbaa !17
  %158 = getelementptr inbounds i8, ptr %132, i64 100
  %159 = load i32, ptr %145, align 4, !tbaa !16
  %160 = add nsw i32 %159, 1
  store i32 %160, ptr %145, align 4, !tbaa !16
  %161 = sext i32 %159 to i64
  %162 = getelementptr inbounds [25 x float], ptr %158, i64 0, i64 %161
  store float %157, ptr %162, align 4, !tbaa !17
  %163 = load i32, ptr %133, align 4, !tbaa !11
  %164 = add nsw i32 %163, -1
  %165 = icmp slt i32 %.2.lcssa, %164
  br i1 %165, label %.lr.ph284, label %._crit_edge285

.lr.ph284:                                        ; preds = %150
  %166 = getelementptr inbounds i8, ptr %132, i64 204
  br label %167

167:                                              ; preds = %.lr.ph284, %167
  %indvars.iv348 = phi i64 [ %155, %.lr.ph284 ], [ %indvars.iv.next349, %167 ]
  %indvars.iv.next349 = add nuw nsw i64 %indvars.iv348, 1
  %168 = getelementptr inbounds [25 x i32], ptr %166, i64 0, i64 %indvars.iv.next349
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = getelementptr inbounds [25 x i32], ptr %166, i64 0, i64 %indvars.iv348
  store i32 %169, ptr %170, align 4, !tbaa !5
  %171 = getelementptr inbounds [25 x float], ptr %154, i64 0, i64 %indvars.iv.next349
  %172 = load float, ptr %171, align 4, !tbaa !17
  %173 = getelementptr inbounds [25 x float], ptr %154, i64 0, i64 %indvars.iv348
  store float %172, ptr %173, align 4, !tbaa !17
  %174 = load i32, ptr %133, align 4, !tbaa !11
  %175 = add nsw i32 %174, -1
  %176 = trunc nuw i64 %indvars.iv.next349 to i32
  %177 = icmp sgt i32 %175, %176
  br i1 %177, label %167, label %._crit_edge285, !llvm.loop !32

._crit_edge285:                                   ; preds = %167, %150
  %.lcssa227 = phi i32 [ %164, %150 ], [ %175, %167 ]
  store i32 %.lcssa227, ptr %133, align 4, !tbaa !11
  %.pre378 = load i32, ptr %125, align 8, !tbaa !28
  br label %._crit_edge273.thread

._crit_edge273.thread:                            ; preds = %141, %._crit_edge273, %._crit_edge285
  %178 = phi i32 [ %130, %._crit_edge273 ], [ %.pre378, %._crit_edge285 ], [ %130, %141 ]
  %indvars.iv.next352 = add nuw nsw i64 %indvars.iv351, 1
  %179 = sext i32 %178 to i64
  %180 = icmp slt i64 %indvars.iv.next352, %179
  br i1 %180, label %.preheader211, label %._crit_edge288, !llvm.loop !33

._crit_edge288:                                   ; preds = %._crit_edge273.thread, %123
  %181 = getelementptr inbounds i8, ptr %124, i64 172
  %182 = load i8, ptr %181, align 4, !tbaa !34
  %.not209 = icmp eq i8 %182, 0
  br i1 %.not209, label %.preheader212, label %.loopexit213

.preheader212:                                    ; preds = %._crit_edge288
  %183 = getelementptr inbounds i8, ptr %124, i64 168
  %184 = load i32, ptr %183, align 8, !tbaa !35
  %185 = icmp sgt i32 %184, 0
  br i1 %185, label %.preheader210.lr.ph, label %.loopexit213

.preheader210.lr.ph:                              ; preds = %.preheader212
  %186 = getelementptr inbounds i8, ptr %124, i64 160
  %187 = load ptr, ptr %186, align 8, !tbaa !36
  br label %.preheader210

.preheader210:                                    ; preds = %.preheader210.lr.ph, %._crit_edge292.thread
  %188 = phi i32 [ %184, %.preheader210.lr.ph ], [ %236, %._crit_edge292.thread ]
  %indvars.iv362 = phi i64 [ 0, %.preheader210.lr.ph ], [ %indvars.iv.next363, %._crit_edge292.thread ]
  %189 = getelementptr inbounds ptr, ptr %187, i64 %indvars.iv362
  %190 = load ptr, ptr %189, align 8, !tbaa !9
  %191 = getelementptr inbounds i8, ptr %190, i64 404
  %192 = load i32, ptr %191, align 4, !tbaa !11
  %193 = icmp sgt i32 %192, 0
  br i1 %193, label %.lr.ph291, label %._crit_edge292

.lr.ph291:                                        ; preds = %.preheader210
  %194 = getelementptr inbounds i8, ptr %190, i64 204
  %wide.trip.count357 = zext nneg i32 %192 to i64
  br label %195

195:                                              ; preds = %.lr.ph291, %199
  %indvars.iv354 = phi i64 [ 0, %.lr.ph291 ], [ %indvars.iv.next355, %199 ]
  %196 = getelementptr inbounds [25 x i32], ptr %194, i64 0, i64 %indvars.iv354
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = icmp eq i32 %197, %0
  br i1 %198, label %._crit_edge292.loopexit, label %199

199:                                              ; preds = %195
  %indvars.iv.next355 = add nuw nsw i64 %indvars.iv354, 1
  %exitcond358.not = icmp eq i64 %indvars.iv.next355, %wide.trip.count357
  br i1 %exitcond358.not, label %._crit_edge292.thread, label %195, !llvm.loop !37

._crit_edge292.loopexit:                          ; preds = %195
  %200 = trunc nuw nsw i64 %indvars.iv354 to i32
  br label %._crit_edge292

._crit_edge292:                                   ; preds = %._crit_edge292.loopexit, %.preheader210
  %.3.lcssa = phi i32 [ 0, %.preheader210 ], [ %200, %._crit_edge292.loopexit ]
  %201 = icmp eq i32 %.3.lcssa, %192
  br i1 %201, label %._crit_edge292.thread, label %202

202:                                              ; preds = %._crit_edge292
  %203 = getelementptr inbounds i8, ptr %190, i64 200
  %204 = load i32, ptr %203, align 4, !tbaa !16
  %205 = icmp eq i32 %204, 25
  br i1 %205, label %206, label %208

206:                                              ; preds = %202
  %207 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32, i32 noundef 25)
  tail call void @exit(i32 noundef 1) #3
  unreachable

208:                                              ; preds = %202
  %209 = load i32, ptr %15, align 4, !tbaa !5
  %210 = sext i32 %204 to i64
  %211 = getelementptr inbounds [25 x i32], ptr %190, i64 0, i64 %210
  store i32 %209, ptr %211, align 4, !tbaa !5
  %212 = getelementptr inbounds i8, ptr %190, i64 304
  %213 = zext i32 %.3.lcssa to i64
  %214 = getelementptr inbounds [25 x float], ptr %212, i64 0, i64 %213
  %215 = load float, ptr %214, align 4, !tbaa !17
  %216 = getelementptr inbounds i8, ptr %190, i64 100
  %217 = load i32, ptr %203, align 4, !tbaa !16
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr %203, align 4, !tbaa !16
  %219 = sext i32 %217 to i64
  %220 = getelementptr inbounds [25 x float], ptr %216, i64 0, i64 %219
  store float %215, ptr %220, align 4, !tbaa !17
  %221 = load i32, ptr %191, align 4, !tbaa !11
  %222 = add nsw i32 %221, -1
  %223 = icmp slt i32 %.3.lcssa, %222
  br i1 %223, label %.lr.ph303, label %._crit_edge304

.lr.ph303:                                        ; preds = %208
  %224 = getelementptr inbounds i8, ptr %190, i64 204
  br label %225

225:                                              ; preds = %.lr.ph303, %225
  %indvars.iv359 = phi i64 [ %213, %.lr.ph303 ], [ %indvars.iv.next360, %225 ]
  %indvars.iv.next360 = add nuw nsw i64 %indvars.iv359, 1
  %226 = getelementptr inbounds [25 x i32], ptr %224, i64 0, i64 %indvars.iv.next360
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = getelementptr inbounds [25 x i32], ptr %224, i64 0, i64 %indvars.iv359
  store i32 %227, ptr %228, align 4, !tbaa !5
  %229 = getelementptr inbounds [25 x float], ptr %212, i64 0, i64 %indvars.iv.next360
  %230 = load float, ptr %229, align 4, !tbaa !17
  %231 = getelementptr inbounds [25 x float], ptr %212, i64 0, i64 %indvars.iv359
  store float %230, ptr %231, align 4, !tbaa !17
  %232 = load i32, ptr %191, align 4, !tbaa !11
  %233 = add nsw i32 %232, -1
  %234 = trunc nuw i64 %indvars.iv.next360 to i32
  %235 = icmp sgt i32 %233, %234
  br i1 %235, label %225, label %._crit_edge304, !llvm.loop !38

._crit_edge304:                                   ; preds = %225, %208
  %.lcssa231 = phi i32 [ %222, %208 ], [ %233, %225 ]
  store i32 %.lcssa231, ptr %191, align 4, !tbaa !11
  %.pre379 = load i32, ptr %183, align 8, !tbaa !35
  br label %._crit_edge292.thread

._crit_edge292.thread:                            ; preds = %199, %._crit_edge292, %._crit_edge304
  %236 = phi i32 [ %188, %._crit_edge292 ], [ %.pre379, %._crit_edge304 ], [ %188, %199 ]
  %indvars.iv.next363 = add nuw nsw i64 %indvars.iv362, 1
  %237 = sext i32 %236 to i64
  %238 = icmp slt i64 %indvars.iv.next363, %237
  br i1 %238, label %.preheader210, label %.loopexit213, !llvm.loop !39

.loopexit213:                                     ; preds = %._crit_edge292.thread, %.preheader212, %._crit_edge288
  %indvars.iv.next366 = add nuw nsw i64 %indvars.iv365, 1
  %239 = load i32, ptr %67, align 8, !tbaa !23
  %240 = sext i32 %239 to i64
  %241 = icmp slt i64 %indvars.iv.next366, %240
  br i1 %241, label %123, label %._crit_edge309, !llvm.loop !40

._crit_edge309:                                   ; preds = %.loopexit213, %.preheader215
  %242 = getelementptr inbounds i8, ptr %.0203312, i64 256
  %.0203 = load ptr, ptr %242, align 8, !tbaa !9
  %.not = icmp eq ptr %.0203, null
  br i1 %.not, label %.preheader, label %.preheader216, !llvm.loop !41

.lr.ph314:                                        ; preds = %.lr.ph314.preheader, %246
  %indvars.iv368 = phi i64 [ 0, %.lr.ph314.preheader ], [ %indvars.iv.next369, %246 ]
  %243 = getelementptr inbounds [25 x i32], ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 204), i64 0, i64 %indvars.iv368
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = icmp eq i32 %244, %0
  br i1 %245, label %247, label %246

246:                                              ; preds = %.lr.ph314
  %indvars.iv.next369 = add nuw nsw i64 %indvars.iv368, 1
  %exitcond372.not = icmp eq i64 %indvars.iv.next369, %wide.trip.count371
  br i1 %exitcond372.not, label %.loopexit, label %.lr.ph314, !llvm.loop !42

247:                                              ; preds = %.lr.ph314
  %248 = load i32, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 200), align 4, !tbaa !16
  %249 = icmp eq i32 %248, 25
  br i1 %249, label %250, label %252

250:                                              ; preds = %247
  %251 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32, i32 noundef 25)
  tail call void @exit(i32 noundef 1) #3
  unreachable

252:                                              ; preds = %247
  %253 = trunc nuw nsw i64 %indvars.iv368 to i32
  %254 = sext i32 %0 to i64
  %255 = getelementptr inbounds [1000 x i32], ptr @lminus_fluent, i64 0, i64 %254
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = sext i32 %248 to i64
  %258 = getelementptr inbounds [25 x i32], ptr @glnf_metric, i64 0, i64 %257
  store i32 %256, ptr %258, align 4, !tbaa !5
  %259 = and i64 %indvars.iv368, 4294967295
  %260 = getelementptr inbounds [25 x float], ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 304), i64 0, i64 %259
  %261 = load float, ptr %260, align 4, !tbaa !17
  %262 = load i32, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 200), align 4, !tbaa !16
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 200), align 4, !tbaa !16
  %264 = sext i32 %262 to i64
  %265 = getelementptr inbounds [25 x float], ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 100), i64 0, i64 %264
  store float %261, ptr %265, align 4, !tbaa !17
  %266 = load i32, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 404), align 4, !tbaa !11
  %267 = add nsw i32 %266, -1
  %268 = icmp sgt i32 %267, %253
  br i1 %268, label %.lr.ph317, label %._crit_edge318

.lr.ph317:                                        ; preds = %252, %.lr.ph317
  %indvars.iv374 = phi i64 [ %indvars.iv.next375, %.lr.ph317 ], [ %indvars.iv368, %252 ]
  %indvars.iv.next375 = add nuw nsw i64 %indvars.iv374, 1
  %269 = getelementptr inbounds [25 x i32], ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 204), i64 0, i64 %indvars.iv.next375
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = getelementptr inbounds [25 x i32], ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 204), i64 0, i64 %indvars.iv374
  store i32 %270, ptr %271, align 4, !tbaa !5
  %272 = getelementptr inbounds [25 x float], ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 304), i64 0, i64 %indvars.iv.next375
  %273 = load float, ptr %272, align 4, !tbaa !17
  %274 = getelementptr inbounds [25 x float], ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 304), i64 0, i64 %indvars.iv374
  store float %273, ptr %274, align 4, !tbaa !17
  %275 = load i32, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 404), align 4, !tbaa !11
  %276 = add nsw i32 %275, -1
  %277 = sext i32 %276 to i64
  %278 = icmp slt i64 %indvars.iv.next375, %277
  br i1 %278, label %.lr.ph317, label %._crit_edge318, !llvm.loop !43

._crit_edge318:                                   ; preds = %.lr.ph317, %252
  %.lcssa = phi i32 [ %267, %252 ], [ %276, %.lr.ph317 ]
  store i32 %.lcssa, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 404), align 4, !tbaa !11
  br label %.loopexit

.loopexit:                                        ; preds = %246, %.preheader, %._crit_edge318
  ret void
}

attributes #0 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn nounwind "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 = { noreturn 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 404}
!12 = !{!"_LnfExpNode", !7, i64 0, !7, i64 100, !6, i64 200, !7, i64 204, !7, i64 304, !6, i64 404, !13, i64 408}
!13 = !{!"float", !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!12, !6, i64 200}
!17 = !{!13, !13, i64 0}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = !{!21, !6, i64 232}
!21 = !{!"_Action", !10, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !6, i64 32, !7, i64 36, !7, i64 96, !10, i64 160, !6, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !6, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !6, i64 232, !10, i64 240, !6, i64 248, !10, i64 256}
!22 = !{!21, !10, i64 216}
!23 = !{!21, !6, i64 248}
!24 = !{!21, !10, i64 240}
!25 = distinct !{!25, !15}
!26 = distinct !{!26, !15}
!27 = distinct !{!27, !15}
!28 = !{!29, !6, i64 136}
!29 = !{!"_ActionEffect", !10, i64 0, !6, i64 8, !10, i64 16, !6, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !6, i64 72, !10, i64 80, !10, 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, !7, i64 172, !7, i64 173, !13, i64 176}
!30 = !{!29, !10, i64 120}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = distinct !{!33, !15}
!34 = !{!29, !7, i64 172}
!35 = !{!29, !6, i64 168}
!36 = !{!29, !10, i64 160}
!37 = distinct !{!37, !15}
!38 = distinct !{!38, !15}
!39 = distinct !{!39, !15}
!40 = distinct !{!40, !15}
!41 = distinct !{!41, !15}
!42 = distinct !{!42, !15}
!43 = distinct !{!43, !15}


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