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

; 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.ntttcp_test_endpoint = type { i32, ptr, i32, i32, %struct.timeval, %struct.timeval, i32, i32, i8, ptr, ptr, ptr, i8, ptr, i32, [8 x i32] }
%struct.timeval = type { i64, i64 }
%struct.ntttcp_test_endpoint_results = type { ptr, i64, double, ptr, ptr, ptr, ptr, ptr, ptr, i64, i64, i64, i64, i64, i64, ptr, double, double, double, double, double, double, double, double, double, double, double, double, double, double, i64, double, double, double, double, double, double, i64, i64, i64, double, i32, 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 }
%struct.ntttcp_test_endpoint_thread_result = type { i8, i64, double, double, double, double }
%struct.ntttcp_stream_client = type { ptr, i32, i32, ptr, i32, i32, i32, i64, i64, i64, i8, i8, i8, i8, i8, i32, i32, i64 }
%struct.cpu_usage_from_proc_stat = type { i32, i64, i64, i64, i64, i64, i64 }

@.str.1 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [31 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: nounwind
declare i32 @asprintf(ptr noundef, ptr noundef, ...) #1

declare void @PRINT_ERR(ptr noundef) #2

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

declare void @PRINT_INFO_FREE(ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local void @print_test_results(ptr noundef %0) #3 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca i64, align 8
  %5 = alloca i32, align 4
  %6 = alloca double, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #5
  %39 = load ptr, ptr %2, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %39, i32 0, i32 13
  %41 = load ptr, ptr %40, align 8, !tbaa !9
  store ptr %41, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #5
  %42 = load ptr, ptr %3, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %42, i32 0, i32 1
  %44 = load i64, ptr %43, align 8, !tbaa !15
  store i64 %44, ptr %4, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  store i32 0, ptr %5, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #5
  %45 = load ptr, ptr %3, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %45, i32 0, i32 2
  %47 = load double, ptr %46, align 8, !tbaa !20
  store double %47, ptr %6, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  store ptr null, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  store ptr null, ptr %9, align 8, !tbaa !5
  %48 = load double, ptr %6, align 8, !tbaa !21
  %49 = fcmp oeq double %48, 0.000000e+00
  br i1 %49, label %50, label %51

50:                                               ; preds = %1
  store i32 1, ptr %10, align 4
  br label %525

51:                                               ; preds = %1
  %52 = load ptr, ptr %2, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %52, i32 0, i32 1
  %54 = load ptr, ptr %53, align 8, !tbaa !22
  %55 = getelementptr inbounds %struct.ntttcp_test, ptr %54, i32 0, i32 35
  %56 = load i8, ptr %55, align 1, !tbaa !23, !range !25, !noundef !26
  %57 = trunc i8 %56 to i1
  br i1 %57, label %58, label %123

58:                                               ; preds = %51
  call void @PRINT_INFO(ptr noundef @.str.9)
  call void @PRINT_INFO(ptr noundef @.str.10)
  store i32 0, ptr %7, align 4, !tbaa !19
  br label %59

59:                                               ; preds = %119, %58
  %60 = load i32, ptr %7, align 4, !tbaa !19
  %61 = load ptr, ptr %2, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %61, i32 0, i32 7
  %63 = load i32, ptr %62, align 4, !tbaa !27
  %64 = icmp ult i32 %60, %63
  br i1 %64, label %65, label %122

65:                                               ; preds = %59
  %66 = load ptr, ptr %2, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %66, i32 0, i32 13
  %68 = load ptr, ptr %67, align 8, !tbaa !9
  %69 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %68, i32 0, i32 15
  %70 = load ptr, ptr %69, align 8, !tbaa !28
  %71 = load i32, ptr %7, align 4, !tbaa !19
  %72 = zext i32 %71 to i64
  %73 = getelementptr inbounds ptr, ptr %70, i64 %72
  %74 = load ptr, ptr %73, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.ntttcp_test_endpoint_thread_result, ptr %74, i32 0, i32 0
  %76 = load i8, ptr %75, align 8, !tbaa !29, !range !25, !noundef !26
  %77 = trunc i8 %76 to i1
  %78 = zext i1 %77 to i32
  %79 = icmp eq i32 %78, 1
  br i1 %79, label %80, label %81

80:                                               ; preds = %65
  br label %119

81:                                               ; preds = %65
  %82 = load ptr, ptr %3, align 8, !tbaa !5
  %83 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %82, i32 0, i32 15
  %84 = load ptr, ptr %83, align 8, !tbaa !28
  %85 = load i32, ptr %7, align 4, !tbaa !19
  %86 = zext i32 %85 to i64
  %87 = getelementptr inbounds ptr, ptr %84, i64 %86
  %88 = load ptr, ptr %87, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.ntttcp_test_endpoint_thread_result, ptr %88, i32 0, i32 1
  %90 = load i64, ptr %89, align 8, !tbaa !31
  %91 = load ptr, ptr %3, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %91, i32 0, i32 15
  %93 = load ptr, ptr %92, align 8, !tbaa !28
  %94 = load i32, ptr %7, align 4, !tbaa !19
  %95 = zext i32 %94 to i64
  %96 = getelementptr inbounds ptr, ptr %93, i64 %95
  %97 = load ptr, ptr %96, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.ntttcp_test_endpoint_thread_result, ptr %97, i32 0, i32 2
  %99 = load double, ptr %98, align 8, !tbaa !32
  %100 = call ptr @format_throughput(i64 noundef %90, double noundef %99)
  store ptr %100, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  %101 = load i32, ptr %7, align 4, !tbaa !19
  %102 = load ptr, ptr %3, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %102, i32 0, i32 15
  %104 = load ptr, ptr %103, align 8, !tbaa !28
  %105 = load i32, ptr %7, align 4, !tbaa !19
  %106 = zext i32 %105 to i64
  %107 = getelementptr inbounds ptr, ptr %104, i64 %106
  %108 = load ptr, ptr %107, align 8, !tbaa !5
  %109 = getelementptr inbounds %struct.ntttcp_test_endpoint_thread_result, ptr %108, i32 0, i32 2
  %110 = load double, ptr %109, align 8, !tbaa !32
  %111 = load ptr, ptr %9, align 8, !tbaa !5
  %112 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.11, i32 noundef %101, double noundef %110, ptr noundef %111) #5
  store i32 %112, ptr %11, align 4, !tbaa !19
  %113 = load i32, ptr %11, align 4, !tbaa !19
  %114 = icmp slt i32 %113, 0
  br i1 %114, label %115, label %116

115:                                              ; preds = %81
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %116

116:                                              ; preds = %115, %81
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  %117 = load ptr, ptr %9, align 8, !tbaa !5
  call void @free(ptr noundef %117) #5
  %118 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %118)
  br label %119

119:                                              ; preds = %116, %80
  %120 = load i32, ptr %7, align 4, !tbaa !19
  %121 = add i32 %120, 1
  store i32 %121, ptr %7, align 4, !tbaa !19
  br label %59, !llvm.loop !33

122:                                              ; preds = %59
  br label %123

123:                                              ; preds = %122, %51
  %124 = load ptr, ptr %2, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %124, i32 0, i32 1
  %126 = load ptr, ptr %125, align 8, !tbaa !22
  %127 = getelementptr inbounds %struct.ntttcp_test, ptr %126, i32 0, i32 1
  %128 = load i8, ptr %127, align 1, !tbaa !35, !range !25, !noundef !26
  %129 = trunc i8 %128 to i1
  %130 = zext i1 %129 to i32
  %131 = icmp eq i32 %130, 1
  br i1 %131, label %132, label %162

132:                                              ; preds = %123
  store i32 0, ptr %7, align 4, !tbaa !19
  br label %133

133:                                              ; preds = %151, %132
  %134 = load i32, ptr %7, align 4, !tbaa !19
  %135 = load ptr, ptr %2, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %135, i32 0, i32 7
  %137 = load i32, ptr %136, align 4, !tbaa !27
  %138 = icmp ult i32 %134, %137
  br i1 %138, label %139, label %154

139:                                              ; preds = %133
  %140 = load ptr, ptr %2, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %140, i32 0, i32 9
  %142 = load ptr, ptr %141, align 8, !tbaa !36
  %143 = load i32, ptr %7, align 4, !tbaa !19
  %144 = zext i32 %143 to i64
  %145 = getelementptr inbounds ptr, ptr %142, i64 %144
  %146 = load ptr, ptr %145, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.ntttcp_stream_client, ptr %146, i32 0, i32 16
  %148 = load i32, ptr %147, align 4, !tbaa !37
  %149 = load i32, ptr %5, align 4, !tbaa !19
  %150 = add i32 %149, %148
  store i32 %150, ptr %5, align 4, !tbaa !19
  br label %151

151:                                              ; preds = %139
  %152 = load i32, ptr %7, align 4, !tbaa !19
  %153 = add i32 %152, 1
  store i32 %153, ptr %7, align 4, !tbaa !19
  br label %133, !llvm.loop !39

154:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %155 = load i32, ptr %5, align 4, !tbaa !19
  %156 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.12, i32 noundef %155) #5
  store i32 %156, ptr %12, align 4, !tbaa !19
  %157 = load i32, ptr %12, align 4, !tbaa !19
  %158 = icmp slt i32 %157, 0
  br i1 %158, label %159, label %160

159:                                              ; preds = %154
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %160

160:                                              ; preds = %159, %154
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  %161 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %161)
  br label %162

162:                                              ; preds = %160, %123
  call void @PRINT_INFO(ptr noundef @.str.13)
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  %163 = load double, ptr %6, align 8, !tbaa !21
  %164 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.14, double noundef %163) #5
  store i32 %164, ptr %13, align 4, !tbaa !19
  %165 = load i32, ptr %13, align 4, !tbaa !19
  %166 = icmp slt i32 %165, 0
  br i1 %166, label %167, label %168

167:                                              ; preds = %162
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %168

168:                                              ; preds = %167, %162
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  %169 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %169)
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  %170 = load i64, ptr %4, align 8, !tbaa !18
  %171 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.15, i64 noundef %170) #5
  store i32 %171, ptr %14, align 4, !tbaa !19
  %172 = load i32, ptr %14, align 4, !tbaa !19
  %173 = icmp slt i32 %172, 0
  br i1 %173, label %174, label %175

174:                                              ; preds = %168
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %175

175:                                              ; preds = %174, %168
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  %176 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %176)
  %177 = load i64, ptr %4, align 8, !tbaa !18
  %178 = load double, ptr %6, align 8, !tbaa !21
  %179 = call ptr @format_throughput(i64 noundef %177, double noundef %178)
  store ptr %179, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %180 = load ptr, ptr %9, align 8, !tbaa !5
  %181 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.16, ptr noundef %180) #5
  store i32 %181, ptr %15, align 4, !tbaa !19
  %182 = load i32, ptr %15, align 4, !tbaa !19
  %183 = icmp slt i32 %182, 0
  br i1 %183, label %184, label %185

184:                                              ; preds = %175
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %185

185:                                              ; preds = %184, %175
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  %186 = load ptr, ptr %9, align 8, !tbaa !5
  call void @free(ptr noundef %186) #5
  %187 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %187)
  %188 = load ptr, ptr %3, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %188, i32 0, i32 0
  %190 = load ptr, ptr %189, align 8, !tbaa !40
  %191 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %190, i32 0, i32 1
  %192 = load ptr, ptr %191, align 8, !tbaa !22
  %193 = getelementptr inbounds %struct.ntttcp_test, ptr %192, i32 0, i32 15
  %194 = load i32, ptr %193, align 8, !tbaa !41
  %195 = icmp eq i32 %194, 1
  br i1 %195, label %196, label %206

196:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  %197 = load ptr, ptr %3, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %197, i32 0, i32 39
  %199 = load i64, ptr %198, align 8, !tbaa !42
  %200 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.17, i64 noundef %199) #5
  store i32 %200, ptr %16, align 4, !tbaa !19
  %201 = load i32, ptr %16, align 4, !tbaa !19
  %202 = icmp slt i32 %201, 0
  br i1 %202, label %203, label %204

203:                                              ; preds = %196
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %204

204:                                              ; preds = %203, %196
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  %205 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %205)
  br label %206

206:                                              ; preds = %204, %185
  %207 = load ptr, ptr %2, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %207, i32 0, i32 1
  %209 = load ptr, ptr %208, align 8, !tbaa !22
  %210 = getelementptr inbounds %struct.ntttcp_test, ptr %209, i32 0, i32 25
  %211 = load i8, ptr %210, align 4, !tbaa !43, !range !25, !noundef !26
  %212 = trunc i8 %211 to i1
  br i1 %212, label %213, label %277

213:                                              ; preds = %206
  call void @PRINT_INFO(ptr noundef @.str.18)
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  %214 = load ptr, ptr %3, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %214, i32 0, i32 18
  %216 = load double, ptr %215, align 8, !tbaa !44
  %217 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.19, double noundef %216) #5
  store i32 %217, ptr %17, align 4, !tbaa !19
  %218 = load i32, ptr %17, align 4, !tbaa !19
  %219 = icmp slt i32 %218, 0
  br i1 %219, label %220, label %221

220:                                              ; preds = %213
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %221

221:                                              ; preds = %220, %213
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  %222 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %222)
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  %223 = load ptr, ptr %3, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %223, i32 0, i32 19
  %225 = load double, ptr %224, align 8, !tbaa !45
  %226 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.20, double noundef %225) #5
  store i32 %226, ptr %18, align 4, !tbaa !19
  %227 = load i32, ptr %18, align 4, !tbaa !19
  %228 = icmp slt i32 %227, 0
  br i1 %228, label %229, label %230

229:                                              ; preds = %221
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %230

230:                                              ; preds = %229, %221
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  %231 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %231)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  %232 = load ptr, ptr %3, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %232, i32 0, i32 20
  %234 = load double, ptr %233, align 8, !tbaa !46
  %235 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.21, double noundef %234) #5
  store i32 %235, ptr %19, align 4, !tbaa !19
  %236 = load i32, ptr %19, align 4, !tbaa !19
  %237 = icmp slt i32 %236, 0
  br i1 %237, label %238, label %239

238:                                              ; preds = %230
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %239

239:                                              ; preds = %238, %230
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  %240 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %240)
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  %241 = load ptr, ptr %3, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %241, i32 0, i32 21
  %243 = load double, ptr %242, align 8, !tbaa !47
  %244 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.22, double noundef %243) #5
  store i32 %244, ptr %20, align 4, !tbaa !19
  %245 = load i32, ptr %20, align 4, !tbaa !19
  %246 = icmp slt i32 %245, 0
  br i1 %246, label %247, label %248

247:                                              ; preds = %239
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %248

248:                                              ; preds = %247, %239
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  %249 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %249)
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  %250 = load ptr, ptr %3, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %250, i32 0, i32 22
  %252 = load double, ptr %251, align 8, !tbaa !48
  %253 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.23, double noundef %252) #5
  store i32 %253, ptr %21, align 4, !tbaa !19
  %254 = load i32, ptr %21, align 4, !tbaa !19
  %255 = icmp slt i32 %254, 0
  br i1 %255, label %256, label %257

256:                                              ; preds = %248
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %257

257:                                              ; preds = %256, %248
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  %258 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %258)
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  %259 = load ptr, ptr %3, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %259, i32 0, i32 23
  %261 = load double, ptr %260, align 8, !tbaa !49
  %262 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.24, double noundef %261) #5
  store i32 %262, ptr %22, align 4, !tbaa !19
  %263 = load i32, ptr %22, align 4, !tbaa !19
  %264 = icmp slt i32 %263, 0
  br i1 %264, label %265, label %266

265:                                              ; preds = %257
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %266

266:                                              ; preds = %265, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  %267 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %267)
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  %268 = load ptr, ptr %3, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %268, i32 0, i32 24
  %270 = load double, ptr %269, align 8, !tbaa !50
  %271 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.25, double noundef %270) #5
  store i32 %271, ptr %23, align 4, !tbaa !19
  %272 = load i32, ptr %23, align 4, !tbaa !19
  %273 = icmp slt i32 %272, 0
  br i1 %273, label %274, label %275

274:                                              ; preds = %266
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %275

275:                                              ; preds = %274, %266
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  %276 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %276)
  br label %277

277:                                              ; preds = %275, %206
  %278 = load ptr, ptr %2, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %278, i32 0, i32 1
  %280 = load ptr, ptr %279, align 8, !tbaa !22
  %281 = getelementptr inbounds %struct.ntttcp_test, ptr %280, i32 0, i32 26
  %282 = load ptr, ptr %281, align 8, !tbaa !51
  %283 = call i32 @strcmp(ptr noundef %282, ptr noundef @.str.26) #6
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %304

285:                                              ; preds = %277
  call void @PRINT_INFO(ptr noundef @.str.27)
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  %286 = load ptr, ptr %3, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %286, i32 0, i32 37
  %288 = load i64, ptr %287, align 8, !tbaa !52
  %289 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.28, i64 noundef %288) #5
  store i32 %289, ptr %24, align 4, !tbaa !19
  %290 = load i32, ptr %24, align 4, !tbaa !19
  %291 = icmp slt i32 %290, 0
  br i1 %291, label %292, label %293

292:                                              ; preds = %285
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %293

293:                                              ; preds = %292, %285
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  %294 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %294)
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %295 = load ptr, ptr %3, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %295, i32 0, i32 38
  %297 = load i64, ptr %296, align 8, !tbaa !53
  %298 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.29, i64 noundef %297) #5
  store i32 %298, ptr %25, align 4, !tbaa !19
  %299 = load i32, ptr %25, align 4, !tbaa !19
  %300 = icmp slt i32 %299, 0
  br i1 %300, label %301, label %302

301:                                              ; preds = %293
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %302

302:                                              ; preds = %301, %293
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  %303 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %303)
  br label %304

304:                                              ; preds = %302, %277
  %305 = load ptr, ptr %2, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %305, i32 0, i32 1
  %307 = load ptr, ptr %306, align 8, !tbaa !22
  %308 = getelementptr inbounds %struct.ntttcp_test, ptr %307, i32 0, i32 27
  %309 = load ptr, ptr %308, align 8, !tbaa !54
  %310 = call i32 @strcmp(ptr noundef %309, ptr noundef @.str.26) #6
  %311 = icmp ne i32 %310, 0
  br i1 %311, label %312, label %322

312:                                              ; preds = %304
  call void @PRINT_INFO(ptr noundef @.str.30)
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  %313 = load ptr, ptr %3, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %313, i32 0, i32 30
  %315 = load i64, ptr %314, align 8, !tbaa !55
  %316 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.31, i64 noundef %315) #5
  store i32 %316, ptr %26, align 4, !tbaa !19
  %317 = load i32, ptr %26, align 4, !tbaa !19
  %318 = icmp slt i32 %317, 0
  br i1 %318, label %319, label %320

319:                                              ; preds = %312
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %320

320:                                              ; preds = %319, %312
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  %321 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %321)
  br label %322

322:                                              ; preds = %320, %304
  %323 = load ptr, ptr %2, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %323, i32 0, i32 1
  %325 = load ptr, ptr %324, align 8, !tbaa !22
  %326 = getelementptr inbounds %struct.ntttcp_test, ptr %325, i32 0, i32 26
  %327 = load ptr, ptr %326, align 8, !tbaa !51
  %328 = call i32 @strcmp(ptr noundef %327, ptr noundef @.str.26) #6
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %330, label %348

330:                                              ; preds = %322
  %331 = load ptr, ptr %2, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %331, i32 0, i32 1
  %333 = load ptr, ptr %332, align 8, !tbaa !22
  %334 = getelementptr inbounds %struct.ntttcp_test, ptr %333, i32 0, i32 27
  %335 = load ptr, ptr %334, align 8, !tbaa !54
  %336 = call i32 @strcmp(ptr noundef %335, ptr noundef @.str.26) #6
  %337 = icmp ne i32 %336, 0
  br i1 %337, label %338, label %348

338:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  %339 = load ptr, ptr %3, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %339, i32 0, i32 31
  %341 = load double, ptr %340, align 8, !tbaa !56
  %342 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.32, double noundef %341) #5
  store i32 %342, ptr %27, align 4, !tbaa !19
  %343 = load i32, ptr %27, align 4, !tbaa !19
  %344 = icmp slt i32 %343, 0
  br i1 %344, label %345, label %346

345:                                              ; preds = %338
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %346

346:                                              ; preds = %345, %338
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  %347 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %347)
  br label %348

348:                                              ; preds = %346, %330, %322
  %349 = load ptr, ptr %3, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %349, i32 0, i32 6
  %351 = load ptr, ptr %350, align 8, !tbaa !57
  %352 = getelementptr inbounds %struct.cpu_usage_from_proc_stat, ptr %351, i32 0, i32 0
  %353 = load i32, ptr %352, align 8, !tbaa !58
  %354 = load ptr, ptr %3, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %354, i32 0, i32 5
  %356 = load ptr, ptr %355, align 8, !tbaa !61
  %357 = getelementptr inbounds %struct.cpu_usage_from_proc_stat, ptr %356, i32 0, i32 0
  %358 = load i32, ptr %357, align 8, !tbaa !58
  %359 = icmp eq i32 %353, %358
  br i1 %359, label %360, label %372

360:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  %361 = load ptr, ptr %3, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %361, i32 0, i32 6
  %363 = load ptr, ptr %362, align 8, !tbaa !57
  %364 = getelementptr inbounds %struct.cpu_usage_from_proc_stat, ptr %363, i32 0, i32 0
  %365 = load i32, ptr %364, align 8, !tbaa !58
  %366 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.33, i32 noundef %365) #5
  store i32 %366, ptr %28, align 4, !tbaa !19
  %367 = load i32, ptr %28, align 4, !tbaa !19
  %368 = icmp slt i32 %367, 0
  br i1 %368, label %369, label %370

369:                                              ; preds = %360
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %370

370:                                              ; preds = %369, %360
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  %371 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %371)
  br label %389

372:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  %373 = load ptr, ptr %3, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %373, i32 0, i32 5
  %375 = load ptr, ptr %374, align 8, !tbaa !61
  %376 = getelementptr inbounds %struct.cpu_usage_from_proc_stat, ptr %375, i32 0, i32 0
  %377 = load i32, ptr %376, align 8, !tbaa !58
  %378 = load ptr, ptr %3, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %378, i32 0, i32 6
  %380 = load ptr, ptr %379, align 8, !tbaa !57
  %381 = getelementptr inbounds %struct.cpu_usage_from_proc_stat, ptr %380, i32 0, i32 0
  %382 = load i32, ptr %381, align 8, !tbaa !58
  %383 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.34, i32 noundef %377, i32 noundef %382) #5
  store i32 %383, ptr %29, align 4, !tbaa !19
  %384 = load i32, ptr %29, align 4, !tbaa !19
  %385 = icmp slt i32 %384, 0
  br i1 %385, label %386, label %387

386:                                              ; preds = %372
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %387

387:                                              ; preds = %386, %372
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  %388 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_ERR_FREE(ptr noundef %388)
  br label %389

389:                                              ; preds = %387, %370
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  %390 = load ptr, ptr %3, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %390, i32 0, i32 16
  %392 = load double, ptr %391, align 8, !tbaa !62
  %393 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.35, double noundef %392) #5
  store i32 %393, ptr %30, align 4, !tbaa !19
  %394 = load i32, ptr %30, align 4, !tbaa !19
  %395 = icmp slt i32 %394, 0
  br i1 %395, label %396, label %397

396:                                              ; preds = %389
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %397

397:                                              ; preds = %396, %389
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  %398 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %398)
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  %399 = load ptr, ptr %3, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %399, i32 0, i32 25
  %401 = load double, ptr %400, align 8, !tbaa !63
  %402 = fmul double %401, 1.000000e+02
  %403 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.36, double noundef %402) #5
  store i32 %403, ptr %31, align 4, !tbaa !19
  %404 = load i32, ptr %31, align 4, !tbaa !19
  %405 = icmp slt i32 %404, 0
  br i1 %405, label %406, label %407

406:                                              ; preds = %397
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %407

407:                                              ; preds = %406, %397
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  %408 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %408)
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  %409 = load ptr, ptr %3, align 8, !tbaa !5
  %410 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %409, i32 0, i32 26
  %411 = load double, ptr %410, align 8, !tbaa !64
  %412 = fmul double %411, 1.000000e+02
  %413 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.37, double noundef %412) #5
  store i32 %413, ptr %32, align 4, !tbaa !19
  %414 = load i32, ptr %32, align 4, !tbaa !19
  %415 = icmp slt i32 %414, 0
  br i1 %415, label %416, label %417

416:                                              ; preds = %407
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %417

417:                                              ; preds = %416, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  %418 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %418)
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  %419 = load ptr, ptr %3, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %419, i32 0, i32 27
  %421 = load double, ptr %420, align 8, !tbaa !65
  %422 = fmul double %421, 1.000000e+02
  %423 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.38, double noundef %422) #5
  store i32 %423, ptr %33, align 4, !tbaa !19
  %424 = load i32, ptr %33, align 4, !tbaa !19
  %425 = icmp slt i32 %424, 0
  br i1 %425, label %426, label %427

426:                                              ; preds = %417
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %427

427:                                              ; preds = %426, %417
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  %428 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %428)
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  %429 = load ptr, ptr %3, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %429, i32 0, i32 28
  %431 = load double, ptr %430, align 8, !tbaa !66
  %432 = fmul double %431, 1.000000e+02
  %433 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.39, double noundef %432) #5
  store i32 %433, ptr %34, align 4, !tbaa !19
  %434 = load i32, ptr %34, align 4, !tbaa !19
  %435 = icmp slt i32 %434, 0
  br i1 %435, label %436, label %437

436:                                              ; preds = %427
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %437

437:                                              ; preds = %436, %427
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  %438 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %438)
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  %439 = load ptr, ptr %3, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %439, i32 0, i32 29
  %441 = load double, ptr %440, align 8, !tbaa !67
  %442 = fmul double %441, 1.000000e+02
  %443 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.40, double noundef %442) #5
  store i32 %443, ptr %35, align 4, !tbaa !19
  %444 = load i32, ptr %35, align 4, !tbaa !19
  %445 = icmp slt i32 %444, 0
  br i1 %445, label %446, label %447

446:                                              ; preds = %437
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %447

447:                                              ; preds = %446, %437
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  %448 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %448)
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  %449 = load ptr, ptr %3, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %449, i32 0, i32 36
  %451 = load double, ptr %450, align 8, !tbaa !68
  %452 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.41, double noundef %451) #5
  store i32 %452, ptr %36, align 4, !tbaa !19
  %453 = load i32, ptr %36, align 4, !tbaa !19
  %454 = icmp slt i32 %453, 0
  br i1 %454, label %455, label %456

455:                                              ; preds = %447
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %456

456:                                              ; preds = %455, %447
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  %457 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %457)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  %458 = load ptr, ptr %3, align 8, !tbaa !5
  %459 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %458, i32 0, i32 40
  %460 = load double, ptr %459, align 8, !tbaa !69
  %461 = fmul double %460, 1.000000e+02
  %462 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.42, double noundef %461) #5
  store i32 %462, ptr %37, align 4, !tbaa !19
  %463 = load i32, ptr %37, align 4, !tbaa !19
  %464 = icmp slt i32 %463, 0
  br i1 %464, label %465, label %466

465:                                              ; preds = %456
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %466

466:                                              ; preds = %465, %456
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  %467 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %467)
  %468 = load ptr, ptr %2, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %468, i32 0, i32 1
  %470 = load ptr, ptr %469, align 8, !tbaa !22
  %471 = getelementptr inbounds %struct.ntttcp_test, ptr %470, i32 0, i32 35
  %472 = load i8, ptr %471, align 1, !tbaa !23, !range !25, !noundef !26
  %473 = trunc i8 %472 to i1
  br i1 %473, label %474, label %497

474:                                              ; preds = %466
  %475 = load ptr, ptr %2, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %475, i32 0, i32 0
  %477 = load i32, ptr %476, align 8, !tbaa !70
  %478 = icmp eq i32 %477, 1
  br i1 %478, label %479, label %496

479:                                              ; preds = %474
  %480 = load ptr, ptr %2, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %480, i32 0, i32 1
  %482 = load ptr, ptr %481, align 8, !tbaa !22
  %483 = getelementptr inbounds %struct.ntttcp_test, ptr %482, i32 0, i32 15
  %484 = load i32, ptr %483, align 8, !tbaa !41
  %485 = icmp eq i32 %484, 1
  br i1 %485, label %486, label %496

486:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  %487 = load ptr, ptr %3, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct.ntttcp_test_endpoint_results, ptr %487, i32 0, i32 42
  %489 = load i32, ptr %488, align 4, !tbaa !71
  %490 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef %8, ptr noundef @.str.43, i32 noundef %489) #5
  store i32 %490, ptr %38, align 4, !tbaa !19
  %491 = load i32, ptr %38, align 4, !tbaa !19
  %492 = icmp slt i32 %491, 0
  br i1 %492, label %493, label %494

493:                                              ; preds = %486
  call void @PRINT_ERR(ptr noundef @.str.1)
  br label %494

494:                                              ; preds = %493, %486
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  %495 = load ptr, ptr %8, align 8, !tbaa !5
  call void @PRINT_INFO_FREE(ptr noundef %495)
  br label %496

496:                                              ; preds = %494, %479, %474
  br label %497

497:                                              ; preds = %496, %466
  %498 = call i32 (ptr, ...) @printf(ptr noundef @.str.44)
  %499 = load ptr, ptr %2, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %499, i32 0, i32 1
  %501 = load ptr, ptr %500, align 8, !tbaa !22
  %502 = getelementptr inbounds %struct.ntttcp_test, ptr %501, i32 0, i32 30
  %503 = load i8, ptr %502, align 8, !tbaa !72, !range !25, !noundef !26
  %504 = trunc i8 %503 to i1
  br i1 %504, label %505, label %511

505:                                              ; preds = %497
  %506 = load ptr, ptr %2, align 8, !tbaa !5
  %507 = call i32 @write_result_into_xml_file(ptr noundef %506)
  %508 = icmp ne i32 %507, 0
  br i1 %508, label %509, label %510

509:                                              ; preds = %505
  call void @PRINT_ERR(ptr noundef @.str.45)
  br label %510

510:                                              ; preds = %509, %505
  br label %511

511:                                              ; preds = %510, %497
  %512 = load ptr, ptr %2, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.ntttcp_test_endpoint, ptr %512, i32 0, i32 1
  %514 = load ptr, ptr %513, align 8, !tbaa !22
  %515 = getelementptr inbounds %struct.ntttcp_test, ptr %514, i32 0, i32 32
  %516 = load i8, ptr %515, align 8, !tbaa !73, !range !25, !noundef !26
  %517 = trunc i8 %516 to i1
  br i1 %517, label %518, label %524

518:                                              ; preds = %511
  %519 = load ptr, ptr %2, align 8, !tbaa !5
  %520 = call i32 @write_result_into_json_file(ptr noundef %519)
  %521 = icmp ne i32 %520, 0
  br i1 %521, label %522, label %523

522:                                              ; preds = %518
  call void @PRINT_ERR(ptr noundef @.str.46)
  br label %523

523:                                              ; preds = %522, %518
  br label %524

524:                                              ; preds = %523, %511
  store i32 0, ptr %10, align 4
  br label %525

525:                                              ; preds = %524, %50
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  %526 = load i32, ptr %10, align 4
  switch i32 %526, label %528 [
    i32 0, label %527
    i32 1, label %527
  ]

527:                                              ; preds = %525, %525
  ret void

528:                                              ; preds = %525
  unreachable
}

declare void @PRINT_INFO(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local ptr @format_throughput(i64 noundef, double noundef) #3

; Function Attrs: nounwind
declare void @free(ptr noundef) #1

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

declare void @PRINT_ERR_FREE(ptr noundef) #2

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @write_result_into_xml_file(ptr noundef) #3

; Function Attrs: nounwind uwtable
declare dso_local i32 @write_result_into_json_file(ptr noundef) #3

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind 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 }
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, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !6, i64 104}
!10 = !{!"ntttcp_test_endpoint", !11, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !12, i64 24, !12, i64 40, !11, i64 56, !11, i64 60, !14, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !14, i64 96, !6, i64 104, !11, i64 112, !7, i64 116}
!11 = !{!"int", !7, i64 0}
!12 = !{!"timeval", !13, i64 0, !13, i64 8}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_Bool", !7, i64 0}
!15 = !{!16, !13, i64 8}
!16 = !{!"ntttcp_test_endpoint_results", !6, i64 0, !13, i64 8, !17, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !13, i64 96, !13, i64 104, !13, i64 112, !6, i64 120, !17, i64 128, !17, i64 136, !17, i64 144, !17, i64 152, !17, i64 160, !17, i64 168, !17, i64 176, !17, i64 184, !17, i64 192, !17, i64 200, !17, i64 208, !17, i64 216, !17, i64 224, !17, i64 232, !13, i64 240, !17, i64 248, !17, i64 256, !17, i64 264, !17, i64 272, !17, i64 280, !17, i64 288, !13, i64 296, !13, i64 304, !13, i64 312, !17, i64 320, !11, i64 328, !11, i64 332}
!17 = !{!"double", !7, i64 0}
!18 = !{!13, !13, i64 0}
!19 = !{!11, !11, i64 0}
!20 = !{!16, !17, i64 16}
!21 = !{!17, !17, i64 0}
!22 = !{!10, !6, i64 8}
!23 = !{!24, !14, i64 177}
!24 = !{!"ntttcp_test", !14, i64 0, !14, i64 1, !14, i64 2, !14, i64 3, !14, i64 4, !14, i64 5, !14, i64 6, !6, i64 8, !11, i64 16, !11, i64 20, !6, i64 24, !11, i64 32, !11, i64 36, !14, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !14, i64 108, !6, i64 112, !6, i64 120, !14, i64 128, !6, i64 136, !14, i64 144, !6, i64 152, !14, i64 160, !6, i64 168, !14, i64 176, !14, i64 177}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!10, !11, i64 60}
!28 = !{!16, !6, i64 120}
!29 = !{!30, !14, i64 0}
!30 = !{!"ntttcp_test_endpoint_thread_result", !14, i64 0, !13, i64 8, !17, i64 16, !17, i64 24, !17, i64 32, !17, i64 40}
!31 = !{!30, !13, i64 8}
!32 = !{!30, !17, i64 16}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!24, !14, i64 1}
!36 = !{!10, !6, i64 72}
!37 = !{!38, !11, i64 76}
!38 = !{!"ntttcp_stream_client", !6, i64 0, !11, i64 8, !11, i64 12, !6, i64 16, !11, i64 24, !11, i64 28, !11, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !14, i64 64, !14, i64 65, !14, i64 66, !14, i64 67, !14, i64 68, !11, i64 72, !11, i64 76, !13, i64 80}
!39 = distinct !{!39, !34}
!40 = !{!16, !6, i64 0}
!41 = !{!24, !11, i64 48}
!42 = !{!16, !13, i64 312}
!43 = !{!24, !14, i64 108}
!44 = !{!16, !17, i64 144}
!45 = !{!16, !17, i64 152}
!46 = !{!16, !17, i64 160}
!47 = !{!16, !17, i64 168}
!48 = !{!16, !17, i64 176}
!49 = !{!16, !17, i64 184}
!50 = !{!16, !17, i64 192}
!51 = !{!24, !6, i64 112}
!52 = !{!16, !13, i64 296}
!53 = !{!16, !13, i64 304}
!54 = !{!24, !6, i64 120}
!55 = !{!16, !13, i64 240}
!56 = !{!16, !17, i64 248}
!57 = !{!16, !6, i64 48}
!58 = !{!59, !11, i64 0}
!59 = !{!"cpu_usage_from_proc_stat", !11, i64 0, !60, i64 8, !60, i64 16, !60, i64 24, !60, i64 32, !60, i64 40, !60, i64 48}
!60 = !{!"long long", !7, i64 0}
!61 = !{!16, !6, i64 40}
!62 = !{!16, !17, i64 128}
!63 = !{!16, !17, i64 200}
!64 = !{!16, !17, i64 208}
!65 = !{!16, !17, i64 216}
!66 = !{!16, !17, i64 224}
!67 = !{!16, !17, i64 232}
!68 = !{!16, !17, i64 288}
!69 = !{!16, !17, i64 320}
!70 = !{!10, !11, i64 0}
!71 = !{!16, !11, i64 332}
!72 = !{!24, !14, i64 144}
!73 = !{!24, !14, i64 160}


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

@.str.1 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [31 x i8], align 1

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

; Function Attrs: nounwind
declare i32 @asprintf(ptr noundef, ptr noundef, ...) local_unnamed_addr #1

declare void @PRINT_ERR(ptr noundef) local_unnamed_addr #2

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

declare void @PRINT_INFO_FREE(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local void @print_test_results(ptr noundef %0) local_unnamed_addr #3 {
  %2 = alloca ptr, align 8
  %3 = getelementptr inbounds i8, ptr %0, i64 104
  %4 = load ptr, ptr %3, align 8, !tbaa !5
  %5 = getelementptr inbounds i8, ptr %4, i64 8
  %6 = load i64, ptr %5, align 8, !tbaa !14
  %7 = getelementptr inbounds i8, ptr %4, i64 16
  %8 = load double, ptr %7, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #7
  store ptr null, ptr %2, align 8, !tbaa !18
  %9 = fcmp oeq double %8, 0.000000e+00
  br i1 %9, label %348, label %10

10:                                               ; preds = %1
  %11 = getelementptr inbounds i8, ptr %0, i64 8
  %12 = load ptr, ptr %11, align 8, !tbaa !19
  %13 = getelementptr inbounds i8, ptr %12, i64 177
  %14 = load i8, ptr %13, align 1, !tbaa !20, !range !22, !noundef !23
  %15 = trunc nuw i8 %14 to i1
  br i1 %15, label %16, label %.loopexit

16:                                               ; preds = %10
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.9) #7
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.10) #7
  %17 = getelementptr inbounds i8, ptr %0, i64 60
  %18 = load i32, ptr %17, align 4, !tbaa !24
  %.not113 = icmp eq i32 %18, 0
  br i1 %.not113, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %16
  %19 = getelementptr inbounds i8, ptr %4, i64 120
  br label %20

20:                                               ; preds = %.lr.ph, %49
  %21 = phi i32 [ %18, %.lr.ph ], [ %50, %49 ]
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %49 ]
  %22 = load ptr, ptr %3, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %22, i64 120
  %24 = load ptr, ptr %23, align 8, !tbaa !25
  %25 = getelementptr inbounds ptr, ptr %24, i64 %indvars.iv
  %26 = load ptr, ptr %25, align 8, !tbaa !18
  %27 = load i8, ptr %26, align 8, !tbaa !26, !range !22, !noundef !23
  %28 = trunc nuw i8 %27 to i1
  br i1 %28, label %49, label %29

29:                                               ; preds = %20
  %30 = load ptr, ptr %19, align 8, !tbaa !25
  %31 = getelementptr inbounds ptr, ptr %30, i64 %indvars.iv
  %32 = load ptr, ptr %31, align 8, !tbaa !18
  %33 = getelementptr inbounds i8, ptr %32, i64 8
  %34 = load i64, ptr %33, align 8, !tbaa !28
  %35 = getelementptr inbounds i8, ptr %32, i64 16
  %36 = load double, ptr %35, align 8, !tbaa !29
  %37 = call ptr @format_throughput(i64 noundef %34, double noundef %36)
  %38 = load ptr, ptr %19, align 8, !tbaa !25
  %39 = getelementptr inbounds ptr, ptr %38, i64 %indvars.iv
  %40 = load ptr, ptr %39, align 8, !tbaa !18
  %41 = getelementptr inbounds i8, ptr %40, i64 16
  %42 = load double, ptr %41, align 8, !tbaa !29
  %43 = trunc nuw i64 %indvars.iv to i32
  %44 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.11, i32 noundef %43, double noundef %42, ptr noundef %37) #7
  %45 = icmp slt i32 %44, 0
  br i1 %45, label %46, label %47

46:                                               ; preds = %29
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %47

47:                                               ; preds = %46, %29
  call void @free(ptr noundef %37) #7
  %48 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %48) #7
  %.pre = load i32, ptr %17, align 4, !tbaa !24
  br label %49

49:                                               ; preds = %20, %47
  %50 = phi i32 [ %21, %20 ], [ %.pre, %47 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %51 = zext i32 %50 to i64
  %52 = icmp ult i64 %indvars.iv.next, %51
  br i1 %52, label %20, label %.loopexit, !llvm.loop !30

.loopexit:                                        ; preds = %49, %16, %10
  %53 = load ptr, ptr %11, align 8, !tbaa !19
  %54 = getelementptr inbounds i8, ptr %53, i64 1
  %55 = load i8, ptr %54, align 1, !tbaa !32, !range !22, !noundef !23
  %56 = trunc nuw i8 %55 to i1
  br i1 %56, label %.preheader, label %93

.preheader:                                       ; preds = %.loopexit
  %57 = getelementptr inbounds i8, ptr %0, i64 60
  %58 = load i32, ptr %57, align 4, !tbaa !24
  %.not114 = icmp eq i32 %58, 0
  br i1 %.not114, label %._crit_edge, label %.lr.ph112

.lr.ph112:                                        ; preds = %.preheader
  %59 = getelementptr inbounds i8, ptr %0, i64 72
  %60 = load ptr, ptr %59, align 8, !tbaa !33
  %wide.trip.count = zext i32 %58 to i64
  %xtraiter = and i64 %wide.trip.count, 3
  %61 = icmp ult i32 %58, 4
  br i1 %61, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph112.new

.lr.ph112.new:                                    ; preds = %.lr.ph112
  %unroll_iter = and i64 %wide.trip.count, 4294967292
  br label %62

62:                                               ; preds = %62, %.lr.ph112.new
  %indvars.iv116 = phi i64 [ 0, %.lr.ph112.new ], [ %indvars.iv.next117.3, %62 ]
  %.0111 = phi i32 [ 0, %.lr.ph112.new ], [ %82, %62 ]
  %niter = phi i64 [ 0, %.lr.ph112.new ], [ %niter.next.3, %62 ]
  %63 = getelementptr inbounds ptr, ptr %60, i64 %indvars.iv116
  %64 = load ptr, ptr %63, align 8, !tbaa !18
  %65 = getelementptr inbounds i8, ptr %64, i64 76
  %66 = load i32, ptr %65, align 4, !tbaa !34
  %67 = add i32 %66, %.0111
  %indvars.iv.next117 = or disjoint i64 %indvars.iv116, 1
  %68 = getelementptr inbounds ptr, ptr %60, i64 %indvars.iv.next117
  %69 = load ptr, ptr %68, align 8, !tbaa !18
  %70 = getelementptr inbounds i8, ptr %69, i64 76
  %71 = load i32, ptr %70, align 4, !tbaa !34
  %72 = add i32 %71, %67
  %indvars.iv.next117.1 = or disjoint i64 %indvars.iv116, 2
  %73 = getelementptr inbounds ptr, ptr %60, i64 %indvars.iv.next117.1
  %74 = load ptr, ptr %73, align 8, !tbaa !18
  %75 = getelementptr inbounds i8, ptr %74, i64 76
  %76 = load i32, ptr %75, align 4, !tbaa !34
  %77 = add i32 %76, %72
  %indvars.iv.next117.2 = or disjoint i64 %indvars.iv116, 3
  %78 = getelementptr inbounds ptr, ptr %60, i64 %indvars.iv.next117.2
  %79 = load ptr, ptr %78, align 8, !tbaa !18
  %80 = getelementptr inbounds i8, ptr %79, i64 76
  %81 = load i32, ptr %80, align 4, !tbaa !34
  %82 = add i32 %81, %77
  %indvars.iv.next117.3 = add nuw nsw i64 %indvars.iv116, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge.loopexit.unr-lcssa, label %62, !llvm.loop !36

._crit_edge.loopexit.unr-lcssa:                   ; preds = %62, %.lr.ph112
  %.lcssa.ph = phi i32 [ poison, %.lr.ph112 ], [ %82, %62 ]
  %indvars.iv116.unr = phi i64 [ 0, %.lr.ph112 ], [ %indvars.iv.next117.3, %62 ]
  %.0111.unr = phi i32 [ 0, %.lr.ph112 ], [ %82, %62 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge.loopexit.unr-lcssa, %.epil.preheader
  %indvars.iv116.epil = phi i64 [ %indvars.iv.next117.epil, %.epil.preheader ], [ %indvars.iv116.unr, %._crit_edge.loopexit.unr-lcssa ]
  %.0111.epil = phi i32 [ %87, %.epil.preheader ], [ %.0111.unr, %._crit_edge.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %._crit_edge.loopexit.unr-lcssa ]
  %83 = getelementptr inbounds ptr, ptr %60, i64 %indvars.iv116.epil
  %84 = load ptr, ptr %83, align 8, !tbaa !18
  %85 = getelementptr inbounds i8, ptr %84, i64 76
  %86 = load i32, ptr %85, align 4, !tbaa !34
  %87 = add i32 %86, %.0111.epil
  %indvars.iv.next117.epil = add nuw nsw i64 %indvars.iv116.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.epil.preheader, !llvm.loop !37

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.epil.preheader, %.preheader
  %.0.lcssa = phi i32 [ 0, %.preheader ], [ %.lcssa.ph, %._crit_edge.loopexit.unr-lcssa ], [ %87, %.epil.preheader ]
  %88 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.12, i32 noundef %.0.lcssa) #7
  %89 = icmp slt i32 %88, 0
  br i1 %89, label %90, label %91

90:                                               ; preds = %._crit_edge
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %91

91:                                               ; preds = %90, %._crit_edge
  %92 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %92) #7
  br label %93

93:                                               ; preds = %91, %.loopexit
  call void @PRINT_INFO(ptr noundef nonnull @.str.13) #7
  %94 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.14, double noundef %8) #7
  %95 = icmp slt i32 %94, 0
  br i1 %95, label %96, label %97

96:                                               ; preds = %93
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %97

97:                                               ; preds = %96, %93
  %98 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %98) #7
  %99 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.15, i64 noundef %6) #7
  %100 = icmp slt i32 %99, 0
  br i1 %100, label %101, label %102

101:                                              ; preds = %97
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %102

102:                                              ; preds = %101, %97
  %103 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %103) #7
  %104 = call ptr @format_throughput(i64 noundef %6, double noundef %8)
  %105 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.16, ptr noundef %104) #7
  %106 = icmp slt i32 %105, 0
  br i1 %106, label %107, label %108

107:                                              ; preds = %102
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %108

108:                                              ; preds = %107, %102
  call void @free(ptr noundef %104) #7
  %109 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %109) #7
  %110 = load ptr, ptr %4, align 8, !tbaa !39
  %111 = getelementptr inbounds i8, ptr %110, i64 8
  %112 = load ptr, ptr %111, align 8, !tbaa !19
  %113 = getelementptr inbounds i8, ptr %112, i64 48
  %114 = load i32, ptr %113, align 8, !tbaa !40
  %115 = icmp eq i32 %114, 1
  br i1 %115, label %116, label %124

116:                                              ; preds = %108
  %117 = getelementptr inbounds i8, ptr %4, i64 312
  %118 = load i64, ptr %117, align 8, !tbaa !41
  %119 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.17, i64 noundef %118) #7
  %120 = icmp slt i32 %119, 0
  br i1 %120, label %121, label %122

121:                                              ; preds = %116
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %122

122:                                              ; preds = %121, %116
  %123 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %123) #7
  br label %124

124:                                              ; preds = %122, %108
  %125 = load ptr, ptr %11, align 8, !tbaa !19
  %126 = getelementptr inbounds i8, ptr %125, i64 108
  %127 = load i8, ptr %126, align 4, !tbaa !42, !range !22, !noundef !23
  %128 = trunc nuw i8 %127 to i1
  br i1 %128, label %129, label %179

129:                                              ; preds = %124
  call void @PRINT_INFO(ptr noundef nonnull @.str.18) #7
  %130 = getelementptr inbounds i8, ptr %4, i64 144
  %131 = load double, ptr %130, align 8, !tbaa !43
  %132 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.19, double noundef %131) #7
  %133 = icmp slt i32 %132, 0
  br i1 %133, label %134, label %135

134:                                              ; preds = %129
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %135

135:                                              ; preds = %134, %129
  %136 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %136) #7
  %137 = getelementptr inbounds i8, ptr %4, i64 152
  %138 = load double, ptr %137, align 8, !tbaa !44
  %139 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.20, double noundef %138) #7
  %140 = icmp slt i32 %139, 0
  br i1 %140, label %141, label %142

141:                                              ; preds = %135
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %142

142:                                              ; preds = %141, %135
  %143 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %143) #7
  %144 = getelementptr inbounds i8, ptr %4, i64 160
  %145 = load double, ptr %144, align 8, !tbaa !45
  %146 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.21, double noundef %145) #7
  %147 = icmp slt i32 %146, 0
  br i1 %147, label %148, label %149

148:                                              ; preds = %142
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %149

149:                                              ; preds = %148, %142
  %150 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %150) #7
  %151 = getelementptr inbounds i8, ptr %4, i64 168
  %152 = load double, ptr %151, align 8, !tbaa !46
  %153 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.22, double noundef %152) #7
  %154 = icmp slt i32 %153, 0
  br i1 %154, label %155, label %156

155:                                              ; preds = %149
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %156

156:                                              ; preds = %155, %149
  %157 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %157) #7
  %158 = getelementptr inbounds i8, ptr %4, i64 176
  %159 = load double, ptr %158, align 8, !tbaa !47
  %160 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.23, double noundef %159) #7
  %161 = icmp slt i32 %160, 0
  br i1 %161, label %162, label %163

162:                                              ; preds = %156
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %163

163:                                              ; preds = %162, %156
  %164 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %164) #7
  %165 = getelementptr inbounds i8, ptr %4, i64 184
  %166 = load double, ptr %165, align 8, !tbaa !48
  %167 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.24, double noundef %166) #7
  %168 = icmp slt i32 %167, 0
  br i1 %168, label %169, label %170

169:                                              ; preds = %163
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %170

170:                                              ; preds = %169, %163
  %171 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %171) #7
  %172 = getelementptr inbounds i8, ptr %4, i64 192
  %173 = load double, ptr %172, align 8, !tbaa !49
  %174 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.25, double noundef %173) #7
  %175 = icmp slt i32 %174, 0
  br i1 %175, label %176, label %177

176:                                              ; preds = %170
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %177

177:                                              ; preds = %176, %170
  %178 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %178) #7
  %.pre119 = load ptr, ptr %11, align 8, !tbaa !19
  br label %179

179:                                              ; preds = %177, %124
  %180 = phi ptr [ %.pre119, %177 ], [ %125, %124 ]
  %181 = getelementptr inbounds i8, ptr %180, i64 112
  %182 = load ptr, ptr %181, align 8, !tbaa !50
  %183 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %182, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not = icmp eq i32 %183, 0
  br i1 %.not, label %199, label %184

184:                                              ; preds = %179
  call void @PRINT_INFO(ptr noundef nonnull @.str.27) #7
  %185 = getelementptr inbounds i8, ptr %4, i64 296
  %186 = load i64, ptr %185, align 8, !tbaa !51
  %187 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.28, i64 noundef %186) #7
  %188 = icmp slt i32 %187, 0
  br i1 %188, label %189, label %190

189:                                              ; preds = %184
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %190

190:                                              ; preds = %189, %184
  %191 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %191) #7
  %192 = getelementptr inbounds i8, ptr %4, i64 304
  %193 = load i64, ptr %192, align 8, !tbaa !52
  %194 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.29, i64 noundef %193) #7
  %195 = icmp slt i32 %194, 0
  br i1 %195, label %196, label %197

196:                                              ; preds = %190
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %197

197:                                              ; preds = %196, %190
  %198 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %198) #7
  %.pre120 = load ptr, ptr %11, align 8, !tbaa !19
  br label %199

199:                                              ; preds = %197, %179
  %200 = phi ptr [ %.pre120, %197 ], [ %180, %179 ]
  %201 = getelementptr inbounds i8, ptr %200, i64 120
  %202 = load ptr, ptr %201, align 8, !tbaa !53
  %203 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %202, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not104 = icmp eq i32 %203, 0
  br i1 %.not104, label %212, label %204

204:                                              ; preds = %199
  call void @PRINT_INFO(ptr noundef nonnull @.str.30) #7
  %205 = getelementptr inbounds i8, ptr %4, i64 240
  %206 = load i64, ptr %205, align 8, !tbaa !54
  %207 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.31, i64 noundef %206) #7
  %208 = icmp slt i32 %207, 0
  br i1 %208, label %209, label %210

209:                                              ; preds = %204
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %210

210:                                              ; preds = %209, %204
  %211 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %211) #7
  %.pre121 = load ptr, ptr %11, align 8, !tbaa !19
  br label %212

212:                                              ; preds = %210, %199
  %213 = phi ptr [ %.pre121, %210 ], [ %200, %199 ]
  %214 = getelementptr inbounds i8, ptr %213, i64 112
  %215 = load ptr, ptr %214, align 8, !tbaa !50
  %216 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %215, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not105 = icmp eq i32 %216, 0
  br i1 %.not105, label %229, label %217

217:                                              ; preds = %212
  %218 = getelementptr inbounds i8, ptr %213, i64 120
  %219 = load ptr, ptr %218, align 8, !tbaa !53
  %220 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %219, ptr noundef nonnull dereferenceable(1) @.str.26) #8
  %.not106 = icmp eq i32 %220, 0
  br i1 %.not106, label %229, label %221

221:                                              ; preds = %217
  %222 = getelementptr inbounds i8, ptr %4, i64 248
  %223 = load double, ptr %222, align 8, !tbaa !55
  %224 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.32, double noundef %223) #7
  %225 = icmp slt i32 %224, 0
  br i1 %225, label %226, label %227

226:                                              ; preds = %221
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %227

227:                                              ; preds = %226, %221
  %228 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %228) #7
  br label %229

229:                                              ; preds = %227, %217, %212
  %230 = getelementptr inbounds i8, ptr %4, i64 48
  %231 = load ptr, ptr %230, align 8, !tbaa !56
  %232 = load i32, ptr %231, align 8, !tbaa !57
  %233 = getelementptr inbounds i8, ptr %4, i64 40
  %234 = load ptr, ptr %233, align 8, !tbaa !60
  %235 = load i32, ptr %234, align 8, !tbaa !57
  %236 = icmp eq i32 %232, %235
  br i1 %236, label %237, label %243

237:                                              ; preds = %229
  %238 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.33, i32 noundef %232) #7
  %239 = icmp slt i32 %238, 0
  br i1 %239, label %240, label %241

240:                                              ; preds = %237
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %241

241:                                              ; preds = %240, %237
  %242 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %242) #7
  br label %249

243:                                              ; preds = %229
  %244 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.34, i32 noundef %235, i32 noundef %232) #7
  %245 = icmp slt i32 %244, 0
  br i1 %245, label %246, label %247

246:                                              ; preds = %243
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %247

247:                                              ; preds = %246, %243
  %248 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_ERR_FREE(ptr noundef %248) #7
  br label %249

249:                                              ; preds = %247, %241
  %250 = getelementptr inbounds i8, ptr %4, i64 128
  %251 = load double, ptr %250, align 8, !tbaa !61
  %252 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.35, double noundef %251) #7
  %253 = icmp slt i32 %252, 0
  br i1 %253, label %254, label %255

254:                                              ; preds = %249
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %255

255:                                              ; preds = %254, %249
  %256 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %256) #7
  %257 = getelementptr inbounds i8, ptr %4, i64 200
  %258 = load double, ptr %257, align 8, !tbaa !62
  %259 = fmul double %258, 1.000000e+02
  %260 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.36, double noundef %259) #7
  %261 = icmp slt i32 %260, 0
  br i1 %261, label %262, label %263

262:                                              ; preds = %255
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %263

263:                                              ; preds = %262, %255
  %264 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %264) #7
  %265 = getelementptr inbounds i8, ptr %4, i64 208
  %266 = load double, ptr %265, align 8, !tbaa !63
  %267 = fmul double %266, 1.000000e+02
  %268 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.37, double noundef %267) #7
  %269 = icmp slt i32 %268, 0
  br i1 %269, label %270, label %271

270:                                              ; preds = %263
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %271

271:                                              ; preds = %270, %263
  %272 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %272) #7
  %273 = getelementptr inbounds i8, ptr %4, i64 216
  %274 = load double, ptr %273, align 8, !tbaa !64
  %275 = fmul double %274, 1.000000e+02
  %276 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.38, double noundef %275) #7
  %277 = icmp slt i32 %276, 0
  br i1 %277, label %278, label %279

278:                                              ; preds = %271
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %279

279:                                              ; preds = %278, %271
  %280 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %280) #7
  %281 = getelementptr inbounds i8, ptr %4, i64 224
  %282 = load double, ptr %281, align 8, !tbaa !65
  %283 = fmul double %282, 1.000000e+02
  %284 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.39, double noundef %283) #7
  %285 = icmp slt i32 %284, 0
  br i1 %285, label %286, label %287

286:                                              ; preds = %279
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %287

287:                                              ; preds = %286, %279
  %288 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %288) #7
  %289 = getelementptr inbounds i8, ptr %4, i64 232
  %290 = load double, ptr %289, align 8, !tbaa !66
  %291 = fmul double %290, 1.000000e+02
  %292 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.40, double noundef %291) #7
  %293 = icmp slt i32 %292, 0
  br i1 %293, label %294, label %295

294:                                              ; preds = %287
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %295

295:                                              ; preds = %294, %287
  %296 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %296) #7
  %297 = getelementptr inbounds i8, ptr %4, i64 288
  %298 = load double, ptr %297, align 8, !tbaa !67
  %299 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.41, double noundef %298) #7
  %300 = icmp slt i32 %299, 0
  br i1 %300, label %301, label %302

301:                                              ; preds = %295
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %302

302:                                              ; preds = %301, %295
  %303 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %303) #7
  %304 = getelementptr inbounds i8, ptr %4, i64 320
  %305 = load double, ptr %304, align 8, !tbaa !68
  %306 = fmul double %305, 1.000000e+02
  %307 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.42, double noundef %306) #7
  %308 = icmp slt i32 %307, 0
  br i1 %308, label %309, label %310

309:                                              ; preds = %302
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %310

310:                                              ; preds = %309, %302
  %311 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %311) #7
  %312 = load ptr, ptr %11, align 8, !tbaa !19
  %313 = getelementptr inbounds i8, ptr %312, i64 177
  %314 = load i8, ptr %313, align 1, !tbaa !20, !range !22, !noundef !23
  %315 = trunc nuw i8 %314 to i1
  br i1 %315, label %316, label %331

316:                                              ; preds = %310
  %317 = load i32, ptr %0, align 8, !tbaa !69
  %318 = icmp eq i32 %317, 1
  br i1 %318, label %319, label %331

319:                                              ; preds = %316
  %320 = getelementptr inbounds i8, ptr %312, i64 48
  %321 = load i32, ptr %320, align 8, !tbaa !40
  %322 = icmp eq i32 %321, 1
  br i1 %322, label %323, label %331

323:                                              ; preds = %319
  %324 = getelementptr inbounds i8, ptr %4, i64 332
  %325 = load i32, ptr %324, align 4, !tbaa !70
  %326 = call i32 (ptr, ptr, ...) @asprintf(ptr noundef nonnull %2, ptr noundef nonnull @.str.43, i32 noundef %325) #7
  %327 = icmp slt i32 %326, 0
  br i1 %327, label %328, label %329

328:                                              ; preds = %323
  call void @PRINT_ERR(ptr noundef nonnull @.str.1) #7
  br label %329

329:                                              ; preds = %328, %323
  %330 = load ptr, ptr %2, align 8, !tbaa !18
  call void @PRINT_INFO_FREE(ptr noundef %330) #7
  br label %331

331:                                              ; preds = %316, %319, %329, %310
  %332 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.44)
  %333 = load ptr, ptr %11, align 8, !tbaa !19
  %334 = getelementptr inbounds i8, ptr %333, i64 144
  %335 = load i8, ptr %334, align 8, !tbaa !71, !range !22, !noundef !23
  %336 = trunc nuw i8 %335 to i1
  br i1 %336, label %337, label %340

337:                                              ; preds = %331
  %338 = call i32 @write_result_into_xml_file(ptr noundef nonnull %0)
  %.not107 = icmp eq i32 %338, 0
  br i1 %.not107, label %340, label %339

339:                                              ; preds = %337
  call void @PRINT_ERR(ptr noundef nonnull @.str.45) #7
  br label %340

340:                                              ; preds = %337, %339, %331
  %341 = load ptr, ptr %11, align 8, !tbaa !19
  %342 = getelementptr inbounds i8, ptr %341, i64 160
  %343 = load i8, ptr %342, align 8, !tbaa !72, !range !22, !noundef !23
  %344 = trunc nuw i8 %343 to i1
  br i1 %344, label %345, label %348

345:                                              ; preds = %340
  %346 = call i32 @write_result_into_json_file(ptr noundef nonnull %0)
  %.not108 = icmp eq i32 %346, 0
  br i1 %.not108, label %348, label %347

347:                                              ; preds = %345
  call void @PRINT_ERR(ptr noundef nonnull @.str.46) #7
  br label %348

348:                                              ; preds = %340, %347, %345, %1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #7
  ret void
}

declare void @PRINT_INFO(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local ptr @format_throughput(i64 noundef, double noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #4

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

declare void @PRINT_ERR_FREE(ptr noundef) local_unnamed_addr #2

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "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 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 nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { 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, !10, i64 104}
!6 = !{!"ntttcp_test_endpoint", !7, i64 0, !10, i64 8, !7, i64 16, !7, i64 20, !11, i64 24, !11, i64 40, !7, i64 56, !7, i64 60, !13, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !13, i64 96, !10, i64 104, !7, i64 112, !8, i64 116}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"timeval", !12, i64 0, !12, i64 8}
!12 = !{!"long", !8, i64 0}
!13 = !{!"_Bool", !8, i64 0}
!14 = !{!15, !12, i64 8}
!15 = !{!"ntttcp_test_endpoint_results", !10, i64 0, !12, i64 8, !16, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !10, i64 120, !16, i64 128, !16, i64 136, !16, i64 144, !16, i64 152, !16, i64 160, !16, i64 168, !16, i64 176, !16, i64 184, !16, i64 192, !16, i64 200, !16, i64 208, !16, i64 216, !16, i64 224, !16, i64 232, !12, i64 240, !16, i64 248, !16, i64 256, !16, i64 264, !16, i64 272, !16, i64 280, !16, i64 288, !12, i64 296, !12, i64 304, !12, i64 312, !16, i64 320, !7, i64 328, !7, i64 332}
!16 = !{!"double", !8, i64 0}
!17 = !{!15, !16, i64 16}
!18 = !{!10, !10, i64 0}
!19 = !{!6, !10, i64 8}
!20 = !{!21, !13, i64 177}
!21 = !{!"ntttcp_test", !13, i64 0, !13, i64 1, !13, i64 2, !13, i64 3, !13, i64 4, !13, i64 5, !13, i64 6, !10, i64 8, !7, i64 16, !7, i64 20, !10, i64 24, !7, i64 32, !7, i64 36, !13, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !7, i64 96, !7, i64 100, !7, i64 104, !13, i64 108, !10, i64 112, !10, i64 120, !13, i64 128, !10, i64 136, !13, i64 144, !10, i64 152, !13, i64 160, !10, i64 168, !13, i64 176, !13, i64 177}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!6, !7, i64 60}
!25 = !{!15, !10, i64 120}
!26 = !{!27, !13, i64 0}
!27 = !{!"ntttcp_test_endpoint_thread_result", !13, i64 0, !12, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40}
!28 = !{!27, !12, i64 8}
!29 = !{!27, !16, i64 16}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!21, !13, i64 1}
!33 = !{!6, !10, i64 72}
!34 = !{!35, !7, i64 76}
!35 = !{!"ntttcp_stream_client", !10, i64 0, !7, i64 8, !7, i64 12, !10, i64 16, !7, i64 24, !7, i64 28, !7, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !13, i64 64, !13, i64 65, !13, i64 66, !13, i64 67, !13, i64 68, !7, i64 72, !7, i64 76, !12, i64 80}
!36 = distinct !{!36, !31}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.unroll.disable"}
!39 = !{!15, !10, i64 0}
!40 = !{!21, !7, i64 48}
!41 = !{!15, !12, i64 312}
!42 = !{!21, !13, i64 108}
!43 = !{!15, !16, i64 144}
!44 = !{!15, !16, i64 152}
!45 = !{!15, !16, i64 160}
!46 = !{!15, !16, i64 168}
!47 = !{!15, !16, i64 176}
!48 = !{!15, !16, i64 184}
!49 = !{!15, !16, i64 192}
!50 = !{!21, !10, i64 112}
!51 = !{!15, !12, i64 296}
!52 = !{!15, !12, i64 304}
!53 = !{!21, !10, i64 120}
!54 = !{!15, !12, i64 240}
!55 = !{!15, !16, i64 248}
!56 = !{!15, !10, i64 48}
!57 = !{!58, !7, i64 0}
!58 = !{!"cpu_usage_from_proc_stat", !7, i64 0, !59, i64 8, !59, i64 16, !59, i64 24, !59, i64 32, !59, i64 40, !59, i64 48}
!59 = !{!"long long", !8, i64 0}
!60 = !{!15, !10, i64 40}
!61 = !{!15, !16, i64 128}
!62 = !{!15, !16, i64 200}
!63 = !{!15, !16, i64 208}
!64 = !{!15, !16, i64 216}
!65 = !{!15, !16, i64 224}
!66 = !{!15, !16, i64 232}
!67 = !{!15, !16, i64 288}
!68 = !{!15, !16, i64 320}
!69 = !{!6, !7, i64 0}
!70 = !{!15, !7, i64 332}
!71 = !{!21, !13, i64 144}
!72 = !{!21, !13, i64 160}


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