; LLVM IR from VastoLorde95/Competitive-Programming :: Hackerrank/World Cup 2016/World Cup/Problem E (E)

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

@n = external dso_local global i32, align 4
@m = external dso_local global i32, align 4
@dp1 = external dso_local global [1111 x [1111 x i32]], align 16
@dp2 = external dso_local global [1111 x [1111 x i32]], align 16
@dp3 = external dso_local global [1111 x [1111 x i32]], align 16
@dp4 = external dso_local global [1111 x [1111 x i32]], align 16
@dp5 = external dso_local global [1111 x [1111 x i32]], align 16
@dp6 = external dso_local global [1111 x [1111 x i32]], align 16
@dp7 = external dso_local global [1111 x [1111 x i32]], align 16
@dp8 = external dso_local global [1111 x [1111 x i32]], align 16
@dp9 = external dso_local global [1111 x [1111 x i32]], align 16
@dp10 = external dso_local global [1111 x [1111 x i32]], align 16
@dp11 = external dso_local global [1111 x [1111 x i32]], align 16
@dp12 = external dso_local global [1111 x [1111 x i32]], align 16
@s = external dso_local global [1111 x [1111 x i8]], align 16
@g = external dso_local global [1111 x [1111 x i32]], align 16
@.str = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_Z6atedgeii(i32 noundef, i32 noundef) #0

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #2 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  %35 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef @n, ptr noundef @m)
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #5
  store i32 1, ptr %2, align 4, !tbaa !5
  br label %36

36:                                               ; preds = %74, %0
  %37 = load i32, ptr %2, align 4, !tbaa !5
  %38 = load i32, ptr @n, align 4, !tbaa !5
  %39 = icmp sle i32 %37, %38
  br i1 %39, label %41, label %40

40:                                               ; preds = %36
  store i32 2, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #5
  br label %77

41:                                               ; preds = %36
  %42 = load i32, ptr %2, align 4, !tbaa !5
  %43 = sext i32 %42 to i64
  %44 = getelementptr inbounds [1111 x [1111 x i8]], ptr @s, i64 0, i64 %43
  %45 = getelementptr inbounds [1111 x i8], ptr %44, i64 0, i64 0
  %46 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str.1, ptr noundef %45)
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  store i32 0, ptr %4, align 4, !tbaa !5
  br label %47

47:                                               ; preds = %70, %41
  %48 = load i32, ptr %4, align 4, !tbaa !5
  %49 = load i32, ptr @m, align 4, !tbaa !5
  %50 = icmp slt i32 %48, %49
  br i1 %50, label %52, label %51

51:                                               ; preds = %47
  store i32 5, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  br label %73

52:                                               ; preds = %47
  %53 = load i32, ptr %2, align 4, !tbaa !5
  %54 = sext i32 %53 to i64
  %55 = getelementptr inbounds [1111 x [1111 x i8]], ptr @s, i64 0, i64 %54
  %56 = load i32, ptr %4, align 4, !tbaa !5
  %57 = sext i32 %56 to i64
  %58 = getelementptr inbounds [1111 x i8], ptr %55, i64 0, i64 %57
  %59 = load i8, ptr %58, align 1, !tbaa !9
  %60 = sext i8 %59 to i32
  %61 = icmp eq i32 %60, 35
  %62 = zext i1 %61 to i32
  %63 = load i32, ptr %2, align 4, !tbaa !5
  %64 = sext i32 %63 to i64
  %65 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %64
  %66 = load i32, ptr %4, align 4, !tbaa !5
  %67 = add nsw i32 %66, 1
  %68 = sext i32 %67 to i64
  %69 = getelementptr inbounds [1111 x i32], ptr %65, i64 0, i64 %68
  store i32 %62, ptr %69, align 4, !tbaa !5
  br label %70

70:                                               ; preds = %52
  %71 = load i32, ptr %4, align 4, !tbaa !5
  %72 = add nsw i32 %71, 1
  store i32 %72, ptr %4, align 4, !tbaa !5
  br label %47, !llvm.loop !10

73:                                               ; preds = %51
  br label %74

74:                                               ; preds = %73
  %75 = load i32, ptr %2, align 4, !tbaa !5
  %76 = add nsw i32 %75, 1
  store i32 %76, ptr %2, align 4, !tbaa !5
  br label %36, !llvm.loop !12

77:                                               ; preds = %40
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  store i32 1, ptr %5, align 4, !tbaa !5
  br label %78

78:                                               ; preds = %128, %77
  %79 = load i32, ptr %5, align 4, !tbaa !5
  %80 = load i32, ptr @n, align 4, !tbaa !5
  %81 = icmp sle i32 %79, %80
  br i1 %81, label %83, label %82

82:                                               ; preds = %78
  store i32 8, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #5
  br label %131

83:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  store i32 1, ptr %6, align 4, !tbaa !5
  br label %84

84:                                               ; preds = %124, %83
  %85 = load i32, ptr %6, align 4, !tbaa !5
  %86 = load i32, ptr @m, align 4, !tbaa !5
  %87 = icmp sle i32 %85, %86
  br i1 %87, label %89, label %88

88:                                               ; preds = %84
  store i32 11, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  br label %127

89:                                               ; preds = %84
  %90 = load i32, ptr %5, align 4, !tbaa !5
  %91 = sext i32 %90 to i64
  %92 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %91
  %93 = load i32, ptr %6, align 4, !tbaa !5
  %94 = sext i32 %93 to i64
  %95 = getelementptr inbounds [1111 x i32], ptr %92, i64 0, i64 %94
  %96 = load i32, ptr %95, align 4, !tbaa !5
  %97 = icmp ne i32 %96, 0
  br i1 %97, label %98, label %123

98:                                               ; preds = %89
  %99 = load i32, ptr %5, align 4, !tbaa !5
  %100 = sext i32 %99 to i64
  %101 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp1, i64 0, i64 %100
  %102 = load i32, ptr %6, align 4, !tbaa !5
  %103 = sub nsw i32 %102, 1
  %104 = sext i32 %103 to i64
  %105 = getelementptr inbounds [1111 x i32], ptr %101, i64 0, i64 %104
  %106 = load i32, ptr %5, align 4, !tbaa !5
  %107 = sub nsw i32 %106, 1
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp1, i64 0, i64 %108
  %110 = load i32, ptr %6, align 4, !tbaa !5
  %111 = sub nsw i32 %110, 1
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds [1111 x i32], ptr %109, i64 0, i64 %112
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %105, ptr noundef nonnull align 4 dereferenceable(4) %113)
  %115 = load i32, ptr %114, align 4, !tbaa !5
  %116 = add nsw i32 %115, 1
  %117 = load i32, ptr %5, align 4, !tbaa !5
  %118 = sext i32 %117 to i64
  %119 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp1, i64 0, i64 %118
  %120 = load i32, ptr %6, align 4, !tbaa !5
  %121 = sext i32 %120 to i64
  %122 = getelementptr inbounds [1111 x i32], ptr %119, i64 0, i64 %121
  store i32 %116, ptr %122, align 4, !tbaa !5
  br label %123

123:                                              ; preds = %98, %89
  br label %124

124:                                              ; preds = %123
  %125 = load i32, ptr %6, align 4, !tbaa !5
  %126 = add nsw i32 %125, 1
  store i32 %126, ptr %6, align 4, !tbaa !5
  br label %84, !llvm.loop !13

127:                                              ; preds = %88
  br label %128

128:                                              ; preds = %127
  %129 = load i32, ptr %5, align 4, !tbaa !5
  %130 = add nsw i32 %129, 1
  store i32 %130, ptr %5, align 4, !tbaa !5
  br label %78, !llvm.loop !14

131:                                              ; preds = %82
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  store i32 1, ptr %7, align 4, !tbaa !5
  br label %132

132:                                              ; preds = %182, %131
  %133 = load i32, ptr %7, align 4, !tbaa !5
  %134 = load i32, ptr @n, align 4, !tbaa !5
  %135 = icmp sle i32 %133, %134
  br i1 %135, label %137, label %136

136:                                              ; preds = %132
  store i32 14, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  br label %185

137:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  %138 = load i32, ptr @m, align 4, !tbaa !5
  store i32 %138, ptr %8, align 4, !tbaa !5
  br label %139

139:                                              ; preds = %178, %137
  %140 = load i32, ptr %8, align 4, !tbaa !5
  %141 = icmp sge i32 %140, 1
  br i1 %141, label %143, label %142

142:                                              ; preds = %139
  store i32 17, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  br label %181

143:                                              ; preds = %139
  %144 = load i32, ptr %7, align 4, !tbaa !5
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %145
  %147 = load i32, ptr %8, align 4, !tbaa !5
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds [1111 x i32], ptr %146, i64 0, i64 %148
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %152, label %177

152:                                              ; preds = %143
  %153 = load i32, ptr %7, align 4, !tbaa !5
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp2, i64 0, i64 %154
  %156 = load i32, ptr %8, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds [1111 x i32], ptr %155, i64 0, i64 %158
  %160 = load i32, ptr %7, align 4, !tbaa !5
  %161 = sub nsw i32 %160, 1
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp2, i64 0, i64 %162
  %164 = load i32, ptr %8, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds [1111 x i32], ptr %163, i64 0, i64 %166
  %168 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %159, ptr noundef nonnull align 4 dereferenceable(4) %167)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = add nsw i32 %169, 1
  %171 = load i32, ptr %7, align 4, !tbaa !5
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp2, i64 0, i64 %172
  %174 = load i32, ptr %8, align 4, !tbaa !5
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds [1111 x i32], ptr %173, i64 0, i64 %175
  store i32 %170, ptr %176, align 4, !tbaa !5
  br label %177

177:                                              ; preds = %152, %143
  br label %178

178:                                              ; preds = %177
  %179 = load i32, ptr %8, align 4, !tbaa !5
  %180 = add nsw i32 %179, -1
  store i32 %180, ptr %8, align 4, !tbaa !5
  br label %139, !llvm.loop !15

181:                                              ; preds = %142
  br label %182

182:                                              ; preds = %181
  %183 = load i32, ptr %7, align 4, !tbaa !5
  %184 = add nsw i32 %183, 1
  store i32 %184, ptr %7, align 4, !tbaa !5
  br label %132, !llvm.loop !16

185:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  %186 = load i32, ptr @n, align 4, !tbaa !5
  store i32 %186, ptr %9, align 4, !tbaa !5
  br label %187

187:                                              ; preds = %236, %185
  %188 = load i32, ptr %9, align 4, !tbaa !5
  %189 = icmp sge i32 %188, 1
  br i1 %189, label %191, label %190

190:                                              ; preds = %187
  store i32 20, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  br label %239

191:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  store i32 1, ptr %10, align 4, !tbaa !5
  br label %192

192:                                              ; preds = %232, %191
  %193 = load i32, ptr %10, align 4, !tbaa !5
  %194 = load i32, ptr @m, align 4, !tbaa !5
  %195 = icmp sle i32 %193, %194
  br i1 %195, label %197, label %196

196:                                              ; preds = %192
  store i32 23, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  br label %235

197:                                              ; preds = %192
  %198 = load i32, ptr %9, align 4, !tbaa !5
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %199
  %201 = load i32, ptr %10, align 4, !tbaa !5
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds [1111 x i32], ptr %200, i64 0, i64 %202
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = icmp ne i32 %204, 0
  br i1 %205, label %206, label %231

206:                                              ; preds = %197
  %207 = load i32, ptr %9, align 4, !tbaa !5
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp3, i64 0, i64 %208
  %210 = load i32, ptr %10, align 4, !tbaa !5
  %211 = sub nsw i32 %210, 1
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds [1111 x i32], ptr %209, i64 0, i64 %212
  %214 = load i32, ptr %9, align 4, !tbaa !5
  %215 = add nsw i32 %214, 1
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp3, i64 0, i64 %216
  %218 = load i32, ptr %10, align 4, !tbaa !5
  %219 = sub nsw i32 %218, 1
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds [1111 x i32], ptr %217, i64 0, i64 %220
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %213, ptr noundef nonnull align 4 dereferenceable(4) %221)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = add nsw i32 %223, 1
  %225 = load i32, ptr %9, align 4, !tbaa !5
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp3, i64 0, i64 %226
  %228 = load i32, ptr %10, align 4, !tbaa !5
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds [1111 x i32], ptr %227, i64 0, i64 %229
  store i32 %224, ptr %230, align 4, !tbaa !5
  br label %231

231:                                              ; preds = %206, %197
  br label %232

232:                                              ; preds = %231
  %233 = load i32, ptr %10, align 4, !tbaa !5
  %234 = add nsw i32 %233, 1
  store i32 %234, ptr %10, align 4, !tbaa !5
  br label %192, !llvm.loop !17

235:                                              ; preds = %196
  br label %236

236:                                              ; preds = %235
  %237 = load i32, ptr %9, align 4, !tbaa !5
  %238 = add nsw i32 %237, -1
  store i32 %238, ptr %9, align 4, !tbaa !5
  br label %187, !llvm.loop !18

239:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  %240 = load i32, ptr @n, align 4, !tbaa !5
  store i32 %240, ptr %11, align 4, !tbaa !5
  br label %241

241:                                              ; preds = %290, %239
  %242 = load i32, ptr %11, align 4, !tbaa !5
  %243 = icmp sge i32 %242, 1
  br i1 %243, label %245, label %244

244:                                              ; preds = %241
  store i32 26, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  br label %293

245:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %246 = load i32, ptr @m, align 4, !tbaa !5
  store i32 %246, ptr %12, align 4, !tbaa !5
  br label %247

247:                                              ; preds = %286, %245
  %248 = load i32, ptr %12, align 4, !tbaa !5
  %249 = icmp sge i32 %248, 1
  br i1 %249, label %251, label %250

250:                                              ; preds = %247
  store i32 29, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  br label %289

251:                                              ; preds = %247
  %252 = load i32, ptr %11, align 4, !tbaa !5
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %253
  %255 = load i32, ptr %12, align 4, !tbaa !5
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds [1111 x i32], ptr %254, i64 0, i64 %256
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = icmp ne i32 %258, 0
  br i1 %259, label %260, label %285

260:                                              ; preds = %251
  %261 = load i32, ptr %11, align 4, !tbaa !5
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp4, i64 0, i64 %262
  %264 = load i32, ptr %12, align 4, !tbaa !5
  %265 = add nsw i32 %264, 1
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds [1111 x i32], ptr %263, i64 0, i64 %266
  %268 = load i32, ptr %11, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp4, i64 0, i64 %270
  %272 = load i32, ptr %12, align 4, !tbaa !5
  %273 = add nsw i32 %272, 1
  %274 = sext i32 %273 to i64
  %275 = getelementptr inbounds [1111 x i32], ptr %271, i64 0, i64 %274
  %276 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %267, ptr noundef nonnull align 4 dereferenceable(4) %275)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = add nsw i32 %277, 1
  %279 = load i32, ptr %11, align 4, !tbaa !5
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp4, i64 0, i64 %280
  %282 = load i32, ptr %12, align 4, !tbaa !5
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds [1111 x i32], ptr %281, i64 0, i64 %283
  store i32 %278, ptr %284, align 4, !tbaa !5
  br label %285

285:                                              ; preds = %260, %251
  br label %286

286:                                              ; preds = %285
  %287 = load i32, ptr %12, align 4, !tbaa !5
  %288 = add nsw i32 %287, -1
  store i32 %288, ptr %12, align 4, !tbaa !5
  br label %247, !llvm.loop !19

289:                                              ; preds = %250
  br label %290

290:                                              ; preds = %289
  %291 = load i32, ptr %11, align 4, !tbaa !5
  %292 = add nsw i32 %291, -1
  store i32 %292, ptr %11, align 4, !tbaa !5
  br label %241, !llvm.loop !20

293:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  store i32 1, ptr %13, align 4, !tbaa !5
  br label %294

294:                                              ; preds = %344, %293
  %295 = load i32, ptr %13, align 4, !tbaa !5
  %296 = load i32, ptr @n, align 4, !tbaa !5
  %297 = icmp sle i32 %295, %296
  br i1 %297, label %299, label %298

298:                                              ; preds = %294
  store i32 32, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  br label %347

299:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  store i32 1, ptr %14, align 4, !tbaa !5
  br label %300

300:                                              ; preds = %340, %299
  %301 = load i32, ptr %14, align 4, !tbaa !5
  %302 = load i32, ptr @m, align 4, !tbaa !5
  %303 = icmp sle i32 %301, %302
  br i1 %303, label %305, label %304

304:                                              ; preds = %300
  store i32 35, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  br label %343

305:                                              ; preds = %300
  %306 = load i32, ptr %13, align 4, !tbaa !5
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %307
  %309 = load i32, ptr %14, align 4, !tbaa !5
  %310 = sext i32 %309 to i64
  %311 = getelementptr inbounds [1111 x i32], ptr %308, i64 0, i64 %310
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = icmp ne i32 %312, 0
  br i1 %313, label %314, label %339

314:                                              ; preds = %305
  %315 = load i32, ptr %13, align 4, !tbaa !5
  %316 = sub nsw i32 %315, 1
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp5, i64 0, i64 %317
  %319 = load i32, ptr %14, align 4, !tbaa !5
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds [1111 x i32], ptr %318, i64 0, i64 %320
  %322 = load i32, ptr %13, align 4, !tbaa !5
  %323 = sub nsw i32 %322, 1
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp5, i64 0, i64 %324
  %326 = load i32, ptr %14, align 4, !tbaa !5
  %327 = sub nsw i32 %326, 1
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds [1111 x i32], ptr %325, i64 0, i64 %328
  %330 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %321, ptr noundef nonnull align 4 dereferenceable(4) %329)
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = add nsw i32 %331, 1
  %333 = load i32, ptr %13, align 4, !tbaa !5
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp5, i64 0, i64 %334
  %336 = load i32, ptr %14, align 4, !tbaa !5
  %337 = sext i32 %336 to i64
  %338 = getelementptr inbounds [1111 x i32], ptr %335, i64 0, i64 %337
  store i32 %332, ptr %338, align 4, !tbaa !5
  br label %339

339:                                              ; preds = %314, %305
  br label %340

340:                                              ; preds = %339
  %341 = load i32, ptr %14, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr %14, align 4, !tbaa !5
  br label %300, !llvm.loop !21

343:                                              ; preds = %304
  br label %344

344:                                              ; preds = %343
  %345 = load i32, ptr %13, align 4, !tbaa !5
  %346 = add nsw i32 %345, 1
  store i32 %346, ptr %13, align 4, !tbaa !5
  br label %294, !llvm.loop !22

347:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  store i32 1, ptr %15, align 4, !tbaa !5
  br label %348

348:                                              ; preds = %398, %347
  %349 = load i32, ptr %15, align 4, !tbaa !5
  %350 = load i32, ptr @n, align 4, !tbaa !5
  %351 = icmp sle i32 %349, %350
  br i1 %351, label %353, label %352

352:                                              ; preds = %348
  store i32 38, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br label %401

353:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  %354 = load i32, ptr @m, align 4, !tbaa !5
  store i32 %354, ptr %16, align 4, !tbaa !5
  br label %355

355:                                              ; preds = %394, %353
  %356 = load i32, ptr %16, align 4, !tbaa !5
  %357 = icmp sge i32 %356, 1
  br i1 %357, label %359, label %358

358:                                              ; preds = %355
  store i32 41, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  br label %397

359:                                              ; preds = %355
  %360 = load i32, ptr %15, align 4, !tbaa !5
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %361
  %363 = load i32, ptr %16, align 4, !tbaa !5
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds [1111 x i32], ptr %362, i64 0, i64 %364
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = icmp ne i32 %366, 0
  br i1 %367, label %368, label %393

368:                                              ; preds = %359
  %369 = load i32, ptr %15, align 4, !tbaa !5
  %370 = sub nsw i32 %369, 1
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp6, i64 0, i64 %371
  %373 = load i32, ptr %16, align 4, !tbaa !5
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds [1111 x i32], ptr %372, i64 0, i64 %374
  %376 = load i32, ptr %15, align 4, !tbaa !5
  %377 = sub nsw i32 %376, 1
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp6, i64 0, i64 %378
  %380 = load i32, ptr %16, align 4, !tbaa !5
  %381 = add nsw i32 %380, 1
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds [1111 x i32], ptr %379, i64 0, i64 %382
  %384 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %375, ptr noundef nonnull align 4 dereferenceable(4) %383)
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = add nsw i32 %385, 1
  %387 = load i32, ptr %15, align 4, !tbaa !5
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp6, i64 0, i64 %388
  %390 = load i32, ptr %16, align 4, !tbaa !5
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds [1111 x i32], ptr %389, i64 0, i64 %391
  store i32 %386, ptr %392, align 4, !tbaa !5
  br label %393

393:                                              ; preds = %368, %359
  br label %394

394:                                              ; preds = %393
  %395 = load i32, ptr %16, align 4, !tbaa !5
  %396 = add nsw i32 %395, -1
  store i32 %396, ptr %16, align 4, !tbaa !5
  br label %355, !llvm.loop !23

397:                                              ; preds = %358
  br label %398

398:                                              ; preds = %397
  %399 = load i32, ptr %15, align 4, !tbaa !5
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr %15, align 4, !tbaa !5
  br label %348, !llvm.loop !24

401:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  %402 = load i32, ptr @n, align 4, !tbaa !5
  store i32 %402, ptr %17, align 4, !tbaa !5
  br label %403

403:                                              ; preds = %452, %401
  %404 = load i32, ptr %17, align 4, !tbaa !5
  %405 = icmp sge i32 %404, 1
  br i1 %405, label %407, label %406

406:                                              ; preds = %403
  store i32 44, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  br label %455

407:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  store i32 1, ptr %18, align 4, !tbaa !5
  br label %408

408:                                              ; preds = %448, %407
  %409 = load i32, ptr %18, align 4, !tbaa !5
  %410 = load i32, ptr @m, align 4, !tbaa !5
  %411 = icmp sle i32 %409, %410
  br i1 %411, label %413, label %412

412:                                              ; preds = %408
  store i32 47, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  br label %451

413:                                              ; preds = %408
  %414 = load i32, ptr %17, align 4, !tbaa !5
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %415
  %417 = load i32, ptr %18, align 4, !tbaa !5
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds [1111 x i32], ptr %416, i64 0, i64 %418
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = icmp ne i32 %420, 0
  br i1 %421, label %422, label %447

422:                                              ; preds = %413
  %423 = load i32, ptr %17, align 4, !tbaa !5
  %424 = add nsw i32 %423, 1
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp7, i64 0, i64 %425
  %427 = load i32, ptr %18, align 4, !tbaa !5
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds [1111 x i32], ptr %426, i64 0, i64 %428
  %430 = load i32, ptr %17, align 4, !tbaa !5
  %431 = add nsw i32 %430, 1
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp7, i64 0, i64 %432
  %434 = load i32, ptr %18, align 4, !tbaa !5
  %435 = sub nsw i32 %434, 1
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds [1111 x i32], ptr %433, i64 0, i64 %436
  %438 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %429, ptr noundef nonnull align 4 dereferenceable(4) %437)
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  %441 = load i32, ptr %17, align 4, !tbaa !5
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp7, i64 0, i64 %442
  %444 = load i32, ptr %18, align 4, !tbaa !5
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds [1111 x i32], ptr %443, i64 0, i64 %445
  store i32 %440, ptr %446, align 4, !tbaa !5
  br label %447

447:                                              ; preds = %422, %413
  br label %448

448:                                              ; preds = %447
  %449 = load i32, ptr %18, align 4, !tbaa !5
  %450 = add nsw i32 %449, 1
  store i32 %450, ptr %18, align 4, !tbaa !5
  br label %408, !llvm.loop !25

451:                                              ; preds = %412
  br label %452

452:                                              ; preds = %451
  %453 = load i32, ptr %17, align 4, !tbaa !5
  %454 = add nsw i32 %453, -1
  store i32 %454, ptr %17, align 4, !tbaa !5
  br label %403, !llvm.loop !26

455:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  %456 = load i32, ptr @n, align 4, !tbaa !5
  store i32 %456, ptr %19, align 4, !tbaa !5
  br label %457

457:                                              ; preds = %506, %455
  %458 = load i32, ptr %19, align 4, !tbaa !5
  %459 = icmp sge i32 %458, 1
  br i1 %459, label %461, label %460

460:                                              ; preds = %457
  store i32 50, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  br label %509

461:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  %462 = load i32, ptr @m, align 4, !tbaa !5
  store i32 %462, ptr %20, align 4, !tbaa !5
  br label %463

463:                                              ; preds = %502, %461
  %464 = load i32, ptr %20, align 4, !tbaa !5
  %465 = icmp sge i32 %464, 1
  br i1 %465, label %467, label %466

466:                                              ; preds = %463
  store i32 53, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  br label %505

467:                                              ; preds = %463
  %468 = load i32, ptr %19, align 4, !tbaa !5
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %469
  %471 = load i32, ptr %20, align 4, !tbaa !5
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds [1111 x i32], ptr %470, i64 0, i64 %472
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = icmp ne i32 %474, 0
  br i1 %475, label %476, label %501

476:                                              ; preds = %467
  %477 = load i32, ptr %19, align 4, !tbaa !5
  %478 = add nsw i32 %477, 1
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp8, i64 0, i64 %479
  %481 = load i32, ptr %20, align 4, !tbaa !5
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds [1111 x i32], ptr %480, i64 0, i64 %482
  %484 = load i32, ptr %19, align 4, !tbaa !5
  %485 = add nsw i32 %484, 1
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp8, i64 0, i64 %486
  %488 = load i32, ptr %20, align 4, !tbaa !5
  %489 = add nsw i32 %488, 1
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds [1111 x i32], ptr %487, i64 0, i64 %490
  %492 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %483, ptr noundef nonnull align 4 dereferenceable(4) %491)
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = add nsw i32 %493, 1
  %495 = load i32, ptr %19, align 4, !tbaa !5
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp8, i64 0, i64 %496
  %498 = load i32, ptr %20, align 4, !tbaa !5
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds [1111 x i32], ptr %497, i64 0, i64 %499
  store i32 %494, ptr %500, align 4, !tbaa !5
  br label %501

501:                                              ; preds = %476, %467
  br label %502

502:                                              ; preds = %501
  %503 = load i32, ptr %20, align 4, !tbaa !5
  %504 = add nsw i32 %503, -1
  store i32 %504, ptr %20, align 4, !tbaa !5
  br label %463, !llvm.loop !27

505:                                              ; preds = %466
  br label %506

506:                                              ; preds = %505
  %507 = load i32, ptr %19, align 4, !tbaa !5
  %508 = add nsw i32 %507, -1
  store i32 %508, ptr %19, align 4, !tbaa !5
  br label %457, !llvm.loop !28

509:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  store i32 1, ptr %21, align 4, !tbaa !5
  br label %510

510:                                              ; preds = %559, %509
  %511 = load i32, ptr %21, align 4, !tbaa !5
  %512 = load i32, ptr @n, align 4, !tbaa !5
  %513 = icmp sle i32 %511, %512
  br i1 %513, label %515, label %514

514:                                              ; preds = %510
  store i32 56, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  br label %562

515:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  store i32 1, ptr %22, align 4, !tbaa !5
  br label %516

516:                                              ; preds = %555, %515
  %517 = load i32, ptr %22, align 4, !tbaa !5
  %518 = load i32, ptr @m, align 4, !tbaa !5
  %519 = icmp sle i32 %517, %518
  br i1 %519, label %521, label %520

520:                                              ; preds = %516
  store i32 59, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  br label %558

521:                                              ; preds = %516
  %522 = load i32, ptr %21, align 4, !tbaa !5
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %523
  %525 = load i32, ptr %22, align 4, !tbaa !5
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds [1111 x i32], ptr %524, i64 0, i64 %526
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %554

530:                                              ; preds = %521
  %531 = load i32, ptr %21, align 4, !tbaa !5
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp9, i64 0, i64 %532
  %534 = load i32, ptr %22, align 4, !tbaa !5
  %535 = sub nsw i32 %534, 1
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds [1111 x i32], ptr %533, i64 0, i64 %536
  %538 = load i32, ptr %21, align 4, !tbaa !5
  %539 = sub nsw i32 %538, 1
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp9, i64 0, i64 %540
  %542 = load i32, ptr %22, align 4, !tbaa !5
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds [1111 x i32], ptr %541, i64 0, i64 %543
  %545 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %537, ptr noundef nonnull align 4 dereferenceable(4) %544)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = add nsw i32 %546, 1
  %548 = load i32, ptr %21, align 4, !tbaa !5
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp9, i64 0, i64 %549
  %551 = load i32, ptr %22, align 4, !tbaa !5
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds [1111 x i32], ptr %550, i64 0, i64 %552
  store i32 %547, ptr %553, align 4, !tbaa !5
  br label %554

554:                                              ; preds = %530, %521
  br label %555

555:                                              ; preds = %554
  %556 = load i32, ptr %22, align 4, !tbaa !5
  %557 = add nsw i32 %556, 1
  store i32 %557, ptr %22, align 4, !tbaa !5
  br label %516, !llvm.loop !29

558:                                              ; preds = %520
  br label %559

559:                                              ; preds = %558
  %560 = load i32, ptr %21, align 4, !tbaa !5
  %561 = add nsw i32 %560, 1
  store i32 %561, ptr %21, align 4, !tbaa !5
  br label %510, !llvm.loop !30

562:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  store i32 1, ptr %23, align 4, !tbaa !5
  br label %563

563:                                              ; preds = %612, %562
  %564 = load i32, ptr %23, align 4, !tbaa !5
  %565 = load i32, ptr @n, align 4, !tbaa !5
  %566 = icmp sle i32 %564, %565
  br i1 %566, label %568, label %567

567:                                              ; preds = %563
  store i32 62, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br label %615

568:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  %569 = load i32, ptr @m, align 4, !tbaa !5
  store i32 %569, ptr %24, align 4, !tbaa !5
  br label %570

570:                                              ; preds = %608, %568
  %571 = load i32, ptr %24, align 4, !tbaa !5
  %572 = icmp sge i32 %571, 1
  br i1 %572, label %574, label %573

573:                                              ; preds = %570
  store i32 65, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br label %611

574:                                              ; preds = %570
  %575 = load i32, ptr %23, align 4, !tbaa !5
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %576
  %578 = load i32, ptr %24, align 4, !tbaa !5
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds [1111 x i32], ptr %577, i64 0, i64 %579
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = icmp ne i32 %581, 0
  br i1 %582, label %583, label %607

583:                                              ; preds = %574
  %584 = load i32, ptr %23, align 4, !tbaa !5
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp10, i64 0, i64 %585
  %587 = load i32, ptr %24, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds [1111 x i32], ptr %586, i64 0, i64 %589
  %591 = load i32, ptr %23, align 4, !tbaa !5
  %592 = sub nsw i32 %591, 1
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp10, i64 0, i64 %593
  %595 = load i32, ptr %24, align 4, !tbaa !5
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds [1111 x i32], ptr %594, i64 0, i64 %596
  %598 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %590, ptr noundef nonnull align 4 dereferenceable(4) %597)
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = add nsw i32 %599, 1
  %601 = load i32, ptr %23, align 4, !tbaa !5
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp10, i64 0, i64 %602
  %604 = load i32, ptr %24, align 4, !tbaa !5
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds [1111 x i32], ptr %603, i64 0, i64 %605
  store i32 %600, ptr %606, align 4, !tbaa !5
  br label %607

607:                                              ; preds = %583, %574
  br label %608

608:                                              ; preds = %607
  %609 = load i32, ptr %24, align 4, !tbaa !5
  %610 = add nsw i32 %609, -1
  store i32 %610, ptr %24, align 4, !tbaa !5
  br label %570, !llvm.loop !31

611:                                              ; preds = %573
  br label %612

612:                                              ; preds = %611
  %613 = load i32, ptr %23, align 4, !tbaa !5
  %614 = add nsw i32 %613, 1
  store i32 %614, ptr %23, align 4, !tbaa !5
  br label %563, !llvm.loop !32

615:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %616 = load i32, ptr @n, align 4, !tbaa !5
  store i32 %616, ptr %25, align 4, !tbaa !5
  br label %617

617:                                              ; preds = %665, %615
  %618 = load i32, ptr %25, align 4, !tbaa !5
  %619 = icmp sge i32 %618, 1
  br i1 %619, label %621, label %620

620:                                              ; preds = %617
  store i32 68, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %668

621:                                              ; preds = %617
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  store i32 1, ptr %26, align 4, !tbaa !5
  br label %622

622:                                              ; preds = %661, %621
  %623 = load i32, ptr %26, align 4, !tbaa !5
  %624 = load i32, ptr @m, align 4, !tbaa !5
  %625 = icmp sle i32 %623, %624
  br i1 %625, label %627, label %626

626:                                              ; preds = %622
  store i32 71, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  br label %664

627:                                              ; preds = %622
  %628 = load i32, ptr %25, align 4, !tbaa !5
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %629
  %631 = load i32, ptr %26, align 4, !tbaa !5
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds [1111 x i32], ptr %630, i64 0, i64 %632
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = icmp ne i32 %634, 0
  br i1 %635, label %636, label %660

636:                                              ; preds = %627
  %637 = load i32, ptr %25, align 4, !tbaa !5
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp11, i64 0, i64 %638
  %640 = load i32, ptr %26, align 4, !tbaa !5
  %641 = sub nsw i32 %640, 1
  %642 = sext i32 %641 to i64
  %643 = getelementptr inbounds [1111 x i32], ptr %639, i64 0, i64 %642
  %644 = load i32, ptr %25, align 4, !tbaa !5
  %645 = add nsw i32 %644, 1
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp11, i64 0, i64 %646
  %648 = load i32, ptr %26, align 4, !tbaa !5
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds [1111 x i32], ptr %647, i64 0, i64 %649
  %651 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %643, ptr noundef nonnull align 4 dereferenceable(4) %650)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = add nsw i32 %652, 1
  %654 = load i32, ptr %25, align 4, !tbaa !5
  %655 = sext i32 %654 to i64
  %656 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp11, i64 0, i64 %655
  %657 = load i32, ptr %26, align 4, !tbaa !5
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds [1111 x i32], ptr %656, i64 0, i64 %658
  store i32 %653, ptr %659, align 4, !tbaa !5
  br label %660

660:                                              ; preds = %636, %627
  br label %661

661:                                              ; preds = %660
  %662 = load i32, ptr %26, align 4, !tbaa !5
  %663 = add nsw i32 %662, 1
  store i32 %663, ptr %26, align 4, !tbaa !5
  br label %622, !llvm.loop !33

664:                                              ; preds = %626
  br label %665

665:                                              ; preds = %664
  %666 = load i32, ptr %25, align 4, !tbaa !5
  %667 = add nsw i32 %666, -1
  store i32 %667, ptr %25, align 4, !tbaa !5
  br label %617, !llvm.loop !34

668:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  %669 = load i32, ptr @n, align 4, !tbaa !5
  store i32 %669, ptr %27, align 4, !tbaa !5
  br label %670

670:                                              ; preds = %718, %668
  %671 = load i32, ptr %27, align 4, !tbaa !5
  %672 = icmp sge i32 %671, 1
  br i1 %672, label %674, label %673

673:                                              ; preds = %670
  store i32 74, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  br label %721

674:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  %675 = load i32, ptr @m, align 4, !tbaa !5
  store i32 %675, ptr %28, align 4, !tbaa !5
  br label %676

676:                                              ; preds = %714, %674
  %677 = load i32, ptr %28, align 4, !tbaa !5
  %678 = icmp sge i32 %677, 1
  br i1 %678, label %680, label %679

679:                                              ; preds = %676
  store i32 77, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  br label %717

680:                                              ; preds = %676
  %681 = load i32, ptr %27, align 4, !tbaa !5
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %682
  %684 = load i32, ptr %28, align 4, !tbaa !5
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds [1111 x i32], ptr %683, i64 0, i64 %685
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = icmp ne i32 %687, 0
  br i1 %688, label %689, label %713

689:                                              ; preds = %680
  %690 = load i32, ptr %27, align 4, !tbaa !5
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp12, i64 0, i64 %691
  %693 = load i32, ptr %28, align 4, !tbaa !5
  %694 = add nsw i32 %693, 1
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds [1111 x i32], ptr %692, i64 0, i64 %695
  %697 = load i32, ptr %27, align 4, !tbaa !5
  %698 = add nsw i32 %697, 1
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp12, i64 0, i64 %699
  %701 = load i32, ptr %28, align 4, !tbaa !5
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds [1111 x i32], ptr %700, i64 0, i64 %702
  %704 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %696, ptr noundef nonnull align 4 dereferenceable(4) %703)
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = add nsw i32 %705, 1
  %707 = load i32, ptr %27, align 4, !tbaa !5
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp12, i64 0, i64 %708
  %710 = load i32, ptr %28, align 4, !tbaa !5
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds [1111 x i32], ptr %709, i64 0, i64 %711
  store i32 %706, ptr %712, align 4, !tbaa !5
  br label %713

713:                                              ; preds = %689, %680
  br label %714

714:                                              ; preds = %713
  %715 = load i32, ptr %28, align 4, !tbaa !5
  %716 = add nsw i32 %715, -1
  store i32 %716, ptr %28, align 4, !tbaa !5
  br label %676, !llvm.loop !35

717:                                              ; preds = %679
  br label %718

718:                                              ; preds = %717
  %719 = load i32, ptr %27, align 4, !tbaa !5
  %720 = add nsw i32 %719, -1
  store i32 %720, ptr %27, align 4, !tbaa !5
  br label %670, !llvm.loop !36

721:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  store i32 1000000000, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  store i32 1, ptr %30, align 4, !tbaa !5
  br label %722

722:                                              ; preds = %840, %721
  %723 = load i32, ptr %30, align 4, !tbaa !5
  %724 = load i32, ptr @n, align 4, !tbaa !5
  %725 = icmp sle i32 %723, %724
  br i1 %725, label %727, label %726

726:                                              ; preds = %722
  store i32 80, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  br label %843

727:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  store i32 1, ptr %31, align 4, !tbaa !5
  br label %728

728:                                              ; preds = %836, %727
  %729 = load i32, ptr %31, align 4, !tbaa !5
  %730 = load i32, ptr @m, align 4, !tbaa !5
  %731 = icmp sle i32 %729, %730
  br i1 %731, label %733, label %732

732:                                              ; preds = %728
  store i32 83, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  br label %839

733:                                              ; preds = %728
  %734 = load i32, ptr %30, align 4, !tbaa !5
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %735
  %737 = load i32, ptr %31, align 4, !tbaa !5
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds [1111 x i32], ptr %736, i64 0, i64 %738
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = icmp ne i32 %740, 0
  br i1 %741, label %742, label %835

742:                                              ; preds = %733
  %743 = load i32, ptr %30, align 4, !tbaa !5
  %744 = load i32, ptr %31, align 4, !tbaa !5
  %745 = call noundef zeroext i1 @_Z6atedgeii(i32 noundef %743, i32 noundef %744)
  br i1 %745, label %746, label %835

746:                                              ; preds = %742
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  %747 = load i32, ptr %30, align 4, !tbaa !5
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp1, i64 0, i64 %748
  %750 = load i32, ptr %31, align 4, !tbaa !5
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds [1111 x i32], ptr %749, i64 0, i64 %751
  %753 = load i32, ptr %30, align 4, !tbaa !5
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp2, i64 0, i64 %754
  %756 = load i32, ptr %31, align 4, !tbaa !5
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds [1111 x i32], ptr %755, i64 0, i64 %757
  %759 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %752, ptr noundef nonnull align 4 dereferenceable(4) %758)
  %760 = load i32, ptr %30, align 4, !tbaa !5
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp3, i64 0, i64 %761
  %763 = load i32, ptr %31, align 4, !tbaa !5
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds [1111 x i32], ptr %762, i64 0, i64 %764
  %766 = load i32, ptr %30, align 4, !tbaa !5
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp4, i64 0, i64 %767
  %769 = load i32, ptr %31, align 4, !tbaa !5
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds [1111 x i32], ptr %768, i64 0, i64 %770
  %772 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %765, ptr noundef nonnull align 4 dereferenceable(4) %771)
  %773 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %759, ptr noundef nonnull align 4 dereferenceable(4) %772)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  store i32 %774, ptr %32, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  %775 = load i32, ptr %30, align 4, !tbaa !5
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp5, i64 0, i64 %776
  %778 = load i32, ptr %31, align 4, !tbaa !5
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds [1111 x i32], ptr %777, i64 0, i64 %779
  %781 = load i32, ptr %30, align 4, !tbaa !5
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp6, i64 0, i64 %782
  %784 = load i32, ptr %31, align 4, !tbaa !5
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds [1111 x i32], ptr %783, i64 0, i64 %785
  %787 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %780, ptr noundef nonnull align 4 dereferenceable(4) %786)
  %788 = load i32, ptr %30, align 4, !tbaa !5
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp7, i64 0, i64 %789
  %791 = load i32, ptr %31, align 4, !tbaa !5
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds [1111 x i32], ptr %790, i64 0, i64 %792
  %794 = load i32, ptr %30, align 4, !tbaa !5
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp8, i64 0, i64 %795
  %797 = load i32, ptr %31, align 4, !tbaa !5
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds [1111 x i32], ptr %796, i64 0, i64 %798
  %800 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %793, ptr noundef nonnull align 4 dereferenceable(4) %799)
  %801 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %787, ptr noundef nonnull align 4 dereferenceable(4) %800)
  %802 = load i32, ptr %801, align 4, !tbaa !5
  store i32 %802, ptr %33, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  %803 = load i32, ptr %30, align 4, !tbaa !5
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp9, i64 0, i64 %804
  %806 = load i32, ptr %31, align 4, !tbaa !5
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds [1111 x i32], ptr %805, i64 0, i64 %807
  %809 = load i32, ptr %30, align 4, !tbaa !5
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp10, i64 0, i64 %810
  %812 = load i32, ptr %31, align 4, !tbaa !5
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds [1111 x i32], ptr %811, i64 0, i64 %813
  %815 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %808, ptr noundef nonnull align 4 dereferenceable(4) %814)
  %816 = load i32, ptr %30, align 4, !tbaa !5
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp11, i64 0, i64 %817
  %819 = load i32, ptr %31, align 4, !tbaa !5
  %820 = sext i32 %819 to i64
  %821 = getelementptr inbounds [1111 x i32], ptr %818, i64 0, i64 %820
  %822 = load i32, ptr %30, align 4, !tbaa !5
  %823 = sext i32 %822 to i64
  %824 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp12, i64 0, i64 %823
  %825 = load i32, ptr %31, align 4, !tbaa !5
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds [1111 x i32], ptr %824, i64 0, i64 %826
  %828 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %821, ptr noundef nonnull align 4 dereferenceable(4) %827)
  %829 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %815, ptr noundef nonnull align 4 dereferenceable(4) %828)
  %830 = load i32, ptr %829, align 4, !tbaa !5
  store i32 %830, ptr %34, align 4, !tbaa !5
  %831 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %33)
  %832 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %831, ptr noundef nonnull align 4 dereferenceable(4) %34)
  %833 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %832)
  %834 = load i32, ptr %833, align 4, !tbaa !5
  store i32 %834, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  br label %835

835:                                              ; preds = %746, %742, %733
  br label %836

836:                                              ; preds = %835
  %837 = load i32, ptr %31, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr %31, align 4, !tbaa !5
  br label %728, !llvm.loop !37

839:                                              ; preds = %732
  br label %840

840:                                              ; preds = %839
  %841 = load i32, ptr %30, align 4, !tbaa !5
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr %30, align 4, !tbaa !5
  br label %722, !llvm.loop !38

843:                                              ; preds = %726
  %844 = load i32, ptr %29, align 4, !tbaa !5
  %845 = call i32 (ptr, ...) @printf(ptr noundef @.str.2, i32 noundef %844)
  store i32 0, ptr %1, align 4
  store i32 1, ptr %3, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  %846 = load i32, ptr %1, align 4
  ret i32 %846
}

declare i32 @__isoc99_scanf(ptr noundef, ...) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #4

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

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress norecurse 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 = { inlinehint mustprogress 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 #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = distinct !{!12, !11}
!13 = distinct !{!13, !11}
!14 = distinct !{!14, !11}
!15 = distinct !{!15, !11}
!16 = distinct !{!16, !11}
!17 = distinct !{!17, !11}
!18 = distinct !{!18, !11}
!19 = distinct !{!19, !11}
!20 = distinct !{!20, !11}
!21 = distinct !{!21, !11}
!22 = distinct !{!22, !11}
!23 = distinct !{!23, !11}
!24 = distinct !{!24, !11}
!25 = distinct !{!25, !11}
!26 = distinct !{!26, !11}
!27 = distinct !{!27, !11}
!28 = distinct !{!28, !11}
!29 = distinct !{!29, !11}
!30 = distinct !{!30, !11}
!31 = distinct !{!31, !11}
!32 = distinct !{!32, !11}
!33 = distinct !{!33, !11}
!34 = distinct !{!34, !11}
!35 = distinct !{!35, !11}
!36 = distinct !{!36, !11}
!37 = distinct !{!37, !11}
!38 = distinct !{!38, !11}


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

@n = external dso_local global i32, align 4
@m = external dso_local global i32, align 4
@dp1 = external dso_local global [1111 x [1111 x i32]], align 16
@dp2 = external dso_local global [1111 x [1111 x i32]], align 16
@dp3 = external dso_local global [1111 x [1111 x i32]], align 16
@dp4 = external dso_local global [1111 x [1111 x i32]], align 16
@dp5 = external dso_local global [1111 x [1111 x i32]], align 16
@dp6 = external dso_local global [1111 x [1111 x i32]], align 16
@dp7 = external dso_local global [1111 x [1111 x i32]], align 16
@dp8 = external dso_local global [1111 x [1111 x i32]], align 16
@dp9 = external dso_local global [1111 x [1111 x i32]], align 16
@dp10 = external dso_local global [1111 x [1111 x i32]], align 16
@dp11 = external dso_local global [1111 x [1111 x i32]], align 16
@dp12 = external dso_local global [1111 x [1111 x i32]], align 16
@s = external dso_local global [1111 x [1111 x i8]], align 16
@g = external dso_local local_unnamed_addr global [1111 x [1111 x i32]], align 16
@.str = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_Z6atedgeii(i32 noundef, i32 noundef) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress norecurse nounwind uwtable
define dso_local noundef i32 @main() local_unnamed_addr #2 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = tail call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str, ptr noundef nonnull @n, ptr noundef nonnull @m)
  %6 = load i32, ptr @n, align 4, !tbaa !5
  %.not261 = icmp slt i32 %6, 1
  br i1 %.not261, label %._crit_edge345.thread, label %.lr.ph264

.preheader257:                                    ; preds = %._crit_edge
  %.not216269 = icmp slt i32 %23, 1
  br i1 %.not216269, label %._crit_edge345.thread, label %.preheader256.lr.ph

.preheader256.lr.ph:                              ; preds = %.preheader257
  %7 = load i32, ptr @m, align 4, !tbaa !5
  %8 = icmp slt i32 %7, 1
  br i1 %8, label %.preheader251.preheader, label %.preheader256

.lr.ph264:                                        ; preds = %0, %._crit_edge
  %indvars.iv361 = phi i64 [ %indvars.iv.next362, %._crit_edge ], [ 1, %0 ]
  %9 = getelementptr inbounds [1111 x [1111 x i8]], ptr @s, i64 0, i64 %indvars.iv361
  %10 = tail call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str.1, ptr noundef nonnull %9)
  %11 = load i32, ptr @m, align 4, !tbaa !5
  %12 = icmp sgt i32 %11, 0
  br i1 %12, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %.lr.ph264
  %wide.trip.count = zext nneg i32 %11 to i64
  %min.iters.check = icmp ult i32 %11, 8
  br i1 %min.iters.check, label %.lr.ph.preheader541, label %vector.ph

.lr.ph.preheader541:                              ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 0, %.lr.ph.preheader ], [ %n.vec, %middle.block ]
  br label %.lr.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %wide.trip.count, 2147483640
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %13 = getelementptr inbounds [1111 x [1111 x i8]], ptr @s, i64 0, i64 %indvars.iv361, i64 %index
  %14 = getelementptr inbounds i8, ptr %13, i64 4
  %wide.load = load <4 x i8>, ptr %13, align 1, !tbaa !9
  %wide.load528 = load <4 x i8>, ptr %14, align 1, !tbaa !9
  %15 = icmp eq <4 x i8> %wide.load, <i8 35, i8 35, i8 35, i8 35>
  %16 = icmp eq <4 x i8> %wide.load528, <i8 35, i8 35, i8 35, i8 35>
  %17 = zext <4 x i1> %15 to <4 x i32>
  %18 = zext <4 x i1> %16 to <4 x i32>
  %19 = or disjoint i64 %index, 1
  %20 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv361, i64 %19
  %21 = getelementptr inbounds i8, ptr %20, i64 16
  store <4 x i32> %17, ptr %20, align 4, !tbaa !5
  store <4 x i32> %18, ptr %21, align 4, !tbaa !5
  %index.next = add nuw i64 %index, 8
  %22 = icmp eq i64 %index.next, %n.vec
  br i1 %22, label %middle.block, label %vector.body, !llvm.loop !10

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader541

._crit_edge:                                      ; preds = %.lr.ph, %middle.block, %.lr.ph264
  %indvars.iv.next362 = add nuw nsw i64 %indvars.iv361, 1
  %23 = load i32, ptr @n, align 4, !tbaa !5
  %24 = sext i32 %23 to i64
  %.not.not = icmp slt i64 %indvars.iv361, %24
  br i1 %.not.not, label %.lr.ph264, label %.preheader257, !llvm.loop !14

.lr.ph:                                           ; preds = %.lr.ph.preheader541, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %indvars.iv.ph, %.lr.ph.preheader541 ]
  %25 = getelementptr inbounds [1111 x [1111 x i8]], ptr @s, i64 0, i64 %indvars.iv361, i64 %indvars.iv
  %26 = load i8, ptr %25, align 1, !tbaa !9
  %27 = icmp eq i8 %26, 35
  %28 = zext i1 %27 to i32
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %29 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv361, i64 %indvars.iv.next
  store i32 %28, ptr %29, align 4, !tbaa !5
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !15

.preheader256:                                    ; preds = %.preheader256.lr.ph, %._crit_edge268
  %30 = phi i32 [ %35, %._crit_edge268 ], [ %23, %.preheader256.lr.ph ]
  %31 = phi i32 [ %36, %._crit_edge268 ], [ %7, %.preheader256.lr.ph ]
  %32 = phi i32 [ %37, %._crit_edge268 ], [ %7, %.preheader256.lr.ph ]
  %indvars.iv367 = phi i64 [ %indvars.iv.next368, %._crit_edge268 ], [ 1, %.preheader256.lr.ph ]
  %.not241265 = icmp slt i32 %32, 1
  br i1 %.not241265, label %._crit_edge268, label %.lr.ph267

.lr.ph267:                                        ; preds = %.preheader256
  %33 = add nsw i64 %indvars.iv367, -1
  br label %39

.preheader255:                                    ; preds = %._crit_edge268
  %.not217275 = icmp slt i32 %35, 1
  br i1 %.not217275, label %._crit_edge345.thread, label %.lr.ph277

.lr.ph277:                                        ; preds = %.preheader255
  %.pr = load i32, ptr @m, align 4, !tbaa !5
  %34 = icmp sgt i32 %.pr, 0
  br i1 %34, label %.lr.ph277.split, label %.preheader251.preheader

._crit_edge268.loopexit:                          ; preds = %51
  %.pre442 = load i32, ptr @n, align 4, !tbaa !5
  br label %._crit_edge268

._crit_edge268:                                   ; preds = %._crit_edge268.loopexit, %.preheader256
  %35 = phi i32 [ %.pre442, %._crit_edge268.loopexit ], [ %30, %.preheader256 ]
  %36 = phi i32 [ %52, %._crit_edge268.loopexit ], [ %31, %.preheader256 ]
  %37 = phi i32 [ %52, %._crit_edge268.loopexit ], [ %32, %.preheader256 ]
  %indvars.iv.next368 = add nuw nsw i64 %indvars.iv367, 1
  %38 = sext i32 %35 to i64
  %.not216.not = icmp slt i64 %indvars.iv367, %38
  br i1 %.not216.not, label %.preheader256, label %.preheader255, !llvm.loop !16

39:                                               ; preds = %.lr.ph267, %51
  %40 = phi i32 [ %31, %.lr.ph267 ], [ %52, %51 ]
  %indvars.iv364 = phi i64 [ 1, %.lr.ph267 ], [ %indvars.iv.next365, %51 ]
  %41 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv367, i64 %indvars.iv364
  %42 = load i32, ptr %41, align 4, !tbaa !5
  %.not242 = icmp eq i32 %42, 0
  br i1 %.not242, label %51, label %43

43:                                               ; preds = %39
  %44 = add nsw i64 %indvars.iv364, -1
  %45 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp1, i64 0, i64 %indvars.iv367, i64 %44
  %46 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp1, i64 0, i64 %33, i64 %44
  %47 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 4 dereferenceable(4) %46)
  %48 = load i32, ptr %47, align 4, !tbaa !5
  %49 = add nsw i32 %48, 1
  %50 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp1, i64 0, i64 %indvars.iv367, i64 %indvars.iv364
  store i32 %49, ptr %50, align 4, !tbaa !5
  %.pre = load i32, ptr @m, align 4, !tbaa !5
  br label %51

51:                                               ; preds = %39, %43
  %52 = phi i32 [ %40, %39 ], [ %.pre, %43 ]
  %indvars.iv.next365 = add nuw nsw i64 %indvars.iv364, 1
  %53 = sext i32 %52 to i64
  %.not241.not = icmp slt i64 %indvars.iv364, %53
  br i1 %.not241.not, label %39, label %._crit_edge268.loopexit, !llvm.loop !18

.preheader254:                                    ; preds = %._crit_edge274
  %54 = icmp sgt i32 %62, 0
  br i1 %54, label %.preheader253.lr.ph, label %._crit_edge345.thread

.preheader253.lr.ph:                              ; preds = %.preheader254
  %.pr499 = load i32, ptr @m, align 4, !tbaa !5
  %55 = icmp slt i32 %.pr499, 1
  br i1 %55, label %.preheader251.preheader, label %.preheader253.preheader

.preheader253.preheader:                          ; preds = %.preheader253.lr.ph
  %56 = zext nneg i32 %62 to i64
  br label %.preheader253

.lr.ph277.splitthread-pre-split:                  ; preds = %._crit_edge274
  %indvars.iv.next374 = add nuw nsw i64 %indvars.iv373, 1
  %.pr476 = load i32, ptr @m, align 4, !tbaa !5
  br label %.lr.ph277.split

.lr.ph277.split:                                  ; preds = %.lr.ph277, %.lr.ph277.splitthread-pre-split
  %57 = phi i32 [ %.pr476, %.lr.ph277.splitthread-pre-split ], [ %.pr, %.lr.ph277 ]
  %58 = phi i32 [ %62, %.lr.ph277.splitthread-pre-split ], [ %35, %.lr.ph277 ]
  %indvars.iv373 = phi i64 [ %indvars.iv.next374, %.lr.ph277.splitthread-pre-split ], [ 1, %.lr.ph277 ]
  %59 = icmp sgt i32 %57, 0
  br i1 %59, label %.lr.ph273, label %._crit_edge274

.lr.ph273:                                        ; preds = %.lr.ph277.split
  %60 = add nsw i64 %indvars.iv373, -1
  %61 = zext nneg i32 %57 to i64
  br label %64

._crit_edge274.loopexit:                          ; preds = %75
  %.pre443 = load i32, ptr @n, align 4, !tbaa !5
  br label %._crit_edge274

._crit_edge274:                                   ; preds = %._crit_edge274.loopexit, %.lr.ph277.split
  %62 = phi i32 [ %.pre443, %._crit_edge274.loopexit ], [ %58, %.lr.ph277.split ]
  %63 = sext i32 %62 to i64
  %.not217.not = icmp slt i64 %indvars.iv373, %63
  br i1 %.not217.not, label %.lr.ph277.splitthread-pre-split, label %.preheader254, !llvm.loop !19

64:                                               ; preds = %.lr.ph273, %75
  %indvars.iv370 = phi i64 [ %61, %.lr.ph273 ], [ %indvars.iv.next371, %75 ]
  %65 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv373, i64 %indvars.iv370
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %.not240 = icmp eq i32 %66, 0
  br i1 %.not240, label %75, label %67

67:                                               ; preds = %64
  %68 = add nuw nsw i64 %indvars.iv370, 1
  %69 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp2, i64 0, i64 %indvars.iv373, i64 %68
  %70 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp2, i64 0, i64 %60, i64 %68
  %71 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %69, ptr noundef nonnull align 4 dereferenceable(4) %70)
  %72 = load i32, ptr %71, align 4, !tbaa !5
  %73 = add nsw i32 %72, 1
  %74 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp2, i64 0, i64 %indvars.iv373, i64 %indvars.iv370
  store i32 %73, ptr %74, align 4, !tbaa !5
  br label %75

75:                                               ; preds = %64, %67
  %indvars.iv.next371 = add nsw i64 %indvars.iv370, -1
  %76 = icmp sgt i64 %indvars.iv370, 1
  br i1 %76, label %64, label %._crit_edge274.loopexit, !llvm.loop !20

.preheader253:                                    ; preds = %.preheader253.preheader, %._crit_edge281
  %77 = phi i32 [ %.pr499, %.preheader253.preheader ], [ %83, %._crit_edge281 ]
  %78 = phi i32 [ %.pr499, %.preheader253.preheader ], [ %84, %._crit_edge281 ]
  %indvars.iv379 = phi i64 [ %56, %.preheader253.preheader ], [ %indvars.iv.next380, %._crit_edge281 ]
  %.not238278 = icmp slt i32 %78, 1
  br i1 %.not238278, label %._crit_edge281, label %.lr.ph280

.lr.ph280:                                        ; preds = %.preheader253
  %79 = add nuw nsw i64 %indvars.iv379, 1
  br label %86

._crit_edge283:                                   ; preds = %._crit_edge281
  %.pre445 = load i32, ptr @n, align 4, !tbaa !5
  %80 = icmp sgt i32 %.pre445, 0
  br i1 %80, label %.lr.ph290, label %._crit_edge345.thread

.lr.ph290:                                        ; preds = %._crit_edge283
  %.pr479 = load i32, ptr @m, align 4, !tbaa !5
  %81 = icmp sgt i32 %.pr479, 0
  br i1 %81, label %.lr.ph290.split.preheader, label %.preheader251.preheader

.lr.ph290.split.preheader:                        ; preds = %.lr.ph290
  %82 = zext nneg i32 %.pre445 to i64
  br label %.lr.ph290.split

._crit_edge281:                                   ; preds = %98, %.preheader253
  %83 = phi i32 [ %77, %.preheader253 ], [ %99, %98 ]
  %84 = phi i32 [ %78, %.preheader253 ], [ %99, %98 ]
  %indvars.iv.next380 = add nsw i64 %indvars.iv379, -1
  %85 = icmp sgt i64 %indvars.iv379, 1
  br i1 %85, label %.preheader253, label %._crit_edge283, !llvm.loop !21

86:                                               ; preds = %.lr.ph280, %98
  %87 = phi i32 [ %77, %.lr.ph280 ], [ %99, %98 ]
  %indvars.iv376 = phi i64 [ 1, %.lr.ph280 ], [ %indvars.iv.next377, %98 ]
  %88 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv379, i64 %indvars.iv376
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %.not239 = icmp eq i32 %89, 0
  br i1 %.not239, label %98, label %90

90:                                               ; preds = %86
  %91 = add nsw i64 %indvars.iv376, -1
  %92 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp3, i64 0, i64 %indvars.iv379, i64 %91
  %93 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp3, i64 0, i64 %79, i64 %91
  %94 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %92, ptr noundef nonnull align 4 dereferenceable(4) %93)
  %95 = load i32, ptr %94, align 4, !tbaa !5
  %96 = add nsw i32 %95, 1
  %97 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp3, i64 0, i64 %indvars.iv379, i64 %indvars.iv376
  store i32 %96, ptr %97, align 4, !tbaa !5
  %.pre444 = load i32, ptr @m, align 4, !tbaa !5
  br label %98

98:                                               ; preds = %86, %90
  %99 = phi i32 [ %87, %86 ], [ %.pre444, %90 ]
  %indvars.iv.next377 = add nuw nsw i64 %indvars.iv376, 1
  %100 = sext i32 %99 to i64
  %.not238.not = icmp slt i64 %indvars.iv376, %100
  br i1 %.not238.not, label %86, label %._crit_edge281, !llvm.loop !22

.preheader252:                                    ; preds = %._crit_edge287
  %.pre446 = load i32, ptr @n, align 4, !tbaa !5
  %.not218295 = icmp slt i32 %.pre446, 1
  br i1 %.not218295, label %._crit_edge345.thread, label %.preheader251.preheader

.preheader251.preheader:                          ; preds = %.lr.ph277, %.preheader256.lr.ph, %.preheader253.lr.ph, %.lr.ph290, %.preheader252
  %101 = phi i32 [ %.pre446, %.preheader252 ], [ %.pre445, %.lr.ph290 ], [ %62, %.preheader253.lr.ph ], [ %23, %.preheader256.lr.ph ], [ %35, %.lr.ph277 ]
  %.pre447 = load i32, ptr @m, align 4, !tbaa !5
  br label %.preheader251

.lr.ph290.splitthread-pre-split:                  ; preds = %._crit_edge287
  %indvars.iv.next386 = add nsw i64 %indvars.iv385, -1
  %.pr486 = load i32, ptr @m, align 4, !tbaa !5
  br label %.lr.ph290.split

.lr.ph290.split:                                  ; preds = %.lr.ph290.splitthread-pre-split, %.lr.ph290.split.preheader
  %102 = phi i32 [ %.pr486, %.lr.ph290.splitthread-pre-split ], [ %.pr479, %.lr.ph290.split.preheader ]
  %indvars.iv385 = phi i64 [ %indvars.iv.next386, %.lr.ph290.splitthread-pre-split ], [ %82, %.lr.ph290.split.preheader ]
  %103 = icmp sgt i32 %102, 0
  br i1 %103, label %.lr.ph286, label %._crit_edge287

.lr.ph286:                                        ; preds = %.lr.ph290.split
  %104 = add nuw nsw i64 %indvars.iv385, 1
  %105 = zext nneg i32 %102 to i64
  br label %107

._crit_edge287:                                   ; preds = %118, %.lr.ph290.split
  %106 = icmp sgt i64 %indvars.iv385, 1
  br i1 %106, label %.lr.ph290.splitthread-pre-split, label %.preheader252, !llvm.loop !23

107:                                              ; preds = %.lr.ph286, %118
  %indvars.iv382 = phi i64 [ %105, %.lr.ph286 ], [ %indvars.iv.next383, %118 ]
  %108 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv385, i64 %indvars.iv382
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %.not237 = icmp eq i32 %109, 0
  br i1 %.not237, label %118, label %110

110:                                              ; preds = %107
  %111 = add nuw nsw i64 %indvars.iv382, 1
  %112 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp4, i64 0, i64 %indvars.iv385, i64 %111
  %113 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp4, i64 0, i64 %104, i64 %111
  %114 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %112, ptr noundef nonnull align 4 dereferenceable(4) %113)
  %115 = load i32, ptr %114, align 4, !tbaa !5
  %116 = add nsw i32 %115, 1
  %117 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp4, i64 0, i64 %indvars.iv385, i64 %indvars.iv382
  store i32 %116, ptr %117, align 4, !tbaa !5
  br label %118

118:                                              ; preds = %107, %110
  %indvars.iv.next383 = add nsw i64 %indvars.iv382, -1
  %119 = icmp sgt i64 %indvars.iv382, 1
  br i1 %119, label %107, label %._crit_edge287, !llvm.loop !24

.preheader251:                                    ; preds = %.preheader251.preheader, %._crit_edge294
  %120 = phi i32 [ %101, %.preheader251.preheader ], [ %124, %._crit_edge294 ]
  %121 = phi i32 [ %.pre447, %.preheader251.preheader ], [ %125, %._crit_edge294 ]
  %122 = phi i32 [ %.pre447, %.preheader251.preheader ], [ %126, %._crit_edge294 ]
  %indvars.iv391 = phi i64 [ 1, %.preheader251.preheader ], [ %indvars.iv.next392, %._crit_edge294 ]
  %.not235291 = icmp slt i32 %122, 1
  br i1 %.not235291, label %._crit_edge294, label %.lr.ph293

.lr.ph293:                                        ; preds = %.preheader251
  %123 = add nsw i64 %indvars.iv391, -1
  br label %128

.preheader250:                                    ; preds = %._crit_edge294
  %.not219301 = icmp slt i32 %124, 1
  br i1 %.not219301, label %._crit_edge345.thread, label %.lr.ph303

._crit_edge294.loopexit:                          ; preds = %140
  %.pre449 = load i32, ptr @n, align 4, !tbaa !5
  br label %._crit_edge294

._crit_edge294:                                   ; preds = %._crit_edge294.loopexit, %.preheader251
  %124 = phi i32 [ %.pre449, %._crit_edge294.loopexit ], [ %120, %.preheader251 ]
  %125 = phi i32 [ %141, %._crit_edge294.loopexit ], [ %121, %.preheader251 ]
  %126 = phi i32 [ %141, %._crit_edge294.loopexit ], [ %122, %.preheader251 ]
  %indvars.iv.next392 = add nuw nsw i64 %indvars.iv391, 1
  %127 = sext i32 %124 to i64
  %.not218.not = icmp slt i64 %indvars.iv391, %127
  br i1 %.not218.not, label %.preheader251, label %.preheader250, !llvm.loop !25

128:                                              ; preds = %.lr.ph293, %140
  %129 = phi i32 [ %121, %.lr.ph293 ], [ %141, %140 ]
  %indvars.iv388 = phi i64 [ 1, %.lr.ph293 ], [ %indvars.iv.next389, %140 ]
  %130 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv391, i64 %indvars.iv388
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %.not236 = icmp eq i32 %131, 0
  br i1 %.not236, label %140, label %132

132:                                              ; preds = %128
  %133 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp5, i64 0, i64 %123, i64 %indvars.iv388
  %134 = add nsw i64 %indvars.iv388, -1
  %135 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp5, i64 0, i64 %123, i64 %134
  %136 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %133, ptr noundef nonnull align 4 dereferenceable(4) %135)
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %138 = add nsw i32 %137, 1
  %139 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp5, i64 0, i64 %indvars.iv391, i64 %indvars.iv388
  store i32 %138, ptr %139, align 4, !tbaa !5
  %.pre448 = load i32, ptr @m, align 4, !tbaa !5
  br label %140

140:                                              ; preds = %128, %132
  %141 = phi i32 [ %129, %128 ], [ %.pre448, %132 ]
  %indvars.iv.next389 = add nuw nsw i64 %indvars.iv388, 1
  %142 = sext i32 %141 to i64
  %.not235.not = icmp slt i64 %indvars.iv388, %142
  br i1 %.not235.not, label %128, label %._crit_edge294.loopexit, !llvm.loop !26

.preheader249:                                    ; preds = %._crit_edge300
  %143 = icmp sgt i32 %150, 0
  br i1 %143, label %.preheader248.preheader, label %._crit_edge345.thread

.preheader248.preheader:                          ; preds = %.preheader249
  %144 = zext nneg i32 %150 to i64
  %.pre451 = load i32, ptr @m, align 4, !tbaa !5
  br label %.preheader248

.lr.ph303:                                        ; preds = %.preheader250, %._crit_edge300
  %145 = phi i32 [ %150, %._crit_edge300 ], [ %124, %.preheader250 ]
  %indvars.iv397 = phi i64 [ %indvars.iv.next398, %._crit_edge300 ], [ 1, %.preheader250 ]
  %146 = load i32, ptr @m, align 4, !tbaa !5
  %147 = icmp sgt i32 %146, 0
  br i1 %147, label %.lr.ph299, label %._crit_edge300

.lr.ph299:                                        ; preds = %.lr.ph303
  %148 = add nsw i64 %indvars.iv397, -1
  %149 = zext nneg i32 %146 to i64
  br label %152

._crit_edge300.loopexit:                          ; preds = %163
  %.pre450 = load i32, ptr @n, align 4, !tbaa !5
  br label %._crit_edge300

._crit_edge300:                                   ; preds = %._crit_edge300.loopexit, %.lr.ph303
  %150 = phi i32 [ %.pre450, %._crit_edge300.loopexit ], [ %145, %.lr.ph303 ]
  %indvars.iv.next398 = add nuw nsw i64 %indvars.iv397, 1
  %151 = sext i32 %150 to i64
  %.not219.not = icmp slt i64 %indvars.iv397, %151
  br i1 %.not219.not, label %.lr.ph303, label %.preheader249, !llvm.loop !27

152:                                              ; preds = %.lr.ph299, %163
  %indvars.iv394 = phi i64 [ %149, %.lr.ph299 ], [ %indvars.iv.next395, %163 ]
  %153 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv397, i64 %indvars.iv394
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %.not234 = icmp eq i32 %154, 0
  br i1 %.not234, label %163, label %155

155:                                              ; preds = %152
  %156 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp6, i64 0, i64 %148, i64 %indvars.iv394
  %157 = add nuw nsw i64 %indvars.iv394, 1
  %158 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp6, i64 0, i64 %148, i64 %157
  %159 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %156, ptr noundef nonnull align 4 dereferenceable(4) %158)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = add nsw i32 %160, 1
  %162 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp6, i64 0, i64 %indvars.iv397, i64 %indvars.iv394
  store i32 %161, ptr %162, align 4, !tbaa !5
  br label %163

163:                                              ; preds = %152, %155
  %indvars.iv.next395 = add nsw i64 %indvars.iv394, -1
  %164 = icmp sgt i64 %indvars.iv394, 1
  br i1 %164, label %152, label %._crit_edge300.loopexit, !llvm.loop !28

.preheader248:                                    ; preds = %.preheader248.preheader, %._crit_edge308
  %165 = phi i32 [ %.pre451, %.preheader248.preheader ], [ %170, %._crit_edge308 ]
  %166 = phi i32 [ %.pre451, %.preheader248.preheader ], [ %171, %._crit_edge308 ]
  %indvars.iv403 = phi i64 [ %144, %.preheader248.preheader ], [ %indvars.iv.next404, %._crit_edge308 ]
  %.not232305 = icmp slt i32 %166, 1
  br i1 %.not232305, label %._crit_edge308, label %.lr.ph307

.lr.ph307:                                        ; preds = %.preheader248
  %167 = add nuw nsw i64 %indvars.iv403, 1
  br label %173

._crit_edge310:                                   ; preds = %._crit_edge308
  %.pre453 = load i32, ptr @n, align 4, !tbaa !5
  %168 = icmp sgt i32 %.pre453, 0
  br i1 %168, label %.lr.ph317.preheader, label %._crit_edge345.thread

.lr.ph317.preheader:                              ; preds = %._crit_edge310
  %169 = zext nneg i32 %.pre453 to i64
  br label %.lr.ph317

._crit_edge308:                                   ; preds = %185, %.preheader248
  %170 = phi i32 [ %165, %.preheader248 ], [ %186, %185 ]
  %171 = phi i32 [ %166, %.preheader248 ], [ %186, %185 ]
  %indvars.iv.next404 = add nsw i64 %indvars.iv403, -1
  %172 = icmp sgt i64 %indvars.iv403, 1
  br i1 %172, label %.preheader248, label %._crit_edge310, !llvm.loop !29

173:                                              ; preds = %.lr.ph307, %185
  %174 = phi i32 [ %165, %.lr.ph307 ], [ %186, %185 ]
  %indvars.iv400 = phi i64 [ 1, %.lr.ph307 ], [ %indvars.iv.next401, %185 ]
  %175 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv403, i64 %indvars.iv400
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %.not233 = icmp eq i32 %176, 0
  br i1 %.not233, label %185, label %177

177:                                              ; preds = %173
  %178 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp7, i64 0, i64 %167, i64 %indvars.iv400
  %179 = add nsw i64 %indvars.iv400, -1
  %180 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp7, i64 0, i64 %167, i64 %179
  %181 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %178, ptr noundef nonnull align 4 dereferenceable(4) %180)
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = add nsw i32 %182, 1
  %184 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp7, i64 0, i64 %indvars.iv403, i64 %indvars.iv400
  store i32 %183, ptr %184, align 4, !tbaa !5
  %.pre452 = load i32, ptr @m, align 4, !tbaa !5
  br label %185

185:                                              ; preds = %173, %177
  %186 = phi i32 [ %174, %173 ], [ %.pre452, %177 ]
  %indvars.iv.next401 = add nuw nsw i64 %indvars.iv400, 1
  %187 = sext i32 %186 to i64
  %.not232.not = icmp slt i64 %indvars.iv400, %187
  br i1 %.not232.not, label %173, label %._crit_edge308, !llvm.loop !30

.preheader247:                                    ; preds = %._crit_edge314
  %.pre454 = load i32, ptr @n, align 4, !tbaa !5
  %.not220322 = icmp slt i32 %.pre454, 1
  br i1 %.not220322, label %._crit_edge345.thread, label %.preheader246.preheader

.preheader246.preheader:                          ; preds = %.preheader247
  %.pre455 = load i32, ptr @m, align 4, !tbaa !5
  br label %.preheader246

.lr.ph317:                                        ; preds = %.lr.ph317.preheader, %._crit_edge314
  %indvars.iv409 = phi i64 [ %169, %.lr.ph317.preheader ], [ %indvars.iv.next410, %._crit_edge314 ]
  %188 = load i32, ptr @m, align 4, !tbaa !5
  %189 = icmp sgt i32 %188, 0
  br i1 %189, label %.lr.ph313, label %._crit_edge314

.lr.ph313:                                        ; preds = %.lr.ph317
  %190 = add nuw nsw i64 %indvars.iv409, 1
  %191 = zext nneg i32 %188 to i64
  br label %193

._crit_edge314:                                   ; preds = %204, %.lr.ph317
  %indvars.iv.next410 = add nsw i64 %indvars.iv409, -1
  %192 = icmp sgt i64 %indvars.iv409, 1
  br i1 %192, label %.lr.ph317, label %.preheader247, !llvm.loop !31

193:                                              ; preds = %.lr.ph313, %204
  %indvars.iv406 = phi i64 [ %191, %.lr.ph313 ], [ %indvars.iv.next407, %204 ]
  %194 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv409, i64 %indvars.iv406
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %.not231 = icmp eq i32 %195, 0
  br i1 %.not231, label %204, label %196

196:                                              ; preds = %193
  %197 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp8, i64 0, i64 %190, i64 %indvars.iv406
  %198 = add nuw nsw i64 %indvars.iv406, 1
  %199 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp8, i64 0, i64 %190, i64 %198
  %200 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %197, ptr noundef nonnull align 4 dereferenceable(4) %199)
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = add nsw i32 %201, 1
  %203 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp8, i64 0, i64 %indvars.iv409, i64 %indvars.iv406
  store i32 %202, ptr %203, align 4, !tbaa !5
  br label %204

204:                                              ; preds = %193, %196
  %indvars.iv.next407 = add nsw i64 %indvars.iv406, -1
  %205 = icmp sgt i64 %indvars.iv406, 1
  br i1 %205, label %193, label %._crit_edge314, !llvm.loop !32

.preheader246:                                    ; preds = %.preheader246.preheader, %._crit_edge321
  %206 = phi i32 [ %.pre454, %.preheader246.preheader ], [ %210, %._crit_edge321 ]
  %207 = phi i32 [ %.pre455, %.preheader246.preheader ], [ %211, %._crit_edge321 ]
  %208 = phi i32 [ %.pre455, %.preheader246.preheader ], [ %212, %._crit_edge321 ]
  %indvars.iv415 = phi i64 [ 1, %.preheader246.preheader ], [ %indvars.iv.next416, %._crit_edge321 ]
  %.not229318 = icmp slt i32 %208, 1
  br i1 %.not229318, label %._crit_edge321, label %.lr.ph320

.lr.ph320:                                        ; preds = %.preheader246
  %209 = add nsw i64 %indvars.iv415, -1
  br label %214

.preheader245:                                    ; preds = %._crit_edge321
  %.not221328 = icmp slt i32 %210, 1
  br i1 %.not221328, label %._crit_edge345.thread, label %.lr.ph330

._crit_edge321.loopexit:                          ; preds = %226
  %.pre457 = load i32, ptr @n, align 4, !tbaa !5
  br label %._crit_edge321

._crit_edge321:                                   ; preds = %._crit_edge321.loopexit, %.preheader246
  %210 = phi i32 [ %.pre457, %._crit_edge321.loopexit ], [ %206, %.preheader246 ]
  %211 = phi i32 [ %227, %._crit_edge321.loopexit ], [ %207, %.preheader246 ]
  %212 = phi i32 [ %227, %._crit_edge321.loopexit ], [ %208, %.preheader246 ]
  %indvars.iv.next416 = add nuw nsw i64 %indvars.iv415, 1
  %213 = sext i32 %210 to i64
  %.not220.not = icmp slt i64 %indvars.iv415, %213
  br i1 %.not220.not, label %.preheader246, label %.preheader245, !llvm.loop !33

214:                                              ; preds = %.lr.ph320, %226
  %215 = phi i32 [ %207, %.lr.ph320 ], [ %227, %226 ]
  %indvars.iv412 = phi i64 [ 1, %.lr.ph320 ], [ %indvars.iv.next413, %226 ]
  %216 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv415, i64 %indvars.iv412
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %.not230 = icmp eq i32 %217, 0
  br i1 %.not230, label %226, label %218

218:                                              ; preds = %214
  %219 = add nsw i64 %indvars.iv412, -1
  %220 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp9, i64 0, i64 %indvars.iv415, i64 %219
  %221 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp9, i64 0, i64 %209, i64 %indvars.iv412
  %222 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %220, ptr noundef nonnull align 4 dereferenceable(4) %221)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = add nsw i32 %223, 1
  %225 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp9, i64 0, i64 %indvars.iv415, i64 %indvars.iv412
  store i32 %224, ptr %225, align 4, !tbaa !5
  %.pre456 = load i32, ptr @m, align 4, !tbaa !5
  br label %226

226:                                              ; preds = %214, %218
  %227 = phi i32 [ %215, %214 ], [ %.pre456, %218 ]
  %indvars.iv.next413 = add nuw nsw i64 %indvars.iv412, 1
  %228 = sext i32 %227 to i64
  %.not229.not = icmp slt i64 %indvars.iv412, %228
  br i1 %.not229.not, label %214, label %._crit_edge321.loopexit, !llvm.loop !34

.preheader244:                                    ; preds = %._crit_edge327
  %229 = icmp sgt i32 %236, 0
  br i1 %229, label %.preheader243.preheader, label %._crit_edge345.thread

.preheader243.preheader:                          ; preds = %.preheader244
  %230 = zext nneg i32 %236 to i64
  %.pre459 = load i32, ptr @m, align 4, !tbaa !5
  br label %.preheader243

.lr.ph330:                                        ; preds = %.preheader245, %._crit_edge327
  %231 = phi i32 [ %236, %._crit_edge327 ], [ %210, %.preheader245 ]
  %indvars.iv421 = phi i64 [ %indvars.iv.next422, %._crit_edge327 ], [ 1, %.preheader245 ]
  %232 = load i32, ptr @m, align 4, !tbaa !5
  %233 = icmp sgt i32 %232, 0
  br i1 %233, label %.lr.ph326, label %._crit_edge327

.lr.ph326:                                        ; preds = %.lr.ph330
  %234 = add nsw i64 %indvars.iv421, -1
  %235 = zext nneg i32 %232 to i64
  br label %238

._crit_edge327.loopexit:                          ; preds = %249
  %.pre458 = load i32, ptr @n, align 4, !tbaa !5
  br label %._crit_edge327

._crit_edge327:                                   ; preds = %._crit_edge327.loopexit, %.lr.ph330
  %236 = phi i32 [ %.pre458, %._crit_edge327.loopexit ], [ %231, %.lr.ph330 ]
  %indvars.iv.next422 = add nuw nsw i64 %indvars.iv421, 1
  %237 = sext i32 %236 to i64
  %.not221.not = icmp slt i64 %indvars.iv421, %237
  br i1 %.not221.not, label %.lr.ph330, label %.preheader244, !llvm.loop !35

238:                                              ; preds = %.lr.ph326, %249
  %indvars.iv418 = phi i64 [ %235, %.lr.ph326 ], [ %indvars.iv.next419, %249 ]
  %239 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv421, i64 %indvars.iv418
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %.not228 = icmp eq i32 %240, 0
  br i1 %.not228, label %249, label %241

241:                                              ; preds = %238
  %242 = add nuw nsw i64 %indvars.iv418, 1
  %243 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp10, i64 0, i64 %indvars.iv421, i64 %242
  %244 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp10, i64 0, i64 %234, i64 %indvars.iv418
  %245 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %243, ptr noundef nonnull align 4 dereferenceable(4) %244)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = add nsw i32 %246, 1
  %248 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp10, i64 0, i64 %indvars.iv421, i64 %indvars.iv418
  store i32 %247, ptr %248, align 4, !tbaa !5
  br label %249

249:                                              ; preds = %238, %241
  %indvars.iv.next419 = add nsw i64 %indvars.iv418, -1
  %250 = icmp sgt i64 %indvars.iv418, 1
  br i1 %250, label %238, label %._crit_edge327.loopexit, !llvm.loop !36

.preheader243:                                    ; preds = %.preheader243.preheader, %._crit_edge335
  %251 = phi i32 [ %.pre459, %.preheader243.preheader ], [ %256, %._crit_edge335 ]
  %252 = phi i32 [ %.pre459, %.preheader243.preheader ], [ %257, %._crit_edge335 ]
  %indvars.iv427 = phi i64 [ %230, %.preheader243.preheader ], [ %indvars.iv.next428, %._crit_edge335 ]
  %.not226332 = icmp slt i32 %252, 1
  br i1 %.not226332, label %._crit_edge335, label %.lr.ph334

.lr.ph334:                                        ; preds = %.preheader243
  %253 = add nuw nsw i64 %indvars.iv427, 1
  br label %259

._crit_edge337:                                   ; preds = %._crit_edge335
  %.pre461 = load i32, ptr @n, align 4, !tbaa !5
  %254 = icmp sgt i32 %.pre461, 0
  br i1 %254, label %.lr.ph344.preheader, label %._crit_edge345.thread

.lr.ph344.preheader:                              ; preds = %._crit_edge337
  %255 = zext nneg i32 %.pre461 to i64
  br label %.lr.ph344

._crit_edge335:                                   ; preds = %271, %.preheader243
  %256 = phi i32 [ %251, %.preheader243 ], [ %272, %271 ]
  %257 = phi i32 [ %252, %.preheader243 ], [ %272, %271 ]
  %indvars.iv.next428 = add nsw i64 %indvars.iv427, -1
  %258 = icmp sgt i64 %indvars.iv427, 1
  br i1 %258, label %.preheader243, label %._crit_edge337, !llvm.loop !37

259:                                              ; preds = %.lr.ph334, %271
  %260 = phi i32 [ %251, %.lr.ph334 ], [ %272, %271 ]
  %indvars.iv424 = phi i64 [ 1, %.lr.ph334 ], [ %indvars.iv.next425, %271 ]
  %261 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv427, i64 %indvars.iv424
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %.not227 = icmp eq i32 %262, 0
  br i1 %.not227, label %271, label %263

263:                                              ; preds = %259
  %264 = add nsw i64 %indvars.iv424, -1
  %265 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp11, i64 0, i64 %indvars.iv427, i64 %264
  %266 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp11, i64 0, i64 %253, i64 %indvars.iv424
  %267 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %265, ptr noundef nonnull align 4 dereferenceable(4) %266)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  %270 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp11, i64 0, i64 %indvars.iv427, i64 %indvars.iv424
  store i32 %269, ptr %270, align 4, !tbaa !5
  %.pre460 = load i32, ptr @m, align 4, !tbaa !5
  br label %271

271:                                              ; preds = %259, %263
  %272 = phi i32 [ %260, %259 ], [ %.pre460, %263 ]
  %indvars.iv.next425 = add nuw nsw i64 %indvars.iv424, 1
  %273 = sext i32 %272 to i64
  %.not226.not = icmp slt i64 %indvars.iv424, %273
  br i1 %.not226.not, label %259, label %._crit_edge335, !llvm.loop !38

._crit_edge345.thread:                            ; preds = %._crit_edge337, %.preheader244, %.preheader245, %.preheader247, %._crit_edge310, %.preheader249, %.preheader250, %.preheader252, %._crit_edge283, %.preheader254, %.preheader255, %.preheader257, %0
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1) #5
  store i32 1000000000, ptr %1, align 4, !tbaa !5
  br label %._crit_edge352

._crit_edge345:                                   ; preds = %._crit_edge341
  %.pre462 = load i32, ptr @n, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1) #5
  store i32 1000000000, ptr %1, align 4, !tbaa !5
  %.not222350 = icmp slt i32 %.pre462, 1
  br i1 %.not222350, label %._crit_edge352, label %.preheader.preheader

.preheader.preheader:                             ; preds = %._crit_edge345
  %.pre463 = load i32, ptr @m, align 4, !tbaa !5
  br label %.preheader

.lr.ph344:                                        ; preds = %.lr.ph344.preheader, %._crit_edge341
  %indvars.iv433 = phi i64 [ %255, %.lr.ph344.preheader ], [ %indvars.iv.next434, %._crit_edge341 ]
  %274 = load i32, ptr @m, align 4, !tbaa !5
  %275 = icmp sgt i32 %274, 0
  br i1 %275, label %.lr.ph340, label %._crit_edge341

.lr.ph340:                                        ; preds = %.lr.ph344
  %276 = add nuw nsw i64 %indvars.iv433, 1
  %277 = zext nneg i32 %274 to i64
  br label %279

._crit_edge341:                                   ; preds = %290, %.lr.ph344
  %indvars.iv.next434 = add nsw i64 %indvars.iv433, -1
  %278 = icmp sgt i64 %indvars.iv433, 1
  br i1 %278, label %.lr.ph344, label %._crit_edge345, !llvm.loop !39

279:                                              ; preds = %.lr.ph340, %290
  %indvars.iv430 = phi i64 [ %277, %.lr.ph340 ], [ %indvars.iv.next431, %290 ]
  %280 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv433, i64 %indvars.iv430
  %281 = load i32, ptr %280, align 4, !tbaa !5
  %.not225 = icmp eq i32 %281, 0
  br i1 %.not225, label %290, label %282

282:                                              ; preds = %279
  %283 = add nuw nsw i64 %indvars.iv430, 1
  %284 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp12, i64 0, i64 %indvars.iv433, i64 %283
  %285 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp12, i64 0, i64 %276, i64 %indvars.iv430
  %286 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %284, ptr noundef nonnull align 4 dereferenceable(4) %285)
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = add nsw i32 %287, 1
  %289 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp12, i64 0, i64 %indvars.iv433, i64 %indvars.iv430
  store i32 %288, ptr %289, align 4, !tbaa !5
  br label %290

290:                                              ; preds = %279, %282
  %indvars.iv.next431 = add nsw i64 %indvars.iv430, -1
  %291 = icmp sgt i64 %indvars.iv430, 1
  br i1 %291, label %279, label %._crit_edge341, !llvm.loop !40

.preheader:                                       ; preds = %.preheader.preheader, %._crit_edge349
  %292 = phi i32 [ %.pre462, %.preheader.preheader ], [ %297, %._crit_edge349 ]
  %293 = phi i32 [ %.pre463, %.preheader.preheader ], [ %298, %._crit_edge349 ]
  %indvars.iv439 = phi i64 [ 1, %.preheader.preheader ], [ %indvars.iv.next440, %._crit_edge349 ]
  %.not223346 = icmp slt i32 %293, 1
  br i1 %.not223346, label %._crit_edge349, label %.lr.ph348

.lr.ph348:                                        ; preds = %.preheader
  %294 = trunc nuw nsw i64 %indvars.iv439 to i32
  br label %300

._crit_edge352.loopexit:                          ; preds = %._crit_edge349
  %.pre465 = load i32, ptr %1, align 4, !tbaa !5
  br label %._crit_edge352

._crit_edge352:                                   ; preds = %._crit_edge345.thread, %._crit_edge352.loopexit, %._crit_edge345
  %295 = phi i32 [ %.pre465, %._crit_edge352.loopexit ], [ 1000000000, %._crit_edge345 ], [ 1000000000, %._crit_edge345.thread ]
  %296 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, i32 noundef %295)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #5
  ret i32 0

._crit_edge349.loopexit:                          ; preds = %335
  %.pre464 = load i32, ptr @n, align 4, !tbaa !5
  br label %._crit_edge349

._crit_edge349:                                   ; preds = %._crit_edge349.loopexit, %.preheader
  %297 = phi i32 [ %.pre464, %._crit_edge349.loopexit ], [ %292, %.preheader ]
  %298 = phi i32 [ %336, %._crit_edge349.loopexit ], [ %293, %.preheader ]
  %indvars.iv.next440 = add nuw nsw i64 %indvars.iv439, 1
  %299 = sext i32 %297 to i64
  %.not222.not = icmp slt i64 %indvars.iv439, %299
  br i1 %.not222.not, label %.preheader, label %._crit_edge352.loopexit, !llvm.loop !41

300:                                              ; preds = %.lr.ph348, %335
  %indvars.iv436 = phi i64 [ 1, %.lr.ph348 ], [ %indvars.iv.next437, %335 ]
  %301 = getelementptr inbounds [1111 x [1111 x i32]], ptr @g, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %.not224 = icmp eq i32 %302, 0
  br i1 %.not224, label %335, label %303

303:                                              ; preds = %300
  %304 = trunc nuw nsw i64 %indvars.iv436 to i32
  %305 = call noundef zeroext i1 @_Z6atedgeii(i32 noundef %294, i32 noundef %304)
  br i1 %305, label %306, label %335

306:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #5
  %307 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp1, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %308 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp2, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %309 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %307, ptr noundef nonnull align 4 dereferenceable(4) %308)
  %310 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp3, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %311 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp4, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %312 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %310, ptr noundef nonnull align 4 dereferenceable(4) %311)
  %313 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %309, ptr noundef nonnull align 4 dereferenceable(4) %312)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  store i32 %314, ptr %2, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #5
  %315 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp5, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %316 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp6, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %317 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %315, ptr noundef nonnull align 4 dereferenceable(4) %316)
  %318 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp7, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %319 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp8, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %320 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %318, ptr noundef nonnull align 4 dereferenceable(4) %319)
  %321 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %317, ptr noundef nonnull align 4 dereferenceable(4) %320)
  %322 = load i32, ptr %321, align 4, !tbaa !5
  store i32 %322, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #5
  %323 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp9, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %324 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp10, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %325 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %323, ptr noundef nonnull align 4 dereferenceable(4) %324)
  %326 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp11, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %327 = getelementptr inbounds [1111 x [1111 x i32]], ptr @dp12, i64 0, i64 %indvars.iv439, i64 %indvars.iv436
  %328 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %326, ptr noundef nonnull align 4 dereferenceable(4) %327)
  %329 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %325, ptr noundef nonnull align 4 dereferenceable(4) %328)
  %330 = load i32, ptr %329, align 4, !tbaa !5
  store i32 %330, ptr %4, align 4, !tbaa !5
  %331 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %3)
  %332 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %331, ptr noundef nonnull align 4 dereferenceable(4) %4)
  %333 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %1, ptr noundef nonnull align 4 dereferenceable(4) %332)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  store i32 %334, ptr %1, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #5
  br label %335

335:                                              ; preds = %300, %303, %306
  %indvars.iv.next437 = add nuw nsw i64 %indvars.iv436, 1
  %336 = load i32, ptr @m, align 4, !tbaa !5
  %337 = sext i32 %336 to i64
  %.not223.not = icmp slt i64 %indvars.iv436, %337
  br i1 %.not223.not, label %300, label %._crit_edge349.loopexit, !llvm.loop !42
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

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

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress norecurse 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 = { 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 #4 = { inlinehint mustprogress 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 #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = distinct !{!10, !11, !12, !13}
!11 = !{!"llvm.loop.mustprogress"}
!12 = !{!"llvm.loop.isvectorized", i32 1}
!13 = !{!"llvm.loop.unroll.runtime.disable"}
!14 = distinct !{!14, !11}
!15 = distinct !{!15, !11, !13, !12}
!16 = distinct !{!16, !11, !17}
!17 = !{!"llvm.loop.unswitch.partial.disable"}
!18 = distinct !{!18, !11}
!19 = distinct !{!19, !11, !17}
!20 = distinct !{!20, !11}
!21 = distinct !{!21, !11, !17}
!22 = distinct !{!22, !11}
!23 = distinct !{!23, !11, !17}
!24 = distinct !{!24, !11}
!25 = distinct !{!25, !11}
!26 = distinct !{!26, !11}
!27 = distinct !{!27, !11}
!28 = distinct !{!28, !11}
!29 = distinct !{!29, !11}
!30 = distinct !{!30, !11}
!31 = distinct !{!31, !11}
!32 = distinct !{!32, !11}
!33 = distinct !{!33, !11}
!34 = distinct !{!34, !11}
!35 = distinct !{!35, !11}
!36 = distinct !{!36, !11}
!37 = distinct !{!37, !11}
!38 = distinct !{!38, !11}
!39 = distinct !{!39, !11}
!40 = distinct !{!40, !11}
!41 = distinct !{!41, !11}
!42 = distinct !{!42, !11}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass,TailCallElimPass