; LLVM IR from ANL-CESAR/XSBench :: openmp-threading (io)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.Inputs = type { i32, i64, i64, i32, ptr, i32, i32, i32, i32, i32, i32 }

@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #1

; Function Attrs: nounwind uwtable
declare dso_local void @print_CLI_error() #2

; Function Attrs: nounwind uwtable
define dso_local void @read_CLI(ptr dead_on_unwind noalias writable sret(%struct.Inputs) align 8 %0, i32 noundef %1, ptr noundef %2) #2 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  store i32 %1, ptr %4, align 4, !tbaa !5
  store ptr %2, ptr %5, align 8, !tbaa !9
  %14 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 8
  store i32 1, ptr %14, align 4, !tbaa !11
  %15 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 0
  store i32 1, ptr %15, align 8, !tbaa !14
  %16 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 1
  store i64 355, ptr %16, align 8, !tbaa !15
  %17 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 2
  store i64 11303, ptr %17, align 8, !tbaa !16
  %18 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 7
  store i32 500000, ptr %18, align 8, !tbaa !17
  %19 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 3
  store i32 34, ptr %19, align 8, !tbaa !18
  %20 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 5
  store i32 0, ptr %20, align 8, !tbaa !19
  %21 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 6
  store i32 10000, ptr %21, align 4, !tbaa !20
  %22 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 9
  store i32 0, ptr %22, align 8, !tbaa !21
  %23 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 10
  store i32 0, ptr %23, align 4, !tbaa !22
  %24 = call noalias ptr @malloc(i64 noundef 6) #5
  %25 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  store ptr %24, ptr %25, align 8, !tbaa !23
  %26 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %27 = load ptr, ptr %26, align 8, !tbaa !23
  %28 = getelementptr inbounds i8, ptr %27, i64 0
  store i8 108, ptr %28, align 1, !tbaa !24
  %29 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %30 = load ptr, ptr %29, align 8, !tbaa !23
  %31 = getelementptr inbounds i8, ptr %30, i64 1
  store i8 97, ptr %31, align 1, !tbaa !24
  %32 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %33 = load ptr, ptr %32, align 8, !tbaa !23
  %34 = getelementptr inbounds i8, ptr %33, i64 2
  store i8 114, ptr %34, align 1, !tbaa !24
  %35 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %36 = load ptr, ptr %35, align 8, !tbaa !23
  %37 = getelementptr inbounds i8, ptr %36, i64 3
  store i8 103, ptr %37, align 1, !tbaa !24
  %38 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %39 = load ptr, ptr %38, align 8, !tbaa !23
  %40 = getelementptr inbounds i8, ptr %39, i64 4
  store i8 101, ptr %40, align 1, !tbaa !24
  %41 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %42 = load ptr, ptr %41, align 8, !tbaa !23
  %43 = getelementptr inbounds i8, ptr %42, i64 5
  store i8 0, ptr %43, align 1, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #6
  store i32 0, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #6
  store i32 1, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #6
  store i32 1, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  store i32 1, ptr %9, align 4, !tbaa !5
  br label %44

44:                                               ; preds = %311, %3
  %45 = load i32, ptr %9, align 4, !tbaa !5
  %46 = load i32, ptr %4, align 4, !tbaa !5
  %47 = icmp slt i32 %45, %46
  br i1 %47, label %49, label %48

48:                                               ; preds = %44
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  br label %314

49:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  %50 = load ptr, ptr %5, align 8, !tbaa !9
  %51 = load i32, ptr %9, align 4, !tbaa !5
  %52 = sext i32 %51 to i64
  %53 = getelementptr inbounds ptr, ptr %50, i64 %52
  %54 = load ptr, ptr %53, align 8, !tbaa !9
  store ptr %54, ptr %10, align 8, !tbaa !9
  %55 = load ptr, ptr %10, align 8, !tbaa !9
  %56 = call i32 @strcmp(ptr noundef %55, ptr noundef @.str.55) #7
  %57 = icmp eq i32 %56, 0
  br i1 %57, label %58, label %73

58:                                               ; preds = %49
  %59 = load i32, ptr %9, align 4, !tbaa !5
  %60 = add nsw i32 %59, 1
  store i32 %60, ptr %9, align 4, !tbaa !5
  %61 = load i32, ptr %4, align 4, !tbaa !5
  %62 = icmp slt i32 %60, %61
  br i1 %62, label %63, label %71

63:                                               ; preds = %58
  %64 = load ptr, ptr %5, align 8, !tbaa !9
  %65 = load i32, ptr %9, align 4, !tbaa !5
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds ptr, ptr %64, i64 %66
  %68 = load ptr, ptr %67, align 8, !tbaa !9
  %69 = call i32 @atoi(ptr noundef %68) #7
  %70 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 0
  store i32 %69, ptr %70, align 8, !tbaa !14
  br label %72

71:                                               ; preds = %58
  call void @print_CLI_error()
  br label %72

72:                                               ; preds = %71, %63
  br label %310

73:                                               ; preds = %49
  %74 = load ptr, ptr %10, align 8, !tbaa !9
  %75 = call i32 @strcmp(ptr noundef %74, ptr noundef @.str.56) #7
  %76 = icmp eq i32 %75, 0
  br i1 %76, label %77, label %92

77:                                               ; preds = %73
  %78 = load i32, ptr %9, align 4, !tbaa !5
  %79 = add nsw i32 %78, 1
  store i32 %79, ptr %9, align 4, !tbaa !5
  %80 = load i32, ptr %4, align 4, !tbaa !5
  %81 = icmp slt i32 %79, %80
  br i1 %81, label %82, label %90

82:                                               ; preds = %77
  store i32 1, ptr %6, align 4, !tbaa !5
  %83 = load ptr, ptr %5, align 8, !tbaa !9
  %84 = load i32, ptr %9, align 4, !tbaa !5
  %85 = sext i32 %84 to i64
  %86 = getelementptr inbounds ptr, ptr %83, i64 %85
  %87 = load ptr, ptr %86, align 8, !tbaa !9
  %88 = call i64 @atol(ptr noundef %87) #7
  %89 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 2
  store i64 %88, ptr %89, align 8, !tbaa !16
  br label %91

90:                                               ; preds = %77
  call void @print_CLI_error()
  br label %91

91:                                               ; preds = %90, %82
  br label %309

92:                                               ; preds = %73
  %93 = load ptr, ptr %10, align 8, !tbaa !9
  %94 = call i32 @strcmp(ptr noundef %93, ptr noundef @.str.57) #7
  %95 = icmp eq i32 %94, 0
  br i1 %95, label %96, label %137

96:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  %97 = load i32, ptr %9, align 4, !tbaa !5
  %98 = add nsw i32 %97, 1
  store i32 %98, ptr %9, align 4, !tbaa !5
  %99 = load i32, ptr %4, align 4, !tbaa !5
  %100 = icmp slt i32 %98, %99
  br i1 %100, label %101, label %107

101:                                              ; preds = %96
  %102 = load ptr, ptr %5, align 8, !tbaa !9
  %103 = load i32, ptr %9, align 4, !tbaa !5
  %104 = sext i32 %103 to i64
  %105 = getelementptr inbounds ptr, ptr %102, i64 %104
  %106 = load ptr, ptr %105, align 8, !tbaa !9
  store ptr %106, ptr %11, align 8, !tbaa !9
  br label %108

107:                                              ; preds = %96
  call void @print_CLI_error()
  br label %108

108:                                              ; preds = %107, %101
  %109 = load ptr, ptr %11, align 8, !tbaa !9
  %110 = call i32 @strcmp(ptr noundef %109, ptr noundef @.str.58) #7
  %111 = icmp eq i32 %110, 0
  br i1 %111, label %112, label %114

112:                                              ; preds = %108
  %113 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 8
  store i32 1, ptr %113, align 4, !tbaa !11
  br label %136

114:                                              ; preds = %108
  %115 = load ptr, ptr %11, align 8, !tbaa !9
  %116 = call i32 @strcmp(ptr noundef %115, ptr noundef @.str.59) #7
  %117 = icmp eq i32 %116, 0
  br i1 %117, label %118, label %134

118:                                              ; preds = %114
  %119 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 8
  store i32 2, ptr %119, align 4, !tbaa !11
  %120 = load i32, ptr %7, align 4, !tbaa !5
  %121 = icmp ne i32 %120, 0
  br i1 %121, label %122, label %133

122:                                              ; preds = %118
  %123 = load i32, ptr %8, align 4, !tbaa !5
  %124 = icmp ne i32 %123, 0
  br i1 %124, label %125, label %133

125:                                              ; preds = %122
  %126 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 3
  %127 = load i32, ptr %126, align 8, !tbaa !18
  %128 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 7
  %129 = load i32, ptr %128, align 8, !tbaa !17
  %130 = mul nsw i32 %127, %129
  %131 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 3
  store i32 %130, ptr %131, align 8, !tbaa !18
  %132 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 7
  store i32 0, ptr %132, align 8, !tbaa !17
  br label %133

133:                                              ; preds = %125, %122, %118
  br label %135

134:                                              ; preds = %114
  call void @print_CLI_error()
  br label %135

135:                                              ; preds = %134, %133
  br label %136

136:                                              ; preds = %135, %112
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  br label %308

137:                                              ; preds = %92
  %138 = load ptr, ptr %10, align 8, !tbaa !9
  %139 = call i32 @strcmp(ptr noundef %138, ptr noundef @.str.60) #7
  %140 = icmp eq i32 %139, 0
  br i1 %140, label %141, label %156

141:                                              ; preds = %137
  %142 = load i32, ptr %9, align 4, !tbaa !5
  %143 = add nsw i32 %142, 1
  store i32 %143, ptr %9, align 4, !tbaa !5
  %144 = load i32, ptr %4, align 4, !tbaa !5
  %145 = icmp slt i32 %143, %144
  br i1 %145, label %146, label %154

146:                                              ; preds = %141
  %147 = load ptr, ptr %5, align 8, !tbaa !9
  %148 = load i32, ptr %9, align 4, !tbaa !5
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds ptr, ptr %147, i64 %149
  %151 = load ptr, ptr %150, align 8, !tbaa !9
  %152 = call i32 @atoi(ptr noundef %151) #7
  %153 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 3
  store i32 %152, ptr %153, align 8, !tbaa !18
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %155

154:                                              ; preds = %141
  call void @print_CLI_error()
  br label %155

155:                                              ; preds = %154, %146
  br label %307

156:                                              ; preds = %137
  %157 = load ptr, ptr %10, align 8, !tbaa !9
  %158 = call i32 @strcmp(ptr noundef %157, ptr noundef @.str.61) #7
  %159 = icmp eq i32 %158, 0
  br i1 %159, label %160, label %175

160:                                              ; preds = %156
  %161 = load i32, ptr %9, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr %9, align 4, !tbaa !5
  %163 = load i32, ptr %4, align 4, !tbaa !5
  %164 = icmp slt i32 %162, %163
  br i1 %164, label %165, label %173

165:                                              ; preds = %160
  %166 = load ptr, ptr %5, align 8, !tbaa !9
  %167 = load i32, ptr %9, align 4, !tbaa !5
  %168 = sext i32 %167 to i64
  %169 = getelementptr inbounds ptr, ptr %166, i64 %168
  %170 = load ptr, ptr %169, align 8, !tbaa !9
  %171 = call i32 @atoi(ptr noundef %170) #7
  %172 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 6
  store i32 %171, ptr %172, align 4, !tbaa !20
  br label %174

173:                                              ; preds = %160
  call void @print_CLI_error()
  br label %174

174:                                              ; preds = %173, %165
  br label %306

175:                                              ; preds = %156
  %176 = load ptr, ptr %10, align 8, !tbaa !9
  %177 = call i32 @strcmp(ptr noundef %176, ptr noundef @.str.62) #7
  %178 = icmp eq i32 %177, 0
  br i1 %178, label %179, label %194

179:                                              ; preds = %175
  %180 = load i32, ptr %9, align 4, !tbaa !5
  %181 = add nsw i32 %180, 1
  store i32 %181, ptr %9, align 4, !tbaa !5
  %182 = load i32, ptr %4, align 4, !tbaa !5
  %183 = icmp slt i32 %181, %182
  br i1 %183, label %184, label %192

184:                                              ; preds = %179
  %185 = load ptr, ptr %5, align 8, !tbaa !9
  %186 = load i32, ptr %9, align 4, !tbaa !5
  %187 = sext i32 %186 to i64
  %188 = getelementptr inbounds ptr, ptr %185, i64 %187
  %189 = load ptr, ptr %188, align 8, !tbaa !9
  %190 = call i32 @atoi(ptr noundef %189) #7
  %191 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 7
  store i32 %190, ptr %191, align 8, !tbaa !17
  store i32 0, ptr %8, align 4, !tbaa !5
  br label %193

192:                                              ; preds = %179
  call void @print_CLI_error()
  br label %193

193:                                              ; preds = %192, %184
  br label %305

194:                                              ; preds = %175
  %195 = load ptr, ptr %10, align 8, !tbaa !9
  %196 = call i32 @strcmp(ptr noundef %195, ptr noundef @.str.63) #7
  %197 = icmp eq i32 %196, 0
  br i1 %197, label %198, label %212

198:                                              ; preds = %194
  %199 = load i32, ptr %9, align 4, !tbaa !5
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr %9, align 4, !tbaa !5
  %201 = load i32, ptr %4, align 4, !tbaa !5
  %202 = icmp slt i32 %200, %201
  br i1 %202, label %203, label %210

203:                                              ; preds = %198
  %204 = load ptr, ptr %5, align 8, !tbaa !9
  %205 = load i32, ptr %9, align 4, !tbaa !5
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds ptr, ptr %204, i64 %206
  %208 = load ptr, ptr %207, align 8, !tbaa !9
  %209 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  store ptr %208, ptr %209, align 8, !tbaa !23
  br label %211

210:                                              ; preds = %198
  call void @print_CLI_error()
  br label %211

211:                                              ; preds = %210, %203
  br label %304

212:                                              ; preds = %194
  %213 = load ptr, ptr %10, align 8, !tbaa !9
  %214 = call i32 @strcmp(ptr noundef %213, ptr noundef @.str.64) #7
  %215 = icmp eq i32 %214, 0
  br i1 %215, label %216, label %250

216:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  %217 = load i32, ptr %9, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr %9, align 4, !tbaa !5
  %219 = load i32, ptr %4, align 4, !tbaa !5
  %220 = icmp slt i32 %218, %219
  br i1 %220, label %221, label %227

221:                                              ; preds = %216
  %222 = load ptr, ptr %5, align 8, !tbaa !9
  %223 = load i32, ptr %9, align 4, !tbaa !5
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds ptr, ptr %222, i64 %224
  %226 = load ptr, ptr %225, align 8, !tbaa !9
  store ptr %226, ptr %12, align 8, !tbaa !9
  br label %228

227:                                              ; preds = %216
  call void @print_CLI_error()
  br label %228

228:                                              ; preds = %227, %221
  %229 = load ptr, ptr %12, align 8, !tbaa !9
  %230 = call i32 @strcmp(ptr noundef %229, ptr noundef @.str.65) #7
  %231 = icmp eq i32 %230, 0
  br i1 %231, label %232, label %234

232:                                              ; preds = %228
  %233 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 5
  store i32 0, ptr %233, align 8, !tbaa !19
  br label %249

234:                                              ; preds = %228
  %235 = load ptr, ptr %12, align 8, !tbaa !9
  %236 = call i32 @strcmp(ptr noundef %235, ptr noundef @.str.66) #7
  %237 = icmp eq i32 %236, 0
  br i1 %237, label %238, label %240

238:                                              ; preds = %234
  %239 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 5
  store i32 1, ptr %239, align 8, !tbaa !19
  br label %248

240:                                              ; preds = %234
  %241 = load ptr, ptr %12, align 8, !tbaa !9
  %242 = call i32 @strcmp(ptr noundef %241, ptr noundef @.str.67) #7
  %243 = icmp eq i32 %242, 0
  br i1 %243, label %244, label %246

244:                                              ; preds = %240
  %245 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 5
  store i32 2, ptr %245, align 8, !tbaa !19
  br label %247

246:                                              ; preds = %240
  call void @print_CLI_error()
  br label %247

247:                                              ; preds = %246, %244
  br label %248

248:                                              ; preds = %247, %238
  br label %249

249:                                              ; preds = %248, %232
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  br label %303

250:                                              ; preds = %212
  %251 = load ptr, ptr %10, align 8, !tbaa !9
  %252 = call i32 @strcmp(ptr noundef %251, ptr noundef @.str.68) #7
  %253 = icmp eq i32 %252, 0
  br i1 %253, label %254, label %281

254:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  %255 = load i32, ptr %9, align 4, !tbaa !5
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr %9, align 4, !tbaa !5
  %257 = load i32, ptr %4, align 4, !tbaa !5
  %258 = icmp slt i32 %256, %257
  br i1 %258, label %259, label %265

259:                                              ; preds = %254
  %260 = load ptr, ptr %5, align 8, !tbaa !9
  %261 = load i32, ptr %9, align 4, !tbaa !5
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds ptr, ptr %260, i64 %262
  %264 = load ptr, ptr %263, align 8, !tbaa !9
  store ptr %264, ptr %13, align 8, !tbaa !9
  br label %266

265:                                              ; preds = %254
  call void @print_CLI_error()
  br label %266

266:                                              ; preds = %265, %259
  %267 = load ptr, ptr %13, align 8, !tbaa !9
  %268 = call i32 @strcmp(ptr noundef %267, ptr noundef @.str.69) #7
  %269 = icmp eq i32 %268, 0
  br i1 %269, label %270, label %272

270:                                              ; preds = %266
  %271 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 9
  store i32 1, ptr %271, align 8, !tbaa !21
  br label %280

272:                                              ; preds = %266
  %273 = load ptr, ptr %13, align 8, !tbaa !9
  %274 = call i32 @strcmp(ptr noundef %273, ptr noundef @.str.70) #7
  %275 = icmp eq i32 %274, 0
  br i1 %275, label %276, label %278

276:                                              ; preds = %272
  %277 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 9
  store i32 2, ptr %277, align 8, !tbaa !21
  br label %279

278:                                              ; preds = %272
  call void @print_CLI_error()
  br label %279

279:                                              ; preds = %278, %276
  br label %280

280:                                              ; preds = %279, %270
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  br label %302

281:                                              ; preds = %250
  %282 = load ptr, ptr %10, align 8, !tbaa !9
  %283 = call i32 @strcmp(ptr noundef %282, ptr noundef @.str.71) #7
  %284 = icmp eq i32 %283, 0
  br i1 %284, label %285, label %300

285:                                              ; preds = %281
  %286 = load i32, ptr %9, align 4, !tbaa !5
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr %9, align 4, !tbaa !5
  %288 = load i32, ptr %4, align 4, !tbaa !5
  %289 = icmp slt i32 %287, %288
  br i1 %289, label %290, label %298

290:                                              ; preds = %285
  %291 = load ptr, ptr %5, align 8, !tbaa !9
  %292 = load i32, ptr %9, align 4, !tbaa !5
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds ptr, ptr %291, i64 %293
  %295 = load ptr, ptr %294, align 8, !tbaa !9
  %296 = call i32 @atoi(ptr noundef %295) #7
  %297 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 10
  store i32 %296, ptr %297, align 4, !tbaa !22
  br label %299

298:                                              ; preds = %285
  call void @print_CLI_error()
  br label %299

299:                                              ; preds = %298, %290
  br label %301

300:                                              ; preds = %281
  call void @print_CLI_error()
  br label %301

301:                                              ; preds = %300, %299
  br label %302

302:                                              ; preds = %301, %280
  br label %303

303:                                              ; preds = %302, %249
  br label %304

304:                                              ; preds = %303, %211
  br label %305

305:                                              ; preds = %304, %193
  br label %306

306:                                              ; preds = %305, %174
  br label %307

307:                                              ; preds = %306, %155
  br label %308

308:                                              ; preds = %307, %136
  br label %309

309:                                              ; preds = %308, %91
  br label %310

310:                                              ; preds = %309, %72
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  br label %311

311:                                              ; preds = %310
  %312 = load i32, ptr %9, align 4, !tbaa !5
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr %9, align 4, !tbaa !5
  br label %44, !llvm.loop !25

314:                                              ; preds = %48
  %315 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 0
  %316 = load i32, ptr %315, align 8, !tbaa !14
  %317 = icmp slt i32 %316, 1
  br i1 %317, label %318, label %319

318:                                              ; preds = %314
  call void @print_CLI_error()
  br label %319

319:                                              ; preds = %318, %314
  %320 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 1
  %321 = load i64, ptr %320, align 8, !tbaa !15
  %322 = icmp slt i64 %321, 1
  br i1 %322, label %323, label %324

323:                                              ; preds = %319
  call void @print_CLI_error()
  br label %324

324:                                              ; preds = %323, %319
  %325 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 2
  %326 = load i64, ptr %325, align 8, !tbaa !16
  %327 = icmp slt i64 %326, 1
  br i1 %327, label %328, label %329

328:                                              ; preds = %324
  call void @print_CLI_error()
  br label %329

329:                                              ; preds = %328, %324
  %330 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 3
  %331 = load i32, ptr %330, align 8, !tbaa !18
  %332 = icmp slt i32 %331, 1
  br i1 %332, label %333, label %334

333:                                              ; preds = %329
  call void @print_CLI_error()
  br label %334

334:                                              ; preds = %333, %329
  %335 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 6
  %336 = load i32, ptr %335, align 4, !tbaa !20
  %337 = icmp slt i32 %336, 1
  br i1 %337, label %338, label %339

338:                                              ; preds = %334
  call void @print_CLI_error()
  br label %339

339:                                              ; preds = %338, %334
  %340 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %341 = load ptr, ptr %340, align 8, !tbaa !23
  %342 = call i32 @strcasecmp(ptr noundef %341, ptr noundef @.str.11) #7
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %344, label %360

344:                                              ; preds = %339
  %345 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %346 = load ptr, ptr %345, align 8, !tbaa !23
  %347 = call i32 @strcasecmp(ptr noundef %346, ptr noundef @.str.10) #7
  %348 = icmp ne i32 %347, 0
  br i1 %348, label %349, label %360

349:                                              ; preds = %344
  %350 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %351 = load ptr, ptr %350, align 8, !tbaa !23
  %352 = call i32 @strcasecmp(ptr noundef %351, ptr noundef @.str.72) #7
  %353 = icmp ne i32 %352, 0
  br i1 %353, label %354, label %360

354:                                              ; preds = %349
  %355 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %356 = load ptr, ptr %355, align 8, !tbaa !23
  %357 = call i32 @strcasecmp(ptr noundef %356, ptr noundef @.str.73) #7
  %358 = icmp ne i32 %357, 0
  br i1 %358, label %359, label %360

359:                                              ; preds = %354
  call void @print_CLI_error()
  br label %360

360:                                              ; preds = %359, %354, %349, %344, %339
  %361 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %362 = load ptr, ptr %361, align 8, !tbaa !23
  %363 = call i32 @strcasecmp(ptr noundef %362, ptr noundef @.str.11) #7
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %367

365:                                              ; preds = %360
  %366 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 1
  store i64 68, ptr %366, align 8, !tbaa !15
  br label %389

367:                                              ; preds = %360
  %368 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %369 = load ptr, ptr %368, align 8, !tbaa !23
  %370 = call i32 @strcasecmp(ptr noundef %369, ptr noundef @.str.72) #7
  %371 = icmp eq i32 %370, 0
  br i1 %371, label %372, label %377

372:                                              ; preds = %367
  %373 = load i32, ptr %6, align 4, !tbaa !5
  %374 = icmp eq i32 %373, 0
  br i1 %374, label %375, label %377

375:                                              ; preds = %372
  %376 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 2
  store i64 238847, ptr %376, align 8, !tbaa !16
  br label %388

377:                                              ; preds = %372, %367
  %378 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 4
  %379 = load ptr, ptr %378, align 8, !tbaa !23
  %380 = call i32 @strcasecmp(ptr noundef %379, ptr noundef @.str.73) #7
  %381 = icmp eq i32 %380, 0
  br i1 %381, label %382, label %387

382:                                              ; preds = %377
  %383 = load i32, ptr %6, align 4, !tbaa !5
  %384 = icmp eq i32 %383, 0
  br i1 %384, label %385, label %387

385:                                              ; preds = %382
  %386 = getelementptr inbounds %struct.Inputs, ptr %0, i32 0, i32 2
  store i64 501578, ptr %386, align 8, !tbaa !16
  br label %387

387:                                              ; preds = %385, %382, %377
  br label %388

388:                                              ; preds = %387, %375
  br label %389

389:                                              ; preds = %388, %365
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #6
  ret void
}

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #3

; Function Attrs: inlinehint nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #4

; Function Attrs: inlinehint nounwind willreturn memory(read) uwtable
declare i64 @atol(ptr noundef nonnull) #4

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcasecmp(ptr noundef, ptr noundef) #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !6, i64 52}
!12 = !{!"", !6, i64 0, !13, i64 8, !13, i64 16, !6, i64 24, !10, i64 32, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52, !6, i64 56, !6, i64 60}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !6, i64 0}
!15 = !{!12, !13, i64 8}
!16 = !{!12, !13, i64 16}
!17 = !{!12, !6, i64 48}
!18 = !{!12, !6, i64 24}
!19 = !{!12, !6, i64 40}
!20 = !{!12, !6, i64 44}
!21 = !{!12, !6, i64 56}
!22 = !{!12, !6, i64 60}
!23 = !{!12, !10, i64 32}
!24 = !{!7, !7, i64 0}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}


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

%struct.Inputs = type { i32, i64, i64, i32, ptr, i32, i32, i32, i32, i32, i32 }

@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [4 x i8], align 1

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @print_CLI_error() local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @read_CLI(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.Inputs) align 8 %0, i32 noundef %1, ptr nocapture noundef readonly %2) local_unnamed_addr #1 {
  %4 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 1, ptr %4, align 4, !tbaa !5
  store i32 1, ptr %0, align 8, !tbaa !12
  %5 = getelementptr inbounds i8, ptr %0, i64 8
  store i64 355, ptr %5, align 8, !tbaa !13
  %6 = getelementptr inbounds i8, ptr %0, i64 16
  store i64 11303, ptr %6, align 8, !tbaa !14
  %7 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 500000, ptr %7, align 8, !tbaa !15
  %8 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 34, ptr %8, align 8, !tbaa !16
  %9 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 0, ptr %9, align 8, !tbaa !17
  %10 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 10000, ptr %10, align 4, !tbaa !18
  %11 = getelementptr inbounds i8, ptr %0, i64 56
  store i32 0, ptr %11, align 8, !tbaa !19
  %12 = getelementptr inbounds i8, ptr %0, i64 60
  store i32 0, ptr %12, align 4, !tbaa !20
  %13 = tail call noalias dereferenceable_or_null(6) ptr @malloc(i64 noundef 6) #5
  %14 = getelementptr inbounds i8, ptr %0, i64 32
  store ptr %13, ptr %14, align 8, !tbaa !21
  store <4 x i8> <i8 108, i8 97, i8 114, i8 103>, ptr %13, align 1, !tbaa !22
  %15 = getelementptr inbounds i8, ptr %13, i64 4
  store i8 101, ptr %15, align 1, !tbaa !22
  %16 = getelementptr inbounds i8, ptr %13, i64 5
  store i8 0, ptr %16, align 1, !tbaa !22
  %17 = icmp sgt i32 %1, 1
  br i1 %17, label %.lr.ph, label %.thread122

._crit_edge:                                      ; preds = %183
  %18 = icmp slt i32 %187, 1
  %19 = icmp slt i64 %186, 1
  %20 = icmp slt i32 %188, 1
  %21 = icmp slt i32 %185, 1
  %22 = icmp eq i32 %.177, 0
  br i1 %18, label %192, label %193

.lr.ph:                                           ; preds = %3, %183
  %23 = phi ptr [ %184, %183 ], [ %13, %3 ]
  %24 = phi i32 [ %185, %183 ], [ 10000, %3 ]
  %25 = phi i64 [ %186, %183 ], [ 11303, %3 ]
  %26 = phi i32 [ %187, %183 ], [ 1, %3 ]
  %.0112 = phi ptr [ %.2, %183 ], [ undef, %3 ]
  %.070111 = phi ptr [ %.272, %183 ], [ undef, %3 ]
  %.073110 = phi ptr [ %.275, %183 ], [ undef, %3 ]
  %.076109 = phi i32 [ %.177, %183 ], [ 0, %3 ]
  %.078108 = phi i32 [ %190, %183 ], [ 1, %3 ]
  %.080107 = phi i32 [ %.181, %183 ], [ 1, %3 ]
  %.082106 = phi i32 [ %.183, %183 ], [ 1, %3 ]
  %27 = phi i32 [ %189, %183 ], [ 500000, %3 ]
  %28 = phi i32 [ %188, %183 ], [ 34, %3 ]
  %29 = sext i32 %.078108 to i64
  %30 = getelementptr inbounds ptr, ptr %2, i64 %29
  %31 = load ptr, ptr %30, align 8, !tbaa !23
  %32 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.55) #6
  %33 = icmp eq i32 %32, 0
  br i1 %33, label %34, label %43

34:                                               ; preds = %.lr.ph
  %35 = add nsw i32 %.078108, 1
  %36 = icmp slt i32 %35, %1
  br i1 %36, label %37, label %42

37:                                               ; preds = %34
  %38 = sext i32 %35 to i64
  %39 = getelementptr inbounds ptr, ptr %2, i64 %38
  %40 = load ptr, ptr %39, align 8, !tbaa !23
  %41 = tail call i32 @atoi(ptr nocapture noundef %40) #6
  store i32 %41, ptr %0, align 8, !tbaa !12
  br label %183

42:                                               ; preds = %34
  tail call void @print_CLI_error()
  br label %183

43:                                               ; preds = %.lr.ph
  %44 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.56) #6
  %45 = icmp eq i32 %44, 0
  br i1 %45, label %46, label %55

46:                                               ; preds = %43
  %47 = add nsw i32 %.078108, 1
  %48 = icmp slt i32 %47, %1
  br i1 %48, label %49, label %54

49:                                               ; preds = %46
  %50 = sext i32 %47 to i64
  %51 = getelementptr inbounds ptr, ptr %2, i64 %50
  %52 = load ptr, ptr %51, align 8, !tbaa !23
  %53 = tail call i64 @atol(ptr nocapture noundef %52) #6
  store i64 %53, ptr %6, align 8, !tbaa !14
  br label %183

54:                                               ; preds = %46
  tail call void @print_CLI_error()
  br label %183

55:                                               ; preds = %43
  %56 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.57) #6
  %57 = icmp eq i32 %56, 0
  br i1 %57, label %58, label %79

58:                                               ; preds = %55
  %59 = add nsw i32 %.078108, 1
  %60 = icmp slt i32 %59, %1
  br i1 %60, label %61, label %65

61:                                               ; preds = %58
  %62 = sext i32 %59 to i64
  %63 = getelementptr inbounds ptr, ptr %2, i64 %62
  %64 = load ptr, ptr %63, align 8, !tbaa !23
  br label %66

65:                                               ; preds = %58
  tail call void @print_CLI_error()
  br label %66

66:                                               ; preds = %65, %61
  %.174 = phi ptr [ %64, %61 ], [ %.073110, %65 ]
  %67 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.174, ptr noundef nonnull dereferenceable(1) @.str.58) #6
  %68 = icmp eq i32 %67, 0
  br i1 %68, label %69, label %70

69:                                               ; preds = %66
  store i32 1, ptr %4, align 4, !tbaa !5
  br label %183

70:                                               ; preds = %66
  %71 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.174, ptr noundef nonnull dereferenceable(1) @.str.59) #6
  %72 = icmp eq i32 %71, 0
  br i1 %72, label %73, label %78

73:                                               ; preds = %70
  store i32 2, ptr %4, align 4, !tbaa !5
  %74 = icmp ne i32 %.082106, 0
  %75 = icmp ne i32 %.080107, 0
  %or.cond = select i1 %74, i1 %75, i1 false
  br i1 %or.cond, label %76, label %183

76:                                               ; preds = %73
  %77 = mul nsw i32 %27, %28
  store i32 %77, ptr %8, align 8, !tbaa !16
  store i32 0, ptr %7, align 8, !tbaa !15
  br label %183

78:                                               ; preds = %70
  tail call void @print_CLI_error()
  br label %183

79:                                               ; preds = %55
  %80 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.60) #6
  %81 = icmp eq i32 %80, 0
  br i1 %81, label %82, label %91

82:                                               ; preds = %79
  %83 = add nsw i32 %.078108, 1
  %84 = icmp slt i32 %83, %1
  br i1 %84, label %85, label %90

85:                                               ; preds = %82
  %86 = sext i32 %83 to i64
  %87 = getelementptr inbounds ptr, ptr %2, i64 %86
  %88 = load ptr, ptr %87, align 8, !tbaa !23
  %89 = tail call i32 @atoi(ptr nocapture noundef %88) #6
  store i32 %89, ptr %8, align 8, !tbaa !16
  br label %183

90:                                               ; preds = %82
  tail call void @print_CLI_error()
  br label %183

91:                                               ; preds = %79
  %92 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.61) #6
  %93 = icmp eq i32 %92, 0
  br i1 %93, label %94, label %103

94:                                               ; preds = %91
  %95 = add nsw i32 %.078108, 1
  %96 = icmp slt i32 %95, %1
  br i1 %96, label %97, label %102

97:                                               ; preds = %94
  %98 = sext i32 %95 to i64
  %99 = getelementptr inbounds ptr, ptr %2, i64 %98
  %100 = load ptr, ptr %99, align 8, !tbaa !23
  %101 = tail call i32 @atoi(ptr nocapture noundef %100) #6
  store i32 %101, ptr %10, align 4, !tbaa !18
  br label %183

102:                                              ; preds = %94
  tail call void @print_CLI_error()
  br label %183

103:                                              ; preds = %91
  %104 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.62) #6
  %105 = icmp eq i32 %104, 0
  br i1 %105, label %106, label %115

106:                                              ; preds = %103
  %107 = add nsw i32 %.078108, 1
  %108 = icmp slt i32 %107, %1
  br i1 %108, label %109, label %114

109:                                              ; preds = %106
  %110 = sext i32 %107 to i64
  %111 = getelementptr inbounds ptr, ptr %2, i64 %110
  %112 = load ptr, ptr %111, align 8, !tbaa !23
  %113 = tail call i32 @atoi(ptr nocapture noundef %112) #6
  store i32 %113, ptr %7, align 8, !tbaa !15
  br label %183

114:                                              ; preds = %106
  tail call void @print_CLI_error()
  br label %183

115:                                              ; preds = %103
  %116 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.63) #6
  %117 = icmp eq i32 %116, 0
  br i1 %117, label %118, label %126

118:                                              ; preds = %115
  %119 = add nsw i32 %.078108, 1
  %120 = icmp slt i32 %119, %1
  br i1 %120, label %121, label %125

121:                                              ; preds = %118
  %122 = sext i32 %119 to i64
  %123 = getelementptr inbounds ptr, ptr %2, i64 %122
  %124 = load ptr, ptr %123, align 8, !tbaa !23
  store ptr %124, ptr %14, align 8, !tbaa !21
  br label %183

125:                                              ; preds = %118
  tail call void @print_CLI_error()
  br label %183

126:                                              ; preds = %115
  %127 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.64) #6
  %128 = icmp eq i32 %127, 0
  br i1 %128, label %129, label %150

129:                                              ; preds = %126
  %130 = add nsw i32 %.078108, 1
  %131 = icmp slt i32 %130, %1
  br i1 %131, label %132, label %136

132:                                              ; preds = %129
  %133 = sext i32 %130 to i64
  %134 = getelementptr inbounds ptr, ptr %2, i64 %133
  %135 = load ptr, ptr %134, align 8, !tbaa !23
  br label %137

136:                                              ; preds = %129
  tail call void @print_CLI_error()
  br label %137

137:                                              ; preds = %136, %132
  %.171 = phi ptr [ %135, %132 ], [ %.070111, %136 ]
  %138 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.171, ptr noundef nonnull dereferenceable(1) @.str.65) #6
  %139 = icmp eq i32 %138, 0
  br i1 %139, label %140, label %141

140:                                              ; preds = %137
  store i32 0, ptr %9, align 8, !tbaa !17
  br label %183

141:                                              ; preds = %137
  %142 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.171, ptr noundef nonnull dereferenceable(1) @.str.66) #6
  %143 = icmp eq i32 %142, 0
  br i1 %143, label %144, label %145

144:                                              ; preds = %141
  store i32 1, ptr %9, align 8, !tbaa !17
  br label %183

145:                                              ; preds = %141
  %146 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.171, ptr noundef nonnull dereferenceable(1) @.str.67) #6
  %147 = icmp eq i32 %146, 0
  br i1 %147, label %148, label %149

148:                                              ; preds = %145
  store i32 2, ptr %9, align 8, !tbaa !17
  br label %183

149:                                              ; preds = %145
  tail call void @print_CLI_error()
  br label %183

150:                                              ; preds = %126
  %151 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.68) #6
  %152 = icmp eq i32 %151, 0
  br i1 %152, label %153, label %170

153:                                              ; preds = %150
  %154 = add nsw i32 %.078108, 1
  %155 = icmp slt i32 %154, %1
  br i1 %155, label %156, label %160

156:                                              ; preds = %153
  %157 = sext i32 %154 to i64
  %158 = getelementptr inbounds ptr, ptr %2, i64 %157
  %159 = load ptr, ptr %158, align 8, !tbaa !23
  br label %161

160:                                              ; preds = %153
  tail call void @print_CLI_error()
  br label %161

161:                                              ; preds = %160, %156
  %.1 = phi ptr [ %159, %156 ], [ %.0112, %160 ]
  %162 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1, ptr noundef nonnull dereferenceable(1) @.str.69) #6
  %163 = icmp eq i32 %162, 0
  br i1 %163, label %164, label %165

164:                                              ; preds = %161
  store i32 1, ptr %11, align 8, !tbaa !19
  br label %183

165:                                              ; preds = %161
  %166 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1, ptr noundef nonnull dereferenceable(1) @.str.70) #6
  %167 = icmp eq i32 %166, 0
  br i1 %167, label %168, label %169

168:                                              ; preds = %165
  store i32 2, ptr %11, align 8, !tbaa !19
  br label %183

169:                                              ; preds = %165
  tail call void @print_CLI_error()
  br label %183

170:                                              ; preds = %150
  %171 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.71) #6
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %173, label %182

173:                                              ; preds = %170
  %174 = add nsw i32 %.078108, 1
  %175 = icmp slt i32 %174, %1
  br i1 %175, label %176, label %181

176:                                              ; preds = %173
  %177 = sext i32 %174 to i64
  %178 = getelementptr inbounds ptr, ptr %2, i64 %177
  %179 = load ptr, ptr %178, align 8, !tbaa !23
  %180 = tail call i32 @atoi(ptr nocapture noundef %179) #6
  store i32 %180, ptr %12, align 4, !tbaa !20
  br label %183

181:                                              ; preds = %173
  tail call void @print_CLI_error()
  br label %183

182:                                              ; preds = %170
  tail call void @print_CLI_error()
  br label %183

183:                                              ; preds = %164, %169, %168, %140, %148, %149, %144, %69, %73, %76, %78, %54, %49, %90, %85, %114, %109, %182, %181, %176, %121, %125, %97, %102, %37, %42
  %184 = phi ptr [ %23, %37 ], [ %23, %42 ], [ %23, %49 ], [ %23, %54 ], [ %23, %85 ], [ %23, %90 ], [ %23, %97 ], [ %23, %102 ], [ %23, %109 ], [ %23, %114 ], [ %124, %121 ], [ %23, %125 ], [ %23, %176 ], [ %23, %181 ], [ %23, %182 ], [ %23, %78 ], [ %23, %76 ], [ %23, %73 ], [ %23, %69 ], [ %23, %144 ], [ %23, %149 ], [ %23, %148 ], [ %23, %140 ], [ %23, %168 ], [ %23, %169 ], [ %23, %164 ]
  %185 = phi i32 [ %24, %37 ], [ %24, %42 ], [ %24, %49 ], [ %24, %54 ], [ %24, %85 ], [ %24, %90 ], [ %101, %97 ], [ %24, %102 ], [ %24, %109 ], [ %24, %114 ], [ %24, %121 ], [ %24, %125 ], [ %24, %176 ], [ %24, %181 ], [ %24, %182 ], [ %24, %78 ], [ %24, %76 ], [ %24, %73 ], [ %24, %69 ], [ %24, %144 ], [ %24, %149 ], [ %24, %148 ], [ %24, %140 ], [ %24, %168 ], [ %24, %169 ], [ %24, %164 ]
  %186 = phi i64 [ %25, %37 ], [ %25, %42 ], [ %53, %49 ], [ %25, %54 ], [ %25, %85 ], [ %25, %90 ], [ %25, %97 ], [ %25, %102 ], [ %25, %109 ], [ %25, %114 ], [ %25, %121 ], [ %25, %125 ], [ %25, %176 ], [ %25, %181 ], [ %25, %182 ], [ %25, %78 ], [ %25, %76 ], [ %25, %73 ], [ %25, %69 ], [ %25, %144 ], [ %25, %149 ], [ %25, %148 ], [ %25, %140 ], [ %25, %168 ], [ %25, %169 ], [ %25, %164 ]
  %187 = phi i32 [ %41, %37 ], [ %26, %42 ], [ %26, %49 ], [ %26, %54 ], [ %26, %85 ], [ %26, %90 ], [ %26, %97 ], [ %26, %102 ], [ %26, %109 ], [ %26, %114 ], [ %26, %121 ], [ %26, %125 ], [ %26, %176 ], [ %26, %181 ], [ %26, %182 ], [ %26, %78 ], [ %26, %76 ], [ %26, %73 ], [ %26, %69 ], [ %26, %144 ], [ %26, %149 ], [ %26, %148 ], [ %26, %140 ], [ %26, %168 ], [ %26, %169 ], [ %26, %164 ]
  %188 = phi i32 [ %28, %37 ], [ %28, %42 ], [ %28, %49 ], [ %28, %54 ], [ %89, %85 ], [ %28, %90 ], [ %28, %97 ], [ %28, %102 ], [ %28, %109 ], [ %28, %114 ], [ %28, %121 ], [ %28, %125 ], [ %28, %176 ], [ %28, %181 ], [ %28, %182 ], [ %28, %78 ], [ %77, %76 ], [ %28, %73 ], [ %28, %69 ], [ %28, %144 ], [ %28, %149 ], [ %28, %148 ], [ %28, %140 ], [ %28, %168 ], [ %28, %169 ], [ %28, %164 ]
  %189 = phi i32 [ %27, %37 ], [ %27, %42 ], [ %27, %49 ], [ %27, %54 ], [ %27, %85 ], [ %27, %90 ], [ %27, %97 ], [ %27, %102 ], [ %113, %109 ], [ %27, %114 ], [ %27, %121 ], [ %27, %125 ], [ %27, %176 ], [ %27, %181 ], [ %27, %182 ], [ %27, %78 ], [ 0, %76 ], [ %27, %73 ], [ %27, %69 ], [ %27, %144 ], [ %27, %149 ], [ %27, %148 ], [ %27, %140 ], [ %27, %168 ], [ %27, %169 ], [ %27, %164 ]
  %.183 = phi i32 [ %.082106, %37 ], [ %.082106, %42 ], [ %.082106, %49 ], [ %.082106, %54 ], [ 0, %85 ], [ %.082106, %90 ], [ %.082106, %97 ], [ %.082106, %102 ], [ %.082106, %109 ], [ %.082106, %114 ], [ %.082106, %121 ], [ %.082106, %125 ], [ %.082106, %176 ], [ %.082106, %181 ], [ %.082106, %182 ], [ %.082106, %78 ], [ %.082106, %76 ], [ %.082106, %73 ], [ %.082106, %69 ], [ %.082106, %144 ], [ %.082106, %149 ], [ %.082106, %148 ], [ %.082106, %140 ], [ %.082106, %168 ], [ %.082106, %169 ], [ %.082106, %164 ]
  %.181 = phi i32 [ %.080107, %37 ], [ %.080107, %42 ], [ %.080107, %49 ], [ %.080107, %54 ], [ %.080107, %85 ], [ %.080107, %90 ], [ %.080107, %97 ], [ %.080107, %102 ], [ 0, %109 ], [ %.080107, %114 ], [ %.080107, %121 ], [ %.080107, %125 ], [ %.080107, %176 ], [ %.080107, %181 ], [ %.080107, %182 ], [ %.080107, %78 ], [ %.080107, %76 ], [ %.080107, %73 ], [ %.080107, %69 ], [ %.080107, %144 ], [ %.080107, %149 ], [ %.080107, %148 ], [ %.080107, %140 ], [ %.080107, %168 ], [ %.080107, %169 ], [ %.080107, %164 ]
  %.179 = phi i32 [ %35, %37 ], [ %35, %42 ], [ %47, %49 ], [ %47, %54 ], [ %83, %85 ], [ %83, %90 ], [ %95, %97 ], [ %95, %102 ], [ %107, %109 ], [ %107, %114 ], [ %119, %121 ], [ %119, %125 ], [ %174, %176 ], [ %174, %181 ], [ %.078108, %182 ], [ %59, %78 ], [ %59, %76 ], [ %59, %73 ], [ %59, %69 ], [ %130, %144 ], [ %130, %149 ], [ %130, %148 ], [ %130, %140 ], [ %154, %168 ], [ %154, %169 ], [ %154, %164 ]
  %.177 = phi i32 [ %.076109, %37 ], [ %.076109, %42 ], [ 1, %49 ], [ %.076109, %54 ], [ %.076109, %85 ], [ %.076109, %90 ], [ %.076109, %97 ], [ %.076109, %102 ], [ %.076109, %109 ], [ %.076109, %114 ], [ %.076109, %121 ], [ %.076109, %125 ], [ %.076109, %176 ], [ %.076109, %181 ], [ %.076109, %182 ], [ %.076109, %78 ], [ %.076109, %76 ], [ %.076109, %73 ], [ %.076109, %69 ], [ %.076109, %144 ], [ %.076109, %149 ], [ %.076109, %148 ], [ %.076109, %140 ], [ %.076109, %168 ], [ %.076109, %169 ], [ %.076109, %164 ]
  %.275 = phi ptr [ %.073110, %37 ], [ %.073110, %42 ], [ %.073110, %49 ], [ %.073110, %54 ], [ %.073110, %85 ], [ %.073110, %90 ], [ %.073110, %97 ], [ %.073110, %102 ], [ %.073110, %109 ], [ %.073110, %114 ], [ %.073110, %121 ], [ %.073110, %125 ], [ %.073110, %176 ], [ %.073110, %181 ], [ %.073110, %182 ], [ %.174, %78 ], [ %.174, %76 ], [ %.174, %73 ], [ %.174, %69 ], [ %.073110, %144 ], [ %.073110, %149 ], [ %.073110, %148 ], [ %.073110, %140 ], [ %.073110, %168 ], [ %.073110, %169 ], [ %.073110, %164 ]
  %.272 = phi ptr [ %.070111, %37 ], [ %.070111, %42 ], [ %.070111, %49 ], [ %.070111, %54 ], [ %.070111, %85 ], [ %.070111, %90 ], [ %.070111, %97 ], [ %.070111, %102 ], [ %.070111, %109 ], [ %.070111, %114 ], [ %.070111, %121 ], [ %.070111, %125 ], [ %.070111, %176 ], [ %.070111, %181 ], [ %.070111, %182 ], [ %.070111, %78 ], [ %.070111, %76 ], [ %.070111, %73 ], [ %.070111, %69 ], [ %.171, %144 ], [ %.171, %149 ], [ %.171, %148 ], [ %.171, %140 ], [ %.070111, %168 ], [ %.070111, %169 ], [ %.070111, %164 ]
  %.2 = phi ptr [ %.0112, %37 ], [ %.0112, %42 ], [ %.0112, %49 ], [ %.0112, %54 ], [ %.0112, %85 ], [ %.0112, %90 ], [ %.0112, %97 ], [ %.0112, %102 ], [ %.0112, %109 ], [ %.0112, %114 ], [ %.0112, %121 ], [ %.0112, %125 ], [ %.0112, %176 ], [ %.0112, %181 ], [ %.0112, %182 ], [ %.0112, %78 ], [ %.0112, %76 ], [ %.0112, %73 ], [ %.0112, %69 ], [ %.0112, %144 ], [ %.0112, %149 ], [ %.0112, %148 ], [ %.0112, %140 ], [ %.1, %168 ], [ %.1, %169 ], [ %.1, %164 ]
  %190 = add nsw i32 %.179, 1
  %191 = icmp slt i32 %190, %1
  br i1 %191, label %.lr.ph, label %._crit_edge, !llvm.loop !24

192:                                              ; preds = %._crit_edge
  tail call void @print_CLI_error()
  br i1 %19, label %194, label %195

193:                                              ; preds = %._crit_edge
  br i1 %19, label %194, label %195

194:                                              ; preds = %192, %193
  tail call void @print_CLI_error()
  br i1 %20, label %196, label %197

195:                                              ; preds = %192, %193
  br i1 %20, label %196, label %197

196:                                              ; preds = %194, %195
  tail call void @print_CLI_error()
  br i1 %21, label %198, label %.thread122

197:                                              ; preds = %194, %195
  br i1 %21, label %198, label %.thread122

198:                                              ; preds = %196, %197
  tail call void @print_CLI_error()
  br label %.thread122

.thread122:                                       ; preds = %3, %196, %198, %197
  %199 = phi ptr [ %184, %198 ], [ %184, %197 ], [ %184, %196 ], [ %13, %3 ]
  %.076.lcssa114116120124 = phi i1 [ %22, %198 ], [ %22, %197 ], [ %22, %196 ], [ true, %3 ]
  %200 = tail call i32 @strcasecmp(ptr noundef %199, ptr noundef nonnull @.str.11) #6
  %.not = icmp eq i32 %200, 0
  br i1 %.not, label %208, label %201

201:                                              ; preds = %.thread122
  %202 = tail call i32 @strcasecmp(ptr noundef %199, ptr noundef nonnull @.str.10) #6
  %.not102 = icmp eq i32 %202, 0
  br i1 %.not102, label %208, label %203

203:                                              ; preds = %201
  %204 = tail call i32 @strcasecmp(ptr noundef %199, ptr noundef nonnull @.str.72) #6
  %.not103 = icmp eq i32 %204, 0
  br i1 %.not103, label %208, label %205

205:                                              ; preds = %203
  %206 = tail call i32 @strcasecmp(ptr noundef %199, ptr noundef nonnull @.str.73) #6
  %.not104 = icmp eq i32 %206, 0
  br i1 %.not104, label %208, label %207

207:                                              ; preds = %205
  tail call void @print_CLI_error()
  br label %208

208:                                              ; preds = %207, %205, %203, %201, %.thread122
  %209 = tail call i32 @strcasecmp(ptr noundef %199, ptr noundef nonnull @.str.11) #6
  %210 = icmp eq i32 %209, 0
  br i1 %210, label %211, label %212

211:                                              ; preds = %208
  store i64 68, ptr %5, align 8, !tbaa !13
  br label %220

212:                                              ; preds = %208
  %213 = tail call i32 @strcasecmp(ptr noundef %199, ptr noundef nonnull @.str.72) #6
  %214 = icmp eq i32 %213, 0
  %or.cond3 = select i1 %214, i1 %.076.lcssa114116120124, i1 false
  br i1 %or.cond3, label %215, label %216

215:                                              ; preds = %212
  store i64 238847, ptr %6, align 8, !tbaa !14
  br label %220

216:                                              ; preds = %212
  %217 = tail call i32 @strcasecmp(ptr noundef %199, ptr noundef nonnull @.str.73) #6
  %218 = icmp eq i32 %217, 0
  %or.cond5 = select i1 %218, i1 %.076.lcssa114116120124, i1 false
  br i1 %or.cond5, label %219, label %220

219:                                              ; preds = %216
  store i64 501578, ptr %6, align 8, !tbaa !14
  br label %220

220:                                              ; preds = %215, %219, %216, %211
  ret void
}

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i64 @atol(ptr nocapture noundef nonnull) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @strcasecmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #4

attributes #0 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nofree nounwind willreturn memory(read) "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 allocsize(0) }
attributes #6 = { nounwind willreturn memory(read) }

!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, !7, i64 52}
!6 = !{!"", !7, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !11, i64 32, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!6, !7, i64 0}
!13 = !{!6, !10, i64 8}
!14 = !{!6, !10, i64 16}
!15 = !{!6, !7, i64 48}
!16 = !{!6, !7, i64 24}
!17 = !{!6, !7, i64 40}
!18 = !{!6, !7, i64 44}
!19 = !{!6, !7, i64 56}
!20 = !{!6, !7, i64 60}
!21 = !{!6, !11, i64 32}
!22 = !{!8, !8, i64 0}
!23 = !{!11, !11, i64 0}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass