; LLVM IR from microsoft/ntttcp-for-linux :: src (parameter)

; 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.option = type { ptr, i32, ptr, i32 }
%struct.ntttcp_test = type { i8, i8, i8, i8, i8, i8, i8, ptr, i32, i32, ptr, i32, i32, i8, i32, i32, i32, i32, i64, i64, i64, i64, i32, i32, i32, i8, ptr, ptr, i8, ptr, i8, ptr, i8, ptr, i8, i8 }

@parse_arguments.longopts = external hidden global [5 x %struct.option], align 16
@.str.162 = external hidden unnamed_addr constant [50 x i8], align 1
@optarg = external global ptr, align 8
@optind = external global i32, align 4

; Function Attrs: nounwind uwtable
declare dso_local void @print_usage() #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @process_mappings(ptr 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: inlinehint nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #2

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

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

8:                                                ; preds = %387, %3
  %9 = load i32, ptr %5, align 4, !tbaa !9
  %10 = load ptr, ptr %6, align 8, !tbaa !5
  %11 = call i32 @getopt_long(i32 noundef %9, ptr noundef %10, ptr noundef @.str.162, ptr noundef @parse_arguments.longopts, ptr noundef null) #6
  store i32 %11, ptr %7, align 4, !tbaa !9
  %12 = icmp ne i32 %11, -1
  br i1 %12, label %13, label %388

13:                                               ; preds = %8
  %14 = load i32, ptr %7, align 4, !tbaa !9
  switch i32 %14, label %386 [
    i32 114, label %15
    i32 115, label %15
    i32 68, label %73
    i32 77, label %76
    i32 76, label %79
    i32 101, label %82
    i32 72, label %85
    i32 109, label %88
    i32 80, label %94
    i32 110, label %99
    i32 108, label %104
    i32 54, label %109
    i32 117, label %112
    i32 112, label %115
    i32 102, label %120
    i32 98, label %174
    i32 66, label %185
    i32 4, label %191
    i32 87, label %197
    i32 116, label %202
    i32 67, label %207
    i32 78, label %212
    i32 1, label %215
    i32 2, label %218
    i32 3, label %222
    i32 79, label %226
    i32 120, label %277
    i32 106, label %328
    i32 81, label %379
    i32 86, label %382
    i32 104, label %385
  ]

15:                                               ; preds = %13, %13
  %16 = load i32, ptr %7, align 4, !tbaa !9
  %17 = icmp eq i32 %16, 114
  br i1 %17, label %18, label %21

18:                                               ; preds = %15
  %19 = load ptr, ptr %4, align 8, !tbaa !5
  %20 = getelementptr inbounds %struct.ntttcp_test, ptr %19, i32 0, i32 0
  store i8 1, ptr %20, align 8, !tbaa !11
  br label %24

21:                                               ; preds = %15
  %22 = load ptr, ptr %4, align 8, !tbaa !5
  %23 = getelementptr inbounds %struct.ntttcp_test, ptr %22, i32 0, i32 1
  store i8 1, ptr %23, align 1, !tbaa !15
  br label %24

24:                                               ; preds = %21, %18
  %25 = load ptr, ptr @optarg, align 8, !tbaa !5
  %26 = icmp ne ptr %25, null
  br i1 %26, label %27, label %31

27:                                               ; preds = %24
  %28 = load ptr, ptr @optarg, align 8, !tbaa !5
  %29 = load ptr, ptr %4, align 8, !tbaa !5
  %30 = getelementptr inbounds %struct.ntttcp_test, ptr %29, i32 0, i32 10
  store ptr %28, ptr %30, align 8, !tbaa !16
  br label %72

31:                                               ; preds = %24
  %32 = load i32, ptr @optind, align 4, !tbaa !9
  %33 = load i32, ptr %5, align 4, !tbaa !9
  %34 = icmp slt i32 %32, %33
  br i1 %34, label %35, label %71

35:                                               ; preds = %31
  %36 = load ptr, ptr %6, align 8, !tbaa !5
  %37 = load i32, ptr @optind, align 4, !tbaa !9
  %38 = sext i32 %37 to i64
  %39 = getelementptr inbounds ptr, ptr %36, i64 %38
  %40 = load ptr, ptr %39, align 8, !tbaa !5
  %41 = icmp ne ptr null, %40
  br i1 %41, label %42, label %71

42:                                               ; preds = %35
  %43 = load ptr, ptr %6, align 8, !tbaa !5
  %44 = load i32, ptr @optind, align 4, !tbaa !9
  %45 = sext i32 %44 to i64
  %46 = getelementptr inbounds ptr, ptr %43, i64 %45
  %47 = load ptr, ptr %46, align 8, !tbaa !5
  %48 = getelementptr inbounds i8, ptr %47, i64 0
  %49 = load i8, ptr %48, align 1, !tbaa !17
  %50 = sext i8 %49 to i32
  %51 = icmp ne i32 0, %50
  br i1 %51, label %52, label %71

52:                                               ; preds = %42
  %53 = load ptr, ptr %6, align 8, !tbaa !5
  %54 = load i32, ptr @optind, align 4, !tbaa !9
  %55 = sext i32 %54 to i64
  %56 = getelementptr inbounds ptr, ptr %53, i64 %55
  %57 = load ptr, ptr %56, align 8, !tbaa !5
  %58 = getelementptr inbounds i8, ptr %57, i64 0
  %59 = load i8, ptr %58, align 1, !tbaa !17
  %60 = sext i8 %59 to i32
  %61 = icmp ne i32 45, %60
  br i1 %61, label %62, label %71

62:                                               ; preds = %52
  %63 = load ptr, ptr %6, align 8, !tbaa !5
  %64 = load i32, ptr @optind, align 4, !tbaa !9
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr @optind, align 4, !tbaa !9
  %66 = sext i32 %64 to i64
  %67 = getelementptr inbounds ptr, ptr %63, i64 %66
  %68 = load ptr, ptr %67, align 8, !tbaa !5
  %69 = load ptr, ptr %4, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.ntttcp_test, ptr %69, i32 0, i32 10
  store ptr %68, ptr %70, align 8, !tbaa !16
  br label %71

71:                                               ; preds = %62, %52, %42, %35, %31
  br label %72

72:                                               ; preds = %71, %27
  br label %387

73:                                               ; preds = %13
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.ntttcp_test, ptr %74, i32 0, i32 4
  store i8 1, ptr %75, align 4, !tbaa !18
  br label %387

76:                                               ; preds = %13
  %77 = load ptr, ptr %4, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.ntttcp_test, ptr %77, i32 0, i32 2
  store i8 1, ptr %78, align 2, !tbaa !19
  br label %387

79:                                               ; preds = %13
  %80 = load ptr, ptr %4, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.ntttcp_test, ptr %80, i32 0, i32 3
  store i8 1, ptr %81, align 1, !tbaa !20
  br label %387

82:                                               ; preds = %13
  %83 = load ptr, ptr %4, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.ntttcp_test, ptr %83, i32 0, i32 5
  store i8 1, ptr %84, align 1, !tbaa !21
  br label %387

85:                                               ; preds = %13
  %86 = load ptr, ptr %4, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.ntttcp_test, ptr %86, i32 0, i32 6
  store i8 0, ptr %87, align 2, !tbaa !22
  br label %387

88:                                               ; preds = %13
  %89 = load ptr, ptr @optarg, align 8, !tbaa !5
  %90 = load ptr, ptr %4, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.ntttcp_test, ptr %90, i32 0, i32 7
  store ptr %89, ptr %91, align 8, !tbaa !23
  %92 = load ptr, ptr %4, align 8, !tbaa !5
  %93 = call i32 @process_mappings(ptr noundef %92)
  br label %387

94:                                               ; preds = %13
  %95 = load ptr, ptr @optarg, align 8, !tbaa !5
  %96 = call i32 @atoi(ptr noundef %95) #7
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.ntttcp_test, ptr %97, i32 0, i32 8
  store i32 %96, ptr %98, align 8, !tbaa !24
  br label %387

99:                                               ; preds = %13
  %100 = load ptr, ptr @optarg, align 8, !tbaa !5
  %101 = call i32 @atoi(ptr noundef %100) #7
  %102 = load ptr, ptr %4, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.ntttcp_test, ptr %102, i32 0, i32 11
  store i32 %101, ptr %103, align 8, !tbaa !25
  br label %387

104:                                              ; preds = %13
  %105 = load ptr, ptr @optarg, align 8, !tbaa !5
  %106 = call i32 @atoi(ptr noundef %105) #7
  %107 = load ptr, ptr %4, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.ntttcp_test, ptr %107, i32 0, i32 12
  store i32 %106, ptr %108, align 4, !tbaa !26
  br label %387

109:                                              ; preds = %13
  %110 = load ptr, ptr %4, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.ntttcp_test, ptr %110, i32 0, i32 14
  store i32 10, ptr %111, align 4, !tbaa !27
  br label %387

112:                                              ; preds = %13
  %113 = load ptr, ptr %4, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.ntttcp_test, ptr %113, i32 0, i32 15
  store i32 2, ptr %114, align 8, !tbaa !28
  br label %387

115:                                              ; preds = %13
  %116 = load ptr, ptr @optarg, align 8, !tbaa !5
  %117 = call i32 @atoi(ptr noundef %116) #7
  %118 = load ptr, ptr %4, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.ntttcp_test, ptr %118, i32 0, i32 16
  store i32 %117, ptr %119, align 4, !tbaa !29
  br label %387

120:                                              ; preds = %13
  %121 = load ptr, ptr @optarg, align 8, !tbaa !5
  %122 = icmp ne ptr %121, null
  br i1 %122, label %123, label %128

123:                                              ; preds = %120
  %124 = load ptr, ptr @optarg, align 8, !tbaa !5
  %125 = call i32 @atoi(ptr noundef %124) #7
  %126 = load ptr, ptr %4, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.ntttcp_test, ptr %126, i32 0, i32 17
  store i32 %125, ptr %127, align 8, !tbaa !30
  br label %173

128:                                              ; preds = %120
  %129 = load i32, ptr @optind, align 4, !tbaa !9
  %130 = load i32, ptr %5, align 4, !tbaa !9
  %131 = icmp slt i32 %129, %130
  br i1 %131, label %132, label %169

132:                                              ; preds = %128
  %133 = load ptr, ptr %6, align 8, !tbaa !5
  %134 = load i32, ptr @optind, align 4, !tbaa !9
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds ptr, ptr %133, i64 %135
  %137 = load ptr, ptr %136, align 8, !tbaa !5
  %138 = icmp ne ptr null, %137
  br i1 %138, label %139, label %169

139:                                              ; preds = %132
  %140 = load ptr, ptr %6, align 8, !tbaa !5
  %141 = load i32, ptr @optind, align 4, !tbaa !9
  %142 = sext i32 %141 to i64
  %143 = getelementptr inbounds ptr, ptr %140, i64 %142
  %144 = load ptr, ptr %143, align 8, !tbaa !5
  %145 = getelementptr inbounds i8, ptr %144, i64 0
  %146 = load i8, ptr %145, align 1, !tbaa !17
  %147 = sext i8 %146 to i32
  %148 = icmp ne i32 0, %147
  br i1 %148, label %149, label %169

149:                                              ; preds = %139
  %150 = load ptr, ptr %6, align 8, !tbaa !5
  %151 = load i32, ptr @optind, align 4, !tbaa !9
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds ptr, ptr %150, i64 %152
  %154 = load ptr, ptr %153, align 8, !tbaa !5
  %155 = getelementptr inbounds i8, ptr %154, i64 0
  %156 = load i8, ptr %155, align 1, !tbaa !17
  %157 = sext i8 %156 to i32
  %158 = icmp ne i32 45, %157
  br i1 %158, label %159, label %169

159:                                              ; preds = %149
  %160 = load ptr, ptr %6, align 8, !tbaa !5
  %161 = load i32, ptr @optind, align 4, !tbaa !9
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr @optind, align 4, !tbaa !9
  %163 = sext i32 %161 to i64
  %164 = getelementptr inbounds ptr, ptr %160, i64 %163
  %165 = load ptr, ptr %164, align 8, !tbaa !5
  %166 = call i32 @atoi(ptr noundef %165) #7
  %167 = load ptr, ptr %4, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.ntttcp_test, ptr %167, i32 0, i32 17
  store i32 %166, ptr %168, align 8, !tbaa !30
  br label %172

169:                                              ; preds = %149, %139, %132, %128
  %170 = load ptr, ptr %4, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.ntttcp_test, ptr %170, i32 0, i32 17
  store i32 25001, ptr %171, align 8, !tbaa !30
  br label %172

172:                                              ; preds = %169, %159
  br label %173

173:                                              ; preds = %172, %123
  br label %387

174:                                              ; preds = %13
  %175 = load ptr, ptr @optarg, align 8, !tbaa !5
  %176 = call double @unit_atod(ptr noundef %175, i32 noundef 1024)
  %177 = fptoui double %176 to i64
  %178 = load ptr, ptr %4, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.ntttcp_test, ptr %178, i32 0, i32 18
  store i64 %177, ptr %179, align 8, !tbaa !31
  %180 = load ptr, ptr @optarg, align 8, !tbaa !5
  %181 = call double @unit_atod(ptr noundef %180, i32 noundef 1024)
  %182 = fptoui double %181 to i64
  %183 = load ptr, ptr %4, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.ntttcp_test, ptr %183, i32 0, i32 19
  store i64 %182, ptr %184, align 8, !tbaa !32
  br label %387

185:                                              ; preds = %13
  %186 = load ptr, ptr @optarg, align 8, !tbaa !5
  %187 = call double @unit_atod(ptr noundef %186, i32 noundef 1000)
  %188 = fptosi double %187 to i64
  %189 = load ptr, ptr %4, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.ntttcp_test, ptr %189, i32 0, i32 20
  store i64 %188, ptr %190, align 8, !tbaa !33
  br label %387

191:                                              ; preds = %13
  %192 = load ptr, ptr @optarg, align 8, !tbaa !5
  %193 = call double @unit_atod(ptr noundef %192, i32 noundef 1000)
  %194 = fptosi double %193 to i64
  %195 = load ptr, ptr %4, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.ntttcp_test, ptr %195, i32 0, i32 21
  store i64 %194, ptr %196, align 8, !tbaa !34
  br label %387

197:                                              ; preds = %13
  %198 = load ptr, ptr @optarg, align 8, !tbaa !5
  %199 = call i32 @atoi(ptr noundef %198) #7
  %200 = load ptr, ptr %4, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.ntttcp_test, ptr %200, i32 0, i32 22
  store i32 %199, ptr %201, align 8, !tbaa !35
  br label %387

202:                                              ; preds = %13
  %203 = load ptr, ptr @optarg, align 8, !tbaa !5
  %204 = call i32 @atoi(ptr noundef %203) #7
  %205 = load ptr, ptr %4, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.ntttcp_test, ptr %205, i32 0, i32 23
  store i32 %204, ptr %206, align 4, !tbaa !36
  br label %387

207:                                              ; preds = %13
  %208 = load ptr, ptr @optarg, align 8, !tbaa !5
  %209 = call i32 @atoi(ptr noundef %208) #7
  %210 = load ptr, ptr %4, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.ntttcp_test, ptr %210, i32 0, i32 24
  store i32 %209, ptr %211, align 8, !tbaa !37
  br label %387

212:                                              ; preds = %13
  %213 = load ptr, ptr %4, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.ntttcp_test, ptr %213, i32 0, i32 13
  store i8 1, ptr %214, align 8, !tbaa !38
  br label %387

215:                                              ; preds = %13
  %216 = load ptr, ptr %4, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.ntttcp_test, ptr %216, i32 0, i32 25
  store i8 1, ptr %217, align 4, !tbaa !39
  br label %387

218:                                              ; preds = %13
  %219 = load ptr, ptr @optarg, align 8, !tbaa !5
  %220 = load ptr, ptr %4, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.ntttcp_test, ptr %220, i32 0, i32 26
  store ptr %219, ptr %221, align 8, !tbaa !40
  br label %387

222:                                              ; preds = %13
  %223 = load ptr, ptr @optarg, align 8, !tbaa !5
  %224 = load ptr, ptr %4, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.ntttcp_test, ptr %224, i32 0, i32 27
  store ptr %223, ptr %225, align 8, !tbaa !41
  br label %387

226:                                              ; preds = %13
  %227 = load ptr, ptr %4, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.ntttcp_test, ptr %227, i32 0, i32 28
  store i8 1, ptr %228, align 8, !tbaa !42
  %229 = load ptr, ptr @optarg, align 8, !tbaa !5
  %230 = icmp ne ptr %229, null
  br i1 %230, label %231, label %235

231:                                              ; preds = %226
  %232 = load ptr, ptr @optarg, align 8, !tbaa !5
  %233 = load ptr, ptr %4, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.ntttcp_test, ptr %233, i32 0, i32 29
  store ptr %232, ptr %234, align 8, !tbaa !43
  br label %276

235:                                              ; preds = %226
  %236 = load i32, ptr @optind, align 4, !tbaa !9
  %237 = load i32, ptr %5, align 4, !tbaa !9
  %238 = icmp slt i32 %236, %237
  br i1 %238, label %239, label %275

239:                                              ; preds = %235
  %240 = load ptr, ptr %6, align 8, !tbaa !5
  %241 = load i32, ptr @optind, align 4, !tbaa !9
  %242 = sext i32 %241 to i64
  %243 = getelementptr inbounds ptr, ptr %240, i64 %242
  %244 = load ptr, ptr %243, align 8, !tbaa !5
  %245 = icmp ne ptr null, %244
  br i1 %245, label %246, label %275

246:                                              ; preds = %239
  %247 = load ptr, ptr %6, align 8, !tbaa !5
  %248 = load i32, ptr @optind, align 4, !tbaa !9
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds ptr, ptr %247, i64 %249
  %251 = load ptr, ptr %250, align 8, !tbaa !5
  %252 = getelementptr inbounds i8, ptr %251, i64 0
  %253 = load i8, ptr %252, align 1, !tbaa !17
  %254 = sext i8 %253 to i32
  %255 = icmp ne i32 0, %254
  br i1 %255, label %256, label %275

256:                                              ; preds = %246
  %257 = load ptr, ptr %6, align 8, !tbaa !5
  %258 = load i32, ptr @optind, align 4, !tbaa !9
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds ptr, ptr %257, i64 %259
  %261 = load ptr, ptr %260, align 8, !tbaa !5
  %262 = getelementptr inbounds i8, ptr %261, i64 0
  %263 = load i8, ptr %262, align 1, !tbaa !17
  %264 = sext i8 %263 to i32
  %265 = icmp ne i32 45, %264
  br i1 %265, label %266, label %275

266:                                              ; preds = %256
  %267 = load ptr, ptr %6, align 8, !tbaa !5
  %268 = load i32, ptr @optind, align 4, !tbaa !9
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @optind, align 4, !tbaa !9
  %270 = sext i32 %268 to i64
  %271 = getelementptr inbounds ptr, ptr %267, i64 %270
  %272 = load ptr, ptr %271, align 8, !tbaa !5
  %273 = load ptr, ptr %4, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.ntttcp_test, ptr %273, i32 0, i32 29
  store ptr %272, ptr %274, align 8, !tbaa !43
  br label %275

275:                                              ; preds = %266, %256, %246, %239, %235
  br label %276

276:                                              ; preds = %275, %231
  br label %387

277:                                              ; preds = %13
  %278 = load ptr, ptr %4, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.ntttcp_test, ptr %278, i32 0, i32 30
  store i8 1, ptr %279, align 8, !tbaa !44
  %280 = load ptr, ptr @optarg, align 8, !tbaa !5
  %281 = icmp ne ptr %280, null
  br i1 %281, label %282, label %286

282:                                              ; preds = %277
  %283 = load ptr, ptr @optarg, align 8, !tbaa !5
  %284 = load ptr, ptr %4, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ntttcp_test, ptr %284, i32 0, i32 31
  store ptr %283, ptr %285, align 8, !tbaa !45
  br label %327

286:                                              ; preds = %277
  %287 = load i32, ptr @optind, align 4, !tbaa !9
  %288 = load i32, ptr %5, align 4, !tbaa !9
  %289 = icmp slt i32 %287, %288
  br i1 %289, label %290, label %326

290:                                              ; preds = %286
  %291 = load ptr, ptr %6, align 8, !tbaa !5
  %292 = load i32, ptr @optind, align 4, !tbaa !9
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds ptr, ptr %291, i64 %293
  %295 = load ptr, ptr %294, align 8, !tbaa !5
  %296 = icmp ne ptr null, %295
  br i1 %296, label %297, label %326

297:                                              ; preds = %290
  %298 = load ptr, ptr %6, align 8, !tbaa !5
  %299 = load i32, ptr @optind, align 4, !tbaa !9
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds ptr, ptr %298, i64 %300
  %302 = load ptr, ptr %301, align 8, !tbaa !5
  %303 = getelementptr inbounds i8, ptr %302, i64 0
  %304 = load i8, ptr %303, align 1, !tbaa !17
  %305 = sext i8 %304 to i32
  %306 = icmp ne i32 0, %305
  br i1 %306, label %307, label %326

307:                                              ; preds = %297
  %308 = load ptr, ptr %6, align 8, !tbaa !5
  %309 = load i32, ptr @optind, align 4, !tbaa !9
  %310 = sext i32 %309 to i64
  %311 = getelementptr inbounds ptr, ptr %308, i64 %310
  %312 = load ptr, ptr %311, align 8, !tbaa !5
  %313 = getelementptr inbounds i8, ptr %312, i64 0
  %314 = load i8, ptr %313, align 1, !tbaa !17
  %315 = sext i8 %314 to i32
  %316 = icmp ne i32 45, %315
  br i1 %316, label %317, label %326

317:                                              ; preds = %307
  %318 = load ptr, ptr %6, align 8, !tbaa !5
  %319 = load i32, ptr @optind, align 4, !tbaa !9
  %320 = add nsw i32 %319, 1
  store i32 %320, ptr @optind, align 4, !tbaa !9
  %321 = sext i32 %319 to i64
  %322 = getelementptr inbounds ptr, ptr %318, i64 %321
  %323 = load ptr, ptr %322, align 8, !tbaa !5
  %324 = load ptr, ptr %4, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.ntttcp_test, ptr %324, i32 0, i32 31
  store ptr %323, ptr %325, align 8, !tbaa !45
  br label %326

326:                                              ; preds = %317, %307, %297, %290, %286
  br label %327

327:                                              ; preds = %326, %282
  br label %387

328:                                              ; preds = %13
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.ntttcp_test, ptr %329, i32 0, i32 32
  store i8 1, ptr %330, align 8, !tbaa !46
  %331 = load ptr, ptr @optarg, align 8, !tbaa !5
  %332 = icmp ne ptr %331, null
  br i1 %332, label %333, label %337

333:                                              ; preds = %328
  %334 = load ptr, ptr @optarg, align 8, !tbaa !5
  %335 = load ptr, ptr %4, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.ntttcp_test, ptr %335, i32 0, i32 33
  store ptr %334, ptr %336, align 8, !tbaa !47
  br label %378

337:                                              ; preds = %328
  %338 = load i32, ptr @optind, align 4, !tbaa !9
  %339 = load i32, ptr %5, align 4, !tbaa !9
  %340 = icmp slt i32 %338, %339
  br i1 %340, label %341, label %377

341:                                              ; preds = %337
  %342 = load ptr, ptr %6, align 8, !tbaa !5
  %343 = load i32, ptr @optind, align 4, !tbaa !9
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds ptr, ptr %342, i64 %344
  %346 = load ptr, ptr %345, align 8, !tbaa !5
  %347 = icmp ne ptr null, %346
  br i1 %347, label %348, label %377

348:                                              ; preds = %341
  %349 = load ptr, ptr %6, align 8, !tbaa !5
  %350 = load i32, ptr @optind, align 4, !tbaa !9
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds ptr, ptr %349, i64 %351
  %353 = load ptr, ptr %352, align 8, !tbaa !5
  %354 = getelementptr inbounds i8, ptr %353, i64 0
  %355 = load i8, ptr %354, align 1, !tbaa !17
  %356 = sext i8 %355 to i32
  %357 = icmp ne i32 0, %356
  br i1 %357, label %358, label %377

358:                                              ; preds = %348
  %359 = load ptr, ptr %6, align 8, !tbaa !5
  %360 = load i32, ptr @optind, align 4, !tbaa !9
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds ptr, ptr %359, i64 %361
  %363 = load ptr, ptr %362, align 8, !tbaa !5
  %364 = getelementptr inbounds i8, ptr %363, i64 0
  %365 = load i8, ptr %364, align 1, !tbaa !17
  %366 = sext i8 %365 to i32
  %367 = icmp ne i32 45, %366
  br i1 %367, label %368, label %377

368:                                              ; preds = %358
  %369 = load ptr, ptr %6, align 8, !tbaa !5
  %370 = load i32, ptr @optind, align 4, !tbaa !9
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr @optind, align 4, !tbaa !9
  %372 = sext i32 %370 to i64
  %373 = getelementptr inbounds ptr, ptr %369, i64 %372
  %374 = load ptr, ptr %373, align 8, !tbaa !5
  %375 = load ptr, ptr %4, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.ntttcp_test, ptr %375, i32 0, i32 33
  store ptr %374, ptr %376, align 8, !tbaa !47
  br label %377

377:                                              ; preds = %368, %358, %348, %341, %337
  br label %378

378:                                              ; preds = %377, %333
  br label %387

379:                                              ; preds = %13
  %380 = load ptr, ptr %4, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.ntttcp_test, ptr %380, i32 0, i32 34
  store i8 1, ptr %381, align 8, !tbaa !48
  br label %387

382:                                              ; preds = %13
  %383 = load ptr, ptr %4, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.ntttcp_test, ptr %383, i32 0, i32 35
  store i8 1, ptr %384, align 1, !tbaa !49
  br label %387

385:                                              ; preds = %13
  br label %386

386:                                              ; preds = %385, %13
  call void @print_usage()
  call void @exit(i32 noundef -1001) #8
  unreachable

387:                                              ; preds = %382, %379, %378, %327, %276, %222, %218, %215, %212, %207, %202, %197, %191, %185, %174, %173, %115, %112, %109, %104, %99, %94, %88, %85, %82, %79, %76, %73, %72
  br label %8, !llvm.loop !50

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

; Function Attrs: nounwind
declare i32 @getopt_long(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

declare double @unit_atod(ptr noundef, i32 noundef) #4

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

attributes #0 = { 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 = { 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 #3 = { 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { noreturn nounwind "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 #6 = { nounwind }
attributes #7 = { nounwind willreturn memory(read) }
attributes #8 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"ntttcp_test", !13, i64 0, !13, i64 1, !13, i64 2, !13, i64 3, !13, i64 4, !13, i64 5, !13, i64 6, !6, i64 8, !10, i64 16, !10, i64 20, !6, i64 24, !10, i64 32, !10, i64 36, !13, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !10, i64 96, !10, i64 100, !10, i64 104, !13, i64 108, !6, i64 112, !6, i64 120, !13, i64 128, !6, i64 136, !13, i64 144, !6, i64 152, !13, i64 160, !6, i64 168, !13, i64 176, !13, i64 177}
!13 = !{!"_Bool", !7, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!12, !13, i64 1}
!16 = !{!12, !6, i64 24}
!17 = !{!7, !7, i64 0}
!18 = !{!12, !13, i64 4}
!19 = !{!12, !13, i64 2}
!20 = !{!12, !13, i64 3}
!21 = !{!12, !13, i64 5}
!22 = !{!12, !13, i64 6}
!23 = !{!12, !6, i64 8}
!24 = !{!12, !10, i64 16}
!25 = !{!12, !10, i64 32}
!26 = !{!12, !10, i64 36}
!27 = !{!12, !10, i64 44}
!28 = !{!12, !10, i64 48}
!29 = !{!12, !10, i64 52}
!30 = !{!12, !10, i64 56}
!31 = !{!12, !14, i64 64}
!32 = !{!12, !14, i64 72}
!33 = !{!12, !14, i64 80}
!34 = !{!12, !14, i64 88}
!35 = !{!12, !10, i64 96}
!36 = !{!12, !10, i64 100}
!37 = !{!12, !10, i64 104}
!38 = !{!12, !13, i64 40}
!39 = !{!12, !13, i64 108}
!40 = !{!12, !6, i64 112}
!41 = !{!12, !6, i64 120}
!42 = !{!12, !13, i64 128}
!43 = !{!12, !6, i64 136}
!44 = !{!12, !13, i64 144}
!45 = !{!12, !6, i64 152}
!46 = !{!12, !13, i64 160}
!47 = !{!12, !6, i64 168}
!48 = !{!12, !13, i64 176}
!49 = !{!12, !13, i64 177}
!50 = distinct !{!50, !51}
!51 = !{!"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.option = type { ptr, i32, ptr, i32 }

@parse_arguments.longopts = external hidden global [5 x %struct.option], align 16
@.str.162 = external hidden unnamed_addr constant [50 x i8], align 1
@optarg = external local_unnamed_addr global ptr, align 8
@optind = external local_unnamed_addr global i32, align 4

; Function Attrs: nounwind uwtable
declare dso_local void @print_usage() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @process_mappings(ptr noundef) local_unnamed_addr #0

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @parse_arguments(ptr noundef %0, i32 noundef %1, ptr noundef %2) local_unnamed_addr #0 {
  %4 = getelementptr inbounds i8, ptr %0, i64 1
  %5 = getelementptr inbounds i8, ptr %0, i64 24
  %6 = getelementptr inbounds i8, ptr %0, i64 160
  %7 = getelementptr inbounds i8, ptr %0, i64 168
  %8 = getelementptr inbounds i8, ptr %0, i64 144
  %9 = getelementptr inbounds i8, ptr %0, i64 152
  %10 = getelementptr inbounds i8, ptr %0, i64 128
  %11 = getelementptr inbounds i8, ptr %0, i64 136
  %12 = getelementptr inbounds i8, ptr %0, i64 120
  %13 = getelementptr inbounds i8, ptr %0, i64 112
  %14 = getelementptr inbounds i8, ptr %0, i64 108
  %15 = getelementptr inbounds i8, ptr %0, i64 40
  %16 = getelementptr inbounds i8, ptr %0, i64 104
  %17 = getelementptr inbounds i8, ptr %0, i64 100
  %18 = getelementptr inbounds i8, ptr %0, i64 96
  %19 = getelementptr inbounds i8, ptr %0, i64 88
  %20 = getelementptr inbounds i8, ptr %0, i64 80
  %21 = getelementptr inbounds i8, ptr %0, i64 64
  %22 = getelementptr inbounds i8, ptr %0, i64 72
  %23 = getelementptr inbounds i8, ptr %0, i64 56
  %24 = getelementptr inbounds i8, ptr %0, i64 52
  %25 = getelementptr inbounds i8, ptr %0, i64 48
  %26 = getelementptr inbounds i8, ptr %0, i64 44
  %27 = getelementptr inbounds i8, ptr %0, i64 36
  %28 = getelementptr inbounds i8, ptr %0, i64 32
  %29 = getelementptr inbounds i8, ptr %0, i64 16
  %30 = getelementptr inbounds i8, ptr %0, i64 8
  %31 = getelementptr inbounds i8, ptr %0, i64 6
  %32 = getelementptr inbounds i8, ptr %0, i64 5
  %33 = getelementptr inbounds i8, ptr %0, i64 3
  %34 = getelementptr inbounds i8, ptr %0, i64 2
  %35 = getelementptr inbounds i8, ptr %0, i64 4
  %36 = getelementptr inbounds i8, ptr %0, i64 176
  %37 = getelementptr inbounds i8, ptr %0, i64 177
  br label %38

38:                                               ; preds = %.backedge, %3
  %39 = tail call i32 @getopt_long(i32 noundef %1, ptr noundef %2, ptr noundef nonnull @.str.162, ptr noundef nonnull @parse_arguments.longopts, ptr noundef null) #5
  switch i32 %39, label %169 [
    i32 -1, label %170
    i32 86, label %168
    i32 81, label %167
    i32 68, label %56
    i32 77, label %57
    i32 76, label %58
    i32 101, label %59
    i32 72, label %60
    i32 109, label %61
    i32 80, label %64
    i32 110, label %67
    i32 108, label %70
    i32 54, label %73
    i32 117, label %74
    i32 112, label %75
    i32 102, label %78
    i32 98, label %95
    i32 66, label %102
    i32 4, label %106
    i32 87, label %110
    i32 116, label %113
    i32 67, label %116
    i32 78, label %119
    i32 1, label %120
    i32 2, label %121
    i32 3, label %123
    i32 79, label %125
    i32 120, label %139
    i32 106, label %153
    i32 114, label %40
    i32 115, label %41
  ]

40:                                               ; preds = %38
  store i8 1, ptr %0, align 8, !tbaa !5
  br label %42

41:                                               ; preds = %38
  store i8 1, ptr %4, align 1, !tbaa !13
  br label %42

42:                                               ; preds = %41, %40
  %43 = load ptr, ptr @optarg, align 8, !tbaa !14
  %.not106 = icmp eq ptr %43, null
  br i1 %.not106, label %45, label %44

44:                                               ; preds = %42
  store ptr %43, ptr %5, align 8, !tbaa !15
  br label %.backedge

45:                                               ; preds = %42
  %46 = load i32, ptr @optind, align 4, !tbaa !16
  %47 = icmp slt i32 %46, %1
  br i1 %47, label %48, label %.backedge

48:                                               ; preds = %45
  %49 = sext i32 %46 to i64
  %50 = getelementptr inbounds ptr, ptr %2, i64 %49
  %51 = load ptr, ptr %50, align 8, !tbaa !14
  %.not107 = icmp eq ptr %51, null
  br i1 %.not107, label %.backedge, label %52

52:                                               ; preds = %48
  %53 = load i8, ptr %51, align 1, !tbaa !17
  switch i8 %53, label %54 [
    i8 0, label %.backedge
    i8 45, label %.backedge
  ]

54:                                               ; preds = %52
  %55 = add nsw i32 %46, 1
  store i32 %55, ptr @optind, align 4, !tbaa !16
  store ptr %51, ptr %5, align 8, !tbaa !15
  br label %.backedge

56:                                               ; preds = %38
  store i8 1, ptr %35, align 4, !tbaa !18
  br label %.backedge

57:                                               ; preds = %38
  store i8 1, ptr %34, align 2, !tbaa !19
  br label %.backedge

58:                                               ; preds = %38
  store i8 1, ptr %33, align 1, !tbaa !20
  br label %.backedge

59:                                               ; preds = %38
  store i8 1, ptr %32, align 1, !tbaa !21
  br label %.backedge

60:                                               ; preds = %38
  store i8 0, ptr %31, align 2, !tbaa !22
  br label %.backedge

61:                                               ; preds = %38
  %62 = load ptr, ptr @optarg, align 8, !tbaa !14
  store ptr %62, ptr %30, align 8, !tbaa !23
  %63 = tail call i32 @process_mappings(ptr noundef %0)
  br label %.backedge

64:                                               ; preds = %38
  %65 = load ptr, ptr @optarg, align 8, !tbaa !14
  %66 = tail call i32 @atoi(ptr nocapture noundef %65) #6
  store i32 %66, ptr %29, align 8, !tbaa !24
  br label %.backedge

67:                                               ; preds = %38
  %68 = load ptr, ptr @optarg, align 8, !tbaa !14
  %69 = tail call i32 @atoi(ptr nocapture noundef %68) #6
  store i32 %69, ptr %28, align 8, !tbaa !25
  br label %.backedge

70:                                               ; preds = %38
  %71 = load ptr, ptr @optarg, align 8, !tbaa !14
  %72 = tail call i32 @atoi(ptr nocapture noundef %71) #6
  store i32 %72, ptr %27, align 4, !tbaa !26
  br label %.backedge

73:                                               ; preds = %38
  store i32 10, ptr %26, align 4, !tbaa !27
  br label %.backedge

74:                                               ; preds = %38
  store i32 2, ptr %25, align 8, !tbaa !28
  br label %.backedge

75:                                               ; preds = %38
  %76 = load ptr, ptr @optarg, align 8, !tbaa !14
  %77 = tail call i32 @atoi(ptr nocapture noundef %76) #6
  store i32 %77, ptr %24, align 4, !tbaa !29
  br label %.backedge

78:                                               ; preds = %38
  %79 = load ptr, ptr @optarg, align 8, !tbaa !14
  %.not102 = icmp eq ptr %79, null
  br i1 %.not102, label %82, label %80

80:                                               ; preds = %78
  %81 = tail call i32 @atoi(ptr nocapture noundef %79) #6
  store i32 %81, ptr %23, align 8, !tbaa !30
  br label %.backedge

82:                                               ; preds = %78
  %83 = load i32, ptr @optind, align 4, !tbaa !16
  %84 = icmp slt i32 %83, %1
  br i1 %84, label %85, label %94

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 !14
  %.not103 = icmp eq ptr %88, null
  br i1 %.not103, label %94, label %89

89:                                               ; preds = %85
  %90 = load i8, ptr %88, align 1, !tbaa !17
  switch i8 %90, label %91 [
    i8 0, label %94
    i8 45, label %94
  ]

91:                                               ; preds = %89
  %92 = add nsw i32 %83, 1
  store i32 %92, ptr @optind, align 4, !tbaa !16
  %93 = tail call i32 @atoi(ptr nocapture noundef %88) #6
  store i32 %93, ptr %23, align 8, !tbaa !30
  br label %.backedge

94:                                               ; preds = %89, %89, %85, %82
  store i32 25001, ptr %23, align 8, !tbaa !30
  br label %.backedge

95:                                               ; preds = %38
  %96 = load ptr, ptr @optarg, align 8, !tbaa !14
  %97 = tail call double @unit_atod(ptr noundef %96, i32 noundef 1024) #5
  %98 = fptoui double %97 to i64
  store i64 %98, ptr %21, align 8, !tbaa !31
  %99 = load ptr, ptr @optarg, align 8, !tbaa !14
  %100 = tail call double @unit_atod(ptr noundef %99, i32 noundef 1024) #5
  %101 = fptoui double %100 to i64
  store i64 %101, ptr %22, align 8, !tbaa !32
  br label %.backedge

102:                                              ; preds = %38
  %103 = load ptr, ptr @optarg, align 8, !tbaa !14
  %104 = tail call double @unit_atod(ptr noundef %103, i32 noundef 1000) #5
  %105 = fptosi double %104 to i64
  store i64 %105, ptr %20, align 8, !tbaa !33
  br label %.backedge

106:                                              ; preds = %38
  %107 = load ptr, ptr @optarg, align 8, !tbaa !14
  %108 = tail call double @unit_atod(ptr noundef %107, i32 noundef 1000) #5
  %109 = fptosi double %108 to i64
  store i64 %109, ptr %19, align 8, !tbaa !34
  br label %.backedge

110:                                              ; preds = %38
  %111 = load ptr, ptr @optarg, align 8, !tbaa !14
  %112 = tail call i32 @atoi(ptr nocapture noundef %111) #6
  store i32 %112, ptr %18, align 8, !tbaa !35
  br label %.backedge

113:                                              ; preds = %38
  %114 = load ptr, ptr @optarg, align 8, !tbaa !14
  %115 = tail call i32 @atoi(ptr nocapture noundef %114) #6
  store i32 %115, ptr %17, align 4, !tbaa !36
  br label %.backedge

116:                                              ; preds = %38
  %117 = load ptr, ptr @optarg, align 8, !tbaa !14
  %118 = tail call i32 @atoi(ptr nocapture noundef %117) #6
  store i32 %118, ptr %16, align 8, !tbaa !37
  br label %.backedge

119:                                              ; preds = %38
  store i8 1, ptr %15, align 8, !tbaa !38
  br label %.backedge

120:                                              ; preds = %38
  store i8 1, ptr %14, align 4, !tbaa !39
  br label %.backedge

121:                                              ; preds = %38
  %122 = load ptr, ptr @optarg, align 8, !tbaa !14
  store ptr %122, ptr %13, align 8, !tbaa !40
  br label %.backedge

123:                                              ; preds = %38
  %124 = load ptr, ptr @optarg, align 8, !tbaa !14
  store ptr %124, ptr %12, align 8, !tbaa !41
  br label %.backedge

125:                                              ; preds = %38
  store i8 1, ptr %10, align 8, !tbaa !42
  %126 = load ptr, ptr @optarg, align 8, !tbaa !14
  %.not98 = icmp eq ptr %126, null
  br i1 %.not98, label %128, label %127

127:                                              ; preds = %125
  store ptr %126, ptr %11, align 8, !tbaa !43
  br label %.backedge

128:                                              ; preds = %125
  %129 = load i32, ptr @optind, align 4, !tbaa !16
  %130 = icmp slt i32 %129, %1
  br i1 %130, label %131, label %.backedge

131:                                              ; preds = %128
  %132 = sext i32 %129 to i64
  %133 = getelementptr inbounds ptr, ptr %2, i64 %132
  %134 = load ptr, ptr %133, align 8, !tbaa !14
  %.not99 = icmp eq ptr %134, null
  br i1 %.not99, label %.backedge, label %135

135:                                              ; preds = %131
  %136 = load i8, ptr %134, align 1, !tbaa !17
  switch i8 %136, label %137 [
    i8 0, label %.backedge
    i8 45, label %.backedge
  ]

137:                                              ; preds = %135
  %138 = add nsw i32 %129, 1
  store i32 %138, ptr @optind, align 4, !tbaa !16
  store ptr %134, ptr %11, align 8, !tbaa !43
  br label %.backedge

139:                                              ; preds = %38
  store i8 1, ptr %8, align 8, !tbaa !44
  %140 = load ptr, ptr @optarg, align 8, !tbaa !14
  %.not94 = icmp eq ptr %140, null
  br i1 %.not94, label %142, label %141

141:                                              ; preds = %139
  store ptr %140, ptr %9, align 8, !tbaa !45
  br label %.backedge

142:                                              ; preds = %139
  %143 = load i32, ptr @optind, align 4, !tbaa !16
  %144 = icmp slt i32 %143, %1
  br i1 %144, label %145, label %.backedge

145:                                              ; preds = %142
  %146 = sext i32 %143 to i64
  %147 = getelementptr inbounds ptr, ptr %2, i64 %146
  %148 = load ptr, ptr %147, align 8, !tbaa !14
  %.not95 = icmp eq ptr %148, null
  br i1 %.not95, label %.backedge, label %149

149:                                              ; preds = %145
  %150 = load i8, ptr %148, align 1, !tbaa !17
  switch i8 %150, label %151 [
    i8 0, label %.backedge
    i8 45, label %.backedge
  ]

151:                                              ; preds = %149
  %152 = add nsw i32 %143, 1
  store i32 %152, ptr @optind, align 4, !tbaa !16
  store ptr %148, ptr %9, align 8, !tbaa !45
  br label %.backedge

153:                                              ; preds = %38
  store i8 1, ptr %6, align 8, !tbaa !46
  %154 = load ptr, ptr @optarg, align 8, !tbaa !14
  %.not90 = icmp eq ptr %154, null
  br i1 %.not90, label %156, label %155

155:                                              ; preds = %153
  store ptr %154, ptr %7, align 8, !tbaa !47
  br label %.backedge

156:                                              ; preds = %153
  %157 = load i32, ptr @optind, align 4, !tbaa !16
  %158 = icmp slt i32 %157, %1
  br i1 %158, label %159, label %.backedge

159:                                              ; preds = %156
  %160 = sext i32 %157 to i64
  %161 = getelementptr inbounds ptr, ptr %2, i64 %160
  %162 = load ptr, ptr %161, align 8, !tbaa !14
  %.not91 = icmp eq ptr %162, null
  br i1 %.not91, label %.backedge, label %163

163:                                              ; preds = %159
  %164 = load i8, ptr %162, align 1, !tbaa !17
  switch i8 %164, label %165 [
    i8 0, label %.backedge
    i8 45, label %.backedge
  ]

.backedge:                                        ; preds = %163, %163, %149, %149, %135, %135, %52, %52, %155, %165, %159, %156, %141, %151, %145, %142, %127, %137, %131, %128, %80, %94, %91, %44, %54, %48, %45, %168, %167, %123, %121, %120, %119, %116, %113, %110, %106, %102, %95, %75, %74, %73, %70, %67, %64, %61, %60, %59, %58, %57, %56
  br label %38, !llvm.loop !48

165:                                              ; preds = %163
  %166 = add nsw i32 %157, 1
  store i32 %166, ptr @optind, align 4, !tbaa !16
  store ptr %162, ptr %7, align 8, !tbaa !47
  br label %.backedge

167:                                              ; preds = %38
  store i8 1, ptr %36, align 8, !tbaa !50
  br label %.backedge

168:                                              ; preds = %38
  store i8 1, ptr %37, align 1, !tbaa !51
  br label %.backedge

169:                                              ; preds = %38
  tail call void @print_usage()
  tail call void @exit(i32 noundef -1001) #7
  unreachable

170:                                              ; preds = %38
  ret i32 0
}

; Function Attrs: nounwind
declare i32 @getopt_long(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @unit_atod(ptr noundef, i32 noundef) local_unnamed_addr #3

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

attributes #0 = { 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 = { 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 #2 = { 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 #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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }
attributes #6 = { nounwind willreturn memory(read) }
attributes #7 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"ntttcp_test", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4, !7, i64 5, !7, i64 6, !10, i64 8, !11, i64 16, !11, i64 20, !10, i64 24, !11, i64 32, !11, i64 36, !7, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !7, i64 108, !10, i64 112, !10, i64 120, !7, i64 128, !10, i64 136, !7, i64 144, !10, i64 152, !7, i64 160, !10, i64 168, !7, i64 176, !7, i64 177}
!7 = !{!"_Bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!6, !7, i64 1}
!14 = !{!10, !10, i64 0}
!15 = !{!6, !10, i64 24}
!16 = !{!11, !11, i64 0}
!17 = !{!8, !8, i64 0}
!18 = !{!6, !7, i64 4}
!19 = !{!6, !7, i64 2}
!20 = !{!6, !7, i64 3}
!21 = !{!6, !7, i64 5}
!22 = !{!6, !7, i64 6}
!23 = !{!6, !10, i64 8}
!24 = !{!6, !11, i64 16}
!25 = !{!6, !11, i64 32}
!26 = !{!6, !11, i64 36}
!27 = !{!6, !11, i64 44}
!28 = !{!6, !11, i64 48}
!29 = !{!6, !11, i64 52}
!30 = !{!6, !11, i64 56}
!31 = !{!6, !12, i64 64}
!32 = !{!6, !12, i64 72}
!33 = !{!6, !12, i64 80}
!34 = !{!6, !12, i64 88}
!35 = !{!6, !11, i64 96}
!36 = !{!6, !11, i64 100}
!37 = !{!6, !11, i64 104}
!38 = !{!6, !7, i64 40}
!39 = !{!6, !7, i64 108}
!40 = !{!6, !10, i64 112}
!41 = !{!6, !10, i64 120}
!42 = !{!6, !7, i64 128}
!43 = !{!6, !10, i64 136}
!44 = !{!6, !7, i64 144}
!45 = !{!6, !10, i64 152}
!46 = !{!6, !7, i64 160}
!47 = !{!6, !10, i64 168}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = !{!6, !7, i64 176}
!51 = !{!6, !7, i64 177}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass