; 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._command_line = type { [256 x i8], [256 x i8], [256 x i8], i32, i32, i32, i8, i32, float }
%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 }

@gcmd_line = external global %struct._command_line, align 4
@glnf_metric = external global %struct._LnfExpNode, align 4
@gactions = external global ptr, align 8
@gnum_numeric_goal = external global i32, align 4
@gnumeric_goal_lh = external global ptr, align 8
@gnumeric_goal_rh = external global ptr, align 8
@gmetric = external global ptr, align 8
@gnum_lnf_goal = external global i32, align 4
@glnf_goal_comp = external global ptr, align 8
@glnf_goal_lh = external global ptr, align 8
@glnf_goal_rh = external global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [19 x i8], align 1
@gnum_actions = external global i32, align 4
@gtrash_actions = external global ptr, align 8
@.str.23 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [41 x i8], align 1
@lcomp = external dso_local global i32, align 4
@lnum_F = external dso_local global i32, align 4
@lC = external dso_local global [25 x float], align 16
@lF = external dso_local global [25 x i32], align 16
@lc = external dso_local global float, align 4
@.str.28 = external hidden unnamed_addr constant [40 x i8], align 1
@gnumeric_goal_comp = external global ptr, align 8

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

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

; Function Attrs: nounwind uwtable
define dso_local void @normalize_expressions() #2 {
  %1 = alloca ptr, align 8
  %2 = alloca ptr, align 8
  %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 i8, align 1
  %9 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %1) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %2) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %10

10:                                               ; preds = %41, %0
  %11 = load i32, ptr %5, align 4, !tbaa !5
  %12 = load i32, ptr @gnum_numeric_goal, align 4, !tbaa !5
  %13 = icmp slt i32 %11, %12
  br i1 %13, label %14, label %44

14:                                               ; preds = %10
  %15 = load ptr, ptr @gnumeric_goal_lh, align 8, !tbaa !9
  %16 = load i32, ptr %5, align 4, !tbaa !5
  %17 = sext i32 %16 to i64
  %18 = getelementptr inbounds ptr, ptr %15, i64 %17
  %19 = call zeroext i8 @translate_divisions(ptr noundef %18)
  %20 = icmp ne i8 %19, 0
  br i1 %20, label %23, label %21

21:                                               ; preds = %14
  %22 = call i32 (ptr, ...) @printf(ptr noundef @.str.20)
  call void @exit(i32 noundef 1) #6
  unreachable

23:                                               ; preds = %14
  %24 = load ptr, ptr @gnumeric_goal_lh, align 8, !tbaa !9
  %25 = load i32, ptr %5, align 4, !tbaa !5
  %26 = sext i32 %25 to i64
  %27 = getelementptr inbounds ptr, ptr %24, i64 %26
  call void @push_multiplications_down(ptr noundef %27)
  %28 = load ptr, ptr @gnumeric_goal_rh, align 8, !tbaa !9
  %29 = load i32, ptr %5, align 4, !tbaa !5
  %30 = sext i32 %29 to i64
  %31 = getelementptr inbounds ptr, ptr %28, i64 %30
  %32 = call zeroext i8 @translate_divisions(ptr noundef %31)
  %33 = icmp ne i8 %32, 0
  br i1 %33, label %36, label %34

34:                                               ; preds = %23
  %35 = call i32 (ptr, ...) @printf(ptr noundef @.str.20)
  call void @exit(i32 noundef 1) #6
  unreachable

36:                                               ; preds = %23
  %37 = load ptr, ptr @gnumeric_goal_rh, align 8, !tbaa !9
  %38 = load i32, ptr %5, align 4, !tbaa !5
  %39 = sext i32 %38 to i64
  %40 = getelementptr inbounds ptr, ptr %37, i64 %39
  call void @push_multiplications_down(ptr noundef %40)
  br label %41

41:                                               ; preds = %36
  %42 = load i32, ptr %5, align 4, !tbaa !5
  %43 = add nsw i32 %42, 1
  store i32 %43, ptr %5, align 4, !tbaa !5
  br label %10, !llvm.loop !11

44:                                               ; preds = %10
  %45 = load ptr, ptr @gactions, align 8, !tbaa !9
  store ptr %45, ptr %1, align 8, !tbaa !9
  store ptr null, ptr %2, align 8, !tbaa !9
  br label %46

46:                                               ; preds = %298, %297, %136, %44
  %47 = load ptr, ptr %1, align 8, !tbaa !9
  %48 = icmp ne ptr %47, null
  br i1 %48, label %49, label %303

49:                                               ; preds = %46
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %50

50:                                               ; preds = %89, %49
  %51 = load i32, ptr %5, align 4, !tbaa !5
  %52 = load ptr, ptr %1, align 8, !tbaa !9
  %53 = getelementptr inbounds %struct._Action, ptr %52, i32 0, i32 12
  %54 = load i32, ptr %53, align 8, !tbaa !13
  %55 = icmp slt i32 %51, %54
  br i1 %55, label %56, label %92

56:                                               ; preds = %50
  %57 = load ptr, ptr %1, align 8, !tbaa !9
  %58 = getelementptr inbounds %struct._Action, ptr %57, i32 0, i32 10
  %59 = load ptr, ptr %58, align 8, !tbaa !15
  %60 = load i32, ptr %5, align 4, !tbaa !5
  %61 = sext i32 %60 to i64
  %62 = getelementptr inbounds ptr, ptr %59, i64 %61
  %63 = call zeroext i8 @translate_divisions(ptr noundef %62)
  %64 = icmp ne i8 %63, 0
  br i1 %64, label %66, label %65

65:                                               ; preds = %56
  br label %92

66:                                               ; preds = %56
  %67 = load ptr, ptr %1, align 8, !tbaa !9
  %68 = getelementptr inbounds %struct._Action, ptr %67, i32 0, i32 10
  %69 = load ptr, ptr %68, align 8, !tbaa !15
  %70 = load i32, ptr %5, align 4, !tbaa !5
  %71 = sext i32 %70 to i64
  %72 = getelementptr inbounds ptr, ptr %69, i64 %71
  call void @push_multiplications_down(ptr noundef %72)
  %73 = load ptr, ptr %1, align 8, !tbaa !9
  %74 = getelementptr inbounds %struct._Action, ptr %73, i32 0, i32 11
  %75 = load ptr, ptr %74, align 8, !tbaa !16
  %76 = load i32, ptr %5, align 4, !tbaa !5
  %77 = sext i32 %76 to i64
  %78 = getelementptr inbounds ptr, ptr %75, i64 %77
  %79 = call zeroext i8 @translate_divisions(ptr noundef %78)
  %80 = icmp ne i8 %79, 0
  br i1 %80, label %82, label %81

81:                                               ; preds = %66
  br label %92

82:                                               ; preds = %66
  %83 = load ptr, ptr %1, align 8, !tbaa !9
  %84 = getelementptr inbounds %struct._Action, ptr %83, i32 0, i32 11
  %85 = load ptr, ptr %84, align 8, !tbaa !16
  %86 = load i32, ptr %5, align 4, !tbaa !5
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds ptr, ptr %85, i64 %87
  call void @push_multiplications_down(ptr noundef %88)
  br label %89

89:                                               ; preds = %82
  %90 = load i32, ptr %5, align 4, !tbaa !5
  %91 = add nsw i32 %90, 1
  store i32 %91, ptr %5, align 4, !tbaa !5
  br label %50, !llvm.loop !17

92:                                               ; preds = %81, %65, %50
  %93 = load i32, ptr %5, align 4, !tbaa !5
  %94 = load ptr, ptr %1, align 8, !tbaa !9
  %95 = getelementptr inbounds %struct._Action, ptr %94, i32 0, i32 12
  %96 = load i32, ptr %95, align 8, !tbaa !13
  %97 = icmp slt i32 %93, %96
  br i1 %97, label %98, label %137

98:                                               ; preds = %92
  %99 = load i32, ptr getelementptr inbounds (%struct._command_line, ptr @gcmd_line, i32 0, i32 3), align 4, !tbaa !18
  %100 = icmp ne i32 %99, 0
  br i1 %100, label %101, label %105

101:                                              ; preds = %98
  %102 = call i32 (ptr, ...) @printf(ptr noundef @.str.21)
  %103 = load ptr, ptr %1, align 8, !tbaa !9
  call void @print_Action_name(ptr noundef %103)
  %104 = call i32 (ptr, ...) @printf(ptr noundef @.str.22)
  br label %105

105:                                              ; preds = %101, %98
  %106 = load i32, ptr @gnum_actions, align 4, !tbaa !5
  %107 = add nsw i32 %106, -1
  store i32 %107, ptr @gnum_actions, align 4, !tbaa !5
  %108 = load ptr, ptr %2, align 8, !tbaa !9
  %109 = icmp ne ptr %108, null
  br i1 %109, label %110, label %124

110:                                              ; preds = %105
  %111 = load ptr, ptr %1, align 8, !tbaa !9
  %112 = getelementptr inbounds %struct._Action, ptr %111, i32 0, i32 19
  %113 = load ptr, ptr %112, align 8, !tbaa !21
  %114 = load ptr, ptr %2, align 8, !tbaa !9
  %115 = getelementptr inbounds %struct._Action, ptr %114, i32 0, i32 19
  store ptr %113, ptr %115, align 8, !tbaa !21
  %116 = load ptr, ptr %1, align 8, !tbaa !9
  store ptr %116, ptr %3, align 8, !tbaa !9
  %117 = load ptr, ptr %1, align 8, !tbaa !9
  %118 = getelementptr inbounds %struct._Action, ptr %117, i32 0, i32 19
  %119 = load ptr, ptr %118, align 8, !tbaa !21
  store ptr %119, ptr %1, align 8, !tbaa !9
  %120 = load ptr, ptr @gtrash_actions, align 8, !tbaa !9
  %121 = load ptr, ptr %3, align 8, !tbaa !9
  %122 = getelementptr inbounds %struct._Action, ptr %121, i32 0, i32 19
  store ptr %120, ptr %122, align 8, !tbaa !21
  %123 = load ptr, ptr %3, align 8, !tbaa !9
  store ptr %123, ptr @gtrash_actions, align 8, !tbaa !9
  br label %136

124:                                              ; preds = %105
  %125 = load ptr, ptr %1, align 8, !tbaa !9
  %126 = getelementptr inbounds %struct._Action, ptr %125, i32 0, i32 19
  %127 = load ptr, ptr %126, align 8, !tbaa !21
  store ptr %127, ptr @gactions, align 8, !tbaa !9
  %128 = load ptr, ptr %1, align 8, !tbaa !9
  store ptr %128, ptr %3, align 8, !tbaa !9
  %129 = load ptr, ptr %1, align 8, !tbaa !9
  %130 = getelementptr inbounds %struct._Action, ptr %129, i32 0, i32 19
  %131 = load ptr, ptr %130, align 8, !tbaa !21
  store ptr %131, ptr %1, align 8, !tbaa !9
  %132 = load ptr, ptr @gtrash_actions, align 8, !tbaa !9
  %133 = load ptr, ptr %3, align 8, !tbaa !9
  %134 = getelementptr inbounds %struct._Action, ptr %133, i32 0, i32 19
  store ptr %132, ptr %134, align 8, !tbaa !21
  %135 = load ptr, ptr %3, align 8, !tbaa !9
  store ptr %135, ptr @gtrash_actions, align 8, !tbaa !9
  br label %136

136:                                              ; preds = %124, %110
  br label %46, !llvm.loop !22

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

138:                                              ; preds = %250, %137
  %139 = load i32, ptr %5, align 4, !tbaa !5
  %140 = load ptr, ptr %1, align 8, !tbaa !9
  %141 = getelementptr inbounds %struct._Action, ptr %140, i32 0, i32 18
  %142 = load i32, ptr %141, align 8, !tbaa !23
  %143 = icmp slt i32 %139, %142
  br i1 %143, label %144, label %253

144:                                              ; preds = %138
  %145 = load ptr, ptr %1, align 8, !tbaa !9
  %146 = getelementptr inbounds %struct._Action, ptr %145, i32 0, i32 17
  %147 = load ptr, ptr %146, align 8, !tbaa !24
  %148 = load i32, ptr %5, align 4, !tbaa !5
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds %struct._ActionEffect, ptr %147, i64 %149
  store ptr %150, ptr %4, align 8, !tbaa !9
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %151

151:                                              ; preds = %190, %144
  %152 = load i32, ptr %6, align 4, !tbaa !5
  %153 = load ptr, ptr %4, align 8, !tbaa !9
  %154 = getelementptr inbounds %struct._ActionEffect, ptr %153, i32 0, i32 9
  %155 = load i32, ptr %154, align 8, !tbaa !25
  %156 = icmp slt i32 %152, %155
  br i1 %156, label %157, label %193

157:                                              ; preds = %151
  %158 = load ptr, ptr %4, align 8, !tbaa !9
  %159 = getelementptr inbounds %struct._ActionEffect, ptr %158, i32 0, i32 7
  %160 = load ptr, ptr %159, align 8, !tbaa !27
  %161 = load i32, ptr %6, align 4, !tbaa !5
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds ptr, ptr %160, i64 %162
  %164 = call zeroext i8 @translate_divisions(ptr noundef %163)
  %165 = icmp ne i8 %164, 0
  br i1 %165, label %167, label %166

166:                                              ; preds = %157
  br label %193

167:                                              ; preds = %157
  %168 = load ptr, ptr %4, align 8, !tbaa !9
  %169 = getelementptr inbounds %struct._ActionEffect, ptr %168, i32 0, i32 7
  %170 = load ptr, ptr %169, align 8, !tbaa !27
  %171 = load i32, ptr %6, align 4, !tbaa !5
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds ptr, ptr %170, i64 %172
  call void @push_multiplications_down(ptr noundef %173)
  %174 = load ptr, ptr %4, align 8, !tbaa !9
  %175 = getelementptr inbounds %struct._ActionEffect, ptr %174, i32 0, i32 8
  %176 = load ptr, ptr %175, align 8, !tbaa !28
  %177 = load i32, ptr %6, align 4, !tbaa !5
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds ptr, ptr %176, i64 %178
  %180 = call zeroext i8 @translate_divisions(ptr noundef %179)
  %181 = icmp ne i8 %180, 0
  br i1 %181, label %183, label %182

182:                                              ; preds = %167
  br label %193

183:                                              ; preds = %167
  %184 = load ptr, ptr %4, align 8, !tbaa !9
  %185 = getelementptr inbounds %struct._ActionEffect, ptr %184, i32 0, i32 8
  %186 = load ptr, ptr %185, align 8, !tbaa !28
  %187 = load i32, ptr %6, align 4, !tbaa !5
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds ptr, ptr %186, i64 %188
  call void @push_multiplications_down(ptr noundef %189)
  br label %190

190:                                              ; preds = %183
  %191 = load i32, ptr %6, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr %6, align 4, !tbaa !5
  br label %151, !llvm.loop !29

193:                                              ; preds = %182, %166, %151
  %194 = load i32, ptr %6, align 4, !tbaa !5
  %195 = load ptr, ptr %4, align 8, !tbaa !9
  %196 = getelementptr inbounds %struct._ActionEffect, ptr %195, i32 0, i32 9
  %197 = load i32, ptr %196, align 8, !tbaa !25
  %198 = icmp slt i32 %194, %197
  br i1 %198, label %199, label %200

199:                                              ; preds = %193
  br label %253

200:                                              ; preds = %193
  %201 = load ptr, ptr %4, align 8, !tbaa !9
  %202 = getelementptr inbounds %struct._ActionEffect, ptr %201, i32 0, i32 22
  %203 = load i8, ptr %202, align 4, !tbaa !30
  %204 = icmp ne i8 %203, 0
  br i1 %204, label %205, label %206

205:                                              ; preds = %200
  br label %250

206:                                              ; preds = %200
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %207

207:                                              ; preds = %230, %206
  %208 = load i32, ptr %6, align 4, !tbaa !5
  %209 = load ptr, ptr %4, align 8, !tbaa !9
  %210 = getelementptr inbounds %struct._ActionEffect, ptr %209, i32 0, i32 13
  %211 = load i32, ptr %210, align 8, !tbaa !31
  %212 = icmp slt i32 %208, %211
  br i1 %212, label %213, label %233

213:                                              ; preds = %207
  %214 = load ptr, ptr %4, align 8, !tbaa !9
  %215 = getelementptr inbounds %struct._ActionEffect, ptr %214, i32 0, i32 12
  %216 = load ptr, ptr %215, align 8, !tbaa !32
  %217 = load i32, ptr %6, align 4, !tbaa !5
  %218 = sext i32 %217 to i64
  %219 = getelementptr inbounds ptr, ptr %216, i64 %218
  %220 = call zeroext i8 @translate_divisions(ptr noundef %219)
  %221 = icmp ne i8 %220, 0
  br i1 %221, label %223, label %222

222:                                              ; preds = %213
  br label %233

223:                                              ; preds = %213
  %224 = load ptr, ptr %4, align 8, !tbaa !9
  %225 = getelementptr inbounds %struct._ActionEffect, ptr %224, i32 0, i32 12
  %226 = load ptr, ptr %225, align 8, !tbaa !32
  %227 = load i32, ptr %6, align 4, !tbaa !5
  %228 = sext i32 %227 to i64
  %229 = getelementptr inbounds ptr, ptr %226, i64 %228
  call void @push_multiplications_down(ptr noundef %229)
  br label %230

230:                                              ; preds = %223
  %231 = load i32, ptr %6, align 4, !tbaa !5
  %232 = add nsw i32 %231, 1
  store i32 %232, ptr %6, align 4, !tbaa !5
  br label %207, !llvm.loop !33

233:                                              ; preds = %222, %207
  %234 = load i32, ptr %6, align 4, !tbaa !5
  %235 = load ptr, ptr %4, align 8, !tbaa !9
  %236 = getelementptr inbounds %struct._ActionEffect, ptr %235, i32 0, i32 13
  %237 = load i32, ptr %236, align 8, !tbaa !31
  %238 = icmp slt i32 %234, %237
  br i1 %238, label %239, label %249

239:                                              ; preds = %233
  %240 = load i32, ptr getelementptr inbounds (%struct._command_line, ptr @gcmd_line, i32 0, i32 3), align 4, !tbaa !18
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %246

242:                                              ; preds = %239
  %243 = call i32 (ptr, ...) @printf(ptr noundef @.str.23)
  %244 = load ptr, ptr %1, align 8, !tbaa !9
  call void @print_Action_name(ptr noundef %244)
  %245 = call i32 (ptr, ...) @printf(ptr noundef @.str.24)
  br label %246

246:                                              ; preds = %242, %239
  %247 = load ptr, ptr %4, align 8, !tbaa !9
  %248 = getelementptr inbounds %struct._ActionEffect, ptr %247, i32 0, i32 22
  store i8 1, ptr %248, align 4, !tbaa !30
  br label %249

249:                                              ; preds = %246, %233
  br label %250

250:                                              ; preds = %249, %205
  %251 = load i32, ptr %5, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr %5, align 4, !tbaa !5
  br label %138, !llvm.loop !34

253:                                              ; preds = %199, %138
  %254 = load i32, ptr %5, align 4, !tbaa !5
  %255 = load ptr, ptr %1, align 8, !tbaa !9
  %256 = getelementptr inbounds %struct._Action, ptr %255, i32 0, i32 18
  %257 = load i32, ptr %256, align 8, !tbaa !23
  %258 = icmp slt i32 %254, %257
  br i1 %258, label %259, label %298

259:                                              ; preds = %253
  %260 = load i32, ptr getelementptr inbounds (%struct._command_line, ptr @gcmd_line, i32 0, i32 3), align 4, !tbaa !18
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %262, label %266

262:                                              ; preds = %259
  %263 = call i32 (ptr, ...) @printf(ptr noundef @.str.25)
  %264 = load ptr, ptr %1, align 8, !tbaa !9
  call void @print_Action_name(ptr noundef %264)
  %265 = call i32 (ptr, ...) @printf(ptr noundef @.str.22)
  br label %266

266:                                              ; preds = %262, %259
  %267 = load i32, ptr @gnum_actions, align 4, !tbaa !5
  %268 = add nsw i32 %267, -1
  store i32 %268, ptr @gnum_actions, align 4, !tbaa !5
  %269 = load ptr, ptr %2, align 8, !tbaa !9
  %270 = icmp ne ptr %269, null
  br i1 %270, label %271, label %285

271:                                              ; preds = %266
  %272 = load ptr, ptr %1, align 8, !tbaa !9
  %273 = getelementptr inbounds %struct._Action, ptr %272, i32 0, i32 19
  %274 = load ptr, ptr %273, align 8, !tbaa !21
  %275 = load ptr, ptr %2, align 8, !tbaa !9
  %276 = getelementptr inbounds %struct._Action, ptr %275, i32 0, i32 19
  store ptr %274, ptr %276, align 8, !tbaa !21
  %277 = load ptr, ptr %1, align 8, !tbaa !9
  store ptr %277, ptr %3, align 8, !tbaa !9
  %278 = load ptr, ptr %1, align 8, !tbaa !9
  %279 = getelementptr inbounds %struct._Action, ptr %278, i32 0, i32 19
  %280 = load ptr, ptr %279, align 8, !tbaa !21
  store ptr %280, ptr %1, align 8, !tbaa !9
  %281 = load ptr, ptr @gtrash_actions, align 8, !tbaa !9
  %282 = load ptr, ptr %3, align 8, !tbaa !9
  %283 = getelementptr inbounds %struct._Action, ptr %282, i32 0, i32 19
  store ptr %281, ptr %283, align 8, !tbaa !21
  %284 = load ptr, ptr %3, align 8, !tbaa !9
  store ptr %284, ptr @gtrash_actions, align 8, !tbaa !9
  br label %297

285:                                              ; preds = %266
  %286 = load ptr, ptr %1, align 8, !tbaa !9
  %287 = getelementptr inbounds %struct._Action, ptr %286, i32 0, i32 19
  %288 = load ptr, ptr %287, align 8, !tbaa !21
  store ptr %288, ptr @gactions, align 8, !tbaa !9
  %289 = load ptr, ptr %1, align 8, !tbaa !9
  store ptr %289, ptr %3, align 8, !tbaa !9
  %290 = load ptr, ptr %1, align 8, !tbaa !9
  %291 = getelementptr inbounds %struct._Action, ptr %290, i32 0, i32 19
  %292 = load ptr, ptr %291, align 8, !tbaa !21
  store ptr %292, ptr %1, align 8, !tbaa !9
  %293 = load ptr, ptr @gtrash_actions, align 8, !tbaa !9
  %294 = load ptr, ptr %3, align 8, !tbaa !9
  %295 = getelementptr inbounds %struct._Action, ptr %294, i32 0, i32 19
  store ptr %293, ptr %295, align 8, !tbaa !21
  %296 = load ptr, ptr %3, align 8, !tbaa !9
  store ptr %296, ptr @gtrash_actions, align 8, !tbaa !9
  br label %297

297:                                              ; preds = %285, %271
  br label %46, !llvm.loop !22

298:                                              ; preds = %253
  %299 = load ptr, ptr %1, align 8, !tbaa !9
  store ptr %299, ptr %2, align 8, !tbaa !9
  %300 = load ptr, ptr %1, align 8, !tbaa !9
  %301 = getelementptr inbounds %struct._Action, ptr %300, i32 0, i32 19
  %302 = load ptr, ptr %301, align 8, !tbaa !21
  store ptr %302, ptr %1, align 8, !tbaa !9
  br label %46, !llvm.loop !22

303:                                              ; preds = %46
  %304 = load ptr, ptr @gmetric, align 8, !tbaa !9
  %305 = icmp ne ptr %304, null
  br i1 %305, label %306, label %317

306:                                              ; preds = %303
  %307 = call zeroext i8 @translate_divisions(ptr noundef @gmetric)
  %308 = icmp ne i8 %307, 0
  br i1 %308, label %316, label %309

309:                                              ; preds = %306
  %310 = load i32, ptr getelementptr inbounds (%struct._command_line, ptr @gcmd_line, i32 0, i32 3), align 4, !tbaa !18
  %311 = icmp ne i32 %310, 0
  br i1 %311, label %312, label %314

312:                                              ; preds = %309
  %313 = call i32 (ptr, ...) @printf(ptr noundef @.str.26)
  br label %314

314:                                              ; preds = %312, %309
  %315 = load ptr, ptr @gmetric, align 8, !tbaa !9
  call void @free_ExpNode(ptr noundef %315)
  store ptr null, ptr @gmetric, align 8, !tbaa !9
  br label %316

316:                                              ; preds = %314, %306
  call void @push_multiplications_down(ptr noundef @gmetric)
  br label %317

317:                                              ; preds = %316, %303
  %318 = load ptr, ptr @gactions, align 8, !tbaa !9
  store ptr %318, ptr %1, align 8, !tbaa !9
  br label %319

319:                                              ; preds = %1182, %317
  %320 = load ptr, ptr %1, align 8, !tbaa !9
  %321 = icmp ne ptr %320, null
  br i1 %321, label %322, label %1186

322:                                              ; preds = %319
  %323 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  %324 = load ptr, ptr %1, align 8, !tbaa !9
  %325 = getelementptr inbounds %struct._Action, ptr %324, i32 0, i32 13
  store ptr %323, ptr %325, align 8, !tbaa !35
  %326 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 8) #7
  %327 = load ptr, ptr %1, align 8, !tbaa !9
  %328 = getelementptr inbounds %struct._Action, ptr %327, i32 0, i32 14
  store ptr %326, ptr %328, align 8, !tbaa !36
  %329 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  %330 = load ptr, ptr %1, align 8, !tbaa !9
  %331 = getelementptr inbounds %struct._Action, ptr %330, i32 0, i32 15
  store ptr %329, ptr %331, align 8, !tbaa !37
  %332 = load ptr, ptr %1, align 8, !tbaa !9
  %333 = getelementptr inbounds %struct._Action, ptr %332, i32 0, i32 16
  store i32 0, ptr %333, align 8, !tbaa !38
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %334

334:                                              ; preds = %638, %322
  %335 = load i32, ptr %5, align 4, !tbaa !5
  %336 = load ptr, ptr %1, align 8, !tbaa !9
  %337 = getelementptr inbounds %struct._Action, ptr %336, i32 0, i32 12
  %338 = load i32, ptr %337, align 8, !tbaa !13
  %339 = icmp slt i32 %335, %338
  br i1 %339, label %340, label %641

340:                                              ; preds = %334
  %341 = load ptr, ptr %1, align 8, !tbaa !9
  %342 = getelementptr inbounds %struct._Action, ptr %341, i32 0, i32 16
  %343 = load i32, ptr %342, align 8, !tbaa !38
  %344 = icmp eq i32 %343, 100
  br i1 %344, label %345, label %347

345:                                              ; preds = %340
  %346 = call i32 (ptr, ...) @printf(ptr noundef @.str.27, i32 noundef 100)
  call void @exit(i32 noundef 1) #6
  unreachable

347:                                              ; preds = %340
  store i8 0, ptr %8, align 1, !tbaa !39
  %348 = load ptr, ptr %1, align 8, !tbaa !9
  %349 = getelementptr inbounds %struct._Action, ptr %348, i32 0, i32 9
  %350 = load ptr, ptr %349, align 8, !tbaa !40
  %351 = load i32, ptr %5, align 4, !tbaa !5
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds i32, ptr %350, i64 %352
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = icmp eq i32 %354, 3003
  br i1 %355, label %356, label %363

356:                                              ; preds = %347
  store i8 1, ptr %8, align 1, !tbaa !39
  %357 = load ptr, ptr %1, align 8, !tbaa !9
  %358 = getelementptr inbounds %struct._Action, ptr %357, i32 0, i32 9
  %359 = load ptr, ptr %358, align 8, !tbaa !40
  %360 = load i32, ptr %5, align 4, !tbaa !5
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds i32, ptr %359, i64 %361
  store i32 3002, ptr %362, align 4, !tbaa !5
  br label %363

363:                                              ; preds = %356, %347
  %364 = load ptr, ptr %1, align 8, !tbaa !9
  %365 = getelementptr inbounds %struct._Action, ptr %364, i32 0, i32 9
  %366 = load ptr, ptr %365, align 8, !tbaa !40
  %367 = load i32, ptr %5, align 4, !tbaa !5
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds i32, ptr %366, i64 %368
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = load ptr, ptr %1, align 8, !tbaa !9
  %372 = getelementptr inbounds %struct._Action, ptr %371, i32 0, i32 10
  %373 = load ptr, ptr %372, align 8, !tbaa !15
  %374 = load i32, ptr %5, align 4, !tbaa !5
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds ptr, ptr %373, i64 %375
  %377 = load ptr, ptr %376, align 8, !tbaa !9
  %378 = load ptr, ptr %1, align 8, !tbaa !9
  %379 = getelementptr inbounds %struct._Action, ptr %378, i32 0, i32 11
  %380 = load ptr, ptr %379, align 8, !tbaa !16
  %381 = load i32, ptr %5, align 4, !tbaa !5
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds ptr, ptr %380, i64 %382
  %384 = load ptr, ptr %383, align 8, !tbaa !9
  call void @put_comp_into_normalized_locals(i32 noundef %370, ptr noundef %377, ptr noundef %384)
  %385 = load i32, ptr @lcomp, align 4, !tbaa !5
  %386 = load ptr, ptr %1, align 8, !tbaa !9
  %387 = getelementptr inbounds %struct._Action, ptr %386, i32 0, i32 13
  %388 = load ptr, ptr %387, align 8, !tbaa !35
  %389 = load ptr, ptr %1, align 8, !tbaa !9
  %390 = getelementptr inbounds %struct._Action, ptr %389, i32 0, i32 16
  %391 = load i32, ptr %390, align 8, !tbaa !38
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds i32, ptr %388, i64 %392
  store i32 %385, ptr %393, align 4, !tbaa !5
  %394 = call ptr @new_LnfExpNode()
  %395 = load ptr, ptr %1, align 8, !tbaa !9
  %396 = getelementptr inbounds %struct._Action, ptr %395, i32 0, i32 14
  %397 = load ptr, ptr %396, align 8, !tbaa !36
  %398 = load ptr, ptr %1, align 8, !tbaa !9
  %399 = getelementptr inbounds %struct._Action, ptr %398, i32 0, i32 16
  %400 = load i32, ptr %399, align 8, !tbaa !38
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds ptr, ptr %397, i64 %401
  store ptr %394, ptr %402, align 8, !tbaa !9
  %403 = load ptr, ptr %1, align 8, !tbaa !9
  %404 = getelementptr inbounds %struct._Action, ptr %403, i32 0, i32 14
  %405 = load ptr, ptr %404, align 8, !tbaa !36
  %406 = load ptr, ptr %1, align 8, !tbaa !9
  %407 = getelementptr inbounds %struct._Action, ptr %406, i32 0, i32 16
  %408 = load i32, ptr %407, align 8, !tbaa !38
  %409 = sext i32 %408 to i64
  %410 = getelementptr inbounds ptr, ptr %405, i64 %409
  %411 = load ptr, ptr %410, align 8, !tbaa !9
  store ptr %411, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %412

412:                                              ; preds = %479, %363
  %413 = load i32, ptr %6, align 4, !tbaa !5
  %414 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %415 = icmp slt i32 %413, %414
  br i1 %415, label %416, label %482

416:                                              ; preds = %412
  %417 = load i32, ptr %6, align 4, !tbaa !5
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %418
  %420 = load float, ptr %419, align 4, !tbaa !41
  %421 = fcmp oeq float %420, 0.000000e+00
  br i1 %421, label %422, label %423

422:                                              ; preds = %416
  br label %479

423:                                              ; preds = %416
  %424 = load i32, ptr %6, align 4, !tbaa !5
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %425
  %427 = load float, ptr %426, align 4, !tbaa !41
  %428 = fcmp ogt float %427, 0.000000e+00
  br i1 %428, label %429, label %453

429:                                              ; preds = %423
  %430 = load i32, ptr %6, align 4, !tbaa !5
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %431
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = load ptr, ptr %9, align 8, !tbaa !9
  %435 = getelementptr inbounds %struct._LnfExpNode, ptr %434, i32 0, i32 0
  %436 = load ptr, ptr %9, align 8, !tbaa !9
  %437 = getelementptr inbounds %struct._LnfExpNode, ptr %436, i32 0, i32 2
  %438 = load i32, ptr %437, align 4, !tbaa !42
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds [25 x i32], ptr %435, i64 0, i64 %439
  store i32 %433, ptr %440, align 4, !tbaa !5
  %441 = load i32, ptr %6, align 4, !tbaa !5
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %442
  %444 = load float, ptr %443, align 4, !tbaa !41
  %445 = load ptr, ptr %9, align 8, !tbaa !9
  %446 = getelementptr inbounds %struct._LnfExpNode, ptr %445, i32 0, i32 1
  %447 = load ptr, ptr %9, align 8, !tbaa !9
  %448 = getelementptr inbounds %struct._LnfExpNode, ptr %447, i32 0, i32 2
  %449 = load i32, ptr %448, align 4, !tbaa !42
  %450 = add nsw i32 %449, 1
  store i32 %450, ptr %448, align 4, !tbaa !42
  %451 = sext i32 %449 to i64
  %452 = getelementptr inbounds [25 x float], ptr %446, i64 0, i64 %451
  store float %444, ptr %452, align 4, !tbaa !41
  br label %478

453:                                              ; preds = %423
  %454 = load i32, ptr %6, align 4, !tbaa !5
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %455
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = load ptr, ptr %9, align 8, !tbaa !9
  %459 = getelementptr inbounds %struct._LnfExpNode, ptr %458, i32 0, i32 3
  %460 = load ptr, ptr %9, align 8, !tbaa !9
  %461 = getelementptr inbounds %struct._LnfExpNode, ptr %460, i32 0, i32 5
  %462 = load i32, ptr %461, align 4, !tbaa !44
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds [25 x i32], ptr %459, i64 0, i64 %463
  store i32 %457, ptr %464, align 4, !tbaa !5
  %465 = load i32, ptr %6, align 4, !tbaa !5
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %466
  %468 = load float, ptr %467, align 4, !tbaa !41
  %469 = fmul float -1.000000e+00, %468
  %470 = load ptr, ptr %9, align 8, !tbaa !9
  %471 = getelementptr inbounds %struct._LnfExpNode, ptr %470, i32 0, i32 4
  %472 = load ptr, ptr %9, align 8, !tbaa !9
  %473 = getelementptr inbounds %struct._LnfExpNode, ptr %472, i32 0, i32 5
  %474 = load i32, ptr %473, align 4, !tbaa !44
  %475 = add nsw i32 %474, 1
  store i32 %475, ptr %473, align 4, !tbaa !44
  %476 = sext i32 %474 to i64
  %477 = getelementptr inbounds [25 x float], ptr %471, i64 0, i64 %476
  store float %469, ptr %477, align 4, !tbaa !41
  br label %478

478:                                              ; preds = %453, %429
  br label %479

479:                                              ; preds = %478, %422
  %480 = load i32, ptr %6, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr %6, align 4, !tbaa !5
  br label %412, !llvm.loop !45

482:                                              ; preds = %412
  %483 = load float, ptr @lc, align 4, !tbaa !41
  %484 = load ptr, ptr %1, align 8, !tbaa !9
  %485 = getelementptr inbounds %struct._Action, ptr %484, i32 0, i32 15
  %486 = load ptr, ptr %485, align 8, !tbaa !37
  %487 = load ptr, ptr %1, align 8, !tbaa !9
  %488 = getelementptr inbounds %struct._Action, ptr %487, i32 0, i32 16
  %489 = load i32, ptr %488, align 8, !tbaa !38
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds float, ptr %486, i64 %490
  store float %483, ptr %491, align 4, !tbaa !41
  %492 = load ptr, ptr %1, align 8, !tbaa !9
  %493 = getelementptr inbounds %struct._Action, ptr %492, i32 0, i32 16
  %494 = load i32, ptr %493, align 8, !tbaa !38
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr %493, align 8, !tbaa !38
  %496 = load i8, ptr %8, align 1, !tbaa !39
  %497 = icmp ne i8 %496, 0
  br i1 %497, label %498, label %637

498:                                              ; preds = %482
  %499 = load ptr, ptr %1, align 8, !tbaa !9
  %500 = getelementptr inbounds %struct._Action, ptr %499, i32 0, i32 16
  %501 = load i32, ptr %500, align 8, !tbaa !38
  %502 = icmp eq i32 %501, 100
  br i1 %502, label %503, label %505

503:                                              ; preds = %498
  %504 = call i32 (ptr, ...) @printf(ptr noundef @.str.27, i32 noundef 100)
  call void @exit(i32 noundef 1) #6
  unreachable

505:                                              ; preds = %498
  %506 = load ptr, ptr %1, align 8, !tbaa !9
  %507 = getelementptr inbounds %struct._Action, ptr %506, i32 0, i32 9
  %508 = load ptr, ptr %507, align 8, !tbaa !40
  %509 = load i32, ptr %5, align 4, !tbaa !5
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds i32, ptr %508, i64 %510
  store i32 3003, ptr %511, align 4, !tbaa !5
  %512 = load ptr, ptr %1, align 8, !tbaa !9
  %513 = getelementptr inbounds %struct._Action, ptr %512, i32 0, i32 10
  %514 = load ptr, ptr %513, align 8, !tbaa !15
  %515 = load i32, ptr %5, align 4, !tbaa !5
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds ptr, ptr %514, i64 %516
  %518 = load ptr, ptr %517, align 8, !tbaa !9
  %519 = load ptr, ptr %1, align 8, !tbaa !9
  %520 = getelementptr inbounds %struct._Action, ptr %519, i32 0, i32 11
  %521 = load ptr, ptr %520, align 8, !tbaa !16
  %522 = load i32, ptr %5, align 4, !tbaa !5
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds ptr, ptr %521, i64 %523
  %525 = load ptr, ptr %524, align 8, !tbaa !9
  call void @put_comp_into_normalized_locals(i32 noundef 3004, ptr noundef %518, ptr noundef %525)
  %526 = load i32, ptr @lcomp, align 4, !tbaa !5
  %527 = load ptr, ptr %1, align 8, !tbaa !9
  %528 = getelementptr inbounds %struct._Action, ptr %527, i32 0, i32 13
  %529 = load ptr, ptr %528, align 8, !tbaa !35
  %530 = load ptr, ptr %1, align 8, !tbaa !9
  %531 = getelementptr inbounds %struct._Action, ptr %530, i32 0, i32 16
  %532 = load i32, ptr %531, align 8, !tbaa !38
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds i32, ptr %529, i64 %533
  store i32 %526, ptr %534, align 4, !tbaa !5
  %535 = call ptr @new_LnfExpNode()
  %536 = load ptr, ptr %1, align 8, !tbaa !9
  %537 = getelementptr inbounds %struct._Action, ptr %536, i32 0, i32 14
  %538 = load ptr, ptr %537, align 8, !tbaa !36
  %539 = load ptr, ptr %1, align 8, !tbaa !9
  %540 = getelementptr inbounds %struct._Action, ptr %539, i32 0, i32 16
  %541 = load i32, ptr %540, align 8, !tbaa !38
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds ptr, ptr %538, i64 %542
  store ptr %535, ptr %543, align 8, !tbaa !9
  %544 = load ptr, ptr %1, align 8, !tbaa !9
  %545 = getelementptr inbounds %struct._Action, ptr %544, i32 0, i32 14
  %546 = load ptr, ptr %545, align 8, !tbaa !36
  %547 = load ptr, ptr %1, align 8, !tbaa !9
  %548 = getelementptr inbounds %struct._Action, ptr %547, i32 0, i32 16
  %549 = load i32, ptr %548, align 8, !tbaa !38
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds ptr, ptr %546, i64 %550
  %552 = load ptr, ptr %551, align 8, !tbaa !9
  store ptr %552, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %553

553:                                              ; preds = %620, %505
  %554 = load i32, ptr %6, align 4, !tbaa !5
  %555 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %556 = icmp slt i32 %554, %555
  br i1 %556, label %557, label %623

557:                                              ; preds = %553
  %558 = load i32, ptr %6, align 4, !tbaa !5
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %559
  %561 = load float, ptr %560, align 4, !tbaa !41
  %562 = fcmp oeq float %561, 0.000000e+00
  br i1 %562, label %563, label %564

563:                                              ; preds = %557
  br label %620

564:                                              ; preds = %557
  %565 = load i32, ptr %6, align 4, !tbaa !5
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %566
  %568 = load float, ptr %567, align 4, !tbaa !41
  %569 = fcmp ogt float %568, 0.000000e+00
  br i1 %569, label %570, label %594

570:                                              ; preds = %564
  %571 = load i32, ptr %6, align 4, !tbaa !5
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %572
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = load ptr, ptr %9, align 8, !tbaa !9
  %576 = getelementptr inbounds %struct._LnfExpNode, ptr %575, i32 0, i32 0
  %577 = load ptr, ptr %9, align 8, !tbaa !9
  %578 = getelementptr inbounds %struct._LnfExpNode, ptr %577, i32 0, i32 2
  %579 = load i32, ptr %578, align 4, !tbaa !42
  %580 = sext i32 %579 to i64
  %581 = getelementptr inbounds [25 x i32], ptr %576, i64 0, i64 %580
  store i32 %574, ptr %581, align 4, !tbaa !5
  %582 = load i32, ptr %6, align 4, !tbaa !5
  %583 = sext i32 %582 to i64
  %584 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %583
  %585 = load float, ptr %584, align 4, !tbaa !41
  %586 = load ptr, ptr %9, align 8, !tbaa !9
  %587 = getelementptr inbounds %struct._LnfExpNode, ptr %586, i32 0, i32 1
  %588 = load ptr, ptr %9, align 8, !tbaa !9
  %589 = getelementptr inbounds %struct._LnfExpNode, ptr %588, i32 0, i32 2
  %590 = load i32, ptr %589, align 4, !tbaa !42
  %591 = add nsw i32 %590, 1
  store i32 %591, ptr %589, align 4, !tbaa !42
  %592 = sext i32 %590 to i64
  %593 = getelementptr inbounds [25 x float], ptr %587, i64 0, i64 %592
  store float %585, ptr %593, align 4, !tbaa !41
  br label %619

594:                                              ; preds = %564
  %595 = load i32, ptr %6, align 4, !tbaa !5
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %596
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = load ptr, ptr %9, align 8, !tbaa !9
  %600 = getelementptr inbounds %struct._LnfExpNode, ptr %599, i32 0, i32 3
  %601 = load ptr, ptr %9, align 8, !tbaa !9
  %602 = getelementptr inbounds %struct._LnfExpNode, ptr %601, i32 0, i32 5
  %603 = load i32, ptr %602, align 4, !tbaa !44
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds [25 x i32], ptr %600, i64 0, i64 %604
  store i32 %598, ptr %605, align 4, !tbaa !5
  %606 = load i32, ptr %6, align 4, !tbaa !5
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %607
  %609 = load float, ptr %608, align 4, !tbaa !41
  %610 = fmul float -1.000000e+00, %609
  %611 = load ptr, ptr %9, align 8, !tbaa !9
  %612 = getelementptr inbounds %struct._LnfExpNode, ptr %611, i32 0, i32 4
  %613 = load ptr, ptr %9, align 8, !tbaa !9
  %614 = getelementptr inbounds %struct._LnfExpNode, ptr %613, i32 0, i32 5
  %615 = load i32, ptr %614, align 4, !tbaa !44
  %616 = add nsw i32 %615, 1
  store i32 %616, ptr %614, align 4, !tbaa !44
  %617 = sext i32 %615 to i64
  %618 = getelementptr inbounds [25 x float], ptr %612, i64 0, i64 %617
  store float %610, ptr %618, align 4, !tbaa !41
  br label %619

619:                                              ; preds = %594, %570
  br label %620

620:                                              ; preds = %619, %563
  %621 = load i32, ptr %6, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr %6, align 4, !tbaa !5
  br label %553, !llvm.loop !46

623:                                              ; preds = %553
  %624 = load float, ptr @lc, align 4, !tbaa !41
  %625 = load ptr, ptr %1, align 8, !tbaa !9
  %626 = getelementptr inbounds %struct._Action, ptr %625, i32 0, i32 15
  %627 = load ptr, ptr %626, align 8, !tbaa !37
  %628 = load ptr, ptr %1, align 8, !tbaa !9
  %629 = getelementptr inbounds %struct._Action, ptr %628, i32 0, i32 16
  %630 = load i32, ptr %629, align 8, !tbaa !38
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds float, ptr %627, i64 %631
  store float %624, ptr %632, align 4, !tbaa !41
  %633 = load ptr, ptr %1, align 8, !tbaa !9
  %634 = getelementptr inbounds %struct._Action, ptr %633, i32 0, i32 16
  %635 = load i32, ptr %634, align 8, !tbaa !38
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr %634, align 8, !tbaa !38
  br label %637

637:                                              ; preds = %623, %482
  br label %638

638:                                              ; preds = %637
  %639 = load i32, ptr %5, align 4, !tbaa !5
  %640 = add nsw i32 %639, 1
  store i32 %640, ptr %5, align 4, !tbaa !5
  br label %334, !llvm.loop !47

641:                                              ; preds = %334
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %642

642:                                              ; preds = %1178, %641
  %643 = load i32, ptr %5, align 4, !tbaa !5
  %644 = load ptr, ptr %1, align 8, !tbaa !9
  %645 = getelementptr inbounds %struct._Action, ptr %644, i32 0, i32 18
  %646 = load i32, ptr %645, align 8, !tbaa !23
  %647 = icmp slt i32 %643, %646
  br i1 %647, label %648, label %1181

648:                                              ; preds = %642
  %649 = load ptr, ptr %1, align 8, !tbaa !9
  %650 = getelementptr inbounds %struct._Action, ptr %649, i32 0, i32 17
  %651 = load ptr, ptr %650, align 8, !tbaa !24
  %652 = load i32, ptr %5, align 4, !tbaa !5
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds %struct._ActionEffect, ptr %651, i64 %653
  store ptr %654, ptr %4, align 8, !tbaa !9
  %655 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  %656 = load ptr, ptr %4, align 8, !tbaa !9
  %657 = getelementptr inbounds %struct._ActionEffect, ptr %656, i32 0, i32 14
  store ptr %655, ptr %657, align 8, !tbaa !48
  %658 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 8) #7
  %659 = load ptr, ptr %4, align 8, !tbaa !9
  %660 = getelementptr inbounds %struct._ActionEffect, ptr %659, i32 0, i32 15
  store ptr %658, ptr %660, align 8, !tbaa !49
  %661 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  %662 = load ptr, ptr %4, align 8, !tbaa !9
  %663 = getelementptr inbounds %struct._ActionEffect, ptr %662, i32 0, i32 16
  store ptr %661, ptr %663, align 8, !tbaa !50
  %664 = load ptr, ptr %4, align 8, !tbaa !9
  %665 = getelementptr inbounds %struct._ActionEffect, ptr %664, i32 0, i32 17
  store i32 0, ptr %665, align 8, !tbaa !51
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %666

666:                                              ; preds = %970, %648
  %667 = load i32, ptr %6, align 4, !tbaa !5
  %668 = load ptr, ptr %4, align 8, !tbaa !9
  %669 = getelementptr inbounds %struct._ActionEffect, ptr %668, i32 0, i32 9
  %670 = load i32, ptr %669, align 8, !tbaa !25
  %671 = icmp slt i32 %667, %670
  br i1 %671, label %672, label %973

672:                                              ; preds = %666
  %673 = load ptr, ptr %4, align 8, !tbaa !9
  %674 = getelementptr inbounds %struct._ActionEffect, ptr %673, i32 0, i32 17
  %675 = load i32, ptr %674, align 8, !tbaa !51
  %676 = icmp eq i32 %675, 100
  br i1 %676, label %677, label %679

677:                                              ; preds = %672
  %678 = call i32 (ptr, ...) @printf(ptr noundef @.str.27, i32 noundef 100)
  call void @exit(i32 noundef 1) #6
  unreachable

679:                                              ; preds = %672
  store i8 0, ptr %8, align 1, !tbaa !39
  %680 = load ptr, ptr %4, align 8, !tbaa !9
  %681 = getelementptr inbounds %struct._ActionEffect, ptr %680, i32 0, i32 6
  %682 = load ptr, ptr %681, align 8, !tbaa !52
  %683 = load i32, ptr %6, align 4, !tbaa !5
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds i32, ptr %682, i64 %684
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = icmp eq i32 %686, 3003
  br i1 %687, label %688, label %695

688:                                              ; preds = %679
  store i8 1, ptr %8, align 1, !tbaa !39
  %689 = load ptr, ptr %4, align 8, !tbaa !9
  %690 = getelementptr inbounds %struct._ActionEffect, ptr %689, i32 0, i32 6
  %691 = load ptr, ptr %690, align 8, !tbaa !52
  %692 = load i32, ptr %6, align 4, !tbaa !5
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds i32, ptr %691, i64 %693
  store i32 3002, ptr %694, align 4, !tbaa !5
  br label %695

695:                                              ; preds = %688, %679
  %696 = load ptr, ptr %4, align 8, !tbaa !9
  %697 = getelementptr inbounds %struct._ActionEffect, ptr %696, i32 0, i32 6
  %698 = load ptr, ptr %697, align 8, !tbaa !52
  %699 = load i32, ptr %6, align 4, !tbaa !5
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds i32, ptr %698, i64 %700
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = load ptr, ptr %4, align 8, !tbaa !9
  %704 = getelementptr inbounds %struct._ActionEffect, ptr %703, i32 0, i32 7
  %705 = load ptr, ptr %704, align 8, !tbaa !27
  %706 = load i32, ptr %6, align 4, !tbaa !5
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds ptr, ptr %705, i64 %707
  %709 = load ptr, ptr %708, align 8, !tbaa !9
  %710 = load ptr, ptr %4, align 8, !tbaa !9
  %711 = getelementptr inbounds %struct._ActionEffect, ptr %710, i32 0, i32 8
  %712 = load ptr, ptr %711, align 8, !tbaa !28
  %713 = load i32, ptr %6, align 4, !tbaa !5
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds ptr, ptr %712, i64 %714
  %716 = load ptr, ptr %715, align 8, !tbaa !9
  call void @put_comp_into_normalized_locals(i32 noundef %702, ptr noundef %709, ptr noundef %716)
  %717 = load i32, ptr @lcomp, align 4, !tbaa !5
  %718 = load ptr, ptr %4, align 8, !tbaa !9
  %719 = getelementptr inbounds %struct._ActionEffect, ptr %718, i32 0, i32 14
  %720 = load ptr, ptr %719, align 8, !tbaa !48
  %721 = load ptr, ptr %4, align 8, !tbaa !9
  %722 = getelementptr inbounds %struct._ActionEffect, ptr %721, i32 0, i32 17
  %723 = load i32, ptr %722, align 8, !tbaa !51
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds i32, ptr %720, i64 %724
  store i32 %717, ptr %725, align 4, !tbaa !5
  %726 = call ptr @new_LnfExpNode()
  %727 = load ptr, ptr %4, align 8, !tbaa !9
  %728 = getelementptr inbounds %struct._ActionEffect, ptr %727, i32 0, i32 15
  %729 = load ptr, ptr %728, align 8, !tbaa !49
  %730 = load ptr, ptr %4, align 8, !tbaa !9
  %731 = getelementptr inbounds %struct._ActionEffect, ptr %730, i32 0, i32 17
  %732 = load i32, ptr %731, align 8, !tbaa !51
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds ptr, ptr %729, i64 %733
  store ptr %726, ptr %734, align 8, !tbaa !9
  %735 = load ptr, ptr %4, align 8, !tbaa !9
  %736 = getelementptr inbounds %struct._ActionEffect, ptr %735, i32 0, i32 15
  %737 = load ptr, ptr %736, align 8, !tbaa !49
  %738 = load ptr, ptr %4, align 8, !tbaa !9
  %739 = getelementptr inbounds %struct._ActionEffect, ptr %738, i32 0, i32 17
  %740 = load i32, ptr %739, align 8, !tbaa !51
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds ptr, ptr %737, i64 %741
  %743 = load ptr, ptr %742, align 8, !tbaa !9
  store ptr %743, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %744

744:                                              ; preds = %811, %695
  %745 = load i32, ptr %7, align 4, !tbaa !5
  %746 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %747 = icmp slt i32 %745, %746
  br i1 %747, label %748, label %814

748:                                              ; preds = %744
  %749 = load i32, ptr %7, align 4, !tbaa !5
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %750
  %752 = load float, ptr %751, align 4, !tbaa !41
  %753 = fcmp oeq float %752, 0.000000e+00
  br i1 %753, label %754, label %755

754:                                              ; preds = %748
  br label %811

755:                                              ; preds = %748
  %756 = load i32, ptr %7, align 4, !tbaa !5
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %757
  %759 = load float, ptr %758, align 4, !tbaa !41
  %760 = fcmp ogt float %759, 0.000000e+00
  br i1 %760, label %761, label %785

761:                                              ; preds = %755
  %762 = load i32, ptr %7, align 4, !tbaa !5
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %763
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = load ptr, ptr %9, align 8, !tbaa !9
  %767 = getelementptr inbounds %struct._LnfExpNode, ptr %766, i32 0, i32 0
  %768 = load ptr, ptr %9, align 8, !tbaa !9
  %769 = getelementptr inbounds %struct._LnfExpNode, ptr %768, i32 0, i32 2
  %770 = load i32, ptr %769, align 4, !tbaa !42
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds [25 x i32], ptr %767, i64 0, i64 %771
  store i32 %765, ptr %772, align 4, !tbaa !5
  %773 = load i32, ptr %7, align 4, !tbaa !5
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %774
  %776 = load float, ptr %775, align 4, !tbaa !41
  %777 = load ptr, ptr %9, align 8, !tbaa !9
  %778 = getelementptr inbounds %struct._LnfExpNode, ptr %777, i32 0, i32 1
  %779 = load ptr, ptr %9, align 8, !tbaa !9
  %780 = getelementptr inbounds %struct._LnfExpNode, ptr %779, i32 0, i32 2
  %781 = load i32, ptr %780, align 4, !tbaa !42
  %782 = add nsw i32 %781, 1
  store i32 %782, ptr %780, align 4, !tbaa !42
  %783 = sext i32 %781 to i64
  %784 = getelementptr inbounds [25 x float], ptr %778, i64 0, i64 %783
  store float %776, ptr %784, align 4, !tbaa !41
  br label %810

785:                                              ; preds = %755
  %786 = load i32, ptr %7, align 4, !tbaa !5
  %787 = sext i32 %786 to i64
  %788 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %787
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = load ptr, ptr %9, align 8, !tbaa !9
  %791 = getelementptr inbounds %struct._LnfExpNode, ptr %790, i32 0, i32 3
  %792 = load ptr, ptr %9, align 8, !tbaa !9
  %793 = getelementptr inbounds %struct._LnfExpNode, ptr %792, i32 0, i32 5
  %794 = load i32, ptr %793, align 4, !tbaa !44
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds [25 x i32], ptr %791, i64 0, i64 %795
  store i32 %789, ptr %796, align 4, !tbaa !5
  %797 = load i32, ptr %7, align 4, !tbaa !5
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %798
  %800 = load float, ptr %799, align 4, !tbaa !41
  %801 = fmul float -1.000000e+00, %800
  %802 = load ptr, ptr %9, align 8, !tbaa !9
  %803 = getelementptr inbounds %struct._LnfExpNode, ptr %802, i32 0, i32 4
  %804 = load ptr, ptr %9, align 8, !tbaa !9
  %805 = getelementptr inbounds %struct._LnfExpNode, ptr %804, i32 0, i32 5
  %806 = load i32, ptr %805, align 4, !tbaa !44
  %807 = add nsw i32 %806, 1
  store i32 %807, ptr %805, align 4, !tbaa !44
  %808 = sext i32 %806 to i64
  %809 = getelementptr inbounds [25 x float], ptr %803, i64 0, i64 %808
  store float %801, ptr %809, align 4, !tbaa !41
  br label %810

810:                                              ; preds = %785, %761
  br label %811

811:                                              ; preds = %810, %754
  %812 = load i32, ptr %7, align 4, !tbaa !5
  %813 = add nsw i32 %812, 1
  store i32 %813, ptr %7, align 4, !tbaa !5
  br label %744, !llvm.loop !53

814:                                              ; preds = %744
  %815 = load float, ptr @lc, align 4, !tbaa !41
  %816 = load ptr, ptr %4, align 8, !tbaa !9
  %817 = getelementptr inbounds %struct._ActionEffect, ptr %816, i32 0, i32 16
  %818 = load ptr, ptr %817, align 8, !tbaa !50
  %819 = load ptr, ptr %4, align 8, !tbaa !9
  %820 = getelementptr inbounds %struct._ActionEffect, ptr %819, i32 0, i32 17
  %821 = load i32, ptr %820, align 8, !tbaa !51
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %818, i64 %822
  store float %815, ptr %823, align 4, !tbaa !41
  %824 = load ptr, ptr %4, align 8, !tbaa !9
  %825 = getelementptr inbounds %struct._ActionEffect, ptr %824, i32 0, i32 17
  %826 = load i32, ptr %825, align 8, !tbaa !51
  %827 = add nsw i32 %826, 1
  store i32 %827, ptr %825, align 8, !tbaa !51
  %828 = load i8, ptr %8, align 1, !tbaa !39
  %829 = icmp ne i8 %828, 0
  br i1 %829, label %830, label %969

830:                                              ; preds = %814
  %831 = load ptr, ptr %4, align 8, !tbaa !9
  %832 = getelementptr inbounds %struct._ActionEffect, ptr %831, i32 0, i32 17
  %833 = load i32, ptr %832, align 8, !tbaa !51
  %834 = icmp eq i32 %833, 100
  br i1 %834, label %835, label %837

835:                                              ; preds = %830
  %836 = call i32 (ptr, ...) @printf(ptr noundef @.str.27, i32 noundef 100)
  call void @exit(i32 noundef 1) #6
  unreachable

837:                                              ; preds = %830
  %838 = load ptr, ptr %4, align 8, !tbaa !9
  %839 = getelementptr inbounds %struct._ActionEffect, ptr %838, i32 0, i32 6
  %840 = load ptr, ptr %839, align 8, !tbaa !52
  %841 = load i32, ptr %6, align 4, !tbaa !5
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds i32, ptr %840, i64 %842
  store i32 3003, ptr %843, align 4, !tbaa !5
  %844 = load ptr, ptr %4, align 8, !tbaa !9
  %845 = getelementptr inbounds %struct._ActionEffect, ptr %844, i32 0, i32 7
  %846 = load ptr, ptr %845, align 8, !tbaa !27
  %847 = load i32, ptr %6, align 4, !tbaa !5
  %848 = sext i32 %847 to i64
  %849 = getelementptr inbounds ptr, ptr %846, i64 %848
  %850 = load ptr, ptr %849, align 8, !tbaa !9
  %851 = load ptr, ptr %4, align 8, !tbaa !9
  %852 = getelementptr inbounds %struct._ActionEffect, ptr %851, i32 0, i32 8
  %853 = load ptr, ptr %852, align 8, !tbaa !28
  %854 = load i32, ptr %6, align 4, !tbaa !5
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds ptr, ptr %853, i64 %855
  %857 = load ptr, ptr %856, align 8, !tbaa !9
  call void @put_comp_into_normalized_locals(i32 noundef 3004, ptr noundef %850, ptr noundef %857)
  %858 = load i32, ptr @lcomp, align 4, !tbaa !5
  %859 = load ptr, ptr %4, align 8, !tbaa !9
  %860 = getelementptr inbounds %struct._ActionEffect, ptr %859, i32 0, i32 14
  %861 = load ptr, ptr %860, align 8, !tbaa !48
  %862 = load ptr, ptr %4, align 8, !tbaa !9
  %863 = getelementptr inbounds %struct._ActionEffect, ptr %862, i32 0, i32 17
  %864 = load i32, ptr %863, align 8, !tbaa !51
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds i32, ptr %861, i64 %865
  store i32 %858, ptr %866, align 4, !tbaa !5
  %867 = call ptr @new_LnfExpNode()
  %868 = load ptr, ptr %4, align 8, !tbaa !9
  %869 = getelementptr inbounds %struct._ActionEffect, ptr %868, i32 0, i32 15
  %870 = load ptr, ptr %869, align 8, !tbaa !49
  %871 = load ptr, ptr %4, align 8, !tbaa !9
  %872 = getelementptr inbounds %struct._ActionEffect, ptr %871, i32 0, i32 17
  %873 = load i32, ptr %872, align 8, !tbaa !51
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds ptr, ptr %870, i64 %874
  store ptr %867, ptr %875, align 8, !tbaa !9
  %876 = load ptr, ptr %4, align 8, !tbaa !9
  %877 = getelementptr inbounds %struct._ActionEffect, ptr %876, i32 0, i32 15
  %878 = load ptr, ptr %877, align 8, !tbaa !49
  %879 = load ptr, ptr %4, align 8, !tbaa !9
  %880 = getelementptr inbounds %struct._ActionEffect, ptr %879, i32 0, i32 17
  %881 = load i32, ptr %880, align 8, !tbaa !51
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds ptr, ptr %878, i64 %882
  %884 = load ptr, ptr %883, align 8, !tbaa !9
  store ptr %884, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %885

885:                                              ; preds = %952, %837
  %886 = load i32, ptr %7, align 4, !tbaa !5
  %887 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %888 = icmp slt i32 %886, %887
  br i1 %888, label %889, label %955

889:                                              ; preds = %885
  %890 = load i32, ptr %7, align 4, !tbaa !5
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %891
  %893 = load float, ptr %892, align 4, !tbaa !41
  %894 = fcmp oeq float %893, 0.000000e+00
  br i1 %894, label %895, label %896

895:                                              ; preds = %889
  br label %952

896:                                              ; preds = %889
  %897 = load i32, ptr %7, align 4, !tbaa !5
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %898
  %900 = load float, ptr %899, align 4, !tbaa !41
  %901 = fcmp ogt float %900, 0.000000e+00
  br i1 %901, label %902, label %926

902:                                              ; preds = %896
  %903 = load i32, ptr %7, align 4, !tbaa !5
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %904
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = load ptr, ptr %9, align 8, !tbaa !9
  %908 = getelementptr inbounds %struct._LnfExpNode, ptr %907, i32 0, i32 0
  %909 = load ptr, ptr %9, align 8, !tbaa !9
  %910 = getelementptr inbounds %struct._LnfExpNode, ptr %909, i32 0, i32 2
  %911 = load i32, ptr %910, align 4, !tbaa !42
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds [25 x i32], ptr %908, i64 0, i64 %912
  store i32 %906, ptr %913, align 4, !tbaa !5
  %914 = load i32, ptr %7, align 4, !tbaa !5
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %915
  %917 = load float, ptr %916, align 4, !tbaa !41
  %918 = load ptr, ptr %9, align 8, !tbaa !9
  %919 = getelementptr inbounds %struct._LnfExpNode, ptr %918, i32 0, i32 1
  %920 = load ptr, ptr %9, align 8, !tbaa !9
  %921 = getelementptr inbounds %struct._LnfExpNode, ptr %920, i32 0, i32 2
  %922 = load i32, ptr %921, align 4, !tbaa !42
  %923 = add nsw i32 %922, 1
  store i32 %923, ptr %921, align 4, !tbaa !42
  %924 = sext i32 %922 to i64
  %925 = getelementptr inbounds [25 x float], ptr %919, i64 0, i64 %924
  store float %917, ptr %925, align 4, !tbaa !41
  br label %951

926:                                              ; preds = %896
  %927 = load i32, ptr %7, align 4, !tbaa !5
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %928
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = load ptr, ptr %9, align 8, !tbaa !9
  %932 = getelementptr inbounds %struct._LnfExpNode, ptr %931, i32 0, i32 3
  %933 = load ptr, ptr %9, align 8, !tbaa !9
  %934 = getelementptr inbounds %struct._LnfExpNode, ptr %933, i32 0, i32 5
  %935 = load i32, ptr %934, align 4, !tbaa !44
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds [25 x i32], ptr %932, i64 0, i64 %936
  store i32 %930, ptr %937, align 4, !tbaa !5
  %938 = load i32, ptr %7, align 4, !tbaa !5
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %939
  %941 = load float, ptr %940, align 4, !tbaa !41
  %942 = fmul float -1.000000e+00, %941
  %943 = load ptr, ptr %9, align 8, !tbaa !9
  %944 = getelementptr inbounds %struct._LnfExpNode, ptr %943, i32 0, i32 4
  %945 = load ptr, ptr %9, align 8, !tbaa !9
  %946 = getelementptr inbounds %struct._LnfExpNode, ptr %945, i32 0, i32 5
  %947 = load i32, ptr %946, align 4, !tbaa !44
  %948 = add nsw i32 %947, 1
  store i32 %948, ptr %946, align 4, !tbaa !44
  %949 = sext i32 %947 to i64
  %950 = getelementptr inbounds [25 x float], ptr %944, i64 0, i64 %949
  store float %942, ptr %950, align 4, !tbaa !41
  br label %951

951:                                              ; preds = %926, %902
  br label %952

952:                                              ; preds = %951, %895
  %953 = load i32, ptr %7, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr %7, align 4, !tbaa !5
  br label %885, !llvm.loop !54

955:                                              ; preds = %885
  %956 = load float, ptr @lc, align 4, !tbaa !41
  %957 = load ptr, ptr %4, align 8, !tbaa !9
  %958 = getelementptr inbounds %struct._ActionEffect, ptr %957, i32 0, i32 16
  %959 = load ptr, ptr %958, align 8, !tbaa !50
  %960 = load ptr, ptr %4, align 8, !tbaa !9
  %961 = getelementptr inbounds %struct._ActionEffect, ptr %960, i32 0, i32 17
  %962 = load i32, ptr %961, align 8, !tbaa !51
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds float, ptr %959, i64 %963
  store float %956, ptr %964, align 4, !tbaa !41
  %965 = load ptr, ptr %4, align 8, !tbaa !9
  %966 = getelementptr inbounds %struct._ActionEffect, ptr %965, i32 0, i32 17
  %967 = load i32, ptr %966, align 8, !tbaa !51
  %968 = add nsw i32 %967, 1
  store i32 %968, ptr %966, align 8, !tbaa !51
  br label %969

969:                                              ; preds = %955, %814
  br label %970

970:                                              ; preds = %969
  %971 = load i32, ptr %6, align 4, !tbaa !5
  %972 = add nsw i32 %971, 1
  store i32 %972, ptr %6, align 4, !tbaa !5
  br label %666, !llvm.loop !55

973:                                              ; preds = %666
  %974 = load ptr, ptr %4, align 8, !tbaa !9
  %975 = getelementptr inbounds %struct._ActionEffect, ptr %974, i32 0, i32 22
  %976 = load i8, ptr %975, align 4, !tbaa !30
  %977 = icmp ne i8 %976, 0
  br i1 %977, label %978, label %979

978:                                              ; preds = %973
  br label %1178

979:                                              ; preds = %973
  %980 = call noalias ptr @calloc(i64 noundef 50, i64 noundef 4) #7
  %981 = load ptr, ptr %4, align 8, !tbaa !9
  %982 = getelementptr inbounds %struct._ActionEffect, ptr %981, i32 0, i32 18
  store ptr %980, ptr %982, align 8, !tbaa !56
  %983 = call noalias ptr @calloc(i64 noundef 50, i64 noundef 4) #7
  %984 = load ptr, ptr %4, align 8, !tbaa !9
  %985 = getelementptr inbounds %struct._ActionEffect, ptr %984, i32 0, i32 19
  store ptr %983, ptr %985, align 8, !tbaa !57
  %986 = call noalias ptr @calloc(i64 noundef 50, i64 noundef 8) #7
  %987 = load ptr, ptr %4, align 8, !tbaa !9
  %988 = getelementptr inbounds %struct._ActionEffect, ptr %987, i32 0, i32 20
  store ptr %986, ptr %988, align 8, !tbaa !58
  %989 = load ptr, ptr %4, align 8, !tbaa !9
  %990 = getelementptr inbounds %struct._ActionEffect, ptr %989, i32 0, i32 21
  store i32 0, ptr %990, align 8, !tbaa !59
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %991

991:                                              ; preds = %1174, %979
  %992 = load i32, ptr %6, align 4, !tbaa !5
  %993 = load ptr, ptr %4, align 8, !tbaa !9
  %994 = getelementptr inbounds %struct._ActionEffect, ptr %993, i32 0, i32 13
  %995 = load i32, ptr %994, align 8, !tbaa !31
  %996 = icmp slt i32 %992, %995
  br i1 %996, label %997, label %1177

997:                                              ; preds = %991
  %998 = load ptr, ptr %4, align 8, !tbaa !9
  %999 = getelementptr inbounds %struct._ActionEffect, ptr %998, i32 0, i32 21
  %1000 = load i32, ptr %999, align 8, !tbaa !59
  %1001 = icmp eq i32 %1000, 50
  br i1 %1001, label %1002, label %1004

1002:                                             ; preds = %997
  %1003 = call i32 (ptr, ...) @printf(ptr noundef @.str.28, i32 noundef 50)
  call void @exit(i32 noundef 1) #6
  unreachable

1004:                                             ; preds = %997
  %1005 = load ptr, ptr %4, align 8, !tbaa !9
  %1006 = getelementptr inbounds %struct._ActionEffect, ptr %1005, i32 0, i32 10
  %1007 = load ptr, ptr %1006, align 8, !tbaa !60
  %1008 = load i32, ptr %6, align 4, !tbaa !5
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds i32, ptr %1007, i64 %1009
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = load ptr, ptr %4, align 8, !tbaa !9
  %1013 = getelementptr inbounds %struct._ActionEffect, ptr %1012, i32 0, i32 18
  %1014 = load ptr, ptr %1013, align 8, !tbaa !56
  %1015 = load ptr, ptr %4, align 8, !tbaa !9
  %1016 = getelementptr inbounds %struct._ActionEffect, ptr %1015, i32 0, i32 21
  %1017 = load i32, ptr %1016, align 8, !tbaa !59
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds i32, ptr %1014, i64 %1018
  store i32 %1011, ptr %1019, align 4, !tbaa !5
  %1020 = load ptr, ptr %4, align 8, !tbaa !9
  %1021 = getelementptr inbounds %struct._ActionEffect, ptr %1020, i32 0, i32 11
  %1022 = load ptr, ptr %1021, align 8, !tbaa !61
  %1023 = load i32, ptr %6, align 4, !tbaa !5
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds i32, ptr %1022, i64 %1024
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = load ptr, ptr %4, align 8, !tbaa !9
  %1028 = getelementptr inbounds %struct._ActionEffect, ptr %1027, i32 0, i32 19
  %1029 = load ptr, ptr %1028, align 8, !tbaa !57
  %1030 = load ptr, ptr %4, align 8, !tbaa !9
  %1031 = getelementptr inbounds %struct._ActionEffect, ptr %1030, i32 0, i32 21
  %1032 = load i32, ptr %1031, align 8, !tbaa !59
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds i32, ptr %1029, i64 %1033
  store i32 %1026, ptr %1034, align 4, !tbaa !5
  store i32 0, ptr @lnum_F, align 4, !tbaa !5
  store float 0.000000e+00, ptr @lc, align 4, !tbaa !41
  %1035 = load ptr, ptr %4, align 8, !tbaa !9
  %1036 = getelementptr inbounds %struct._ActionEffect, ptr %1035, i32 0, i32 18
  %1037 = load ptr, ptr %1036, align 8, !tbaa !56
  %1038 = load ptr, ptr %4, align 8, !tbaa !9
  %1039 = getelementptr inbounds %struct._ActionEffect, ptr %1038, i32 0, i32 21
  %1040 = load i32, ptr %1039, align 8, !tbaa !59
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds i32, ptr %1037, i64 %1041
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = icmp eq i32 %1043, 4004
  br i1 %1044, label %1045, label %1061

1045:                                             ; preds = %1004
  %1046 = load ptr, ptr %4, align 8, !tbaa !9
  %1047 = getelementptr inbounds %struct._ActionEffect, ptr %1046, i32 0, i32 12
  %1048 = load ptr, ptr %1047, align 8, !tbaa !32
  %1049 = load i32, ptr %6, align 4, !tbaa !5
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds ptr, ptr %1048, i64 %1050
  %1052 = load ptr, ptr %1051, align 8, !tbaa !9
  call void @collect_normalized_locals(ptr noundef %1052, i8 noundef zeroext 0)
  %1053 = load ptr, ptr %4, align 8, !tbaa !9
  %1054 = getelementptr inbounds %struct._ActionEffect, ptr %1053, i32 0, i32 18
  %1055 = load ptr, ptr %1054, align 8, !tbaa !56
  %1056 = load ptr, ptr %4, align 8, !tbaa !9
  %1057 = getelementptr inbounds %struct._ActionEffect, ptr %1056, i32 0, i32 21
  %1058 = load i32, ptr %1057, align 8, !tbaa !59
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds i32, ptr %1055, i64 %1059
  store i32 4003, ptr %1060, align 4, !tbaa !5
  br label %1069

1061:                                             ; preds = %1004
  %1062 = load ptr, ptr %4, align 8, !tbaa !9
  %1063 = getelementptr inbounds %struct._ActionEffect, ptr %1062, i32 0, i32 12
  %1064 = load ptr, ptr %1063, align 8, !tbaa !32
  %1065 = load i32, ptr %6, align 4, !tbaa !5
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds ptr, ptr %1064, i64 %1066
  %1068 = load ptr, ptr %1067, align 8, !tbaa !9
  call void @collect_normalized_locals(ptr noundef %1068, i8 noundef zeroext 1)
  br label %1069

1069:                                             ; preds = %1061, %1045
  %1070 = call ptr @new_LnfExpNode()
  %1071 = load ptr, ptr %4, align 8, !tbaa !9
  %1072 = getelementptr inbounds %struct._ActionEffect, ptr %1071, i32 0, i32 20
  %1073 = load ptr, ptr %1072, align 8, !tbaa !58
  %1074 = load ptr, ptr %4, align 8, !tbaa !9
  %1075 = getelementptr inbounds %struct._ActionEffect, ptr %1074, i32 0, i32 21
  %1076 = load i32, ptr %1075, align 8, !tbaa !59
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds ptr, ptr %1073, i64 %1077
  store ptr %1070, ptr %1078, align 8, !tbaa !9
  %1079 = load ptr, ptr %4, align 8, !tbaa !9
  %1080 = getelementptr inbounds %struct._ActionEffect, ptr %1079, i32 0, i32 20
  %1081 = load ptr, ptr %1080, align 8, !tbaa !58
  %1082 = load ptr, ptr %4, align 8, !tbaa !9
  %1083 = getelementptr inbounds %struct._ActionEffect, ptr %1082, i32 0, i32 21
  %1084 = load i32, ptr %1083, align 8, !tbaa !59
  %1085 = sext i32 %1084 to i64
  %1086 = getelementptr inbounds ptr, ptr %1081, i64 %1085
  %1087 = load ptr, ptr %1086, align 8, !tbaa !9
  store ptr %1087, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %1088

1088:                                             ; preds = %1155, %1069
  %1089 = load i32, ptr %7, align 4, !tbaa !5
  %1090 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %1091 = icmp slt i32 %1089, %1090
  br i1 %1091, label %1092, label %1158

1092:                                             ; preds = %1088
  %1093 = load i32, ptr %7, align 4, !tbaa !5
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1094
  %1096 = load float, ptr %1095, align 4, !tbaa !41
  %1097 = fcmp oeq float %1096, 0.000000e+00
  br i1 %1097, label %1098, label %1099

1098:                                             ; preds = %1092
  br label %1155

1099:                                             ; preds = %1092
  %1100 = load i32, ptr %7, align 4, !tbaa !5
  %1101 = sext i32 %1100 to i64
  %1102 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1101
  %1103 = load float, ptr %1102, align 4, !tbaa !41
  %1104 = fcmp ogt float %1103, 0.000000e+00
  br i1 %1104, label %1105, label %1129

1105:                                             ; preds = %1099
  %1106 = load i32, ptr %7, align 4, !tbaa !5
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %1107
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = load ptr, ptr %9, align 8, !tbaa !9
  %1111 = getelementptr inbounds %struct._LnfExpNode, ptr %1110, i32 0, i32 0
  %1112 = load ptr, ptr %9, align 8, !tbaa !9
  %1113 = getelementptr inbounds %struct._LnfExpNode, ptr %1112, i32 0, i32 2
  %1114 = load i32, ptr %1113, align 4, !tbaa !42
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds [25 x i32], ptr %1111, i64 0, i64 %1115
  store i32 %1109, ptr %1116, align 4, !tbaa !5
  %1117 = load i32, ptr %7, align 4, !tbaa !5
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1118
  %1120 = load float, ptr %1119, align 4, !tbaa !41
  %1121 = load ptr, ptr %9, align 8, !tbaa !9
  %1122 = getelementptr inbounds %struct._LnfExpNode, ptr %1121, i32 0, i32 1
  %1123 = load ptr, ptr %9, align 8, !tbaa !9
  %1124 = getelementptr inbounds %struct._LnfExpNode, ptr %1123, i32 0, i32 2
  %1125 = load i32, ptr %1124, align 4, !tbaa !42
  %1126 = add nsw i32 %1125, 1
  store i32 %1126, ptr %1124, align 4, !tbaa !42
  %1127 = sext i32 %1125 to i64
  %1128 = getelementptr inbounds [25 x float], ptr %1122, i64 0, i64 %1127
  store float %1120, ptr %1128, align 4, !tbaa !41
  br label %1154

1129:                                             ; preds = %1099
  %1130 = load i32, ptr %7, align 4, !tbaa !5
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %1131
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = load ptr, ptr %9, align 8, !tbaa !9
  %1135 = getelementptr inbounds %struct._LnfExpNode, ptr %1134, i32 0, i32 3
  %1136 = load ptr, ptr %9, align 8, !tbaa !9
  %1137 = getelementptr inbounds %struct._LnfExpNode, ptr %1136, i32 0, i32 5
  %1138 = load i32, ptr %1137, align 4, !tbaa !44
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds [25 x i32], ptr %1135, i64 0, i64 %1139
  store i32 %1133, ptr %1140, align 4, !tbaa !5
  %1141 = load i32, ptr %7, align 4, !tbaa !5
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1142
  %1144 = load float, ptr %1143, align 4, !tbaa !41
  %1145 = fmul float -1.000000e+00, %1144
  %1146 = load ptr, ptr %9, align 8, !tbaa !9
  %1147 = getelementptr inbounds %struct._LnfExpNode, ptr %1146, i32 0, i32 4
  %1148 = load ptr, ptr %9, align 8, !tbaa !9
  %1149 = getelementptr inbounds %struct._LnfExpNode, ptr %1148, i32 0, i32 5
  %1150 = load i32, ptr %1149, align 4, !tbaa !44
  %1151 = add nsw i32 %1150, 1
  store i32 %1151, ptr %1149, align 4, !tbaa !44
  %1152 = sext i32 %1150 to i64
  %1153 = getelementptr inbounds [25 x float], ptr %1147, i64 0, i64 %1152
  store float %1145, ptr %1153, align 4, !tbaa !41
  br label %1154

1154:                                             ; preds = %1129, %1105
  br label %1155

1155:                                             ; preds = %1154, %1098
  %1156 = load i32, ptr %7, align 4, !tbaa !5
  %1157 = add nsw i32 %1156, 1
  store i32 %1157, ptr %7, align 4, !tbaa !5
  br label %1088, !llvm.loop !62

1158:                                             ; preds = %1088
  %1159 = load float, ptr @lc, align 4, !tbaa !41
  %1160 = load ptr, ptr %4, align 8, !tbaa !9
  %1161 = getelementptr inbounds %struct._ActionEffect, ptr %1160, i32 0, i32 20
  %1162 = load ptr, ptr %1161, align 8, !tbaa !58
  %1163 = load ptr, ptr %4, align 8, !tbaa !9
  %1164 = getelementptr inbounds %struct._ActionEffect, ptr %1163, i32 0, i32 21
  %1165 = load i32, ptr %1164, align 8, !tbaa !59
  %1166 = sext i32 %1165 to i64
  %1167 = getelementptr inbounds ptr, ptr %1162, i64 %1166
  %1168 = load ptr, ptr %1167, align 8, !tbaa !9
  %1169 = getelementptr inbounds %struct._LnfExpNode, ptr %1168, i32 0, i32 6
  store float %1159, ptr %1169, align 4, !tbaa !63
  %1170 = load ptr, ptr %4, align 8, !tbaa !9
  %1171 = getelementptr inbounds %struct._ActionEffect, ptr %1170, i32 0, i32 21
  %1172 = load i32, ptr %1171, align 8, !tbaa !59
  %1173 = add nsw i32 %1172, 1
  store i32 %1173, ptr %1171, align 8, !tbaa !59
  br label %1174

1174:                                             ; preds = %1158
  %1175 = load i32, ptr %6, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr %6, align 4, !tbaa !5
  br label %991, !llvm.loop !64

1177:                                             ; preds = %991
  br label %1178

1178:                                             ; preds = %1177, %978
  %1179 = load i32, ptr %5, align 4, !tbaa !5
  %1180 = add nsw i32 %1179, 1
  store i32 %1180, ptr %5, align 4, !tbaa !5
  br label %642, !llvm.loop !65

1181:                                             ; preds = %642
  br label %1182

1182:                                             ; preds = %1181
  %1183 = load ptr, ptr %1, align 8, !tbaa !9
  %1184 = getelementptr inbounds %struct._Action, ptr %1183, i32 0, i32 19
  %1185 = load ptr, ptr %1184, align 8, !tbaa !21
  store ptr %1185, ptr %1, align 8, !tbaa !9
  br label %319, !llvm.loop !66

1186:                                             ; preds = %319
  %1187 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  store ptr %1187, ptr @glnf_goal_comp, align 8, !tbaa !9
  %1188 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 8) #7
  store ptr %1188, ptr @glnf_goal_lh, align 8, !tbaa !9
  %1189 = call noalias ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  store ptr %1189, ptr @glnf_goal_rh, align 8, !tbaa !9
  store i32 0, ptr @gnum_lnf_goal, align 4, !tbaa !5
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %1190

1190:                                             ; preds = %1436, %1186
  %1191 = load i32, ptr %5, align 4, !tbaa !5
  %1192 = load i32, ptr @gnum_numeric_goal, align 4, !tbaa !5
  %1193 = icmp slt i32 %1191, %1192
  br i1 %1193, label %1194, label %1439

1194:                                             ; preds = %1190
  %1195 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1196 = icmp eq i32 %1195, 100
  br i1 %1196, label %1197, label %1199

1197:                                             ; preds = %1194
  %1198 = call i32 (ptr, ...) @printf(ptr noundef @.str.27, i32 noundef 100)
  call void @exit(i32 noundef 1) #6
  unreachable

1199:                                             ; preds = %1194
  store i8 0, ptr %8, align 1, !tbaa !39
  %1200 = load ptr, ptr @gnumeric_goal_comp, align 8, !tbaa !9
  %1201 = load i32, ptr %5, align 4, !tbaa !5
  %1202 = sext i32 %1201 to i64
  %1203 = getelementptr inbounds i32, ptr %1200, i64 %1202
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = icmp eq i32 %1204, 3003
  br i1 %1205, label %1206, label %1211

1206:                                             ; preds = %1199
  store i8 1, ptr %8, align 1, !tbaa !39
  %1207 = load ptr, ptr @gnumeric_goal_comp, align 8, !tbaa !9
  %1208 = load i32, ptr %5, align 4, !tbaa !5
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds i32, ptr %1207, i64 %1209
  store i32 3002, ptr %1210, align 4, !tbaa !5
  br label %1211

1211:                                             ; preds = %1206, %1199
  %1212 = load ptr, ptr @gnumeric_goal_comp, align 8, !tbaa !9
  %1213 = load i32, ptr %5, align 4, !tbaa !5
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds i32, ptr %1212, i64 %1214
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = load ptr, ptr @gnumeric_goal_lh, align 8, !tbaa !9
  %1218 = load i32, ptr %5, align 4, !tbaa !5
  %1219 = sext i32 %1218 to i64
  %1220 = getelementptr inbounds ptr, ptr %1217, i64 %1219
  %1221 = load ptr, ptr %1220, align 8, !tbaa !9
  %1222 = load ptr, ptr @gnumeric_goal_rh, align 8, !tbaa !9
  %1223 = load i32, ptr %5, align 4, !tbaa !5
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds ptr, ptr %1222, i64 %1224
  %1226 = load ptr, ptr %1225, align 8, !tbaa !9
  call void @put_comp_into_normalized_locals(i32 noundef %1216, ptr noundef %1221, ptr noundef %1226)
  %1227 = load i32, ptr @lcomp, align 4, !tbaa !5
  %1228 = load ptr, ptr @glnf_goal_comp, align 8, !tbaa !9
  %1229 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds i32, ptr %1228, i64 %1230
  store i32 %1227, ptr %1231, align 4, !tbaa !5
  %1232 = call ptr @new_LnfExpNode()
  %1233 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %1234 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds ptr, ptr %1233, i64 %1235
  store ptr %1232, ptr %1236, align 8, !tbaa !9
  %1237 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %1238 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1239 = sext i32 %1238 to i64
  %1240 = getelementptr inbounds ptr, ptr %1237, i64 %1239
  %1241 = load ptr, ptr %1240, align 8, !tbaa !9
  store ptr %1241, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %1242

1242:                                             ; preds = %1309, %1211
  %1243 = load i32, ptr %6, align 4, !tbaa !5
  %1244 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %1245 = icmp slt i32 %1243, %1244
  br i1 %1245, label %1246, label %1312

1246:                                             ; preds = %1242
  %1247 = load i32, ptr %6, align 4, !tbaa !5
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1248
  %1250 = load float, ptr %1249, align 4, !tbaa !41
  %1251 = fcmp oeq float %1250, 0.000000e+00
  br i1 %1251, label %1252, label %1253

1252:                                             ; preds = %1246
  br label %1309

1253:                                             ; preds = %1246
  %1254 = load i32, ptr %6, align 4, !tbaa !5
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1255
  %1257 = load float, ptr %1256, align 4, !tbaa !41
  %1258 = fcmp ogt float %1257, 0.000000e+00
  br i1 %1258, label %1259, label %1283

1259:                                             ; preds = %1253
  %1260 = load i32, ptr %6, align 4, !tbaa !5
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %1261
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = load ptr, ptr %9, align 8, !tbaa !9
  %1265 = getelementptr inbounds %struct._LnfExpNode, ptr %1264, i32 0, i32 0
  %1266 = load ptr, ptr %9, align 8, !tbaa !9
  %1267 = getelementptr inbounds %struct._LnfExpNode, ptr %1266, i32 0, i32 2
  %1268 = load i32, ptr %1267, align 4, !tbaa !42
  %1269 = sext i32 %1268 to i64
  %1270 = getelementptr inbounds [25 x i32], ptr %1265, i64 0, i64 %1269
  store i32 %1263, ptr %1270, align 4, !tbaa !5
  %1271 = load i32, ptr %6, align 4, !tbaa !5
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1272
  %1274 = load float, ptr %1273, align 4, !tbaa !41
  %1275 = load ptr, ptr %9, align 8, !tbaa !9
  %1276 = getelementptr inbounds %struct._LnfExpNode, ptr %1275, i32 0, i32 1
  %1277 = load ptr, ptr %9, align 8, !tbaa !9
  %1278 = getelementptr inbounds %struct._LnfExpNode, ptr %1277, i32 0, i32 2
  %1279 = load i32, ptr %1278, align 4, !tbaa !42
  %1280 = add nsw i32 %1279, 1
  store i32 %1280, ptr %1278, align 4, !tbaa !42
  %1281 = sext i32 %1279 to i64
  %1282 = getelementptr inbounds [25 x float], ptr %1276, i64 0, i64 %1281
  store float %1274, ptr %1282, align 4, !tbaa !41
  br label %1308

1283:                                             ; preds = %1253
  %1284 = load i32, ptr %6, align 4, !tbaa !5
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %1285
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = load ptr, ptr %9, align 8, !tbaa !9
  %1289 = getelementptr inbounds %struct._LnfExpNode, ptr %1288, i32 0, i32 3
  %1290 = load ptr, ptr %9, align 8, !tbaa !9
  %1291 = getelementptr inbounds %struct._LnfExpNode, ptr %1290, i32 0, i32 5
  %1292 = load i32, ptr %1291, align 4, !tbaa !44
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds [25 x i32], ptr %1289, i64 0, i64 %1293
  store i32 %1287, ptr %1294, align 4, !tbaa !5
  %1295 = load i32, ptr %6, align 4, !tbaa !5
  %1296 = sext i32 %1295 to i64
  %1297 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1296
  %1298 = load float, ptr %1297, align 4, !tbaa !41
  %1299 = fmul float -1.000000e+00, %1298
  %1300 = load ptr, ptr %9, align 8, !tbaa !9
  %1301 = getelementptr inbounds %struct._LnfExpNode, ptr %1300, i32 0, i32 4
  %1302 = load ptr, ptr %9, align 8, !tbaa !9
  %1303 = getelementptr inbounds %struct._LnfExpNode, ptr %1302, i32 0, i32 5
  %1304 = load i32, ptr %1303, align 4, !tbaa !44
  %1305 = add nsw i32 %1304, 1
  store i32 %1305, ptr %1303, align 4, !tbaa !44
  %1306 = sext i32 %1304 to i64
  %1307 = getelementptr inbounds [25 x float], ptr %1301, i64 0, i64 %1306
  store float %1299, ptr %1307, align 4, !tbaa !41
  br label %1308

1308:                                             ; preds = %1283, %1259
  br label %1309

1309:                                             ; preds = %1308, %1252
  %1310 = load i32, ptr %6, align 4, !tbaa !5
  %1311 = add nsw i32 %1310, 1
  store i32 %1311, ptr %6, align 4, !tbaa !5
  br label %1242, !llvm.loop !67

1312:                                             ; preds = %1242
  %1313 = load float, ptr @lc, align 4, !tbaa !41
  %1314 = load ptr, ptr @glnf_goal_rh, align 8, !tbaa !9
  %1315 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds float, ptr %1314, i64 %1316
  store float %1313, ptr %1317, align 4, !tbaa !41
  %1318 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1320 = load i8, ptr %8, align 1, !tbaa !39
  %1321 = icmp ne i8 %1320, 0
  br i1 %1321, label %1322, label %1435

1322:                                             ; preds = %1312
  %1323 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1324 = icmp eq i32 %1323, 100
  br i1 %1324, label %1325, label %1327

1325:                                             ; preds = %1322
  %1326 = call i32 (ptr, ...) @printf(ptr noundef @.str.27, i32 noundef 100)
  call void @exit(i32 noundef 1) #6
  unreachable

1327:                                             ; preds = %1322
  %1328 = load ptr, ptr @gnumeric_goal_comp, align 8, !tbaa !9
  %1329 = load i32, ptr %5, align 4, !tbaa !5
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds i32, ptr %1328, i64 %1330
  store i32 3003, ptr %1331, align 4, !tbaa !5
  %1332 = load ptr, ptr @gnumeric_goal_lh, align 8, !tbaa !9
  %1333 = load i32, ptr %5, align 4, !tbaa !5
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds ptr, ptr %1332, i64 %1334
  %1336 = load ptr, ptr %1335, align 8, !tbaa !9
  %1337 = load ptr, ptr @gnumeric_goal_rh, align 8, !tbaa !9
  %1338 = load i32, ptr %5, align 4, !tbaa !5
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds ptr, ptr %1337, i64 %1339
  %1341 = load ptr, ptr %1340, align 8, !tbaa !9
  call void @put_comp_into_normalized_locals(i32 noundef 3004, ptr noundef %1336, ptr noundef %1341)
  %1342 = load i32, ptr @lcomp, align 4, !tbaa !5
  %1343 = load ptr, ptr @glnf_goal_comp, align 8, !tbaa !9
  %1344 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1345 = sext i32 %1344 to i64
  %1346 = getelementptr inbounds i32, ptr %1343, i64 %1345
  store i32 %1342, ptr %1346, align 4, !tbaa !5
  %1347 = call ptr @new_LnfExpNode()
  %1348 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %1349 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1350 = sext i32 %1349 to i64
  %1351 = getelementptr inbounds ptr, ptr %1348, i64 %1350
  store ptr %1347, ptr %1351, align 8, !tbaa !9
  %1352 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %1353 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1354 = sext i32 %1353 to i64
  %1355 = getelementptr inbounds ptr, ptr %1352, i64 %1354
  %1356 = load ptr, ptr %1355, align 8, !tbaa !9
  store ptr %1356, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %1357

1357:                                             ; preds = %1424, %1327
  %1358 = load i32, ptr %6, align 4, !tbaa !5
  %1359 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %1360 = icmp slt i32 %1358, %1359
  br i1 %1360, label %1361, label %1427

1361:                                             ; preds = %1357
  %1362 = load i32, ptr %6, align 4, !tbaa !5
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1363
  %1365 = load float, ptr %1364, align 4, !tbaa !41
  %1366 = fcmp oeq float %1365, 0.000000e+00
  br i1 %1366, label %1367, label %1368

1367:                                             ; preds = %1361
  br label %1424

1368:                                             ; preds = %1361
  %1369 = load i32, ptr %6, align 4, !tbaa !5
  %1370 = sext i32 %1369 to i64
  %1371 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1370
  %1372 = load float, ptr %1371, align 4, !tbaa !41
  %1373 = fcmp ogt float %1372, 0.000000e+00
  br i1 %1373, label %1374, label %1398

1374:                                             ; preds = %1368
  %1375 = load i32, ptr %6, align 4, !tbaa !5
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %1376
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = load ptr, ptr %9, align 8, !tbaa !9
  %1380 = getelementptr inbounds %struct._LnfExpNode, ptr %1379, i32 0, i32 0
  %1381 = load ptr, ptr %9, align 8, !tbaa !9
  %1382 = getelementptr inbounds %struct._LnfExpNode, ptr %1381, i32 0, i32 2
  %1383 = load i32, ptr %1382, align 4, !tbaa !42
  %1384 = sext i32 %1383 to i64
  %1385 = getelementptr inbounds [25 x i32], ptr %1380, i64 0, i64 %1384
  store i32 %1378, ptr %1385, align 4, !tbaa !5
  %1386 = load i32, ptr %6, align 4, !tbaa !5
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1387
  %1389 = load float, ptr %1388, align 4, !tbaa !41
  %1390 = load ptr, ptr %9, align 8, !tbaa !9
  %1391 = getelementptr inbounds %struct._LnfExpNode, ptr %1390, i32 0, i32 1
  %1392 = load ptr, ptr %9, align 8, !tbaa !9
  %1393 = getelementptr inbounds %struct._LnfExpNode, ptr %1392, i32 0, i32 2
  %1394 = load i32, ptr %1393, align 4, !tbaa !42
  %1395 = add nsw i32 %1394, 1
  store i32 %1395, ptr %1393, align 4, !tbaa !42
  %1396 = sext i32 %1394 to i64
  %1397 = getelementptr inbounds [25 x float], ptr %1391, i64 0, i64 %1396
  store float %1389, ptr %1397, align 4, !tbaa !41
  br label %1423

1398:                                             ; preds = %1368
  %1399 = load i32, ptr %6, align 4, !tbaa !5
  %1400 = sext i32 %1399 to i64
  %1401 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %1400
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = load ptr, ptr %9, align 8, !tbaa !9
  %1404 = getelementptr inbounds %struct._LnfExpNode, ptr %1403, i32 0, i32 3
  %1405 = load ptr, ptr %9, align 8, !tbaa !9
  %1406 = getelementptr inbounds %struct._LnfExpNode, ptr %1405, i32 0, i32 5
  %1407 = load i32, ptr %1406, align 4, !tbaa !44
  %1408 = sext i32 %1407 to i64
  %1409 = getelementptr inbounds [25 x i32], ptr %1404, i64 0, i64 %1408
  store i32 %1402, ptr %1409, align 4, !tbaa !5
  %1410 = load i32, ptr %6, align 4, !tbaa !5
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1411
  %1413 = load float, ptr %1412, align 4, !tbaa !41
  %1414 = fmul float -1.000000e+00, %1413
  %1415 = load ptr, ptr %9, align 8, !tbaa !9
  %1416 = getelementptr inbounds %struct._LnfExpNode, ptr %1415, i32 0, i32 4
  %1417 = load ptr, ptr %9, align 8, !tbaa !9
  %1418 = getelementptr inbounds %struct._LnfExpNode, ptr %1417, i32 0, i32 5
  %1419 = load i32, ptr %1418, align 4, !tbaa !44
  %1420 = add nsw i32 %1419, 1
  store i32 %1420, ptr %1418, align 4, !tbaa !44
  %1421 = sext i32 %1419 to i64
  %1422 = getelementptr inbounds [25 x float], ptr %1416, i64 0, i64 %1421
  store float %1414, ptr %1422, align 4, !tbaa !41
  br label %1423

1423:                                             ; preds = %1398, %1374
  br label %1424

1424:                                             ; preds = %1423, %1367
  %1425 = load i32, ptr %6, align 4, !tbaa !5
  %1426 = add nsw i32 %1425, 1
  store i32 %1426, ptr %6, align 4, !tbaa !5
  br label %1357, !llvm.loop !68

1427:                                             ; preds = %1357
  %1428 = load float, ptr @lc, align 4, !tbaa !41
  %1429 = load ptr, ptr @glnf_goal_rh, align 8, !tbaa !9
  %1430 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds float, ptr %1429, i64 %1431
  store float %1428, ptr %1432, align 4, !tbaa !41
  %1433 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %1434 = add nsw i32 %1433, 1
  store i32 %1434, ptr @gnum_lnf_goal, align 4, !tbaa !5
  br label %1435

1435:                                             ; preds = %1427, %1312
  br label %1436

1436:                                             ; preds = %1435
  %1437 = load i32, ptr %5, align 4, !tbaa !5
  %1438 = add nsw i32 %1437, 1
  store i32 %1438, ptr %5, align 4, !tbaa !5
  br label %1190, !llvm.loop !69

1439:                                             ; preds = %1190
  store i32 0, ptr @lnum_F, align 4, !tbaa !5
  store float 0.000000e+00, ptr @lc, align 4, !tbaa !41
  store i32 0, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 2), align 4, !tbaa !42
  store i32 0, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 5), align 4, !tbaa !44
  store float 0.000000e+00, ptr getelementptr inbounds (%struct._LnfExpNode, ptr @glnf_metric, i32 0, i32 6), align 4, !tbaa !63
  %1440 = load ptr, ptr @gmetric, align 8, !tbaa !9
  call void @collect_normalized_locals(ptr noundef %1440, i8 noundef zeroext 1)
  store ptr @glnf_metric, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %1441

1441:                                             ; preds = %1508, %1439
  %1442 = load i32, ptr %6, align 4, !tbaa !5
  %1443 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %1444 = icmp slt i32 %1442, %1443
  br i1 %1444, label %1445, label %1511

1445:                                             ; preds = %1441
  %1446 = load i32, ptr %6, align 4, !tbaa !5
  %1447 = sext i32 %1446 to i64
  %1448 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1447
  %1449 = load float, ptr %1448, align 4, !tbaa !41
  %1450 = fcmp oeq float %1449, 0.000000e+00
  br i1 %1450, label %1451, label %1452

1451:                                             ; preds = %1445
  br label %1508

1452:                                             ; preds = %1445
  %1453 = load i32, ptr %6, align 4, !tbaa !5
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1454
  %1456 = load float, ptr %1455, align 4, !tbaa !41
  %1457 = fcmp ogt float %1456, 0.000000e+00
  br i1 %1457, label %1458, label %1482

1458:                                             ; preds = %1452
  %1459 = load i32, ptr %6, align 4, !tbaa !5
  %1460 = sext i32 %1459 to i64
  %1461 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %1460
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = load ptr, ptr %9, align 8, !tbaa !9
  %1464 = getelementptr inbounds %struct._LnfExpNode, ptr %1463, i32 0, i32 0
  %1465 = load ptr, ptr %9, align 8, !tbaa !9
  %1466 = getelementptr inbounds %struct._LnfExpNode, ptr %1465, i32 0, i32 2
  %1467 = load i32, ptr %1466, align 4, !tbaa !42
  %1468 = sext i32 %1467 to i64
  %1469 = getelementptr inbounds [25 x i32], ptr %1464, i64 0, i64 %1468
  store i32 %1462, ptr %1469, align 4, !tbaa !5
  %1470 = load i32, ptr %6, align 4, !tbaa !5
  %1471 = sext i32 %1470 to i64
  %1472 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1471
  %1473 = load float, ptr %1472, align 4, !tbaa !41
  %1474 = load ptr, ptr %9, align 8, !tbaa !9
  %1475 = getelementptr inbounds %struct._LnfExpNode, ptr %1474, i32 0, i32 1
  %1476 = load ptr, ptr %9, align 8, !tbaa !9
  %1477 = getelementptr inbounds %struct._LnfExpNode, ptr %1476, i32 0, i32 2
  %1478 = load i32, ptr %1477, align 4, !tbaa !42
  %1479 = add nsw i32 %1478, 1
  store i32 %1479, ptr %1477, align 4, !tbaa !42
  %1480 = sext i32 %1478 to i64
  %1481 = getelementptr inbounds [25 x float], ptr %1475, i64 0, i64 %1480
  store float %1473, ptr %1481, align 4, !tbaa !41
  br label %1507

1482:                                             ; preds = %1452
  %1483 = load i32, ptr %6, align 4, !tbaa !5
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %1484
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = load ptr, ptr %9, align 8, !tbaa !9
  %1488 = getelementptr inbounds %struct._LnfExpNode, ptr %1487, i32 0, i32 3
  %1489 = load ptr, ptr %9, align 8, !tbaa !9
  %1490 = getelementptr inbounds %struct._LnfExpNode, ptr %1489, i32 0, i32 5
  %1491 = load i32, ptr %1490, align 4, !tbaa !44
  %1492 = sext i32 %1491 to i64
  %1493 = getelementptr inbounds [25 x i32], ptr %1488, i64 0, i64 %1492
  store i32 %1486, ptr %1493, align 4, !tbaa !5
  %1494 = load i32, ptr %6, align 4, !tbaa !5
  %1495 = sext i32 %1494 to i64
  %1496 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %1495
  %1497 = load float, ptr %1496, align 4, !tbaa !41
  %1498 = fmul float -1.000000e+00, %1497
  %1499 = load ptr, ptr %9, align 8, !tbaa !9
  %1500 = getelementptr inbounds %struct._LnfExpNode, ptr %1499, i32 0, i32 4
  %1501 = load ptr, ptr %9, align 8, !tbaa !9
  %1502 = getelementptr inbounds %struct._LnfExpNode, ptr %1501, i32 0, i32 5
  %1503 = load i32, ptr %1502, align 4, !tbaa !44
  %1504 = add nsw i32 %1503, 1
  store i32 %1504, ptr %1502, align 4, !tbaa !44
  %1505 = sext i32 %1503 to i64
  %1506 = getelementptr inbounds [25 x float], ptr %1500, i64 0, i64 %1505
  store float %1498, ptr %1506, align 4, !tbaa !41
  br label %1507

1507:                                             ; preds = %1482, %1458
  br label %1508

1508:                                             ; preds = %1507, %1451
  %1509 = load i32, ptr %6, align 4, !tbaa !5
  %1510 = add nsw i32 %1509, 1
  store i32 %1510, ptr %6, align 4, !tbaa !5
  br label %1441, !llvm.loop !70

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

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

declare void @free_ExpNode(ptr noundef) #0

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @push_multiplications_down(ptr noundef) #2

declare void @print_Action_name(ptr noundef) #0

; Function Attrs: nounwind allocsize(0,1)
declare noalias ptr @calloc(i64 noundef, i64 noundef) #4

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

declare ptr @new_LnfExpNode() #0

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

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 = { 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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind allocsize(0,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 #5 = { nounwind }
attributes #6 = { noreturn nounwind }
attributes #7 = { nounwind allocsize(0,1) }

!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 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !6, i64 200}
!14 = !{!"_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}
!15 = !{!14, !10, i64 184}
!16 = !{!14, !10, i64 192}
!17 = distinct !{!17, !12}
!18 = !{!19, !6, i64 768}
!19 = !{!"_command_line", !7, i64 0, !7, i64 256, !7, i64 512, !6, i64 768, !6, i64 772, !6, i64 776, !7, i64 780, !6, i64 784, !20, i64 788}
!20 = !{!"float", !7, i64 0}
!21 = !{!14, !10, i64 256}
!22 = distinct !{!22, !12}
!23 = !{!14, !6, i64 248}
!24 = !{!14, !10, i64 240}
!25 = !{!26, !6, i64 72}
!26 = !{!"_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, !20, i64 176}
!27 = !{!26, !10, i64 56}
!28 = !{!26, !10, i64 64}
!29 = distinct !{!29, !12}
!30 = !{!26, !7, i64 172}
!31 = !{!26, !6, i64 104}
!32 = !{!26, !10, i64 96}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = !{!14, !10, i64 208}
!36 = !{!14, !10, i64 216}
!37 = !{!14, !10, i64 224}
!38 = !{!14, !6, i64 232}
!39 = !{!7, !7, i64 0}
!40 = !{!14, !10, i64 176}
!41 = !{!20, !20, i64 0}
!42 = !{!43, !6, i64 200}
!43 = !{!"_LnfExpNode", !7, i64 0, !7, i64 100, !6, i64 200, !7, i64 204, !7, i64 304, !6, i64 404, !20, i64 408}
!44 = !{!43, !6, i64 404}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12}
!47 = distinct !{!47, !12}
!48 = !{!26, !10, i64 112}
!49 = !{!26, !10, i64 120}
!50 = !{!26, !10, i64 128}
!51 = !{!26, !6, i64 136}
!52 = !{!26, !10, i64 48}
!53 = distinct !{!53, !12}
!54 = distinct !{!54, !12}
!55 = distinct !{!55, !12}
!56 = !{!26, !10, i64 144}
!57 = !{!26, !10, i64 152}
!58 = !{!26, !10, i64 160}
!59 = !{!26, !6, i64 168}
!60 = !{!26, !10, i64 80}
!61 = !{!26, !10, i64 88}
!62 = distinct !{!62, !12}
!63 = !{!43, !20, i64 408}
!64 = distinct !{!64, !12}
!65 = distinct !{!65, !12}
!66 = distinct !{!66, !12}
!67 = distinct !{!67, !12}
!68 = distinct !{!68, !12}
!69 = distinct !{!69, !12}
!70 = distinct !{!70, !12}


; 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._command_line = type { [256 x i8], [256 x i8], [256 x i8], i32, i32, i32, i8, i32, float }
%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 }

@gcmd_line = external local_unnamed_addr global %struct._command_line, align 4
@glnf_metric = external local_unnamed_addr global %struct._LnfExpNode, align 4
@gactions = external local_unnamed_addr global ptr, align 8
@gnum_numeric_goal = external local_unnamed_addr global i32, align 4
@gnumeric_goal_lh = external local_unnamed_addr global ptr, align 8
@gnumeric_goal_rh = external local_unnamed_addr global ptr, align 8
@gmetric = external global ptr, align 8
@gnum_lnf_goal = external local_unnamed_addr global i32, align 4
@glnf_goal_comp = external local_unnamed_addr global ptr, align 8
@glnf_goal_lh = external local_unnamed_addr global ptr, align 8
@glnf_goal_rh = external local_unnamed_addr global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [19 x i8], align 1
@gnum_actions = external local_unnamed_addr global i32, align 4
@gtrash_actions = external local_unnamed_addr global ptr, align 8
@.str.23 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [41 x i8], align 1
@lcomp = external dso_local local_unnamed_addr global i32, align 4
@lnum_F = external dso_local local_unnamed_addr global i32, align 4
@lC = external dso_local local_unnamed_addr global [25 x float], align 16
@lF = external dso_local local_unnamed_addr global [25 x i32], align 16
@lc = external dso_local local_unnamed_addr global float, align 4
@.str.28 = external hidden unnamed_addr constant [40 x i8], align 1
@gnumeric_goal_comp = external local_unnamed_addr global ptr, align 8

; 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 @normalize_expressions() local_unnamed_addr #2 {
  %1 = load i32, ptr @gnum_numeric_goal, align 4, !tbaa !5
  %2 = icmp sgt i32 %1, 0
  br i1 %2, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %0, %16
  %indvars.iv = phi i64 [ %indvars.iv.next, %16 ], [ 0, %0 ]
  %3 = load ptr, ptr @gnumeric_goal_lh, align 8, !tbaa !9
  %4 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv
  %5 = tail call zeroext i8 @translate_divisions(ptr noundef %4)
  %.not393 = icmp eq i8 %5, 0
  br i1 %.not393, label %6, label %8

6:                                                ; preds = %.lr.ph
  %7 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.20)
  tail call void @exit(i32 noundef 1) #5
  unreachable

8:                                                ; preds = %.lr.ph
  %9 = load ptr, ptr @gnumeric_goal_lh, align 8, !tbaa !9
  %10 = getelementptr inbounds ptr, ptr %9, i64 %indvars.iv
  tail call void @push_multiplications_down(ptr noundef %10)
  %11 = load ptr, ptr @gnumeric_goal_rh, align 8, !tbaa !9
  %12 = getelementptr inbounds ptr, ptr %11, i64 %indvars.iv
  %13 = tail call zeroext i8 @translate_divisions(ptr noundef %12)
  %.not394 = icmp eq i8 %13, 0
  br i1 %.not394, label %14, label %16

14:                                               ; preds = %8
  %15 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.20)
  tail call void @exit(i32 noundef 1) #5
  unreachable

16:                                               ; preds = %8
  %17 = load ptr, ptr @gnumeric_goal_rh, align 8, !tbaa !9
  %18 = getelementptr inbounds ptr, ptr %17, i64 %indvars.iv
  tail call void @push_multiplications_down(ptr noundef %18)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %19 = load i32, ptr @gnum_numeric_goal, align 4, !tbaa !5
  %20 = sext i32 %19 to i64
  %21 = icmp slt i64 %indvars.iv.next, %20
  br i1 %21, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %16, %0
  %22 = load ptr, ptr @gactions, align 8, !tbaa !9
  %.not431434 = icmp eq ptr %22, null
  br i1 %.not431434, label %.outer._crit_edge, label %.preheader397.lr.ph

.preheader397.lr.ph:                              ; preds = %._crit_edge, %.outer
  %.0357.ph436 = phi ptr [ %.0358432, %.outer ], [ null, %._crit_edge ]
  %.0358.ph435 = phi ptr [ %133, %.outer ], [ %22, %._crit_edge ]
  %.not390 = icmp eq ptr %.0357.ph436, null
  %23 = getelementptr inbounds i8, ptr %.0357.ph436, i64 256
  br label %.preheader397

.preheader397:                                    ; preds = %.preheader397.lr.ph, %.backedge
  %.0358432 = phi ptr [ %.0358.ph435, %.preheader397.lr.ph ], [ %.0358.be, %.backedge ]
  %24 = getelementptr inbounds i8, ptr %.0358432, i64 184
  %25 = getelementptr inbounds i8, ptr %.0358432, i64 200
  %26 = load i32, ptr %25, align 8, !tbaa !13
  %27 = icmp sgt i32 %26, 0
  br i1 %27, label %.lr.ph404, label %._crit_edge405

.lr.ph404:                                        ; preds = %.preheader397
  %28 = getelementptr inbounds i8, ptr %.0358432, i64 192
  br label %29

29:                                               ; preds = %.lr.ph404, %39
  %indvars.iv495 = phi i64 [ 0, %.lr.ph404 ], [ %indvars.iv.next496, %39 ]
  %30 = load ptr, ptr %24, align 8, !tbaa !15
  %31 = getelementptr inbounds ptr, ptr %30, i64 %indvars.iv495
  %32 = tail call zeroext i8 @translate_divisions(ptr noundef %31)
  %.not382 = icmp eq i8 %32, 0
  br i1 %.not382, label %._crit_edge405.loopexit, label %33

33:                                               ; preds = %29
  %34 = load ptr, ptr %24, align 8, !tbaa !15
  %35 = getelementptr inbounds ptr, ptr %34, i64 %indvars.iv495
  tail call void @push_multiplications_down(ptr noundef %35)
  %36 = load ptr, ptr %28, align 8, !tbaa !16
  %37 = getelementptr inbounds ptr, ptr %36, i64 %indvars.iv495
  %38 = tail call zeroext i8 @translate_divisions(ptr noundef %37)
  %.not383 = icmp eq i8 %38, 0
  br i1 %.not383, label %._crit_edge405.loopexit, label %39

39:                                               ; preds = %33
  %40 = load ptr, ptr %28, align 8, !tbaa !16
  %41 = getelementptr inbounds ptr, ptr %40, i64 %indvars.iv495
  tail call void @push_multiplications_down(ptr noundef %41)
  %indvars.iv.next496 = add nuw nsw i64 %indvars.iv495, 1
  %42 = load i32, ptr %25, align 8, !tbaa !13
  %43 = sext i32 %42 to i64
  %44 = icmp slt i64 %indvars.iv.next496, %43
  br i1 %44, label %29, label %._crit_edge405.loopexit, !llvm.loop !17

._crit_edge405.loopexit:                          ; preds = %33, %29, %39
  %.1352.lcssa.ph.in = phi i64 [ %indvars.iv.next496, %39 ], [ %indvars.iv495, %29 ], [ %indvars.iv495, %33 ]
  %.1352.lcssa.ph = trunc i64 %.1352.lcssa.ph.in to i32
  %.pre = load i32, ptr %25, align 8, !tbaa !13
  br label %._crit_edge405

._crit_edge405:                                   ; preds = %._crit_edge405.loopexit, %.preheader397
  %45 = phi i32 [ %26, %.preheader397 ], [ %.pre, %._crit_edge405.loopexit ]
  %.1352.lcssa = phi i32 [ 0, %.preheader397 ], [ %.1352.lcssa.ph, %._crit_edge405.loopexit ]
  %46 = icmp slt i32 %.1352.lcssa, %45
  br i1 %46, label %51, label %.preheader396

.preheader396:                                    ; preds = %._crit_edge405
  %47 = getelementptr inbounds i8, ptr %.0358432, i64 248
  %48 = load i32, ptr %47, align 8, !tbaa !18
  %49 = icmp sgt i32 %48, 0
  br i1 %49, label %.lr.ph426, label %._crit_edge427

.lr.ph426:                                        ; preds = %.preheader396
  %50 = getelementptr inbounds i8, ptr %.0358432, i64 240
  br label %64

51:                                               ; preds = %._crit_edge405
  %52 = load i32, ptr getelementptr inbounds (i8, ptr @gcmd_line, i64 768), align 4, !tbaa !19
  %.not391 = icmp eq i32 %52, 0
  br i1 %.not391, label %56, label %53

53:                                               ; preds = %51
  %54 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.21)
  tail call void @print_Action_name(ptr noundef nonnull %.0358432) #6
  %55 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.22)
  br label %56

56:                                               ; preds = %53, %51
  %57 = load i32, ptr @gnum_actions, align 4, !tbaa !5
  %58 = add nsw i32 %57, -1
  store i32 %58, ptr @gnum_actions, align 4, !tbaa !5
  %59 = getelementptr inbounds i8, ptr %.0358432, i64 256
  %60 = load ptr, ptr %59, align 8, !tbaa !22
  br i1 %.not390, label %62, label %61

61:                                               ; preds = %56
  store ptr %60, ptr %23, align 8, !tbaa !22
  br label %.backedge

62:                                               ; preds = %56
  store ptr %60, ptr @gactions, align 8, !tbaa !9
  br label %.backedge

.backedge:                                        ; preds = %130, %131, %61, %62
  %.sink593 = phi ptr [ %128, %130 ], [ %128, %131 ], [ %59, %61 ], [ %59, %62 ]
  %.0358.be = phi ptr [ %129, %130 ], [ %129, %131 ], [ %60, %61 ], [ %60, %62 ]
  %63 = load ptr, ptr @gtrash_actions, align 8, !tbaa !9
  store ptr %63, ptr %.sink593, align 8, !tbaa !22
  store ptr %.0358432, ptr @gtrash_actions, align 8, !tbaa !9
  %.not = icmp eq ptr %.0358.be, null
  br i1 %.not, label %.outer._crit_edge, label %.preheader397, !llvm.loop !23

64:                                               ; preds = %.lr.ph426, %114
  %indvars.iv506 = phi i64 [ 0, %.lr.ph426 ], [ %indvars.iv.next507, %114 ]
  %65 = load ptr, ptr %50, align 8, !tbaa !24
  %66 = getelementptr inbounds %struct._ActionEffect, ptr %65, i64 %indvars.iv506
  %67 = getelementptr inbounds i8, ptr %66, i64 56
  %68 = getelementptr inbounds i8, ptr %66, i64 72
  %69 = load i32, ptr %68, align 8, !tbaa !25
  %70 = icmp sgt i32 %69, 0
  br i1 %70, label %.lr.ph412, label %._crit_edge413

.lr.ph412:                                        ; preds = %64
  %71 = getelementptr inbounds i8, ptr %66, i64 64
  br label %72

72:                                               ; preds = %.lr.ph412, %82
  %indvars.iv498 = phi i64 [ 0, %.lr.ph412 ], [ %indvars.iv.next499, %82 ]
  %73 = load ptr, ptr %67, align 8, !tbaa !27
  %74 = getelementptr inbounds ptr, ptr %73, i64 %indvars.iv498
  %75 = tail call zeroext i8 @translate_divisions(ptr noundef %74)
  %.not384 = icmp eq i8 %75, 0
  br i1 %.not384, label %._crit_edge413.loopexit, label %76

76:                                               ; preds = %72
  %77 = load ptr, ptr %67, align 8, !tbaa !27
  %78 = getelementptr inbounds ptr, ptr %77, i64 %indvars.iv498
  tail call void @push_multiplications_down(ptr noundef %78)
  %79 = load ptr, ptr %71, align 8, !tbaa !28
  %80 = getelementptr inbounds ptr, ptr %79, i64 %indvars.iv498
  %81 = tail call zeroext i8 @translate_divisions(ptr noundef %80)
  %.not385 = icmp eq i8 %81, 0
  br i1 %.not385, label %._crit_edge413.loopexit, label %82

82:                                               ; preds = %76
  %83 = load ptr, ptr %71, align 8, !tbaa !28
  %84 = getelementptr inbounds ptr, ptr %83, i64 %indvars.iv498
  tail call void @push_multiplications_down(ptr noundef %84)
  %indvars.iv.next499 = add nuw nsw i64 %indvars.iv498, 1
  %85 = load i32, ptr %68, align 8, !tbaa !25
  %86 = sext i32 %85 to i64
  %87 = icmp slt i64 %indvars.iv.next499, %86
  br i1 %87, label %72, label %._crit_edge413.loopexit, !llvm.loop !29

._crit_edge413.loopexit:                          ; preds = %76, %72, %82
  %.0348.lcssa.ph.in = phi i64 [ %indvars.iv.next499, %82 ], [ %indvars.iv498, %72 ], [ %indvars.iv498, %76 ]
  %.0348.lcssa.ph = trunc i64 %.0348.lcssa.ph.in to i32
  %.pre562 = load i32, ptr %68, align 8, !tbaa !25
  br label %._crit_edge413

._crit_edge413:                                   ; preds = %._crit_edge413.loopexit, %64
  %88 = phi i32 [ %69, %64 ], [ %.pre562, %._crit_edge413.loopexit ]
  %.0348.lcssa = phi i32 [ 0, %64 ], [ %.0348.lcssa.ph, %._crit_edge413.loopexit ]
  %89 = icmp slt i32 %.0348.lcssa, %88
  br i1 %89, label %._crit_edge413.._crit_edge427.loopexit_crit_edge, label %90

._crit_edge413.._crit_edge427.loopexit_crit_edge: ; preds = %._crit_edge413
  %.pre564.pre = load i32, ptr %47, align 8, !tbaa !18
  br label %._crit_edge427.loopexit

90:                                               ; preds = %._crit_edge413
  %91 = getelementptr inbounds i8, ptr %66, i64 172
  %92 = load i8, ptr %91, align 4, !tbaa !30
  %.not386 = icmp eq i8 %92, 0
  br i1 %.not386, label %.preheader395, label %114

.preheader395:                                    ; preds = %90
  %93 = getelementptr inbounds i8, ptr %66, i64 96
  %94 = getelementptr inbounds i8, ptr %66, i64 104
  %95 = load i32, ptr %94, align 8, !tbaa !31
  %96 = icmp sgt i32 %95, 0
  br i1 %96, label %.lr.ph420, label %._crit_edge421

.lr.ph420:                                        ; preds = %.preheader395, %100
  %indvars.iv502 = phi i64 [ %indvars.iv.next503, %100 ], [ 0, %.preheader395 ]
  %97 = load ptr, ptr %93, align 8, !tbaa !32
  %98 = getelementptr inbounds ptr, ptr %97, i64 %indvars.iv502
  %99 = tail call zeroext i8 @translate_divisions(ptr noundef %98)
  %.not387 = icmp eq i8 %99, 0
  br i1 %.not387, label %.lr.ph420.._crit_edge421.loopexit_crit_edge, label %100

.lr.ph420.._crit_edge421.loopexit_crit_edge:      ; preds = %.lr.ph420
  %.pre563.pre = load i32, ptr %94, align 8, !tbaa !31
  br label %._crit_edge421.loopexit

100:                                              ; preds = %.lr.ph420
  %101 = load ptr, ptr %93, align 8, !tbaa !32
  %102 = getelementptr inbounds ptr, ptr %101, i64 %indvars.iv502
  tail call void @push_multiplications_down(ptr noundef %102)
  %indvars.iv.next503 = add nuw nsw i64 %indvars.iv502, 1
  %103 = load i32, ptr %94, align 8, !tbaa !31
  %104 = sext i32 %103 to i64
  %105 = icmp slt i64 %indvars.iv.next503, %104
  br i1 %105, label %.lr.ph420, label %._crit_edge421.loopexit, !llvm.loop !33

._crit_edge421.loopexit:                          ; preds = %100, %.lr.ph420.._crit_edge421.loopexit_crit_edge
  %.pre563 = phi i32 [ %.pre563.pre, %.lr.ph420.._crit_edge421.loopexit_crit_edge ], [ %103, %100 ]
  %.1349.lcssa.ph.in = phi i64 [ %indvars.iv502, %.lr.ph420.._crit_edge421.loopexit_crit_edge ], [ %indvars.iv.next503, %100 ]
  %.1349.lcssa.ph = trunc i64 %.1349.lcssa.ph.in to i32
  br label %._crit_edge421

._crit_edge421:                                   ; preds = %._crit_edge421.loopexit, %.preheader395
  %106 = phi i32 [ %95, %.preheader395 ], [ %.pre563, %._crit_edge421.loopexit ]
  %.1349.lcssa = phi i32 [ 0, %.preheader395 ], [ %.1349.lcssa.ph, %._crit_edge421.loopexit ]
  %107 = icmp slt i32 %.1349.lcssa, %106
  br i1 %107, label %108, label %114

108:                                              ; preds = %._crit_edge421
  %109 = load i32, ptr getelementptr inbounds (i8, ptr @gcmd_line, i64 768), align 4, !tbaa !19
  %.not388 = icmp eq i32 %109, 0
  br i1 %.not388, label %113, label %110

110:                                              ; preds = %108
  %111 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.23)
  tail call void @print_Action_name(ptr noundef nonnull %.0358432) #6
  %112 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.24)
  br label %113

113:                                              ; preds = %110, %108
  store i8 1, ptr %91, align 4, !tbaa !30
  br label %114

114:                                              ; preds = %._crit_edge421, %113, %90
  %indvars.iv.next507 = add nuw nsw i64 %indvars.iv506, 1
  %115 = load i32, ptr %47, align 8, !tbaa !18
  %116 = sext i32 %115 to i64
  %117 = icmp slt i64 %indvars.iv.next507, %116
  br i1 %117, label %64, label %._crit_edge427.loopexit, !llvm.loop !34

._crit_edge427.loopexit:                          ; preds = %114, %._crit_edge413.._crit_edge427.loopexit_crit_edge
  %.pre564 = phi i32 [ %.pre564.pre, %._crit_edge413.._crit_edge427.loopexit_crit_edge ], [ %115, %114 ]
  %.2353.lcssa.ph.in = phi i64 [ %indvars.iv506, %._crit_edge413.._crit_edge427.loopexit_crit_edge ], [ %indvars.iv.next507, %114 ]
  %.2353.lcssa.ph = trunc i64 %.2353.lcssa.ph.in to i32
  br label %._crit_edge427

._crit_edge427:                                   ; preds = %._crit_edge427.loopexit, %.preheader396
  %118 = phi i32 [ %48, %.preheader396 ], [ %.pre564, %._crit_edge427.loopexit ]
  %.2353.lcssa = phi i32 [ 0, %.preheader396 ], [ %.2353.lcssa.ph, %._crit_edge427.loopexit ]
  %119 = icmp slt i32 %.2353.lcssa, %118
  br i1 %119, label %120, label %.outer

120:                                              ; preds = %._crit_edge427
  %121 = load i32, ptr getelementptr inbounds (i8, ptr @gcmd_line, i64 768), align 4, !tbaa !19
  %.not389 = icmp eq i32 %121, 0
  br i1 %.not389, label %125, label %122

122:                                              ; preds = %120
  %123 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.25)
  tail call void @print_Action_name(ptr noundef nonnull %.0358432) #6
  %124 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.22)
  br label %125

125:                                              ; preds = %122, %120
  %126 = load i32, ptr @gnum_actions, align 4, !tbaa !5
  %127 = add nsw i32 %126, -1
  store i32 %127, ptr @gnum_actions, align 4, !tbaa !5
  %128 = getelementptr inbounds i8, ptr %.0358432, i64 256
  %129 = load ptr, ptr %128, align 8, !tbaa !22
  br i1 %.not390, label %131, label %130

130:                                              ; preds = %125
  store ptr %129, ptr %23, align 8, !tbaa !22
  br label %.backedge

131:                                              ; preds = %125
  store ptr %129, ptr @gactions, align 8, !tbaa !9
  br label %.backedge

.outer:                                           ; preds = %._crit_edge427
  %132 = getelementptr inbounds i8, ptr %.0358432, i64 256
  %133 = load ptr, ptr %132, align 8, !tbaa !22
  %.not431 = icmp eq ptr %133, null
  br i1 %.not431, label %.outer._crit_edge, label %.preheader397.lr.ph, !llvm.loop !23

.outer._crit_edge:                                ; preds = %.outer, %.backedge, %._crit_edge
  %134 = load ptr, ptr @gmetric, align 8, !tbaa !9
  %.not371 = icmp eq ptr %134, null
  br i1 %.not371, label %144, label %135

135:                                              ; preds = %.outer._crit_edge
  %136 = tail call zeroext i8 @translate_divisions(ptr noundef nonnull @gmetric)
  %.not372 = icmp eq i8 %136, 0
  br i1 %.not372, label %137, label %143

137:                                              ; preds = %135
  %138 = load i32, ptr getelementptr inbounds (i8, ptr @gcmd_line, i64 768), align 4, !tbaa !19
  %.not373 = icmp eq i32 %138, 0
  br i1 %.not373, label %141, label %139

139:                                              ; preds = %137
  %140 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.26)
  br label %141

141:                                              ; preds = %139, %137
  %142 = load ptr, ptr @gmetric, align 8, !tbaa !9
  tail call void @free_ExpNode(ptr noundef %142) #6
  store ptr null, ptr @gmetric, align 8, !tbaa !9
  br label %143

143:                                              ; preds = %141, %135
  tail call void @push_multiplications_down(ptr noundef nonnull @gmetric)
  br label %144

144:                                              ; preds = %143, %.outer._crit_edge
  %.3361470 = load ptr, ptr @gactions, align 8, !tbaa !9
  %.not374471 = icmp eq ptr %.3361470, null
  br i1 %.not374471, label %._crit_edge475, label %.lr.ph474

.lr.ph474:                                        ; preds = %144, %._crit_edge469
  %.3361472 = phi ptr [ %.3361, %._crit_edge469 ], [ %.3361470, %144 ]
  %145 = tail call noalias dereferenceable_or_null(400) ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  %146 = getelementptr inbounds i8, ptr %.3361472, i64 208
  store ptr %145, ptr %146, align 8, !tbaa !35
  %147 = tail call noalias dereferenceable_or_null(800) ptr @calloc(i64 noundef 100, i64 noundef 8) #7
  %148 = getelementptr inbounds i8, ptr %.3361472, i64 216
  store ptr %147, ptr %148, align 8, !tbaa !36
  %149 = tail call noalias dereferenceable_or_null(400) ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  %150 = getelementptr inbounds i8, ptr %.3361472, i64 224
  store ptr %149, ptr %150, align 8, !tbaa !37
  %151 = getelementptr inbounds i8, ptr %.3361472, i64 232
  store i32 0, ptr %151, align 8, !tbaa !38
  %152 = getelementptr inbounds i8, ptr %.3361472, i64 200
  %153 = load i32, ptr %152, align 8, !tbaa !13
  %154 = icmp sgt i32 %153, 0
  br i1 %154, label %.lr.ph447, label %.preheader

.lr.ph447:                                        ; preds = %.lr.ph474
  %155 = getelementptr inbounds i8, ptr %.3361472, i64 176
  %156 = getelementptr inbounds i8, ptr %.3361472, i64 184
  %157 = getelementptr inbounds i8, ptr %.3361472, i64 192
  br label %162

.preheader:                                       ; preds = %293, %.lr.ph474
  %158 = getelementptr inbounds i8, ptr %.3361472, i64 248
  %159 = load i32, ptr %158, align 8, !tbaa !18
  %160 = icmp sgt i32 %159, 0
  br i1 %160, label %.lr.ph468, label %._crit_edge469

.lr.ph468:                                        ; preds = %.preheader
  %161 = getelementptr inbounds i8, ptr %.3361472, i64 240
  br label %298

162:                                              ; preds = %.lr.ph447, %293
  %163 = phi i32 [ 0, %.lr.ph447 ], [ %294, %293 ]
  %indvars.iv518 = phi i64 [ 0, %.lr.ph447 ], [ %indvars.iv.next519, %293 ]
  %164 = icmp eq i32 %163, 100
  br i1 %164, label %165, label %167

165:                                              ; preds = %162
  %166 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef 100)
  tail call void @exit(i32 noundef 1) #5
  unreachable

167:                                              ; preds = %162
  %168 = load ptr, ptr %155, align 8, !tbaa !39
  %169 = getelementptr inbounds i32, ptr %168, i64 %indvars.iv518
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %.not381 = icmp eq i32 %170, 3003
  br i1 %.not381, label %171, label %172

171:                                              ; preds = %167
  store i32 3002, ptr %169, align 4, !tbaa !5
  br label %172

172:                                              ; preds = %171, %167
  %173 = phi i32 [ 3002, %171 ], [ %170, %167 ]
  %174 = load ptr, ptr %156, align 8, !tbaa !15
  %175 = getelementptr inbounds ptr, ptr %174, i64 %indvars.iv518
  %176 = load ptr, ptr %175, align 8, !tbaa !9
  %177 = load ptr, ptr %157, align 8, !tbaa !16
  %178 = getelementptr inbounds ptr, ptr %177, i64 %indvars.iv518
  %179 = load ptr, ptr %178, align 8, !tbaa !9
  tail call void @put_comp_into_normalized_locals(i32 noundef %173, ptr noundef %176, ptr noundef %179)
  %180 = load i32, ptr @lcomp, align 4, !tbaa !5
  %181 = load ptr, ptr %146, align 8, !tbaa !35
  %182 = load i32, ptr %151, align 8, !tbaa !38
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds i32, ptr %181, i64 %183
  store i32 %180, ptr %184, align 4, !tbaa !5
  %185 = tail call ptr @new_LnfExpNode() #6
  %186 = load ptr, ptr %148, align 8, !tbaa !36
  %187 = load i32, ptr %151, align 8, !tbaa !38
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds ptr, ptr %186, i64 %188
  store ptr %185, ptr %189, align 8, !tbaa !9
  %190 = load ptr, ptr %148, align 8, !tbaa !36
  %191 = getelementptr inbounds ptr, ptr %190, i64 %188
  %192 = load ptr, ptr %191, align 8, !tbaa !9
  %193 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %194 = icmp sgt i32 %193, 0
  br i1 %194, label %.lr.ph439, label %._crit_edge440

.lr.ph439:                                        ; preds = %172
  %195 = getelementptr inbounds i8, ptr %192, i64 204
  %196 = getelementptr inbounds i8, ptr %192, i64 404
  %197 = getelementptr inbounds i8, ptr %192, i64 200
  br label %198

198:                                              ; preds = %.lr.ph439, %221
  %indvars.iv510 = phi i64 [ 0, %.lr.ph439 ], [ %indvars.iv.next511, %221 ]
  %199 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %indvars.iv510
  %200 = load float, ptr %199, align 4, !tbaa !40
  %201 = fcmp oeq float %200, 0.000000e+00
  br i1 %201, label %221, label %202

202:                                              ; preds = %198
  %203 = fcmp ogt float %200, 0.000000e+00
  %204 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %indvars.iv510
  %205 = load i32, ptr %204, align 4, !tbaa !5
  br i1 %203, label %206, label %210

206:                                              ; preds = %202
  %207 = load i32, ptr %197, align 4, !tbaa !41
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds [25 x i32], ptr %192, i64 0, i64 %208
  store i32 %205, ptr %209, align 4, !tbaa !5
  br label %.sink.split

210:                                              ; preds = %202
  %211 = load i32, ptr %196, align 4, !tbaa !43
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds [25 x i32], ptr %195, i64 0, i64 %212
  store i32 %205, ptr %213, align 4, !tbaa !5
  %214 = fneg float %200
  br label %.sink.split

.sink.split:                                      ; preds = %210, %206
  %.sink601 = phi ptr [ %197, %206 ], [ %196, %210 ]
  %215 = phi i64 [ 100, %206 ], [ 304, %210 ]
  %.sink = phi float [ %200, %206 ], [ %214, %210 ]
  %216 = getelementptr inbounds i8, ptr %192, i64 %215
  %217 = load i32, ptr %.sink601, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr %.sink601, align 4, !tbaa !5
  %219 = sext i32 %217 to i64
  %220 = getelementptr inbounds [25 x float], ptr %216, i64 0, i64 %219
  store float %.sink, ptr %220, align 4, !tbaa !40
  br label %221

221:                                              ; preds = %.sink.split, %198
  %indvars.iv.next511 = add nuw nsw i64 %indvars.iv510, 1
  %222 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %223 = sext i32 %222 to i64
  %224 = icmp slt i64 %indvars.iv.next511, %223
  br i1 %224, label %198, label %._crit_edge440.loopexit, !llvm.loop !44

._crit_edge440.loopexit:                          ; preds = %221
  %.pre565 = load i32, ptr %151, align 8, !tbaa !38
  %.pre579 = sext i32 %.pre565 to i64
  br label %._crit_edge440

._crit_edge440:                                   ; preds = %._crit_edge440.loopexit, %172
  %.pre-phi580 = phi i64 [ %.pre579, %._crit_edge440.loopexit ], [ %188, %172 ]
  %225 = phi i32 [ %.pre565, %._crit_edge440.loopexit ], [ %187, %172 ]
  %226 = load float, ptr @lc, align 4, !tbaa !40
  %227 = load ptr, ptr %150, align 8, !tbaa !37
  %228 = getelementptr inbounds float, ptr %227, i64 %.pre-phi580
  store float %226, ptr %228, align 4, !tbaa !40
  %229 = add nsw i32 %225, 1
  store i32 %229, ptr %151, align 8, !tbaa !38
  br i1 %.not381, label %230, label %293

230:                                              ; preds = %._crit_edge440
  %231 = icmp eq i32 %229, 100
  br i1 %231, label %232, label %234

232:                                              ; preds = %230
  %233 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef 100)
  tail call void @exit(i32 noundef 1) #5
  unreachable

234:                                              ; preds = %230
  %235 = load ptr, ptr %155, align 8, !tbaa !39
  %236 = getelementptr inbounds i32, ptr %235, i64 %indvars.iv518
  store i32 3003, ptr %236, align 4, !tbaa !5
  %237 = load ptr, ptr %156, align 8, !tbaa !15
  %238 = getelementptr inbounds ptr, ptr %237, i64 %indvars.iv518
  %239 = load ptr, ptr %238, align 8, !tbaa !9
  %240 = load ptr, ptr %157, align 8, !tbaa !16
  %241 = getelementptr inbounds ptr, ptr %240, i64 %indvars.iv518
  %242 = load ptr, ptr %241, align 8, !tbaa !9
  tail call void @put_comp_into_normalized_locals(i32 noundef 3004, ptr noundef %239, ptr noundef %242)
  %243 = load i32, ptr @lcomp, align 4, !tbaa !5
  %244 = load ptr, ptr %146, align 8, !tbaa !35
  %245 = load i32, ptr %151, align 8, !tbaa !38
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds i32, ptr %244, i64 %246
  store i32 %243, ptr %247, align 4, !tbaa !5
  %248 = tail call ptr @new_LnfExpNode() #6
  %249 = load ptr, ptr %148, align 8, !tbaa !36
  %250 = load i32, ptr %151, align 8, !tbaa !38
  %251 = sext i32 %250 to i64
  %252 = getelementptr inbounds ptr, ptr %249, i64 %251
  store ptr %248, ptr %252, align 8, !tbaa !9
  %253 = load ptr, ptr %148, align 8, !tbaa !36
  %254 = getelementptr inbounds ptr, ptr %253, i64 %251
  %255 = load ptr, ptr %254, align 8, !tbaa !9
  %256 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %257 = icmp sgt i32 %256, 0
  br i1 %257, label %.lr.ph443, label %._crit_edge444

.lr.ph443:                                        ; preds = %234
  %258 = getelementptr inbounds i8, ptr %255, i64 204
  %259 = getelementptr inbounds i8, ptr %255, i64 404
  %260 = getelementptr inbounds i8, ptr %255, i64 200
  br label %261

261:                                              ; preds = %.lr.ph443, %284
  %indvars.iv514 = phi i64 [ 0, %.lr.ph443 ], [ %indvars.iv.next515, %284 ]
  %262 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %indvars.iv514
  %263 = load float, ptr %262, align 4, !tbaa !40
  %264 = fcmp oeq float %263, 0.000000e+00
  br i1 %264, label %284, label %265

265:                                              ; preds = %261
  %266 = fcmp ogt float %263, 0.000000e+00
  %267 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %indvars.iv514
  %268 = load i32, ptr %267, align 4, !tbaa !5
  br i1 %266, label %269, label %273

269:                                              ; preds = %265
  %270 = load i32, ptr %260, align 4, !tbaa !41
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds [25 x i32], ptr %255, i64 0, i64 %271
  store i32 %268, ptr %272, align 4, !tbaa !5
  br label %.sink.split602

273:                                              ; preds = %265
  %274 = load i32, ptr %259, align 4, !tbaa !43
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds [25 x i32], ptr %258, i64 0, i64 %275
  store i32 %268, ptr %276, align 4, !tbaa !5
  %277 = fneg float %263
  br label %.sink.split602

.sink.split602:                                   ; preds = %273, %269
  %.sink611 = phi ptr [ %260, %269 ], [ %259, %273 ]
  %278 = phi i64 [ 100, %269 ], [ 304, %273 ]
  %.sink603 = phi float [ %263, %269 ], [ %277, %273 ]
  %279 = getelementptr inbounds i8, ptr %255, i64 %278
  %280 = load i32, ptr %.sink611, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  store i32 %281, ptr %.sink611, align 4, !tbaa !5
  %282 = sext i32 %280 to i64
  %283 = getelementptr inbounds [25 x float], ptr %279, i64 0, i64 %282
  store float %.sink603, ptr %283, align 4, !tbaa !40
  br label %284

284:                                              ; preds = %.sink.split602, %261
  %indvars.iv.next515 = add nuw nsw i64 %indvars.iv514, 1
  %285 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %286 = sext i32 %285 to i64
  %287 = icmp slt i64 %indvars.iv.next515, %286
  br i1 %287, label %261, label %._crit_edge444.loopexit, !llvm.loop !45

._crit_edge444.loopexit:                          ; preds = %284
  %.pre566 = load i32, ptr %151, align 8, !tbaa !38
  %.pre581 = sext i32 %.pre566 to i64
  br label %._crit_edge444

._crit_edge444:                                   ; preds = %._crit_edge444.loopexit, %234
  %.pre-phi582 = phi i64 [ %.pre581, %._crit_edge444.loopexit ], [ %251, %234 ]
  %288 = phi i32 [ %.pre566, %._crit_edge444.loopexit ], [ %250, %234 ]
  %289 = load float, ptr @lc, align 4, !tbaa !40
  %290 = load ptr, ptr %150, align 8, !tbaa !37
  %291 = getelementptr inbounds float, ptr %290, i64 %.pre-phi582
  store float %289, ptr %291, align 4, !tbaa !40
  %292 = add nsw i32 %288, 1
  store i32 %292, ptr %151, align 8, !tbaa !38
  br label %293

293:                                              ; preds = %._crit_edge440, %._crit_edge444
  %294 = phi i32 [ %229, %._crit_edge440 ], [ %292, %._crit_edge444 ]
  %indvars.iv.next519 = add nuw nsw i64 %indvars.iv518, 1
  %295 = load i32, ptr %152, align 8, !tbaa !13
  %296 = sext i32 %295 to i64
  %297 = icmp slt i64 %indvars.iv.next519, %296
  br i1 %297, label %162, label %.preheader, !llvm.loop !46

298:                                              ; preds = %.lr.ph468, %.loopexit
  %indvars.iv542 = phi i64 [ 0, %.lr.ph468 ], [ %indvars.iv.next543, %.loopexit ]
  %299 = load ptr, ptr %161, align 8, !tbaa !24
  %300 = getelementptr inbounds %struct._ActionEffect, ptr %299, i64 %indvars.iv542
  %301 = tail call noalias dereferenceable_or_null(400) ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  %302 = getelementptr inbounds i8, ptr %300, i64 112
  store ptr %301, ptr %302, align 8, !tbaa !47
  %303 = tail call noalias dereferenceable_or_null(800) ptr @calloc(i64 noundef 100, i64 noundef 8) #7
  %304 = getelementptr inbounds i8, ptr %300, i64 120
  store ptr %303, ptr %304, align 8, !tbaa !48
  %305 = tail call noalias dereferenceable_or_null(400) ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  %306 = getelementptr inbounds i8, ptr %300, i64 128
  store ptr %305, ptr %306, align 8, !tbaa !49
  %307 = getelementptr inbounds i8, ptr %300, i64 136
  store i32 0, ptr %307, align 8, !tbaa !50
  %308 = getelementptr inbounds i8, ptr %300, i64 72
  %309 = load i32, ptr %308, align 8, !tbaa !25
  %310 = icmp sgt i32 %309, 0
  br i1 %310, label %.lr.ph458, label %._crit_edge459

.lr.ph458:                                        ; preds = %298
  %311 = getelementptr inbounds i8, ptr %300, i64 48
  %312 = getelementptr inbounds i8, ptr %300, i64 56
  %313 = getelementptr inbounds i8, ptr %300, i64 64
  br label %314

314:                                              ; preds = %.lr.ph458, %445
  %315 = phi i32 [ 0, %.lr.ph458 ], [ %446, %445 ]
  %indvars.iv530 = phi i64 [ 0, %.lr.ph458 ], [ %indvars.iv.next531, %445 ]
  %316 = icmp eq i32 %315, 100
  br i1 %316, label %317, label %319

317:                                              ; preds = %314
  %318 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef 100)
  tail call void @exit(i32 noundef 1) #5
  unreachable

319:                                              ; preds = %314
  %320 = load ptr, ptr %311, align 8, !tbaa !51
  %321 = getelementptr inbounds i32, ptr %320, i64 %indvars.iv530
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %.not379 = icmp eq i32 %322, 3003
  br i1 %.not379, label %323, label %324

323:                                              ; preds = %319
  store i32 3002, ptr %321, align 4, !tbaa !5
  br label %324

324:                                              ; preds = %323, %319
  %325 = phi i32 [ 3002, %323 ], [ %322, %319 ]
  %326 = load ptr, ptr %312, align 8, !tbaa !27
  %327 = getelementptr inbounds ptr, ptr %326, i64 %indvars.iv530
  %328 = load ptr, ptr %327, align 8, !tbaa !9
  %329 = load ptr, ptr %313, align 8, !tbaa !28
  %330 = getelementptr inbounds ptr, ptr %329, i64 %indvars.iv530
  %331 = load ptr, ptr %330, align 8, !tbaa !9
  tail call void @put_comp_into_normalized_locals(i32 noundef %325, ptr noundef %328, ptr noundef %331)
  %332 = load i32, ptr @lcomp, align 4, !tbaa !5
  %333 = load ptr, ptr %302, align 8, !tbaa !47
  %334 = load i32, ptr %307, align 8, !tbaa !50
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds i32, ptr %333, i64 %335
  store i32 %332, ptr %336, align 4, !tbaa !5
  %337 = tail call ptr @new_LnfExpNode() #6
  %338 = load ptr, ptr %304, align 8, !tbaa !48
  %339 = load i32, ptr %307, align 8, !tbaa !50
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds ptr, ptr %338, i64 %340
  store ptr %337, ptr %341, align 8, !tbaa !9
  %342 = load ptr, ptr %304, align 8, !tbaa !48
  %343 = getelementptr inbounds ptr, ptr %342, i64 %340
  %344 = load ptr, ptr %343, align 8, !tbaa !9
  %345 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %346 = icmp sgt i32 %345, 0
  br i1 %346, label %.lr.ph450, label %._crit_edge451

.lr.ph450:                                        ; preds = %324
  %347 = getelementptr inbounds i8, ptr %344, i64 204
  %348 = getelementptr inbounds i8, ptr %344, i64 404
  %349 = getelementptr inbounds i8, ptr %344, i64 200
  br label %350

350:                                              ; preds = %.lr.ph450, %373
  %indvars.iv522 = phi i64 [ 0, %.lr.ph450 ], [ %indvars.iv.next523, %373 ]
  %351 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %indvars.iv522
  %352 = load float, ptr %351, align 4, !tbaa !40
  %353 = fcmp oeq float %352, 0.000000e+00
  br i1 %353, label %373, label %354

354:                                              ; preds = %350
  %355 = fcmp ogt float %352, 0.000000e+00
  %356 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %indvars.iv522
  %357 = load i32, ptr %356, align 4, !tbaa !5
  br i1 %355, label %358, label %362

358:                                              ; preds = %354
  %359 = load i32, ptr %349, align 4, !tbaa !41
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds [25 x i32], ptr %344, i64 0, i64 %360
  store i32 %357, ptr %361, align 4, !tbaa !5
  br label %.sink.split612

362:                                              ; preds = %354
  %363 = load i32, ptr %348, align 4, !tbaa !43
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds [25 x i32], ptr %347, i64 0, i64 %364
  store i32 %357, ptr %365, align 4, !tbaa !5
  %366 = fneg float %352
  br label %.sink.split612

.sink.split612:                                   ; preds = %362, %358
  %.sink621 = phi ptr [ %349, %358 ], [ %348, %362 ]
  %367 = phi i64 [ 100, %358 ], [ 304, %362 ]
  %.sink613 = phi float [ %352, %358 ], [ %366, %362 ]
  %368 = getelementptr inbounds i8, ptr %344, i64 %367
  %369 = load i32, ptr %.sink621, align 4, !tbaa !5
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr %.sink621, align 4, !tbaa !5
  %371 = sext i32 %369 to i64
  %372 = getelementptr inbounds [25 x float], ptr %368, i64 0, i64 %371
  store float %.sink613, ptr %372, align 4, !tbaa !40
  br label %373

373:                                              ; preds = %.sink.split612, %350
  %indvars.iv.next523 = add nuw nsw i64 %indvars.iv522, 1
  %374 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %375 = sext i32 %374 to i64
  %376 = icmp slt i64 %indvars.iv.next523, %375
  br i1 %376, label %350, label %._crit_edge451.loopexit, !llvm.loop !52

._crit_edge451.loopexit:                          ; preds = %373
  %.pre567 = load i32, ptr %307, align 8, !tbaa !50
  %.pre583 = sext i32 %.pre567 to i64
  br label %._crit_edge451

._crit_edge451:                                   ; preds = %._crit_edge451.loopexit, %324
  %.pre-phi584 = phi i64 [ %.pre583, %._crit_edge451.loopexit ], [ %340, %324 ]
  %377 = phi i32 [ %.pre567, %._crit_edge451.loopexit ], [ %339, %324 ]
  %378 = load float, ptr @lc, align 4, !tbaa !40
  %379 = load ptr, ptr %306, align 8, !tbaa !49
  %380 = getelementptr inbounds float, ptr %379, i64 %.pre-phi584
  store float %378, ptr %380, align 4, !tbaa !40
  %381 = add nsw i32 %377, 1
  store i32 %381, ptr %307, align 8, !tbaa !50
  br i1 %.not379, label %382, label %445

382:                                              ; preds = %._crit_edge451
  %383 = icmp eq i32 %381, 100
  br i1 %383, label %384, label %386

384:                                              ; preds = %382
  %385 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef 100)
  tail call void @exit(i32 noundef 1) #5
  unreachable

386:                                              ; preds = %382
  %387 = load ptr, ptr %311, align 8, !tbaa !51
  %388 = getelementptr inbounds i32, ptr %387, i64 %indvars.iv530
  store i32 3003, ptr %388, align 4, !tbaa !5
  %389 = load ptr, ptr %312, align 8, !tbaa !27
  %390 = getelementptr inbounds ptr, ptr %389, i64 %indvars.iv530
  %391 = load ptr, ptr %390, align 8, !tbaa !9
  %392 = load ptr, ptr %313, align 8, !tbaa !28
  %393 = getelementptr inbounds ptr, ptr %392, i64 %indvars.iv530
  %394 = load ptr, ptr %393, align 8, !tbaa !9
  tail call void @put_comp_into_normalized_locals(i32 noundef 3004, ptr noundef %391, ptr noundef %394)
  %395 = load i32, ptr @lcomp, align 4, !tbaa !5
  %396 = load ptr, ptr %302, align 8, !tbaa !47
  %397 = load i32, ptr %307, align 8, !tbaa !50
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds i32, ptr %396, i64 %398
  store i32 %395, ptr %399, align 4, !tbaa !5
  %400 = tail call ptr @new_LnfExpNode() #6
  %401 = load ptr, ptr %304, align 8, !tbaa !48
  %402 = load i32, ptr %307, align 8, !tbaa !50
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds ptr, ptr %401, i64 %403
  store ptr %400, ptr %404, align 8, !tbaa !9
  %405 = load ptr, ptr %304, align 8, !tbaa !48
  %406 = getelementptr inbounds ptr, ptr %405, i64 %403
  %407 = load ptr, ptr %406, align 8, !tbaa !9
  %408 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %409 = icmp sgt i32 %408, 0
  br i1 %409, label %.lr.ph454, label %._crit_edge455

.lr.ph454:                                        ; preds = %386
  %410 = getelementptr inbounds i8, ptr %407, i64 204
  %411 = getelementptr inbounds i8, ptr %407, i64 404
  %412 = getelementptr inbounds i8, ptr %407, i64 200
  br label %413

413:                                              ; preds = %.lr.ph454, %436
  %indvars.iv526 = phi i64 [ 0, %.lr.ph454 ], [ %indvars.iv.next527, %436 ]
  %414 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %indvars.iv526
  %415 = load float, ptr %414, align 4, !tbaa !40
  %416 = fcmp oeq float %415, 0.000000e+00
  br i1 %416, label %436, label %417

417:                                              ; preds = %413
  %418 = fcmp ogt float %415, 0.000000e+00
  %419 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %indvars.iv526
  %420 = load i32, ptr %419, align 4, !tbaa !5
  br i1 %418, label %421, label %425

421:                                              ; preds = %417
  %422 = load i32, ptr %412, align 4, !tbaa !41
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds [25 x i32], ptr %407, i64 0, i64 %423
  store i32 %420, ptr %424, align 4, !tbaa !5
  br label %.sink.split622

425:                                              ; preds = %417
  %426 = load i32, ptr %411, align 4, !tbaa !43
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds [25 x i32], ptr %410, i64 0, i64 %427
  store i32 %420, ptr %428, align 4, !tbaa !5
  %429 = fneg float %415
  br label %.sink.split622

.sink.split622:                                   ; preds = %425, %421
  %.sink631 = phi ptr [ %412, %421 ], [ %411, %425 ]
  %430 = phi i64 [ 100, %421 ], [ 304, %425 ]
  %.sink623 = phi float [ %415, %421 ], [ %429, %425 ]
  %431 = getelementptr inbounds i8, ptr %407, i64 %430
  %432 = load i32, ptr %.sink631, align 4, !tbaa !5
  %433 = add nsw i32 %432, 1
  store i32 %433, ptr %.sink631, align 4, !tbaa !5
  %434 = sext i32 %432 to i64
  %435 = getelementptr inbounds [25 x float], ptr %431, i64 0, i64 %434
  store float %.sink623, ptr %435, align 4, !tbaa !40
  br label %436

436:                                              ; preds = %.sink.split622, %413
  %indvars.iv.next527 = add nuw nsw i64 %indvars.iv526, 1
  %437 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %438 = sext i32 %437 to i64
  %439 = icmp slt i64 %indvars.iv.next527, %438
  br i1 %439, label %413, label %._crit_edge455.loopexit, !llvm.loop !53

._crit_edge455.loopexit:                          ; preds = %436
  %.pre568 = load i32, ptr %307, align 8, !tbaa !50
  %.pre585 = sext i32 %.pre568 to i64
  br label %._crit_edge455

._crit_edge455:                                   ; preds = %._crit_edge455.loopexit, %386
  %.pre-phi586 = phi i64 [ %.pre585, %._crit_edge455.loopexit ], [ %403, %386 ]
  %440 = phi i32 [ %.pre568, %._crit_edge455.loopexit ], [ %402, %386 ]
  %441 = load float, ptr @lc, align 4, !tbaa !40
  %442 = load ptr, ptr %306, align 8, !tbaa !49
  %443 = getelementptr inbounds float, ptr %442, i64 %.pre-phi586
  store float %441, ptr %443, align 4, !tbaa !40
  %444 = add nsw i32 %440, 1
  store i32 %444, ptr %307, align 8, !tbaa !50
  br label %445

445:                                              ; preds = %._crit_edge451, %._crit_edge455
  %446 = phi i32 [ %381, %._crit_edge451 ], [ %444, %._crit_edge455 ]
  %indvars.iv.next531 = add nuw nsw i64 %indvars.iv530, 1
  %447 = load i32, ptr %308, align 8, !tbaa !25
  %448 = sext i32 %447 to i64
  %449 = icmp slt i64 %indvars.iv.next531, %448
  br i1 %449, label %314, label %._crit_edge459, !llvm.loop !54

._crit_edge459:                                   ; preds = %445, %298
  %450 = getelementptr inbounds i8, ptr %300, i64 172
  %451 = load i8, ptr %450, align 4, !tbaa !30
  %.not377 = icmp eq i8 %451, 0
  br i1 %.not377, label %452, label %.loopexit

452:                                              ; preds = %._crit_edge459
  %453 = tail call noalias dereferenceable_or_null(200) ptr @calloc(i64 noundef 50, i64 noundef 4) #7
  %454 = getelementptr inbounds i8, ptr %300, i64 144
  store ptr %453, ptr %454, align 8, !tbaa !55
  %455 = tail call noalias dereferenceable_or_null(200) ptr @calloc(i64 noundef 50, i64 noundef 4) #7
  %456 = getelementptr inbounds i8, ptr %300, i64 152
  store ptr %455, ptr %456, align 8, !tbaa !56
  %457 = tail call noalias dereferenceable_or_null(400) ptr @calloc(i64 noundef 50, i64 noundef 8) #7
  %458 = getelementptr inbounds i8, ptr %300, i64 160
  store ptr %457, ptr %458, align 8, !tbaa !57
  %459 = getelementptr inbounds i8, ptr %300, i64 168
  store i32 0, ptr %459, align 8, !tbaa !58
  %460 = getelementptr inbounds i8, ptr %300, i64 104
  %461 = load i32, ptr %460, align 8, !tbaa !31
  %462 = icmp sgt i32 %461, 0
  br i1 %462, label %.lr.ph466, label %.loopexit

.lr.ph466:                                        ; preds = %452
  %463 = getelementptr inbounds i8, ptr %300, i64 80
  %464 = getelementptr inbounds i8, ptr %300, i64 88
  %465 = getelementptr inbounds i8, ptr %300, i64 96
  br label %466

466:                                              ; preds = %.lr.ph466, %._crit_edge463
  %467 = phi i32 [ 0, %.lr.ph466 ], [ %544, %._crit_edge463 ]
  %indvars.iv538 = phi i64 [ 0, %.lr.ph466 ], [ %indvars.iv.next539, %._crit_edge463 ]
  %468 = icmp eq i32 %467, 50
  br i1 %468, label %469, label %471

469:                                              ; preds = %466
  %470 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.28, i32 noundef 50)
  tail call void @exit(i32 noundef 1) #5
  unreachable

471:                                              ; preds = %466
  %472 = load ptr, ptr %463, align 8, !tbaa !59
  %473 = getelementptr inbounds i32, ptr %472, i64 %indvars.iv538
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = load ptr, ptr %454, align 8, !tbaa !55
  %476 = sext i32 %467 to i64
  %477 = getelementptr inbounds i32, ptr %475, i64 %476
  store i32 %474, ptr %477, align 4, !tbaa !5
  %478 = load ptr, ptr %464, align 8, !tbaa !60
  %479 = getelementptr inbounds i32, ptr %478, i64 %indvars.iv538
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = load ptr, ptr %456, align 8, !tbaa !56
  %482 = load i32, ptr %459, align 8, !tbaa !58
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds i32, ptr %481, i64 %483
  store i32 %480, ptr %484, align 4, !tbaa !5
  store i32 0, ptr @lnum_F, align 4, !tbaa !5
  store float 0.000000e+00, ptr @lc, align 4, !tbaa !40
  %485 = load i32, ptr %459, align 8, !tbaa !58
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds i32, ptr %475, i64 %486
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = icmp eq i32 %488, 4004
  %490 = load ptr, ptr %465, align 8, !tbaa !32
  %491 = getelementptr inbounds ptr, ptr %490, i64 %indvars.iv538
  %492 = load ptr, ptr %491, align 8, !tbaa !9
  br i1 %489, label %493, label %498

493:                                              ; preds = %471
  tail call void @collect_normalized_locals(ptr noundef %492, i8 noundef zeroext 0)
  %494 = load ptr, ptr %454, align 8, !tbaa !55
  %495 = load i32, ptr %459, align 8, !tbaa !58
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds i32, ptr %494, i64 %496
  store i32 4003, ptr %497, align 4, !tbaa !5
  br label %499

498:                                              ; preds = %471
  tail call void @collect_normalized_locals(ptr noundef %492, i8 noundef zeroext 1)
  br label %499

499:                                              ; preds = %498, %493
  %500 = tail call ptr @new_LnfExpNode() #6
  %501 = load ptr, ptr %458, align 8, !tbaa !57
  %502 = load i32, ptr %459, align 8, !tbaa !58
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds ptr, ptr %501, i64 %503
  store ptr %500, ptr %504, align 8, !tbaa !9
  %505 = load ptr, ptr %458, align 8, !tbaa !57
  %506 = getelementptr inbounds ptr, ptr %505, i64 %503
  %507 = load ptr, ptr %506, align 8, !tbaa !9
  %508 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %509 = icmp sgt i32 %508, 0
  br i1 %509, label %.lr.ph462, label %._crit_edge463

.lr.ph462:                                        ; preds = %499
  %510 = getelementptr inbounds i8, ptr %507, i64 204
  %511 = getelementptr inbounds i8, ptr %507, i64 404
  %512 = getelementptr inbounds i8, ptr %507, i64 200
  br label %513

513:                                              ; preds = %.lr.ph462, %536
  %indvars.iv534 = phi i64 [ 0, %.lr.ph462 ], [ %indvars.iv.next535, %536 ]
  %514 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %indvars.iv534
  %515 = load float, ptr %514, align 4, !tbaa !40
  %516 = fcmp oeq float %515, 0.000000e+00
  br i1 %516, label %536, label %517

517:                                              ; preds = %513
  %518 = fcmp ogt float %515, 0.000000e+00
  %519 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %indvars.iv534
  %520 = load i32, ptr %519, align 4, !tbaa !5
  br i1 %518, label %521, label %525

521:                                              ; preds = %517
  %522 = load i32, ptr %512, align 4, !tbaa !41
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds [25 x i32], ptr %507, i64 0, i64 %523
  store i32 %520, ptr %524, align 4, !tbaa !5
  br label %.sink.split632

525:                                              ; preds = %517
  %526 = load i32, ptr %511, align 4, !tbaa !43
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds [25 x i32], ptr %510, i64 0, i64 %527
  store i32 %520, ptr %528, align 4, !tbaa !5
  %529 = fneg float %515
  br label %.sink.split632

.sink.split632:                                   ; preds = %525, %521
  %.sink641 = phi ptr [ %512, %521 ], [ %511, %525 ]
  %530 = phi i64 [ 100, %521 ], [ 304, %525 ]
  %.sink633 = phi float [ %515, %521 ], [ %529, %525 ]
  %531 = getelementptr inbounds i8, ptr %507, i64 %530
  %532 = load i32, ptr %.sink641, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr %.sink641, align 4, !tbaa !5
  %534 = sext i32 %532 to i64
  %535 = getelementptr inbounds [25 x float], ptr %531, i64 0, i64 %534
  store float %.sink633, ptr %535, align 4, !tbaa !40
  br label %536

536:                                              ; preds = %.sink.split632, %513
  %indvars.iv.next535 = add nuw nsw i64 %indvars.iv534, 1
  %537 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %538 = sext i32 %537 to i64
  %539 = icmp slt i64 %indvars.iv.next535, %538
  br i1 %539, label %513, label %._crit_edge463.loopexit, !llvm.loop !61

._crit_edge463.loopexit:                          ; preds = %536
  %.pre569 = load i32, ptr %459, align 8, !tbaa !58
  %.phi.trans.insert = sext i32 %.pre569 to i64
  %.phi.trans.insert570 = getelementptr inbounds ptr, ptr %505, i64 %.phi.trans.insert
  %.pre571 = load ptr, ptr %.phi.trans.insert570, align 8, !tbaa !9
  br label %._crit_edge463

._crit_edge463:                                   ; preds = %._crit_edge463.loopexit, %499
  %540 = phi ptr [ %.pre571, %._crit_edge463.loopexit ], [ %507, %499 ]
  %541 = phi i32 [ %.pre569, %._crit_edge463.loopexit ], [ %502, %499 ]
  %542 = load float, ptr @lc, align 4, !tbaa !40
  %543 = getelementptr inbounds i8, ptr %540, i64 408
  store float %542, ptr %543, align 4, !tbaa !62
  %544 = add nsw i32 %541, 1
  store i32 %544, ptr %459, align 8, !tbaa !58
  %indvars.iv.next539 = add nuw nsw i64 %indvars.iv538, 1
  %545 = load i32, ptr %460, align 8, !tbaa !31
  %546 = sext i32 %545 to i64
  %547 = icmp slt i64 %indvars.iv.next539, %546
  br i1 %547, label %466, label %.loopexit, !llvm.loop !63

.loopexit:                                        ; preds = %._crit_edge463, %452, %._crit_edge459
  %indvars.iv.next543 = add nuw nsw i64 %indvars.iv542, 1
  %548 = load i32, ptr %158, align 8, !tbaa !18
  %549 = sext i32 %548 to i64
  %550 = icmp slt i64 %indvars.iv.next543, %549
  br i1 %550, label %298, label %._crit_edge469, !llvm.loop !64

._crit_edge469:                                   ; preds = %.loopexit, %.preheader
  %551 = getelementptr inbounds i8, ptr %.3361472, i64 256
  %.3361 = load ptr, ptr %551, align 8, !tbaa !9
  %.not374 = icmp eq ptr %.3361, null
  br i1 %.not374, label %._crit_edge475, label %.lr.ph474, !llvm.loop !65

._crit_edge475:                                   ; preds = %._crit_edge469, %144
  %552 = tail call noalias dereferenceable_or_null(400) ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  store ptr %552, ptr @glnf_goal_comp, align 8, !tbaa !9
  %553 = tail call noalias dereferenceable_or_null(800) ptr @calloc(i64 noundef 100, i64 noundef 8) #7
  store ptr %553, ptr @glnf_goal_lh, align 8, !tbaa !9
  %554 = tail call noalias dereferenceable_or_null(400) ptr @calloc(i64 noundef 100, i64 noundef 4) #7
  store ptr %554, ptr @glnf_goal_rh, align 8, !tbaa !9
  store i32 0, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %555 = load i32, ptr @gnum_numeric_goal, align 4, !tbaa !5
  %556 = icmp sgt i32 %555, 0
  br i1 %556, label %.lr.ph486, label %._crit_edge487

.lr.ph486:                                        ; preds = %._crit_edge475, %687
  %557 = phi i32 [ %688, %687 ], [ 0, %._crit_edge475 ]
  %indvars.iv554 = phi i64 [ %indvars.iv.next555, %687 ], [ 0, %._crit_edge475 ]
  %558 = icmp eq i32 %557, 100
  br i1 %558, label %559, label %561

559:                                              ; preds = %.lr.ph486
  %560 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef 100)
  tail call void @exit(i32 noundef 1) #5
  unreachable

561:                                              ; preds = %.lr.ph486
  %562 = load ptr, ptr @gnumeric_goal_comp, align 8, !tbaa !9
  %563 = getelementptr inbounds i32, ptr %562, i64 %indvars.iv554
  %564 = load i32, ptr %563, align 4, !tbaa !5
  %.not376 = icmp eq i32 %564, 3003
  br i1 %.not376, label %565, label %566

565:                                              ; preds = %561
  store i32 3002, ptr %563, align 4, !tbaa !5
  br label %566

566:                                              ; preds = %565, %561
  %567 = phi i32 [ 3002, %565 ], [ %564, %561 ]
  %568 = load ptr, ptr @gnumeric_goal_lh, align 8, !tbaa !9
  %569 = getelementptr inbounds ptr, ptr %568, i64 %indvars.iv554
  %570 = load ptr, ptr %569, align 8, !tbaa !9
  %571 = load ptr, ptr @gnumeric_goal_rh, align 8, !tbaa !9
  %572 = getelementptr inbounds ptr, ptr %571, i64 %indvars.iv554
  %573 = load ptr, ptr %572, align 8, !tbaa !9
  tail call void @put_comp_into_normalized_locals(i32 noundef %567, ptr noundef %570, ptr noundef %573)
  %574 = load i32, ptr @lcomp, align 4, !tbaa !5
  %575 = load ptr, ptr @glnf_goal_comp, align 8, !tbaa !9
  %576 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds i32, ptr %575, i64 %577
  store i32 %574, ptr %578, align 4, !tbaa !5
  %579 = tail call ptr @new_LnfExpNode() #6
  %580 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %581 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds ptr, ptr %580, i64 %582
  store ptr %579, ptr %583, align 8, !tbaa !9
  %584 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %585 = getelementptr inbounds ptr, ptr %584, i64 %582
  %586 = load ptr, ptr %585, align 8, !tbaa !9
  %587 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %588 = icmp sgt i32 %587, 0
  br i1 %588, label %.lr.ph478, label %._crit_edge479

.lr.ph478:                                        ; preds = %566
  %589 = getelementptr inbounds i8, ptr %586, i64 204
  %590 = getelementptr inbounds i8, ptr %586, i64 404
  %591 = getelementptr inbounds i8, ptr %586, i64 200
  br label %592

592:                                              ; preds = %.lr.ph478, %615
  %indvars.iv546 = phi i64 [ 0, %.lr.ph478 ], [ %indvars.iv.next547, %615 ]
  %593 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %indvars.iv546
  %594 = load float, ptr %593, align 4, !tbaa !40
  %595 = fcmp oeq float %594, 0.000000e+00
  br i1 %595, label %615, label %596

596:                                              ; preds = %592
  %597 = fcmp ogt float %594, 0.000000e+00
  %598 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %indvars.iv546
  %599 = load i32, ptr %598, align 4, !tbaa !5
  br i1 %597, label %600, label %604

600:                                              ; preds = %596
  %601 = load i32, ptr %591, align 4, !tbaa !41
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds [25 x i32], ptr %586, i64 0, i64 %602
  store i32 %599, ptr %603, align 4, !tbaa !5
  br label %.sink.split642

604:                                              ; preds = %596
  %605 = load i32, ptr %590, align 4, !tbaa !43
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds [25 x i32], ptr %589, i64 0, i64 %606
  store i32 %599, ptr %607, align 4, !tbaa !5
  %608 = fneg float %594
  br label %.sink.split642

.sink.split642:                                   ; preds = %604, %600
  %.sink651 = phi ptr [ %591, %600 ], [ %590, %604 ]
  %609 = phi i64 [ 100, %600 ], [ 304, %604 ]
  %.sink643 = phi float [ %594, %600 ], [ %608, %604 ]
  %610 = getelementptr inbounds i8, ptr %586, i64 %609
  %611 = load i32, ptr %.sink651, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr %.sink651, align 4, !tbaa !5
  %613 = sext i32 %611 to i64
  %614 = getelementptr inbounds [25 x float], ptr %610, i64 0, i64 %613
  store float %.sink643, ptr %614, align 4, !tbaa !40
  br label %615

615:                                              ; preds = %.sink.split642, %592
  %indvars.iv.next547 = add nuw nsw i64 %indvars.iv546, 1
  %616 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %617 = sext i32 %616 to i64
  %618 = icmp slt i64 %indvars.iv.next547, %617
  br i1 %618, label %592, label %._crit_edge479.loopexit, !llvm.loop !66

._crit_edge479.loopexit:                          ; preds = %615
  %.pre572 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %.pre576 = sext i32 %.pre572 to i64
  br label %._crit_edge479

._crit_edge479:                                   ; preds = %._crit_edge479.loopexit, %566
  %.pre-phi = phi i64 [ %.pre576, %._crit_edge479.loopexit ], [ %582, %566 ]
  %619 = phi i32 [ %.pre572, %._crit_edge479.loopexit ], [ %581, %566 ]
  %620 = load float, ptr @lc, align 4, !tbaa !40
  %621 = load ptr, ptr @glnf_goal_rh, align 8, !tbaa !9
  %622 = getelementptr inbounds float, ptr %621, i64 %.pre-phi
  store float %620, ptr %622, align 4, !tbaa !40
  %623 = add nsw i32 %619, 1
  store i32 %623, ptr @gnum_lnf_goal, align 4, !tbaa !5
  br i1 %.not376, label %624, label %687

624:                                              ; preds = %._crit_edge479
  %625 = icmp eq i32 %623, 100
  br i1 %625, label %626, label %628

626:                                              ; preds = %624
  %627 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef 100)
  tail call void @exit(i32 noundef 1) #5
  unreachable

628:                                              ; preds = %624
  %629 = load ptr, ptr @gnumeric_goal_comp, align 8, !tbaa !9
  %630 = getelementptr inbounds i32, ptr %629, i64 %indvars.iv554
  store i32 3003, ptr %630, align 4, !tbaa !5
  %631 = load ptr, ptr @gnumeric_goal_lh, align 8, !tbaa !9
  %632 = getelementptr inbounds ptr, ptr %631, i64 %indvars.iv554
  %633 = load ptr, ptr %632, align 8, !tbaa !9
  %634 = load ptr, ptr @gnumeric_goal_rh, align 8, !tbaa !9
  %635 = getelementptr inbounds ptr, ptr %634, i64 %indvars.iv554
  %636 = load ptr, ptr %635, align 8, !tbaa !9
  tail call void @put_comp_into_normalized_locals(i32 noundef 3004, ptr noundef %633, ptr noundef %636)
  %637 = load i32, ptr @lcomp, align 4, !tbaa !5
  %638 = load ptr, ptr @glnf_goal_comp, align 8, !tbaa !9
  %639 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds i32, ptr %638, i64 %640
  store i32 %637, ptr %641, align 4, !tbaa !5
  %642 = tail call ptr @new_LnfExpNode() #6
  %643 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %644 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds ptr, ptr %643, i64 %645
  store ptr %642, ptr %646, align 8, !tbaa !9
  %647 = load ptr, ptr @glnf_goal_lh, align 8, !tbaa !9
  %648 = getelementptr inbounds ptr, ptr %647, i64 %645
  %649 = load ptr, ptr %648, align 8, !tbaa !9
  %650 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %651 = icmp sgt i32 %650, 0
  br i1 %651, label %.lr.ph482, label %._crit_edge483

.lr.ph482:                                        ; preds = %628
  %652 = getelementptr inbounds i8, ptr %649, i64 204
  %653 = getelementptr inbounds i8, ptr %649, i64 404
  %654 = getelementptr inbounds i8, ptr %649, i64 200
  br label %655

655:                                              ; preds = %.lr.ph482, %678
  %indvars.iv550 = phi i64 [ 0, %.lr.ph482 ], [ %indvars.iv.next551, %678 ]
  %656 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %indvars.iv550
  %657 = load float, ptr %656, align 4, !tbaa !40
  %658 = fcmp oeq float %657, 0.000000e+00
  br i1 %658, label %678, label %659

659:                                              ; preds = %655
  %660 = fcmp ogt float %657, 0.000000e+00
  %661 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %indvars.iv550
  %662 = load i32, ptr %661, align 4, !tbaa !5
  br i1 %660, label %663, label %667

663:                                              ; preds = %659
  %664 = load i32, ptr %654, align 4, !tbaa !41
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds [25 x i32], ptr %649, i64 0, i64 %665
  store i32 %662, ptr %666, align 4, !tbaa !5
  br label %.sink.split652

667:                                              ; preds = %659
  %668 = load i32, ptr %653, align 4, !tbaa !43
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds [25 x i32], ptr %652, i64 0, i64 %669
  store i32 %662, ptr %670, align 4, !tbaa !5
  %671 = fneg float %657
  br label %.sink.split652

.sink.split652:                                   ; preds = %667, %663
  %.sink661 = phi ptr [ %654, %663 ], [ %653, %667 ]
  %672 = phi i64 [ 100, %663 ], [ 304, %667 ]
  %.sink653 = phi float [ %657, %663 ], [ %671, %667 ]
  %673 = getelementptr inbounds i8, ptr %649, i64 %672
  %674 = load i32, ptr %.sink661, align 4, !tbaa !5
  %675 = add nsw i32 %674, 1
  store i32 %675, ptr %.sink661, align 4, !tbaa !5
  %676 = sext i32 %674 to i64
  %677 = getelementptr inbounds [25 x float], ptr %673, i64 0, i64 %676
  store float %.sink653, ptr %677, align 4, !tbaa !40
  br label %678

678:                                              ; preds = %.sink.split652, %655
  %indvars.iv.next551 = add nuw nsw i64 %indvars.iv550, 1
  %679 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %680 = sext i32 %679 to i64
  %681 = icmp slt i64 %indvars.iv.next551, %680
  br i1 %681, label %655, label %._crit_edge483.loopexit, !llvm.loop !67

._crit_edge483.loopexit:                          ; preds = %678
  %.pre573 = load i32, ptr @gnum_lnf_goal, align 4, !tbaa !5
  %.pre577 = sext i32 %.pre573 to i64
  br label %._crit_edge483

._crit_edge483:                                   ; preds = %._crit_edge483.loopexit, %628
  %.pre-phi578 = phi i64 [ %.pre577, %._crit_edge483.loopexit ], [ %645, %628 ]
  %682 = phi i32 [ %.pre573, %._crit_edge483.loopexit ], [ %644, %628 ]
  %683 = load float, ptr @lc, align 4, !tbaa !40
  %684 = load ptr, ptr @glnf_goal_rh, align 8, !tbaa !9
  %685 = getelementptr inbounds float, ptr %684, i64 %.pre-phi578
  store float %683, ptr %685, align 4, !tbaa !40
  %686 = add nsw i32 %682, 1
  store i32 %686, ptr @gnum_lnf_goal, align 4, !tbaa !5
  br label %687

687:                                              ; preds = %._crit_edge479, %._crit_edge483
  %688 = phi i32 [ %623, %._crit_edge479 ], [ %686, %._crit_edge483 ]
  %indvars.iv.next555 = add nuw nsw i64 %indvars.iv554, 1
  %689 = load i32, ptr @gnum_numeric_goal, align 4, !tbaa !5
  %690 = sext i32 %689 to i64
  %691 = icmp slt i64 %indvars.iv.next555, %690
  br i1 %691, label %.lr.ph486, label %._crit_edge487, !llvm.loop !68

._crit_edge487:                                   ; preds = %687, %._crit_edge475
  store i32 0, ptr @lnum_F, align 4, !tbaa !5
  store float 0.000000e+00, ptr @lc, align 4, !tbaa !40
  store i32 0, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 200), align 4, !tbaa !41
  store i32 0, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 404), align 4, !tbaa !43
  store float 0.000000e+00, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 408), align 4, !tbaa !62
  %692 = load ptr, ptr @gmetric, align 8, !tbaa !9
  tail call void @collect_normalized_locals(ptr noundef %692, i8 noundef zeroext 1)
  %693 = load i32, ptr @lnum_F, align 4, !tbaa !5
  %694 = icmp sgt i32 %693, 0
  br i1 %694, label %.lr.ph490.preheader, label %._crit_edge491

.lr.ph490.preheader:                              ; preds = %._crit_edge487
  %wide.trip.count = zext nneg i32 %693 to i64
  br label %.lr.ph490

.lr.ph490:                                        ; preds = %.lr.ph490.preheader, %715
  %indvars.iv558 = phi i64 [ 0, %.lr.ph490.preheader ], [ %indvars.iv.next559, %715 ]
  %695 = getelementptr inbounds [25 x float], ptr @lC, i64 0, i64 %indvars.iv558
  %696 = load float, ptr %695, align 4, !tbaa !40
  %697 = fcmp oeq float %696, 0.000000e+00
  br i1 %697, label %715, label %698

698:                                              ; preds = %.lr.ph490
  %699 = fcmp ogt float %696, 0.000000e+00
  %700 = getelementptr inbounds [25 x i32], ptr @lF, i64 0, i64 %indvars.iv558
  %701 = load i32, ptr %700, align 4, !tbaa !5
  br i1 %699, label %702, label %706

702:                                              ; preds = %698
  %703 = load i32, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 200), align 4, !tbaa !41
  %704 = sext i32 %703 to i64
  %705 = getelementptr inbounds [25 x i32], ptr @glnf_metric, i64 0, i64 %704
  store i32 %701, ptr %705, align 4, !tbaa !5
  br label %.sink.split662

706:                                              ; preds = %698
  %707 = load i32, ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 404), align 4, !tbaa !43
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds [25 x i32], ptr getelementptr inbounds (i8, ptr @glnf_metric, i64 204), i64 0, i64 %708
  store i32 %701, ptr %709, align 4, !tbaa !5
  %710 = fneg float %696
  br label %.sink.split662

.sink.split662:                                   ; preds = %706, %702
  %.sink671 = phi ptr [ getelementptr inbounds (i8, ptr @glnf_metric, i64 200), %702 ], [ getelementptr inbounds (i8, ptr @glnf_metric, i64 404), %706 ]
  %.sink665 = phi ptr [ getelementptr inbounds (i8, ptr @glnf_metric, i64 100), %702 ], [ getelementptr inbounds (i8, ptr @glnf_metric, i64 304), %706 ]
  %.sink663 = phi float [ %696, %702 ], [ %710, %706 ]
  %711 = load i32, ptr %.sink671, align 4, !tbaa !5
  %712 = add nsw i32 %711, 1
  store i32 %712, ptr %.sink671, align 4, !tbaa !5
  %713 = sext i32 %711 to i64
  %714 = getelementptr inbounds [25 x float], ptr %.sink665, i64 0, i64 %713
  store float %.sink663, ptr %714, align 4, !tbaa !40
  br label %715

715:                                              ; preds = %.sink.split662, %.lr.ph490
  %indvars.iv.next559 = add nuw nsw i64 %indvars.iv558, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next559, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge491, label %.lr.ph490, !llvm.loop !69

._crit_edge491:                                   ; preds = %715, %._crit_edge487
  ret void
}

declare void @free_ExpNode(ptr noundef) local_unnamed_addr #3

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

; Function Attrs: nounwind uwtable
declare dso_local void @push_multiplications_down(ptr noundef) local_unnamed_addr #2

declare void @print_Action_name(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #4

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

declare ptr @new_LnfExpNode() local_unnamed_addr #3

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

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 = { "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 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #5 = { noreturn nounwind }
attributes #6 = { nounwind }
attributes #7 = { nounwind allocsize(0,1) }

!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 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !6, i64 200}
!14 = !{!"_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}
!15 = !{!14, !10, i64 184}
!16 = !{!14, !10, i64 192}
!17 = distinct !{!17, !12}
!18 = !{!14, !6, i64 248}
!19 = !{!20, !6, i64 768}
!20 = !{!"_command_line", !7, i64 0, !7, i64 256, !7, i64 512, !6, i64 768, !6, i64 772, !6, i64 776, !7, i64 780, !6, i64 784, !21, i64 788}
!21 = !{!"float", !7, i64 0}
!22 = !{!14, !10, i64 256}
!23 = distinct !{!23, !12}
!24 = !{!14, !10, i64 240}
!25 = !{!26, !6, i64 72}
!26 = !{!"_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, !21, i64 176}
!27 = !{!26, !10, i64 56}
!28 = !{!26, !10, i64 64}
!29 = distinct !{!29, !12}
!30 = !{!26, !7, i64 172}
!31 = !{!26, !6, i64 104}
!32 = !{!26, !10, i64 96}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = !{!14, !10, i64 208}
!36 = !{!14, !10, i64 216}
!37 = !{!14, !10, i64 224}
!38 = !{!14, !6, i64 232}
!39 = !{!14, !10, i64 176}
!40 = !{!21, !21, i64 0}
!41 = !{!42, !6, i64 200}
!42 = !{!"_LnfExpNode", !7, i64 0, !7, i64 100, !6, i64 200, !7, i64 204, !7, i64 304, !6, i64 404, !21, i64 408}
!43 = !{!42, !6, i64 404}
!44 = distinct !{!44, !12}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12}
!47 = !{!26, !10, i64 112}
!48 = !{!26, !10, i64 120}
!49 = !{!26, !10, i64 128}
!50 = !{!26, !6, i64 136}
!51 = !{!26, !10, i64 48}
!52 = distinct !{!52, !12}
!53 = distinct !{!53, !12}
!54 = distinct !{!54, !12}
!55 = !{!26, !10, i64 144}
!56 = !{!26, !10, i64 152}
!57 = !{!26, !10, i64 160}
!58 = !{!26, !6, i64 168}
!59 = !{!26, !10, i64 80}
!60 = !{!26, !10, i64 88}
!61 = distinct !{!61, !12}
!62 = !{!42, !21, i64 408}
!63 = distinct !{!63, !12}
!64 = distinct !{!64, !12}
!65 = distinct !{!65, !12}
!66 = distinct !{!66, !12}
!67 = distinct !{!67, !12}
!68 = distinct !{!68, !12}
!69 = distinct !{!69, !12}


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