; LLVM IR from moldyn/Clustering :: src/coords_file/xdrfile (xdrfile)

; 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.XDRFILE = type { ptr, ptr, i8, ptr, i32, ptr, i32 }

@stderr = external global ptr, align 8
@magicints = external hidden constant [73 x i32], align 16
@.str.18 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [44 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 allocsize(0)
declare noalias ptr @malloc(i64 noundef) #1

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @sizeofint(i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @sizeofints(i32 noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #4

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @xdrfile_compress_coord_double(ptr noundef %0, i32 noundef %1, double noundef %2, ptr noundef %3) #2 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca double, align 8
  %9 = alloca ptr, align 8
  %10 = alloca [3 x i32], align 4
  %11 = alloca [3 x i32], align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %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 [3 x i32], align 4
  %25 = alloca [3 x i32], align 4
  %26 = alloca [3 x i32], align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %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
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca [30 x float], align 16
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca [3 x i32], align 4
  %49 = alloca [30 x i32], align 16
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store i32 %1, ptr %7, align 4, !tbaa !9
  store double %2, ptr %8, align 8, !tbaa !11
  store ptr %3, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 12, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 120, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 120, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  store i32 1, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  %53 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 0
  store i32 0, ptr %53, align 4, !tbaa !9
  %54 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 1
  store i32 0, ptr %54, align 4, !tbaa !9
  %55 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 2
  store i32 0, ptr %55, align 4, !tbaa !9
  %56 = load ptr, ptr %9, align 8, !tbaa !5
  %57 = icmp eq ptr %56, null
  br i1 %57, label %58, label %59

58:                                               ; preds = %4
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %52, align 4
  br label %923

59:                                               ; preds = %4
  %60 = load i32, ptr %7, align 4, !tbaa !9
  %61 = mul nsw i32 3, %60
  store i32 %61, ptr %27, align 4, !tbaa !9
  %62 = load i32, ptr %27, align 4, !tbaa !9
  %63 = load ptr, ptr %9, align 8, !tbaa !5
  %64 = getelementptr inbounds %struct.XDRFILE, ptr %63, i32 0, i32 4
  %65 = load i32, ptr %64, align 8, !tbaa !13
  %66 = icmp ugt i32 %62, %65
  br i1 %66, label %67, label %101

67:                                               ; preds = %59
  %68 = load i32, ptr %27, align 4, !tbaa !9
  %69 = zext i32 %68 to i64
  %70 = mul i64 4, %69
  %71 = call noalias ptr @malloc(i64 noundef %70) #6
  %72 = load ptr, ptr %9, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.XDRFILE, ptr %72, i32 0, i32 3
  store ptr %71, ptr %73, align 8, !tbaa !15
  %74 = icmp eq ptr %71, null
  br i1 %74, label %75, label %78

75:                                               ; preds = %67
  %76 = load ptr, ptr @stderr, align 8, !tbaa !5
  %77 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef @.str.18) #5
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %52, align 4
  br label %923

78:                                               ; preds = %67
  %79 = load i32, ptr %27, align 4, !tbaa !9
  %80 = load ptr, ptr %9, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.XDRFILE, ptr %80, i32 0, i32 4
  store i32 %79, ptr %81, align 8, !tbaa !13
  %82 = load i32, ptr %27, align 4, !tbaa !9
  %83 = uitofp i32 %82 to double
  %84 = fmul double %83, 1.200000e+00
  %85 = fptosi double %84 to i32
  %86 = load ptr, ptr %9, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.XDRFILE, ptr %86, i32 0, i32 6
  store i32 %85, ptr %87, align 8, !tbaa !16
  %88 = load ptr, ptr %9, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.XDRFILE, ptr %88, i32 0, i32 6
  %90 = load i32, ptr %89, align 8, !tbaa !16
  %91 = sext i32 %90 to i64
  %92 = mul i64 4, %91
  %93 = call noalias ptr @malloc(i64 noundef %92) #6
  %94 = load ptr, ptr %9, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.XDRFILE, ptr %94, i32 0, i32 5
  store ptr %93, ptr %95, align 8, !tbaa !17
  %96 = icmp eq ptr %93, null
  br i1 %96, label %97, label %100

97:                                               ; preds = %78
  %98 = load ptr, ptr @stderr, align 8, !tbaa !5
  %99 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %98, ptr noundef @.str.18) #5
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %52, align 4
  br label %923

100:                                              ; preds = %78
  br label %101

101:                                              ; preds = %100, %59
  %102 = load ptr, ptr %9, align 8, !tbaa !5
  %103 = call i32 @xdrfile_write_int(ptr noundef %7, i32 noundef 1, ptr noundef %102)
  %104 = icmp eq i32 %103, 0
  br i1 %104, label %105, label %106

105:                                              ; preds = %101
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %52, align 4
  br label %923

106:                                              ; preds = %101
  %107 = load i32, ptr %7, align 4, !tbaa !9
  %108 = icmp sle i32 %107, 9
  br i1 %108, label %109, label %132

109:                                              ; preds = %106
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %110

110:                                              ; preds = %123, %109
  %111 = load i32, ptr %35, align 4, !tbaa !9
  %112 = icmp slt i32 %111, 27
  br i1 %112, label %113, label %126

113:                                              ; preds = %110
  %114 = load ptr, ptr %6, align 8, !tbaa !5
  %115 = load i32, ptr %35, align 4, !tbaa !9
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds double, ptr %114, i64 %116
  %118 = load double, ptr %117, align 8, !tbaa !11
  %119 = fptrunc double %118 to float
  %120 = load i32, ptr %35, align 4, !tbaa !9
  %121 = sext i32 %120 to i64
  %122 = getelementptr inbounds [30 x float], ptr %44, i64 0, i64 %121
  store float %119, ptr %122, align 4, !tbaa !18
  br label %123

123:                                              ; preds = %113
  %124 = load i32, ptr %35, align 4, !tbaa !9
  %125 = add nsw i32 %124, 1
  store i32 %125, ptr %35, align 4, !tbaa !9
  br label %110, !llvm.loop !20

126:                                              ; preds = %110
  %127 = getelementptr inbounds [30 x float], ptr %44, i64 0, i64 0
  %128 = load i32, ptr %27, align 4, !tbaa !9
  %129 = load ptr, ptr %9, align 8, !tbaa !5
  %130 = call i32 @xdrfile_write_float(ptr noundef %127, i32 noundef %128, ptr noundef %129)
  %131 = sdiv i32 %130, 3
  store i32 %131, ptr %5, align 4
  store i32 1, ptr %52, align 4
  br label %923

132:                                              ; preds = %106
  %133 = load double, ptr %8, align 8, !tbaa !11
  %134 = fcmp ole double %133, 0.000000e+00
  br i1 %134, label %135, label %136

135:                                              ; preds = %132
  store double 1.000000e+03, ptr %8, align 8, !tbaa !11
  br label %136

136:                                              ; preds = %135, %132
  %137 = load double, ptr %8, align 8, !tbaa !11
  %138 = fptrunc double %137 to float
  store float %138, ptr %42, align 4, !tbaa !18
  %139 = load ptr, ptr %9, align 8, !tbaa !5
  %140 = call i32 @xdrfile_write_float(ptr noundef %42, i32 noundef 1, ptr noundef %139)
  %141 = load ptr, ptr %9, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.XDRFILE, ptr %141, i32 0, i32 3
  %143 = load ptr, ptr %142, align 8, !tbaa !15
  store ptr %143, ptr %30, align 8, !tbaa !5
  %144 = load ptr, ptr %9, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.XDRFILE, ptr %144, i32 0, i32 5
  %146 = load ptr, ptr %145, align 8, !tbaa !17
  store ptr %146, ptr %31, align 8, !tbaa !5
  %147 = load ptr, ptr %31, align 8, !tbaa !5
  %148 = getelementptr inbounds i32, ptr %147, i64 2
  store i32 0, ptr %148, align 4, !tbaa !9
  %149 = load ptr, ptr %31, align 8, !tbaa !5
  %150 = getelementptr inbounds i32, ptr %149, i64 1
  store i32 0, ptr %150, align 4, !tbaa !9
  %151 = load ptr, ptr %31, align 8, !tbaa !5
  %152 = getelementptr inbounds i32, ptr %151, i64 0
  store i32 0, ptr %152, align 4, !tbaa !9
  %153 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 2
  store i32 2147483647, ptr %153, align 4, !tbaa !9
  %154 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 1
  store i32 2147483647, ptr %154, align 4, !tbaa !9
  %155 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 0
  store i32 2147483647, ptr %155, align 4, !tbaa !9
  %156 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 2
  store i32 -2147483648, ptr %156, align 4, !tbaa !9
  %157 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 1
  store i32 -2147483648, ptr %157, align 4, !tbaa !9
  %158 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 0
  store i32 -2147483648, ptr %158, align 4, !tbaa !9
  store i32 -1, ptr %40, align 4, !tbaa !9
  %159 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %159, ptr %41, align 8, !tbaa !5
  %160 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %160, ptr %13, align 8, !tbaa !5
  store i32 2147483647, ptr %12, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %161

161:                                              ; preds = %350, %136
  %162 = load ptr, ptr %41, align 8, !tbaa !5
  %163 = load ptr, ptr %6, align 8, !tbaa !5
  %164 = load i32, ptr %27, align 4, !tbaa !9
  %165 = zext i32 %164 to i64
  %166 = getelementptr inbounds double, ptr %163, i64 %165
  %167 = icmp ult ptr %162, %166
  br i1 %167, label %168, label %354

168:                                              ; preds = %161
  %169 = load ptr, ptr %41, align 8, !tbaa !5
  %170 = load double, ptr %169, align 8, !tbaa !11
  %171 = fcmp oge double %170, 0.000000e+00
  br i1 %171, label %172, label %181

172:                                              ; preds = %168
  %173 = load ptr, ptr %41, align 8, !tbaa !5
  %174 = load double, ptr %173, align 8, !tbaa !11
  %175 = fptrunc double %174 to float
  %176 = load float, ptr %42, align 4, !tbaa !18
  %177 = fmul float %175, %176
  %178 = fpext float %177 to double
  %179 = fadd double %178, 5.000000e-01
  %180 = fptrunc double %179 to float
  store float %180, ptr %43, align 4, !tbaa !18
  br label %190

181:                                              ; preds = %168
  %182 = load ptr, ptr %41, align 8, !tbaa !5
  %183 = load double, ptr %182, align 8, !tbaa !11
  %184 = fptrunc double %183 to float
  %185 = load float, ptr %42, align 4, !tbaa !18
  %186 = fmul float %184, %185
  %187 = fpext float %186 to double
  %188 = fsub double %187, 5.000000e-01
  %189 = fptrunc double %188 to float
  store float %189, ptr %43, align 4, !tbaa !18
  br label %190

190:                                              ; preds = %181, %172
  %191 = load float, ptr %43, align 4, !tbaa !18
  %192 = fpext float %191 to double
  %193 = call double @llvm.fabs.f64(double %192)
  %194 = fcmp ogt double %193, 0x41DFFFFFFF400000
  br i1 %194, label %195, label %198

195:                                              ; preds = %190
  %196 = load ptr, ptr @stderr, align 8, !tbaa !5
  %197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %196, ptr noundef @.str.19) #5
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %198

198:                                              ; preds = %195, %190
  %199 = load float, ptr %43, align 4, !tbaa !18
  %200 = fptosi float %199 to i32
  store i32 %200, ptr %15, align 4, !tbaa !9
  %201 = load i32, ptr %15, align 4, !tbaa !9
  %202 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 0
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = icmp slt i32 %201, %203
  br i1 %204, label %205, label %208

205:                                              ; preds = %198
  %206 = load i32, ptr %15, align 4, !tbaa !9
  %207 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 0
  store i32 %206, ptr %207, align 4, !tbaa !9
  br label %208

208:                                              ; preds = %205, %198
  %209 = load i32, ptr %15, align 4, !tbaa !9
  %210 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 0
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = icmp sgt i32 %209, %211
  br i1 %212, label %213, label %216

213:                                              ; preds = %208
  %214 = load i32, ptr %15, align 4, !tbaa !9
  %215 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 0
  store i32 %214, ptr %215, align 4, !tbaa !9
  br label %216

216:                                              ; preds = %213, %208
  %217 = load i32, ptr %15, align 4, !tbaa !9
  %218 = load ptr, ptr %13, align 8, !tbaa !5
  %219 = getelementptr inbounds i32, ptr %218, i32 1
  store ptr %219, ptr %13, align 8, !tbaa !5
  store i32 %217, ptr %218, align 4, !tbaa !9
  %220 = load ptr, ptr %41, align 8, !tbaa !5
  %221 = getelementptr inbounds double, ptr %220, i32 1
  store ptr %221, ptr %41, align 8, !tbaa !5
  %222 = load ptr, ptr %41, align 8, !tbaa !5
  %223 = load double, ptr %222, align 8, !tbaa !11
  %224 = fcmp oge double %223, 0.000000e+00
  br i1 %224, label %225, label %234

225:                                              ; preds = %216
  %226 = load ptr, ptr %41, align 8, !tbaa !5
  %227 = load double, ptr %226, align 8, !tbaa !11
  %228 = fptrunc double %227 to float
  %229 = load float, ptr %42, align 4, !tbaa !18
  %230 = fmul float %228, %229
  %231 = fpext float %230 to double
  %232 = fadd double %231, 5.000000e-01
  %233 = fptrunc double %232 to float
  store float %233, ptr %43, align 4, !tbaa !18
  br label %243

234:                                              ; preds = %216
  %235 = load ptr, ptr %41, align 8, !tbaa !5
  %236 = load double, ptr %235, align 8, !tbaa !11
  %237 = fptrunc double %236 to float
  %238 = load float, ptr %42, align 4, !tbaa !18
  %239 = fmul float %237, %238
  %240 = fpext float %239 to double
  %241 = fsub double %240, 5.000000e-01
  %242 = fptrunc double %241 to float
  store float %242, ptr %43, align 4, !tbaa !18
  br label %243

243:                                              ; preds = %234, %225
  %244 = load float, ptr %43, align 4, !tbaa !18
  %245 = fpext float %244 to double
  %246 = call double @llvm.fabs.f64(double %245)
  %247 = fcmp ogt double %246, 0x41DFFFFFFF400000
  br i1 %247, label %248, label %251

248:                                              ; preds = %243
  %249 = load ptr, ptr @stderr, align 8, !tbaa !5
  %250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %249, ptr noundef @.str.19) #5
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %251

251:                                              ; preds = %248, %243
  %252 = load float, ptr %43, align 4, !tbaa !18
  %253 = fptosi float %252 to i32
  store i32 %253, ptr %16, align 4, !tbaa !9
  %254 = load i32, ptr %16, align 4, !tbaa !9
  %255 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 1
  %256 = load i32, ptr %255, align 4, !tbaa !9
  %257 = icmp slt i32 %254, %256
  br i1 %257, label %258, label %261

258:                                              ; preds = %251
  %259 = load i32, ptr %16, align 4, !tbaa !9
  %260 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 1
  store i32 %259, ptr %260, align 4, !tbaa !9
  br label %261

261:                                              ; preds = %258, %251
  %262 = load i32, ptr %16, align 4, !tbaa !9
  %263 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 1
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = icmp sgt i32 %262, %264
  br i1 %265, label %266, label %269

266:                                              ; preds = %261
  %267 = load i32, ptr %16, align 4, !tbaa !9
  %268 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 1
  store i32 %267, ptr %268, align 4, !tbaa !9
  br label %269

269:                                              ; preds = %266, %261
  %270 = load i32, ptr %16, align 4, !tbaa !9
  %271 = load ptr, ptr %13, align 8, !tbaa !5
  %272 = getelementptr inbounds i32, ptr %271, i32 1
  store ptr %272, ptr %13, align 8, !tbaa !5
  store i32 %270, ptr %271, align 4, !tbaa !9
  %273 = load ptr, ptr %41, align 8, !tbaa !5
  %274 = getelementptr inbounds double, ptr %273, i32 1
  store ptr %274, ptr %41, align 8, !tbaa !5
  %275 = load ptr, ptr %41, align 8, !tbaa !5
  %276 = load double, ptr %275, align 8, !tbaa !11
  %277 = fcmp oge double %276, 0.000000e+00
  br i1 %277, label %278, label %287

278:                                              ; preds = %269
  %279 = load ptr, ptr %41, align 8, !tbaa !5
  %280 = load double, ptr %279, align 8, !tbaa !11
  %281 = fptrunc double %280 to float
  %282 = load float, ptr %42, align 4, !tbaa !18
  %283 = fmul float %281, %282
  %284 = fpext float %283 to double
  %285 = fadd double %284, 5.000000e-01
  %286 = fptrunc double %285 to float
  store float %286, ptr %43, align 4, !tbaa !18
  br label %296

287:                                              ; preds = %269
  %288 = load ptr, ptr %41, align 8, !tbaa !5
  %289 = load double, ptr %288, align 8, !tbaa !11
  %290 = fptrunc double %289 to float
  %291 = load float, ptr %42, align 4, !tbaa !18
  %292 = fmul float %290, %291
  %293 = fpext float %292 to double
  %294 = fsub double %293, 5.000000e-01
  %295 = fptrunc double %294 to float
  store float %295, ptr %43, align 4, !tbaa !18
  br label %296

296:                                              ; preds = %287, %278
  %297 = load float, ptr %43, align 4, !tbaa !18
  %298 = fpext float %297 to double
  %299 = call double @llvm.fabs.f64(double %298)
  %300 = fcmp ogt double %299, 0x41DFFFFFFF400000
  br i1 %300, label %301, label %302

301:                                              ; preds = %296
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %302

302:                                              ; preds = %301, %296
  %303 = load float, ptr %43, align 4, !tbaa !18
  %304 = fptosi float %303 to i32
  store i32 %304, ptr %17, align 4, !tbaa !9
  %305 = load i32, ptr %17, align 4, !tbaa !9
  %306 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 2
  %307 = load i32, ptr %306, align 4, !tbaa !9
  %308 = icmp slt i32 %305, %307
  br i1 %308, label %309, label %312

309:                                              ; preds = %302
  %310 = load i32, ptr %17, align 4, !tbaa !9
  %311 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 2
  store i32 %310, ptr %311, align 4, !tbaa !9
  br label %312

312:                                              ; preds = %309, %302
  %313 = load i32, ptr %17, align 4, !tbaa !9
  %314 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 2
  %315 = load i32, ptr %314, align 4, !tbaa !9
  %316 = icmp sgt i32 %313, %315
  br i1 %316, label %317, label %320

317:                                              ; preds = %312
  %318 = load i32, ptr %17, align 4, !tbaa !9
  %319 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 2
  store i32 %318, ptr %319, align 4, !tbaa !9
  br label %320

320:                                              ; preds = %317, %312
  %321 = load i32, ptr %17, align 4, !tbaa !9
  %322 = load ptr, ptr %13, align 8, !tbaa !5
  %323 = getelementptr inbounds i32, ptr %322, i32 1
  store ptr %323, ptr %13, align 8, !tbaa !5
  store i32 %321, ptr %322, align 4, !tbaa !9
  %324 = load ptr, ptr %41, align 8, !tbaa !5
  %325 = getelementptr inbounds double, ptr %324, i32 1
  store ptr %325, ptr %41, align 8, !tbaa !5
  %326 = load i32, ptr %18, align 4, !tbaa !9
  %327 = load i32, ptr %15, align 4, !tbaa !9
  %328 = sub nsw i32 %326, %327
  %329 = call i32 @llvm.abs.i32(i32 %328, i1 true)
  %330 = load i32, ptr %19, align 4, !tbaa !9
  %331 = load i32, ptr %16, align 4, !tbaa !9
  %332 = sub nsw i32 %330, %331
  %333 = call i32 @llvm.abs.i32(i32 %332, i1 true)
  %334 = add nsw i32 %329, %333
  %335 = load i32, ptr %20, align 4, !tbaa !9
  %336 = load i32, ptr %17, align 4, !tbaa !9
  %337 = sub nsw i32 %335, %336
  %338 = call i32 @llvm.abs.i32(i32 %337, i1 true)
  %339 = add nsw i32 %334, %338
  store i32 %339, ptr %14, align 4, !tbaa !9
  %340 = load i32, ptr %14, align 4, !tbaa !9
  %341 = load i32, ptr %12, align 4, !tbaa !9
  %342 = icmp slt i32 %340, %341
  br i1 %342, label %343, label %350

343:                                              ; preds = %320
  %344 = load ptr, ptr %41, align 8, !tbaa !5
  %345 = load ptr, ptr %6, align 8, !tbaa !5
  %346 = getelementptr inbounds double, ptr %345, i64 3
  %347 = icmp ugt ptr %344, %346
  br i1 %347, label %348, label %350

348:                                              ; preds = %343
  %349 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %349, ptr %12, align 4, !tbaa !9
  br label %350

350:                                              ; preds = %348, %343, %320
  %351 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %351, ptr %18, align 4, !tbaa !9
  %352 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %352, ptr %19, align 4, !tbaa !9
  %353 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %353, ptr %20, align 4, !tbaa !9
  br label %161, !llvm.loop !22

354:                                              ; preds = %161
  %355 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 0
  %356 = load ptr, ptr %9, align 8, !tbaa !5
  %357 = call i32 @xdrfile_write_int(ptr noundef %355, i32 noundef 3, ptr noundef %356)
  %358 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 0
  %359 = load ptr, ptr %9, align 8, !tbaa !5
  %360 = call i32 @xdrfile_write_int(ptr noundef %358, i32 noundef 3, ptr noundef %359)
  %361 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 0
  %362 = load i32, ptr %361, align 4, !tbaa !9
  %363 = sitofp i32 %362 to float
  %364 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 0
  %365 = load i32, ptr %364, align 4, !tbaa !9
  %366 = sitofp i32 %365 to float
  %367 = fsub float %363, %366
  %368 = fcmp oge float %367, 0x41E0000000000000
  br i1 %368, label %387, label %369

369:                                              ; preds = %354
  %370 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 1
  %371 = load i32, ptr %370, align 4, !tbaa !9
  %372 = sitofp i32 %371 to float
  %373 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 1
  %374 = load i32, ptr %373, align 4, !tbaa !9
  %375 = sitofp i32 %374 to float
  %376 = fsub float %372, %375
  %377 = fcmp oge float %376, 0x41E0000000000000
  br i1 %377, label %387, label %378

378:                                              ; preds = %369
  %379 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 2
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = sitofp i32 %380 to float
  %382 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 2
  %383 = load i32, ptr %382, align 4, !tbaa !9
  %384 = sitofp i32 %383 to float
  %385 = fsub float %381, %384
  %386 = fcmp oge float %385, 0x41E0000000000000
  br i1 %386, label %387, label %390

387:                                              ; preds = %378, %369, %354
  %388 = load ptr, ptr @stderr, align 8, !tbaa !5
  %389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %388, ptr noundef @.str.19) #5
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %390

390:                                              ; preds = %387, %378
  %391 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 0
  %392 = load i32, ptr %391, align 4, !tbaa !9
  %393 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 0
  %394 = load i32, ptr %393, align 4, !tbaa !9
  %395 = sub nsw i32 %392, %394
  %396 = add nsw i32 %395, 1
  %397 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 0
  store i32 %396, ptr %397, align 4, !tbaa !9
  %398 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 1
  %399 = load i32, ptr %398, align 4, !tbaa !9
  %400 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 1
  %401 = load i32, ptr %400, align 4, !tbaa !9
  %402 = sub nsw i32 %399, %401
  %403 = add nsw i32 %402, 1
  %404 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 1
  store i32 %403, ptr %404, align 4, !tbaa !9
  %405 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 2
  %406 = load i32, ptr %405, align 4, !tbaa !9
  %407 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 2
  %408 = load i32, ptr %407, align 4, !tbaa !9
  %409 = sub nsw i32 %406, %408
  %410 = add nsw i32 %409, 1
  %411 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 2
  store i32 %410, ptr %411, align 4, !tbaa !9
  %412 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 0
  %413 = load i32, ptr %412, align 4, !tbaa !9
  %414 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 1
  %415 = load i32, ptr %414, align 4, !tbaa !9
  %416 = or i32 %413, %415
  %417 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 2
  %418 = load i32, ptr %417, align 4, !tbaa !9
  %419 = or i32 %416, %418
  %420 = icmp ugt i32 %419, 16777215
  br i1 %420, label %421, label %434

421:                                              ; preds = %390
  %422 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 0
  %423 = load i32, ptr %422, align 4, !tbaa !9
  %424 = call i32 @sizeofint(i32 noundef %423)
  %425 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 0
  store i32 %424, ptr %425, align 4, !tbaa !9
  %426 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 1
  %427 = load i32, ptr %426, align 4, !tbaa !9
  %428 = call i32 @sizeofint(i32 noundef %427)
  %429 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 1
  store i32 %428, ptr %429, align 4, !tbaa !9
  %430 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 2
  %431 = load i32, ptr %430, align 4, !tbaa !9
  %432 = call i32 @sizeofint(i32 noundef %431)
  %433 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 2
  store i32 %432, ptr %433, align 4, !tbaa !9
  store i32 0, ptr %51, align 4, !tbaa !9
  br label %437

434:                                              ; preds = %390
  %435 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 0
  %436 = call i32 @sizeofints(i32 noundef 3, ptr noundef %435)
  store i32 %436, ptr %51, align 4, !tbaa !9
  br label %437

437:                                              ; preds = %434, %421
  %438 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %438, ptr %13, align 8, !tbaa !5
  %439 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %439, ptr %28, align 8, !tbaa !5
  store i32 9, ptr %21, align 4, !tbaa !9
  br label %440

440:                                              ; preds = %453, %437
  %441 = load i32, ptr %21, align 4, !tbaa !9
  %442 = sext i32 %441 to i64
  %443 = icmp ult i64 %442, 73
  br i1 %443, label %444, label %451

444:                                              ; preds = %440
  %445 = load i32, ptr %21, align 4, !tbaa !9
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %446
  %448 = load i32, ptr %447, align 4, !tbaa !9
  %449 = load i32, ptr %12, align 4, !tbaa !9
  %450 = icmp slt i32 %448, %449
  br label %451

451:                                              ; preds = %444, %440
  %452 = phi i1 [ false, %440 ], [ %450, %444 ]
  br i1 %452, label %453, label %456

453:                                              ; preds = %451
  %454 = load i32, ptr %21, align 4, !tbaa !9
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr %21, align 4, !tbaa !9
  br label %440, !llvm.loop !23

456:                                              ; preds = %451
  %457 = load ptr, ptr %9, align 8, !tbaa !5
  %458 = call i32 @xdrfile_write_int(ptr noundef %21, i32 noundef 1, ptr noundef %457)
  %459 = load i32, ptr %21, align 4, !tbaa !9
  %460 = add nsw i32 %459, 8
  store i32 %460, ptr %45, align 4, !tbaa !9
  %461 = load i32, ptr %45, align 4, !tbaa !9
  %462 = sext i32 %461 to i64
  %463 = icmp ult i64 73, %462
  br i1 %463, label %464, label %465

464:                                              ; preds = %456
  br label %468

465:                                              ; preds = %456
  %466 = load i32, ptr %45, align 4, !tbaa !9
  %467 = sext i32 %466 to i64
  br label %468

468:                                              ; preds = %465, %464
  %469 = phi i64 [ 73, %464 ], [ %467, %465 ]
  %470 = trunc i64 %469 to i32
  store i32 %470, ptr %23, align 4, !tbaa !9
  %471 = load i32, ptr %23, align 4, !tbaa !9
  %472 = sub nsw i32 %471, 8
  store i32 %472, ptr %22, align 4, !tbaa !9
  %473 = load i32, ptr %21, align 4, !tbaa !9
  %474 = sub nsw i32 %473, 1
  store i32 %474, ptr %45, align 4, !tbaa !9
  %475 = load i32, ptr %45, align 4, !tbaa !9
  %476 = icmp sgt i32 9, %475
  br i1 %476, label %477, label %478

477:                                              ; preds = %468
  br label %480

478:                                              ; preds = %468
  %479 = load i32, ptr %45, align 4, !tbaa !9
  br label %480

480:                                              ; preds = %478, %477
  %481 = phi i32 [ 9, %477 ], [ %479, %478 ]
  store i32 %481, ptr %45, align 4, !tbaa !9
  %482 = load i32, ptr %45, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %483
  %485 = load i32, ptr %484, align 4, !tbaa !9
  %486 = sdiv i32 %485, 2
  store i32 %486, ptr %33, align 4, !tbaa !9
  %487 = load i32, ptr %21, align 4, !tbaa !9
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %488
  %490 = load i32, ptr %489, align 4, !tbaa !9
  %491 = sdiv i32 %490, 2
  store i32 %491, ptr %32, align 4, !tbaa !9
  %492 = load i32, ptr %21, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %493
  %495 = load i32, ptr %494, align 4, !tbaa !9
  %496 = getelementptr inbounds [3 x i32], ptr %25, i64 0, i64 2
  store i32 %495, ptr %496, align 4, !tbaa !9
  %497 = getelementptr inbounds [3 x i32], ptr %25, i64 0, i64 1
  store i32 %495, ptr %497, align 4, !tbaa !9
  %498 = getelementptr inbounds [3 x i32], ptr %25, i64 0, i64 0
  store i32 %495, ptr %498, align 4, !tbaa !9
  %499 = load i32, ptr %23, align 4, !tbaa !9
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %500
  %502 = load i32, ptr %501, align 4, !tbaa !9
  %503 = sdiv i32 %502, 2
  store i32 %503, ptr %34, align 4, !tbaa !9
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %504

504:                                              ; preds = %893, %480
  %505 = load i32, ptr %35, align 4, !tbaa !9
  %506 = load i32, ptr %7, align 4, !tbaa !9
  %507 = icmp slt i32 %505, %506
  br i1 %507, label %508, label %894

508:                                              ; preds = %504
  store i32 0, ptr %37, align 4, !tbaa !9
  %509 = load ptr, ptr %28, align 8, !tbaa !5
  %510 = load i32, ptr %35, align 4, !tbaa !9
  %511 = mul nsw i32 %510, 3
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds i32, ptr %509, i64 %512
  store ptr %513, ptr %47, align 8, !tbaa !5
  %514 = load i32, ptr %21, align 4, !tbaa !9
  %515 = load i32, ptr %23, align 4, !tbaa !9
  %516 = icmp slt i32 %514, %515
  br i1 %516, label %517, label %551

517:                                              ; preds = %508
  %518 = load i32, ptr %35, align 4, !tbaa !9
  %519 = icmp sge i32 %518, 1
  br i1 %519, label %520, label %551

520:                                              ; preds = %517
  %521 = load ptr, ptr %47, align 8, !tbaa !5
  %522 = getelementptr inbounds i32, ptr %521, i64 0
  %523 = load i32, ptr %522, align 4, !tbaa !9
  %524 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 0
  %525 = load i32, ptr %524, align 4, !tbaa !9
  %526 = sub nsw i32 %523, %525
  %527 = call i32 @llvm.abs.i32(i32 %526, i1 true)
  %528 = load i32, ptr %34, align 4, !tbaa !9
  %529 = icmp slt i32 %527, %528
  br i1 %529, label %530, label %551

530:                                              ; preds = %520
  %531 = load ptr, ptr %47, align 8, !tbaa !5
  %532 = getelementptr inbounds i32, ptr %531, i64 1
  %533 = load i32, ptr %532, align 4, !tbaa !9
  %534 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 1
  %535 = load i32, ptr %534, align 4, !tbaa !9
  %536 = sub nsw i32 %533, %535
  %537 = call i32 @llvm.abs.i32(i32 %536, i1 true)
  %538 = load i32, ptr %34, align 4, !tbaa !9
  %539 = icmp slt i32 %537, %538
  br i1 %539, label %540, label %551

540:                                              ; preds = %530
  %541 = load ptr, ptr %47, align 8, !tbaa !5
  %542 = getelementptr inbounds i32, ptr %541, i64 2
  %543 = load i32, ptr %542, align 4, !tbaa !9
  %544 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 2
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = sub nsw i32 %543, %545
  %547 = call i32 @llvm.abs.i32(i32 %546, i1 true)
  %548 = load i32, ptr %34, align 4, !tbaa !9
  %549 = icmp slt i32 %547, %548
  br i1 %549, label %550, label %551

550:                                              ; preds = %540
  store i32 1, ptr %38, align 4, !tbaa !9
  br label %558

551:                                              ; preds = %540, %530, %520, %517, %508
  %552 = load i32, ptr %21, align 4, !tbaa !9
  %553 = load i32, ptr %22, align 4, !tbaa !9
  %554 = icmp sgt i32 %552, %553
  br i1 %554, label %555, label %556

555:                                              ; preds = %551
  store i32 -1, ptr %38, align 4, !tbaa !9
  br label %557

556:                                              ; preds = %551
  store i32 0, ptr %38, align 4, !tbaa !9
  br label %557

557:                                              ; preds = %556, %555
  br label %558

558:                                              ; preds = %557, %550
  %559 = load i32, ptr %35, align 4, !tbaa !9
  %560 = add nsw i32 %559, 1
  %561 = load i32, ptr %7, align 4, !tbaa !9
  %562 = icmp slt i32 %560, %561
  br i1 %562, label %563, label %631

563:                                              ; preds = %558
  %564 = load ptr, ptr %47, align 8, !tbaa !5
  %565 = getelementptr inbounds i32, ptr %564, i64 0
  %566 = load i32, ptr %565, align 4, !tbaa !9
  %567 = load ptr, ptr %47, align 8, !tbaa !5
  %568 = getelementptr inbounds i32, ptr %567, i64 3
  %569 = load i32, ptr %568, align 4, !tbaa !9
  %570 = sub nsw i32 %566, %569
  %571 = call i32 @llvm.abs.i32(i32 %570, i1 true)
  %572 = load i32, ptr %32, align 4, !tbaa !9
  %573 = icmp slt i32 %571, %572
  br i1 %573, label %574, label %630

574:                                              ; preds = %563
  %575 = load ptr, ptr %47, align 8, !tbaa !5
  %576 = getelementptr inbounds i32, ptr %575, i64 1
  %577 = load i32, ptr %576, align 4, !tbaa !9
  %578 = load ptr, ptr %47, align 8, !tbaa !5
  %579 = getelementptr inbounds i32, ptr %578, i64 4
  %580 = load i32, ptr %579, align 4, !tbaa !9
  %581 = sub nsw i32 %577, %580
  %582 = call i32 @llvm.abs.i32(i32 %581, i1 true)
  %583 = load i32, ptr %32, align 4, !tbaa !9
  %584 = icmp slt i32 %582, %583
  br i1 %584, label %585, label %630

585:                                              ; preds = %574
  %586 = load ptr, ptr %47, align 8, !tbaa !5
  %587 = getelementptr inbounds i32, ptr %586, i64 2
  %588 = load i32, ptr %587, align 4, !tbaa !9
  %589 = load ptr, ptr %47, align 8, !tbaa !5
  %590 = getelementptr inbounds i32, ptr %589, i64 5
  %591 = load i32, ptr %590, align 4, !tbaa !9
  %592 = sub nsw i32 %588, %591
  %593 = call i32 @llvm.abs.i32(i32 %592, i1 true)
  %594 = load i32, ptr %32, align 4, !tbaa !9
  %595 = icmp slt i32 %593, %594
  br i1 %595, label %596, label %630

596:                                              ; preds = %585
  %597 = load ptr, ptr %47, align 8, !tbaa !5
  %598 = getelementptr inbounds i32, ptr %597, i64 0
  %599 = load i32, ptr %598, align 4, !tbaa !9
  store i32 %599, ptr %45, align 4, !tbaa !9
  %600 = load ptr, ptr %47, align 8, !tbaa !5
  %601 = getelementptr inbounds i32, ptr %600, i64 3
  %602 = load i32, ptr %601, align 4, !tbaa !9
  %603 = load ptr, ptr %47, align 8, !tbaa !5
  %604 = getelementptr inbounds i32, ptr %603, i64 0
  store i32 %602, ptr %604, align 4, !tbaa !9
  %605 = load i32, ptr %45, align 4, !tbaa !9
  %606 = load ptr, ptr %47, align 8, !tbaa !5
  %607 = getelementptr inbounds i32, ptr %606, i64 3
  store i32 %605, ptr %607, align 4, !tbaa !9
  %608 = load ptr, ptr %47, align 8, !tbaa !5
  %609 = getelementptr inbounds i32, ptr %608, i64 1
  %610 = load i32, ptr %609, align 4, !tbaa !9
  store i32 %610, ptr %45, align 4, !tbaa !9
  %611 = load ptr, ptr %47, align 8, !tbaa !5
  %612 = getelementptr inbounds i32, ptr %611, i64 4
  %613 = load i32, ptr %612, align 4, !tbaa !9
  %614 = load ptr, ptr %47, align 8, !tbaa !5
  %615 = getelementptr inbounds i32, ptr %614, i64 1
  store i32 %613, ptr %615, align 4, !tbaa !9
  %616 = load i32, ptr %45, align 4, !tbaa !9
  %617 = load ptr, ptr %47, align 8, !tbaa !5
  %618 = getelementptr inbounds i32, ptr %617, i64 4
  store i32 %616, ptr %618, align 4, !tbaa !9
  %619 = load ptr, ptr %47, align 8, !tbaa !5
  %620 = getelementptr inbounds i32, ptr %619, i64 2
  %621 = load i32, ptr %620, align 4, !tbaa !9
  store i32 %621, ptr %45, align 4, !tbaa !9
  %622 = load ptr, ptr %47, align 8, !tbaa !5
  %623 = getelementptr inbounds i32, ptr %622, i64 5
  %624 = load i32, ptr %623, align 4, !tbaa !9
  %625 = load ptr, ptr %47, align 8, !tbaa !5
  %626 = getelementptr inbounds i32, ptr %625, i64 2
  store i32 %624, ptr %626, align 4, !tbaa !9
  %627 = load i32, ptr %45, align 4, !tbaa !9
  %628 = load ptr, ptr %47, align 8, !tbaa !5
  %629 = getelementptr inbounds i32, ptr %628, i64 5
  store i32 %627, ptr %629, align 4, !tbaa !9
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %630

630:                                              ; preds = %596, %585, %574, %563
  br label %631

631:                                              ; preds = %630, %558
  %632 = load ptr, ptr %47, align 8, !tbaa !5
  %633 = getelementptr inbounds i32, ptr %632, i64 0
  %634 = load i32, ptr %633, align 4, !tbaa !9
  %635 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 0
  %636 = load i32, ptr %635, align 4, !tbaa !9
  %637 = sub nsw i32 %634, %636
  %638 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 0
  store i32 %637, ptr %638, align 16, !tbaa !9
  %639 = load ptr, ptr %47, align 8, !tbaa !5
  %640 = getelementptr inbounds i32, ptr %639, i64 1
  %641 = load i32, ptr %640, align 4, !tbaa !9
  %642 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 1
  %643 = load i32, ptr %642, align 4, !tbaa !9
  %644 = sub nsw i32 %641, %643
  %645 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 1
  store i32 %644, ptr %645, align 4, !tbaa !9
  %646 = load ptr, ptr %47, align 8, !tbaa !5
  %647 = getelementptr inbounds i32, ptr %646, i64 2
  %648 = load i32, ptr %647, align 4, !tbaa !9
  %649 = getelementptr inbounds [3 x i32], ptr %10, i64 0, i64 2
  %650 = load i32, ptr %649, align 4, !tbaa !9
  %651 = sub nsw i32 %648, %650
  %652 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 2
  store i32 %651, ptr %652, align 8, !tbaa !9
  %653 = load i32, ptr %51, align 4, !tbaa !9
  %654 = icmp eq i32 %653, 0
  br i1 %654, label %655, label %671

655:                                              ; preds = %631
  %656 = load ptr, ptr %31, align 8, !tbaa !5
  %657 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 0
  %658 = load i32, ptr %657, align 4, !tbaa !9
  %659 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 0
  %660 = load i32, ptr %659, align 16, !tbaa !9
  call void @encodebits(ptr noundef %656, i32 noundef %658, i32 noundef %660)
  %661 = load ptr, ptr %31, align 8, !tbaa !5
  %662 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 1
  %663 = load i32, ptr %662, align 4, !tbaa !9
  %664 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 1
  %665 = load i32, ptr %664, align 4, !tbaa !9
  call void @encodebits(ptr noundef %661, i32 noundef %663, i32 noundef %665)
  %666 = load ptr, ptr %31, align 8, !tbaa !5
  %667 = getelementptr inbounds [3 x i32], ptr %26, i64 0, i64 2
  %668 = load i32, ptr %667, align 4, !tbaa !9
  %669 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 2
  %670 = load i32, ptr %669, align 8, !tbaa !9
  call void @encodebits(ptr noundef %666, i32 noundef %668, i32 noundef %670)
  br label %676

671:                                              ; preds = %631
  %672 = load ptr, ptr %31, align 8, !tbaa !5
  %673 = load i32, ptr %51, align 4, !tbaa !9
  %674 = getelementptr inbounds [3 x i32], ptr %24, i64 0, i64 0
  %675 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 0
  call void @encodeints(ptr noundef %672, i32 noundef 3, i32 noundef %673, ptr noundef %674, ptr noundef %675)
  br label %676

676:                                              ; preds = %671, %655
  %677 = load ptr, ptr %47, align 8, !tbaa !5
  %678 = getelementptr inbounds i32, ptr %677, i64 0
  %679 = load i32, ptr %678, align 4, !tbaa !9
  %680 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 0
  store i32 %679, ptr %680, align 4, !tbaa !9
  %681 = load ptr, ptr %47, align 8, !tbaa !5
  %682 = getelementptr inbounds i32, ptr %681, i64 1
  %683 = load i32, ptr %682, align 4, !tbaa !9
  %684 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 1
  store i32 %683, ptr %684, align 4, !tbaa !9
  %685 = load ptr, ptr %47, align 8, !tbaa !5
  %686 = getelementptr inbounds i32, ptr %685, i64 2
  %687 = load i32, ptr %686, align 4, !tbaa !9
  %688 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 2
  store i32 %687, ptr %688, align 4, !tbaa !9
  %689 = load ptr, ptr %47, align 8, !tbaa !5
  %690 = getelementptr inbounds i32, ptr %689, i64 3
  store ptr %690, ptr %47, align 8, !tbaa !5
  %691 = load i32, ptr %35, align 4, !tbaa !9
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr %35, align 4, !tbaa !9
  store i32 0, ptr %39, align 4, !tbaa !9
  %693 = load i32, ptr %37, align 4, !tbaa !9
  %694 = icmp eq i32 %693, 0
  br i1 %694, label %695, label %699

695:                                              ; preds = %676
  %696 = load i32, ptr %38, align 4, !tbaa !9
  %697 = icmp eq i32 %696, -1
  br i1 %697, label %698, label %699

698:                                              ; preds = %695
  store i32 0, ptr %38, align 4, !tbaa !9
  br label %699

699:                                              ; preds = %698, %695, %676
  br label %700

700:                                              ; preds = %828, %699
  %701 = load i32, ptr %37, align 4, !tbaa !9
  %702 = icmp ne i32 %701, 0
  br i1 %702, label %703, label %706

703:                                              ; preds = %700
  %704 = load i32, ptr %39, align 4, !tbaa !9
  %705 = icmp slt i32 %704, 24
  br label %706

706:                                              ; preds = %703, %700
  %707 = phi i1 [ false, %700 ], [ %705, %703 ]
  br i1 %707, label %708, label %829

708:                                              ; preds = %706
  store i32 0, ptr %46, align 4, !tbaa !9
  store i32 0, ptr %36, align 4, !tbaa !9
  br label %709

709:                                              ; preds = %728, %708
  %710 = load i32, ptr %36, align 4, !tbaa !9
  %711 = icmp slt i32 %710, 3
  br i1 %711, label %712, label %731

712:                                              ; preds = %709
  %713 = load ptr, ptr %47, align 8, !tbaa !5
  %714 = load i32, ptr %36, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds i32, ptr %713, i64 %715
  %717 = load i32, ptr %716, align 4, !tbaa !9
  %718 = load i32, ptr %36, align 4, !tbaa !9
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 %719
  %721 = load i32, ptr %720, align 4, !tbaa !9
  %722 = sub nsw i32 %717, %721
  store i32 %722, ptr %45, align 4, !tbaa !9
  %723 = load i32, ptr %45, align 4, !tbaa !9
  %724 = load i32, ptr %45, align 4, !tbaa !9
  %725 = mul nsw i32 %723, %724
  %726 = load i32, ptr %46, align 4, !tbaa !9
  %727 = add nsw i32 %726, %725
  store i32 %727, ptr %46, align 4, !tbaa !9
  br label %728

728:                                              ; preds = %712
  %729 = load i32, ptr %36, align 4, !tbaa !9
  %730 = add nsw i32 %729, 1
  store i32 %730, ptr %36, align 4, !tbaa !9
  br label %709, !llvm.loop !24

731:                                              ; preds = %709
  %732 = load i32, ptr %38, align 4, !tbaa !9
  %733 = icmp eq i32 %732, -1
  br i1 %733, label %734, label %741

734:                                              ; preds = %731
  %735 = load i32, ptr %46, align 4, !tbaa !9
  %736 = load i32, ptr %33, align 4, !tbaa !9
  %737 = load i32, ptr %33, align 4, !tbaa !9
  %738 = mul nsw i32 %736, %737
  %739 = icmp sge i32 %735, %738
  br i1 %739, label %740, label %741

740:                                              ; preds = %734
  store i32 0, ptr %38, align 4, !tbaa !9
  br label %741

741:                                              ; preds = %740, %734, %731
  %742 = load ptr, ptr %47, align 8, !tbaa !5
  %743 = getelementptr inbounds i32, ptr %742, i64 0
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 0
  %746 = load i32, ptr %745, align 4, !tbaa !9
  %747 = sub nsw i32 %744, %746
  %748 = load i32, ptr %32, align 4, !tbaa !9
  %749 = add nsw i32 %747, %748
  %750 = load i32, ptr %39, align 4, !tbaa !9
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr %39, align 4, !tbaa !9
  %752 = sext i32 %750 to i64
  %753 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 %752
  store i32 %749, ptr %753, align 4, !tbaa !9
  %754 = load ptr, ptr %47, align 8, !tbaa !5
  %755 = getelementptr inbounds i32, ptr %754, i64 1
  %756 = load i32, ptr %755, align 4, !tbaa !9
  %757 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 1
  %758 = load i32, ptr %757, align 4, !tbaa !9
  %759 = sub nsw i32 %756, %758
  %760 = load i32, ptr %32, align 4, !tbaa !9
  %761 = add nsw i32 %759, %760
  %762 = load i32, ptr %39, align 4, !tbaa !9
  %763 = add nsw i32 %762, 1
  store i32 %763, ptr %39, align 4, !tbaa !9
  %764 = sext i32 %762 to i64
  %765 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 %764
  store i32 %761, ptr %765, align 4, !tbaa !9
  %766 = load ptr, ptr %47, align 8, !tbaa !5
  %767 = getelementptr inbounds i32, ptr %766, i64 2
  %768 = load i32, ptr %767, align 4, !tbaa !9
  %769 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 2
  %770 = load i32, ptr %769, align 4, !tbaa !9
  %771 = sub nsw i32 %768, %770
  %772 = load i32, ptr %32, align 4, !tbaa !9
  %773 = add nsw i32 %771, %772
  %774 = load i32, ptr %39, align 4, !tbaa !9
  %775 = add nsw i32 %774, 1
  store i32 %775, ptr %39, align 4, !tbaa !9
  %776 = sext i32 %774 to i64
  %777 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 %776
  store i32 %773, ptr %777, align 4, !tbaa !9
  %778 = load ptr, ptr %47, align 8, !tbaa !5
  %779 = getelementptr inbounds i32, ptr %778, i64 0
  %780 = load i32, ptr %779, align 4, !tbaa !9
  %781 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 0
  store i32 %780, ptr %781, align 4, !tbaa !9
  %782 = load ptr, ptr %47, align 8, !tbaa !5
  %783 = getelementptr inbounds i32, ptr %782, i64 1
  %784 = load i32, ptr %783, align 4, !tbaa !9
  %785 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 1
  store i32 %784, ptr %785, align 4, !tbaa !9
  %786 = load ptr, ptr %47, align 8, !tbaa !5
  %787 = getelementptr inbounds i32, ptr %786, i64 2
  %788 = load i32, ptr %787, align 4, !tbaa !9
  %789 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 2
  store i32 %788, ptr %789, align 4, !tbaa !9
  %790 = load i32, ptr %35, align 4, !tbaa !9
  %791 = add nsw i32 %790, 1
  store i32 %791, ptr %35, align 4, !tbaa !9
  %792 = load ptr, ptr %47, align 8, !tbaa !5
  %793 = getelementptr inbounds i32, ptr %792, i64 3
  store ptr %793, ptr %47, align 8, !tbaa !5
  store i32 0, ptr %37, align 4, !tbaa !9
  %794 = load i32, ptr %35, align 4, !tbaa !9
  %795 = load i32, ptr %7, align 4, !tbaa !9
  %796 = icmp slt i32 %794, %795
  br i1 %796, label %797, label %828

797:                                              ; preds = %741
  %798 = load ptr, ptr %47, align 8, !tbaa !5
  %799 = getelementptr inbounds i32, ptr %798, i64 0
  %800 = load i32, ptr %799, align 4, !tbaa !9
  %801 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 0
  %802 = load i32, ptr %801, align 4, !tbaa !9
  %803 = sub nsw i32 %800, %802
  %804 = call i32 @llvm.abs.i32(i32 %803, i1 true)
  %805 = load i32, ptr %32, align 4, !tbaa !9
  %806 = icmp slt i32 %804, %805
  br i1 %806, label %807, label %828

807:                                              ; preds = %797
  %808 = load ptr, ptr %47, align 8, !tbaa !5
  %809 = getelementptr inbounds i32, ptr %808, i64 1
  %810 = load i32, ptr %809, align 4, !tbaa !9
  %811 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 1
  %812 = load i32, ptr %811, align 4, !tbaa !9
  %813 = sub nsw i32 %810, %812
  %814 = call i32 @llvm.abs.i32(i32 %813, i1 true)
  %815 = load i32, ptr %32, align 4, !tbaa !9
  %816 = icmp slt i32 %814, %815
  br i1 %816, label %817, label %828

817:                                              ; preds = %807
  %818 = load ptr, ptr %47, align 8, !tbaa !5
  %819 = getelementptr inbounds i32, ptr %818, i64 2
  %820 = load i32, ptr %819, align 4, !tbaa !9
  %821 = getelementptr inbounds [3 x i32], ptr %48, i64 0, i64 2
  %822 = load i32, ptr %821, align 4, !tbaa !9
  %823 = sub nsw i32 %820, %822
  %824 = call i32 @llvm.abs.i32(i32 %823, i1 true)
  %825 = load i32, ptr %32, align 4, !tbaa !9
  %826 = icmp slt i32 %824, %825
  br i1 %826, label %827, label %828

827:                                              ; preds = %817
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %828

828:                                              ; preds = %827, %817, %807, %797, %741
  br label %700, !llvm.loop !25

829:                                              ; preds = %706
  %830 = load i32, ptr %39, align 4, !tbaa !9
  %831 = load i32, ptr %40, align 4, !tbaa !9
  %832 = icmp ne i32 %830, %831
  br i1 %832, label %836, label %833

833:                                              ; preds = %829
  %834 = load i32, ptr %38, align 4, !tbaa !9
  %835 = icmp ne i32 %834, 0
  br i1 %835, label %836, label %844

836:                                              ; preds = %833, %829
  %837 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %837, ptr %40, align 4, !tbaa !9
  %838 = load ptr, ptr %31, align 8, !tbaa !5
  call void @encodebits(ptr noundef %838, i32 noundef 1, i32 noundef 1)
  %839 = load ptr, ptr %31, align 8, !tbaa !5
  %840 = load i32, ptr %39, align 4, !tbaa !9
  %841 = load i32, ptr %38, align 4, !tbaa !9
  %842 = add nsw i32 %840, %841
  %843 = add nsw i32 %842, 1
  call void @encodebits(ptr noundef %839, i32 noundef 5, i32 noundef %843)
  br label %846

844:                                              ; preds = %833
  %845 = load ptr, ptr %31, align 8, !tbaa !5
  call void @encodebits(ptr noundef %845, i32 noundef 1, i32 noundef 0)
  br label %846

846:                                              ; preds = %844, %836
  store i32 0, ptr %29, align 4, !tbaa !9
  br label %847

847:                                              ; preds = %858, %846
  %848 = load i32, ptr %29, align 4, !tbaa !9
  %849 = load i32, ptr %39, align 4, !tbaa !9
  %850 = icmp slt i32 %848, %849
  br i1 %850, label %851, label %861

851:                                              ; preds = %847
  %852 = load ptr, ptr %31, align 8, !tbaa !5
  %853 = load i32, ptr %21, align 4, !tbaa !9
  %854 = getelementptr inbounds [3 x i32], ptr %25, i64 0, i64 0
  %855 = load i32, ptr %29, align 4, !tbaa !9
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds [30 x i32], ptr %49, i64 0, i64 %856
  call void @encodeints(ptr noundef %852, i32 noundef 3, i32 noundef %853, ptr noundef %854, ptr noundef %857)
  br label %858

858:                                              ; preds = %851
  %859 = load i32, ptr %29, align 4, !tbaa !9
  %860 = add nsw i32 %859, 3
  store i32 %860, ptr %29, align 4, !tbaa !9
  br label %847, !llvm.loop !26

861:                                              ; preds = %847
  %862 = load i32, ptr %38, align 4, !tbaa !9
  %863 = icmp ne i32 %862, 0
  br i1 %863, label %864, label %893

864:                                              ; preds = %861
  %865 = load i32, ptr %38, align 4, !tbaa !9
  %866 = load i32, ptr %21, align 4, !tbaa !9
  %867 = add nsw i32 %866, %865
  store i32 %867, ptr %21, align 4, !tbaa !9
  %868 = load i32, ptr %38, align 4, !tbaa !9
  %869 = icmp slt i32 %868, 0
  br i1 %869, label %870, label %878

870:                                              ; preds = %864
  %871 = load i32, ptr %33, align 4, !tbaa !9
  store i32 %871, ptr %32, align 4, !tbaa !9
  %872 = load i32, ptr %21, align 4, !tbaa !9
  %873 = sub nsw i32 %872, 1
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %874
  %876 = load i32, ptr %875, align 4, !tbaa !9
  %877 = sdiv i32 %876, 2
  store i32 %877, ptr %33, align 4, !tbaa !9
  br label %885

878:                                              ; preds = %864
  %879 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %879, ptr %33, align 4, !tbaa !9
  %880 = load i32, ptr %21, align 4, !tbaa !9
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %881
  %883 = load i32, ptr %882, align 4, !tbaa !9
  %884 = sdiv i32 %883, 2
  store i32 %884, ptr %32, align 4, !tbaa !9
  br label %885

885:                                              ; preds = %878, %870
  %886 = load i32, ptr %21, align 4, !tbaa !9
  %887 = sext i32 %886 to i64
  %888 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %887
  %889 = load i32, ptr %888, align 4, !tbaa !9
  %890 = getelementptr inbounds [3 x i32], ptr %25, i64 0, i64 2
  store i32 %889, ptr %890, align 4, !tbaa !9
  %891 = getelementptr inbounds [3 x i32], ptr %25, i64 0, i64 1
  store i32 %889, ptr %891, align 4, !tbaa !9
  %892 = getelementptr inbounds [3 x i32], ptr %25, i64 0, i64 0
  store i32 %889, ptr %892, align 4, !tbaa !9
  br label %893

893:                                              ; preds = %885, %861
  br label %504, !llvm.loop !27

894:                                              ; preds = %504
  %895 = load ptr, ptr %31, align 8, !tbaa !5
  %896 = getelementptr inbounds i32, ptr %895, i64 1
  %897 = load i32, ptr %896, align 4, !tbaa !9
  %898 = icmp ne i32 %897, 0
  br i1 %898, label %899, label %904

899:                                              ; preds = %894
  %900 = load ptr, ptr %31, align 8, !tbaa !5
  %901 = getelementptr inbounds i32, ptr %900, i64 0
  %902 = load i32, ptr %901, align 4, !tbaa !9
  %903 = add nsw i32 %902, 1
  store i32 %903, ptr %901, align 4, !tbaa !9
  br label %904

904:                                              ; preds = %899, %894
  %905 = load ptr, ptr %31, align 8, !tbaa !5
  %906 = load ptr, ptr %9, align 8, !tbaa !5
  %907 = call i32 @xdrfile_write_int(ptr noundef %905, i32 noundef 1, ptr noundef %906)
  %908 = load ptr, ptr %31, align 8, !tbaa !5
  %909 = getelementptr inbounds i32, ptr %908, i64 3
  %910 = load ptr, ptr %31, align 8, !tbaa !5
  %911 = getelementptr inbounds i32, ptr %910, i64 0
  %912 = load i32, ptr %911, align 4, !tbaa !9
  %913 = load ptr, ptr %9, align 8, !tbaa !5
  %914 = call i32 @xdrfile_write_opaque(ptr noundef %909, i32 noundef %912, ptr noundef %913)
  store i32 %914, ptr %45, align 4, !tbaa !9
  %915 = load i32, ptr %45, align 4, !tbaa !9
  %916 = load ptr, ptr %31, align 8, !tbaa !5
  %917 = getelementptr inbounds i32, ptr %916, i64 0
  %918 = load i32, ptr %917, align 4, !tbaa !9
  %919 = icmp eq i32 %915, %918
  br i1 %919, label %920, label %922

920:                                              ; preds = %904
  %921 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %921, ptr %5, align 4
  store i32 1, ptr %52, align 4
  br label %923

922:                                              ; preds = %904
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %52, align 4
  br label %923

923:                                              ; preds = %922, %920, %126, %105, %97, %75, %58
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 120, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 120, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %10) #5
  %924 = load i32, ptr %5, align 4
  ret i32 %924
}

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

!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, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !10, i64 32}
!14 = !{!"XDRFILE", !6, i64 0, !6, i64 8, !7, i64 16, !6, i64 24, !10, i64 32, !6, i64 40, !10, i64 48}
!15 = !{!14, !6, i64 24}
!16 = !{!14, !10, i64 48}
!17 = !{!14, !6, i64 40}
!18 = !{!19, !19, i64 0}
!19 = !{!"float", !7, i64 0}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = distinct !{!22, !21}
!23 = distinct !{!23, !21}
!24 = distinct !{!24, !21}
!25 = distinct !{!25, !21}
!26 = distinct !{!26, !21}
!27 = distinct !{!27, !21}


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

@stderr = external local_unnamed_addr global ptr, align 8
@magicints = external hidden local_unnamed_addr constant [73 x i32], align 16
@.str.18 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [44 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: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #1

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @sizeofint(i32 noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #4

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @xdrfile_compress_coord_double(ptr noundef readonly %0, i32 noundef %1, double noundef %2, ptr noundef %3) local_unnamed_addr #2 {
  %5 = alloca i32, align 4
  %6 = alloca [3 x i32], align 4
  %7 = alloca [3 x i32], align 4
  %8 = alloca i32, align 4
  %9 = alloca [3 x i32], align 4
  %10 = alloca [3 x i32], align 4
  %11 = alloca float, align 4
  %12 = alloca [30 x float], align 16
  %13 = alloca [30 x i32], align 16
  store i32 %1, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %13) #6
  %14 = icmp eq ptr %3, null
  br i1 %14, label %618, label %15

15:                                               ; preds = %4
  %16 = mul nsw i32 %1, 3
  %17 = getelementptr inbounds i8, ptr %3, i64 32
  %18 = load i32, ptr %17, align 8, !tbaa !9
  %19 = icmp ugt i32 %16, %18
  br i1 %19, label %20, label %42

20:                                               ; preds = %15
  %21 = zext i32 %16 to i64
  %22 = shl nuw nsw i64 %21, 2
  %23 = tail call noalias ptr @malloc(i64 noundef %22) #7
  %24 = getelementptr inbounds i8, ptr %3, i64 24
  store ptr %23, ptr %24, align 8, !tbaa !12
  %25 = icmp eq ptr %23, null
  br i1 %25, label %26, label %29

26:                                               ; preds = %20
  %27 = load ptr, ptr @stderr, align 8, !tbaa !13
  %28 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27, ptr noundef nonnull @.str.18) #8
  br label %618

29:                                               ; preds = %20
  store i32 %16, ptr %17, align 8, !tbaa !9
  %30 = uitofp i32 %16 to double
  %31 = fmul double %30, 1.200000e+00
  %32 = fptosi double %31 to i32
  %33 = getelementptr inbounds i8, ptr %3, i64 48
  store i32 %32, ptr %33, align 8, !tbaa !14
  %34 = sext i32 %32 to i64
  %35 = shl nsw i64 %34, 2
  %36 = tail call noalias ptr @malloc(i64 noundef %35) #7
  %37 = getelementptr inbounds i8, ptr %3, i64 40
  store ptr %36, ptr %37, align 8, !tbaa !15
  %38 = icmp eq ptr %36, null
  br i1 %38, label %39, label %42

39:                                               ; preds = %29
  %40 = load ptr, ptr @stderr, align 8, !tbaa !13
  %41 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %40, ptr noundef nonnull @.str.18) #8
  br label %618

42:                                               ; preds = %29, %15
  %43 = call i32 @xdrfile_write_int(ptr noundef nonnull %5, i32 noundef 1, ptr noundef nonnull %3)
  %44 = icmp eq i32 %43, 0
  br i1 %44, label %618, label %45

45:                                               ; preds = %42
  %46 = load i32, ptr %5, align 4, !tbaa !5
  %47 = icmp slt i32 %46, 10
  br i1 %47, label %.preheader.preheader, label %80

.preheader.preheader:                             ; preds = %45
  %48 = load <4 x double>, ptr %0, align 8, !tbaa !16
  %49 = fptrunc <4 x double> %48 to <4 x float>
  store <4 x float> %49, ptr %12, align 16, !tbaa !18
  %50 = getelementptr inbounds i8, ptr %0, i64 32
  %51 = getelementptr inbounds i8, ptr %12, i64 16
  %52 = load <4 x double>, ptr %50, align 8, !tbaa !16
  %53 = fptrunc <4 x double> %52 to <4 x float>
  store <4 x float> %53, ptr %51, align 16, !tbaa !18
  %54 = getelementptr inbounds i8, ptr %0, i64 64
  %55 = getelementptr inbounds i8, ptr %12, i64 32
  %56 = load <4 x double>, ptr %54, align 8, !tbaa !16
  %57 = fptrunc <4 x double> %56 to <4 x float>
  store <4 x float> %57, ptr %55, align 16, !tbaa !18
  %58 = getelementptr inbounds i8, ptr %0, i64 96
  %59 = getelementptr inbounds i8, ptr %12, i64 48
  %60 = load <4 x double>, ptr %58, align 8, !tbaa !16
  %61 = fptrunc <4 x double> %60 to <4 x float>
  store <4 x float> %61, ptr %59, align 16, !tbaa !18
  %62 = getelementptr inbounds i8, ptr %0, i64 128
  %63 = getelementptr inbounds i8, ptr %12, i64 64
  %64 = load <4 x double>, ptr %62, align 8, !tbaa !16
  %65 = fptrunc <4 x double> %64 to <4 x float>
  store <4 x float> %65, ptr %63, align 16, !tbaa !18
  %66 = getelementptr inbounds i8, ptr %0, i64 160
  %67 = getelementptr inbounds i8, ptr %12, i64 80
  %68 = load <4 x double>, ptr %66, align 8, !tbaa !16
  %69 = fptrunc <4 x double> %68 to <4 x float>
  store <4 x float> %69, ptr %67, align 16, !tbaa !18
  %70 = getelementptr inbounds i8, ptr %0, i64 192
  %71 = getelementptr inbounds i8, ptr %12, i64 96
  %72 = load <2 x double>, ptr %70, align 8, !tbaa !16
  %73 = fptrunc <2 x double> %72 to <2 x float>
  store <2 x float> %73, ptr %71, align 16, !tbaa !18
  %74 = getelementptr inbounds i8, ptr %0, i64 208
  %75 = load double, ptr %74, align 8, !tbaa !16
  %76 = fptrunc double %75 to float
  %77 = getelementptr inbounds i8, ptr %12, i64 104
  store float %76, ptr %77, align 8, !tbaa !18
  %78 = call i32 @xdrfile_write_float(ptr noundef nonnull %12, i32 noundef %16, ptr noundef nonnull %3)
  %79 = sdiv i32 %78, 3
  br label %618

80:                                               ; preds = %45
  %81 = fcmp ugt double %2, 0.000000e+00
  %.0240 = select i1 %81, double %2, double 1.000000e+03
  %82 = fptrunc double %.0240 to float
  store float %82, ptr %11, align 4, !tbaa !18
  %83 = call i32 @xdrfile_write_float(ptr noundef nonnull %11, i32 noundef 1, ptr noundef nonnull %3)
  %84 = getelementptr inbounds i8, ptr %3, i64 24
  %85 = load ptr, ptr %84, align 8, !tbaa !12
  %86 = getelementptr inbounds i8, ptr %3, i64 40
  %87 = load ptr, ptr %86, align 8, !tbaa !15
  %88 = getelementptr inbounds i8, ptr %87, i64 8
  store i32 0, ptr %88, align 4, !tbaa !5
  %89 = getelementptr inbounds i8, ptr %87, i64 4
  store i32 0, ptr %89, align 4, !tbaa !5
  store i32 0, ptr %87, align 4, !tbaa !5
  %90 = getelementptr inbounds i8, ptr %6, i64 8
  store i32 2147483647, ptr %90, align 4, !tbaa !5
  %91 = getelementptr inbounds i8, ptr %6, i64 4
  store i32 2147483647, ptr %91, align 4, !tbaa !5
  store i32 2147483647, ptr %6, align 4, !tbaa !5
  %92 = getelementptr inbounds i8, ptr %7, i64 8
  store i32 -2147483648, ptr %92, align 4, !tbaa !5
  %93 = getelementptr inbounds i8, ptr %7, i64 4
  store i32 -2147483648, ptr %93, align 4, !tbaa !5
  store i32 -2147483648, ptr %7, align 4, !tbaa !5
  %94 = zext i32 %16 to i64
  %95 = getelementptr inbounds double, ptr %0, i64 %94
  %.not311 = icmp eq i32 %1, 0
  br i1 %.not311, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %80, %158
  %.0219279 = phi ptr [ %160, %158 ], [ %0, %80 ]
  %.0241278 = phi i32 [ %.1242, %158 ], [ 2147483647, %80 ]
  %.0244277 = phi ptr [ %159, %158 ], [ %85, %80 ]
  %.0245276 = phi i32 [ %109, %158 ], [ 0, %80 ]
  %.0246275 = phi i32 [ %133, %158 ], [ 0, %80 ]
  %.0247274 = phi i32 [ %150, %158 ], [ 0, %80 ]
  %96 = load double, ptr %.0219279, align 8, !tbaa !16
  %97 = fcmp ult double %96, 0.000000e+00
  %98 = fptrunc double %96 to float
  %99 = load float, ptr %11, align 4, !tbaa !18
  %100 = fmul float %99, %98
  %. = select i1 %97, float -5.000000e-01, float 5.000000e-01
  %101 = fadd float %100, %.
  %102 = call float @llvm.fabs.f32(float %101)
  %103 = fpext float %102 to double
  %104 = fcmp ogt double %103, 0x41DFFFFFFF400000
  br i1 %104, label %105, label %108

105:                                              ; preds = %.lr.ph
  %106 = load ptr, ptr @stderr, align 8, !tbaa !13
  %107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %106, ptr noundef nonnull @.str.19) #8
  br label %108

108:                                              ; preds = %105, %.lr.ph
  %109 = fptosi float %101 to i32
  %110 = load i32, ptr %6, align 4, !tbaa !5
  %111 = icmp sgt i32 %110, %109
  br i1 %111, label %112, label %113

112:                                              ; preds = %108
  store i32 %109, ptr %6, align 4, !tbaa !5
  br label %113

113:                                              ; preds = %112, %108
  %114 = load i32, ptr %7, align 4, !tbaa !5
  %115 = icmp slt i32 %114, %109
  br i1 %115, label %116, label %117

116:                                              ; preds = %113
  store i32 %109, ptr %7, align 4, !tbaa !5
  br label %117

117:                                              ; preds = %116, %113
  %118 = getelementptr inbounds i8, ptr %.0244277, i64 4
  store i32 %109, ptr %.0244277, align 4, !tbaa !5
  %119 = getelementptr inbounds i8, ptr %.0219279, i64 8
  %120 = load double, ptr %119, align 8, !tbaa !16
  %121 = fcmp ult double %120, 0.000000e+00
  %122 = fptrunc double %120 to float
  %123 = load float, ptr %11, align 4, !tbaa !18
  %124 = fmul float %123, %122
  %.348 = select i1 %121, float -5.000000e-01, float 5.000000e-01
  %125 = fadd float %124, %.348
  %126 = call float @llvm.fabs.f32(float %125)
  %127 = fpext float %126 to double
  %128 = fcmp ogt double %127, 0x41DFFFFFFF400000
  br i1 %128, label %129, label %132

129:                                              ; preds = %117
  %130 = load ptr, ptr @stderr, align 8, !tbaa !13
  %131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %130, ptr noundef nonnull @.str.19) #8
  br label %132

132:                                              ; preds = %129, %117
  %133 = fptosi float %125 to i32
  %134 = load i32, ptr %91, align 4, !tbaa !5
  %135 = icmp sgt i32 %134, %133
  br i1 %135, label %136, label %137

136:                                              ; preds = %132
  store i32 %133, ptr %91, align 4, !tbaa !5
  br label %137

137:                                              ; preds = %136, %132
  %138 = load i32, ptr %93, align 4, !tbaa !5
  %139 = icmp slt i32 %138, %133
  br i1 %139, label %140, label %141

140:                                              ; preds = %137
  store i32 %133, ptr %93, align 4, !tbaa !5
  br label %141

141:                                              ; preds = %140, %137
  %142 = getelementptr inbounds i8, ptr %.0244277, i64 8
  store i32 %133, ptr %118, align 4, !tbaa !5
  %143 = getelementptr inbounds i8, ptr %.0219279, i64 16
  %144 = load double, ptr %143, align 8, !tbaa !16
  %145 = fcmp ult double %144, 0.000000e+00
  %146 = fptrunc double %144 to float
  %147 = load float, ptr %11, align 4, !tbaa !18
  %148 = fmul float %147, %146
  %.349 = select i1 %145, float -5.000000e-01, float 5.000000e-01
  %149 = fadd float %148, %.349
  %150 = fptosi float %149 to i32
  %151 = load i32, ptr %90, align 4, !tbaa !5
  %152 = icmp sgt i32 %151, %150
  br i1 %152, label %153, label %154

153:                                              ; preds = %141
  store i32 %150, ptr %90, align 4, !tbaa !5
  br label %154

154:                                              ; preds = %153, %141
  %155 = load i32, ptr %92, align 4, !tbaa !5
  %156 = icmp slt i32 %155, %150
  br i1 %156, label %157, label %158

157:                                              ; preds = %154
  store i32 %150, ptr %92, align 4, !tbaa !5
  br label %158

158:                                              ; preds = %157, %154
  %159 = getelementptr inbounds i8, ptr %.0244277, i64 12
  store i32 %150, ptr %142, align 4, !tbaa !5
  %160 = getelementptr inbounds i8, ptr %.0219279, i64 24
  %161 = sub nsw i32 %.0245276, %109
  %162 = call i32 @llvm.abs.i32(i32 %161, i1 true)
  %163 = sub nsw i32 %.0246275, %133
  %164 = call i32 @llvm.abs.i32(i32 %163, i1 true)
  %165 = add nuw nsw i32 %164, %162
  %166 = sub nsw i32 %.0247274, %150
  %167 = call i32 @llvm.abs.i32(i32 %166, i1 true)
  %168 = add nuw nsw i32 %165, %167
  %169 = icmp ugt ptr %.0219279, %0
  %170 = call i32 @llvm.smin.i32(i32 %168, i32 %.0241278)
  %.1242 = select i1 %169, i32 %170, i32 %.0241278
  %171 = icmp ult ptr %160, %95
  br i1 %171, label %.lr.ph, label %._crit_edge, !llvm.loop !20

._crit_edge:                                      ; preds = %158, %80
  %.0241.lcssa = phi i32 [ 2147483647, %80 ], [ %.1242, %158 ]
  %172 = call i32 @xdrfile_write_int(ptr noundef nonnull %6, i32 noundef 3, ptr noundef nonnull %3)
  %173 = call i32 @xdrfile_write_int(ptr noundef nonnull %7, i32 noundef 3, ptr noundef nonnull %3)
  %174 = load i32, ptr %7, align 4, !tbaa !5
  %175 = sitofp i32 %174 to float
  %176 = load i32, ptr %6, align 4, !tbaa !5
  %177 = sitofp i32 %176 to float
  %178 = fsub float %175, %177
  %179 = fcmp ult float %178, 0x41E0000000000000
  br i1 %179, label %180, label %194

180:                                              ; preds = %._crit_edge
  %181 = load i32, ptr %93, align 4, !tbaa !5
  %182 = sitofp i32 %181 to float
  %183 = load i32, ptr %91, align 4, !tbaa !5
  %184 = sitofp i32 %183 to float
  %185 = fsub float %182, %184
  %186 = fcmp ult float %185, 0x41E0000000000000
  br i1 %186, label %187, label %194

187:                                              ; preds = %180
  %188 = load i32, ptr %92, align 4, !tbaa !5
  %189 = sitofp i32 %188 to float
  %190 = load i32, ptr %90, align 4, !tbaa !5
  %191 = sitofp i32 %190 to float
  %192 = fsub float %189, %191
  %193 = fcmp ult float %192, 0x41E0000000000000
  br i1 %193, label %197, label %194

194:                                              ; preds = %187, %180, %._crit_edge
  %195 = load ptr, ptr @stderr, align 8, !tbaa !13
  %196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull @.str.19) #8
  %.pre = load i32, ptr %7, align 4, !tbaa !5
  %.pre332 = load i32, ptr %6, align 4, !tbaa !5
  %.pre333 = load i32, ptr %93, align 4, !tbaa !5
  %.pre334 = load i32, ptr %91, align 4, !tbaa !5
  %.pre335 = load i32, ptr %92, align 4, !tbaa !5
  %.pre336 = load i32, ptr %90, align 4, !tbaa !5
  br label %197

197:                                              ; preds = %194, %187
  %198 = phi i32 [ %.pre336, %194 ], [ %190, %187 ]
  %199 = phi i32 [ %.pre335, %194 ], [ %188, %187 ]
  %200 = phi i32 [ %.pre334, %194 ], [ %183, %187 ]
  %201 = phi i32 [ %.pre333, %194 ], [ %181, %187 ]
  %202 = phi i32 [ %.pre332, %194 ], [ %176, %187 ]
  %203 = phi i32 [ %.pre, %194 ], [ %174, %187 ]
  %204 = sub nsw i32 %203, %202
  %205 = add nsw i32 %204, 1
  store i32 %205, ptr %9, align 4, !tbaa !5
  %206 = sub nsw i32 %201, %200
  %207 = add nsw i32 %206, 1
  %208 = getelementptr inbounds i8, ptr %9, i64 4
  store i32 %207, ptr %208, align 4, !tbaa !5
  %209 = sub nsw i32 %199, %198
  %210 = add nsw i32 %209, 1
  %211 = getelementptr inbounds i8, ptr %9, i64 8
  store i32 %210, ptr %211, align 4, !tbaa !5
  %212 = or i32 %207, %205
  %213 = or i32 %212, %210
  %214 = icmp ugt i32 %213, 16777215
  br i1 %214, label %215, label %221

215:                                              ; preds = %197
  %216 = call i32 @sizeofint(i32 noundef %205)
  %217 = load i32, ptr %208, align 4, !tbaa !5
  %218 = call i32 @sizeofint(i32 noundef %217)
  %219 = load i32, ptr %211, align 4, !tbaa !5
  %220 = call i32 @sizeofint(i32 noundef %219)
  br label %223

221:                                              ; preds = %197
  %222 = call i32 @sizeofints(i32 noundef 3, ptr noundef nonnull %9)
  br label %223

223:                                              ; preds = %221, %215
  %.sroa.8.0 = phi i32 [ %220, %215 ], [ 0, %221 ]
  %.sroa.5.0 = phi i32 [ %218, %215 ], [ 0, %221 ]
  %.sroa.0.0 = phi i32 [ %216, %215 ], [ 0, %221 ]
  %.0 = phi i32 [ 0, %215 ], [ %222, %221 ]
  %224 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 36), align 4, !tbaa !5
  %225 = icmp slt i32 %224, %.0241.lcssa
  br i1 %225, label %226, label %.critedge

226:                                              ; preds = %223
  %227 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 40), align 8, !tbaa !5
  %228 = icmp slt i32 %227, %.0241.lcssa
  br i1 %228, label %229, label %.critedge

229:                                              ; preds = %226
  %230 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 44), align 4, !tbaa !5
  %231 = icmp slt i32 %230, %.0241.lcssa
  br i1 %231, label %232, label %.critedge

232:                                              ; preds = %229
  %233 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 48), align 16, !tbaa !5
  %234 = icmp slt i32 %233, %.0241.lcssa
  br i1 %234, label %235, label %.critedge

235:                                              ; preds = %232
  %236 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 52), align 4, !tbaa !5
  %237 = icmp slt i32 %236, %.0241.lcssa
  br i1 %237, label %238, label %.critedge

238:                                              ; preds = %235
  %239 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 56), align 8, !tbaa !5
  %240 = icmp slt i32 %239, %.0241.lcssa
  br i1 %240, label %241, label %.critedge

241:                                              ; preds = %238
  %242 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 60), align 4, !tbaa !5
  %243 = icmp slt i32 %242, %.0241.lcssa
  br i1 %243, label %244, label %.critedge

244:                                              ; preds = %241
  %245 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 64), align 16, !tbaa !5
  %246 = icmp slt i32 %245, %.0241.lcssa
  br i1 %246, label %247, label %.critedge

247:                                              ; preds = %244
  %248 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 68), align 4, !tbaa !5
  %249 = icmp slt i32 %248, %.0241.lcssa
  br i1 %249, label %250, label %.critedge

250:                                              ; preds = %247
  %251 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 72), align 8, !tbaa !5
  %252 = icmp slt i32 %251, %.0241.lcssa
  br i1 %252, label %253, label %.critedge

253:                                              ; preds = %250
  %254 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 76), align 4, !tbaa !5
  %255 = icmp slt i32 %254, %.0241.lcssa
  br i1 %255, label %256, label %.critedge

256:                                              ; preds = %253
  %257 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 80), align 16, !tbaa !5
  %258 = icmp slt i32 %257, %.0241.lcssa
  br i1 %258, label %259, label %.critedge

259:                                              ; preds = %256
  %260 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 84), align 4, !tbaa !5
  %261 = icmp slt i32 %260, %.0241.lcssa
  br i1 %261, label %262, label %.critedge

262:                                              ; preds = %259
  %263 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 88), align 8, !tbaa !5
  %264 = icmp slt i32 %263, %.0241.lcssa
  br i1 %264, label %265, label %.critedge

265:                                              ; preds = %262
  %266 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 92), align 4, !tbaa !5
  %267 = icmp slt i32 %266, %.0241.lcssa
  br i1 %267, label %268, label %.critedge

268:                                              ; preds = %265
  %269 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 96), align 16, !tbaa !5
  %270 = icmp slt i32 %269, %.0241.lcssa
  br i1 %270, label %271, label %.critedge

271:                                              ; preds = %268
  %272 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 100), align 4, !tbaa !5
  %273 = icmp slt i32 %272, %.0241.lcssa
  br i1 %273, label %274, label %.critedge

274:                                              ; preds = %271
  %275 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 104), align 8, !tbaa !5
  %276 = icmp slt i32 %275, %.0241.lcssa
  br i1 %276, label %277, label %.critedge

277:                                              ; preds = %274
  %278 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 108), align 4, !tbaa !5
  %279 = icmp slt i32 %278, %.0241.lcssa
  br i1 %279, label %280, label %.critedge

280:                                              ; preds = %277
  %281 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 112), align 16, !tbaa !5
  %282 = icmp slt i32 %281, %.0241.lcssa
  br i1 %282, label %283, label %.critedge

283:                                              ; preds = %280
  %284 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 116), align 4, !tbaa !5
  %285 = icmp slt i32 %284, %.0241.lcssa
  br i1 %285, label %286, label %.critedge

286:                                              ; preds = %283
  %287 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 120), align 8, !tbaa !5
  %288 = icmp slt i32 %287, %.0241.lcssa
  br i1 %288, label %289, label %.critedge

289:                                              ; preds = %286
  %290 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 124), align 4, !tbaa !5
  %291 = icmp slt i32 %290, %.0241.lcssa
  br i1 %291, label %292, label %.critedge

292:                                              ; preds = %289
  %293 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 128), align 16, !tbaa !5
  %294 = icmp slt i32 %293, %.0241.lcssa
  br i1 %294, label %295, label %.critedge

295:                                              ; preds = %292
  %296 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 132), align 4, !tbaa !5
  %297 = icmp slt i32 %296, %.0241.lcssa
  br i1 %297, label %298, label %.critedge

298:                                              ; preds = %295
  %299 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 136), align 8, !tbaa !5
  %300 = icmp slt i32 %299, %.0241.lcssa
  br i1 %300, label %301, label %.critedge

301:                                              ; preds = %298
  %302 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 140), align 4, !tbaa !5
  %303 = icmp slt i32 %302, %.0241.lcssa
  br i1 %303, label %304, label %.critedge

304:                                              ; preds = %301
  %305 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 144), align 16, !tbaa !5
  %306 = icmp slt i32 %305, %.0241.lcssa
  br i1 %306, label %307, label %.critedge

307:                                              ; preds = %304
  %308 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 148), align 4, !tbaa !5
  %309 = icmp slt i32 %308, %.0241.lcssa
  br i1 %309, label %310, label %.critedge

310:                                              ; preds = %307
  %311 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 152), align 8, !tbaa !5
  %312 = icmp slt i32 %311, %.0241.lcssa
  br i1 %312, label %313, label %.critedge

313:                                              ; preds = %310
  %314 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 156), align 4, !tbaa !5
  %315 = icmp slt i32 %314, %.0241.lcssa
  br i1 %315, label %316, label %.critedge

316:                                              ; preds = %313
  %317 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 160), align 16, !tbaa !5
  %318 = icmp slt i32 %317, %.0241.lcssa
  br i1 %318, label %319, label %.critedge

319:                                              ; preds = %316
  %320 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 164), align 4, !tbaa !5
  %321 = icmp slt i32 %320, %.0241.lcssa
  br i1 %321, label %322, label %.critedge

322:                                              ; preds = %319
  %323 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 168), align 8, !tbaa !5
  %324 = icmp slt i32 %323, %.0241.lcssa
  br i1 %324, label %325, label %.critedge

325:                                              ; preds = %322
  %326 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 172), align 4, !tbaa !5
  %327 = icmp slt i32 %326, %.0241.lcssa
  br i1 %327, label %328, label %.critedge

328:                                              ; preds = %325
  %329 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 176), align 16, !tbaa !5
  %330 = icmp slt i32 %329, %.0241.lcssa
  br i1 %330, label %331, label %.critedge

331:                                              ; preds = %328
  %332 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 180), align 4, !tbaa !5
  %333 = icmp slt i32 %332, %.0241.lcssa
  br i1 %333, label %334, label %.critedge

334:                                              ; preds = %331
  %335 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 184), align 8, !tbaa !5
  %336 = icmp slt i32 %335, %.0241.lcssa
  br i1 %336, label %337, label %.critedge

337:                                              ; preds = %334
  %338 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 188), align 4, !tbaa !5
  %339 = icmp slt i32 %338, %.0241.lcssa
  br i1 %339, label %340, label %.critedge

340:                                              ; preds = %337
  %341 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 192), align 16, !tbaa !5
  %342 = icmp slt i32 %341, %.0241.lcssa
  br i1 %342, label %343, label %.critedge

343:                                              ; preds = %340
  %344 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 196), align 4, !tbaa !5
  %345 = icmp slt i32 %344, %.0241.lcssa
  br i1 %345, label %346, label %.critedge

346:                                              ; preds = %343
  %347 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 200), align 8, !tbaa !5
  %348 = icmp slt i32 %347, %.0241.lcssa
  br i1 %348, label %349, label %.critedge

349:                                              ; preds = %346
  %350 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 204), align 4, !tbaa !5
  %351 = icmp slt i32 %350, %.0241.lcssa
  br i1 %351, label %352, label %.critedge

352:                                              ; preds = %349
  %353 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 208), align 16, !tbaa !5
  %354 = icmp slt i32 %353, %.0241.lcssa
  br i1 %354, label %355, label %.critedge

355:                                              ; preds = %352
  %356 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 212), align 4, !tbaa !5
  %357 = icmp slt i32 %356, %.0241.lcssa
  br i1 %357, label %358, label %.critedge

358:                                              ; preds = %355
  %359 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 216), align 8, !tbaa !5
  %360 = icmp slt i32 %359, %.0241.lcssa
  br i1 %360, label %361, label %.critedge

361:                                              ; preds = %358
  %362 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 220), align 4, !tbaa !5
  %363 = icmp slt i32 %362, %.0241.lcssa
  br i1 %363, label %364, label %.critedge

364:                                              ; preds = %361
  %365 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 224), align 16, !tbaa !5
  %366 = icmp slt i32 %365, %.0241.lcssa
  br i1 %366, label %367, label %.critedge

367:                                              ; preds = %364
  %368 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 228), align 4, !tbaa !5
  %369 = icmp slt i32 %368, %.0241.lcssa
  br i1 %369, label %370, label %.critedge

370:                                              ; preds = %367
  %371 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 232), align 8, !tbaa !5
  %372 = icmp slt i32 %371, %.0241.lcssa
  br i1 %372, label %373, label %.critedge

373:                                              ; preds = %370
  %374 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 236), align 4, !tbaa !5
  %375 = icmp slt i32 %374, %.0241.lcssa
  br i1 %375, label %376, label %.critedge

376:                                              ; preds = %373
  %377 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 240), align 16, !tbaa !5
  %378 = icmp slt i32 %377, %.0241.lcssa
  br i1 %378, label %379, label %.critedge

379:                                              ; preds = %376
  %380 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 244), align 4, !tbaa !5
  %381 = icmp slt i32 %380, %.0241.lcssa
  br i1 %381, label %382, label %.critedge

382:                                              ; preds = %379
  %383 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 248), align 8, !tbaa !5
  %384 = icmp slt i32 %383, %.0241.lcssa
  br i1 %384, label %385, label %.critedge

385:                                              ; preds = %382
  %386 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 252), align 4, !tbaa !5
  %387 = icmp slt i32 %386, %.0241.lcssa
  br i1 %387, label %388, label %.critedge

388:                                              ; preds = %385
  %389 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 256), align 16, !tbaa !5
  %390 = icmp slt i32 %389, %.0241.lcssa
  br i1 %390, label %391, label %.critedge

391:                                              ; preds = %388
  %392 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 260), align 4, !tbaa !5
  %393 = icmp slt i32 %392, %.0241.lcssa
  br i1 %393, label %394, label %.critedge

394:                                              ; preds = %391
  %395 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 264), align 8, !tbaa !5
  %396 = icmp slt i32 %395, %.0241.lcssa
  br i1 %396, label %397, label %.critedge

397:                                              ; preds = %394
  %398 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 268), align 4, !tbaa !5
  %399 = icmp slt i32 %398, %.0241.lcssa
  br i1 %399, label %400, label %.critedge

400:                                              ; preds = %397
  %401 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 272), align 16, !tbaa !5
  %402 = icmp slt i32 %401, %.0241.lcssa
  br i1 %402, label %403, label %.critedge

403:                                              ; preds = %400
  %404 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 276), align 4, !tbaa !5
  %405 = icmp slt i32 %404, %.0241.lcssa
  br i1 %405, label %406, label %.critedge

406:                                              ; preds = %403
  %407 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 280), align 8, !tbaa !5
  %408 = icmp slt i32 %407, %.0241.lcssa
  br i1 %408, label %409, label %.critedge

409:                                              ; preds = %406
  %410 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 284), align 4, !tbaa !5
  %411 = icmp slt i32 %410, %.0241.lcssa
  br i1 %411, label %412, label %.critedge

412:                                              ; preds = %409
  %413 = load i32, ptr getelementptr inbounds (i8, ptr @magicints, i64 288), align 16, !tbaa !5
  %414 = icmp slt i32 %413, %.0241.lcssa
  %spec.select347 = select i1 %414, i32 73, i32 72
  br label %.critedge

.critedge:                                        ; preds = %412, %409, %406, %403, %400, %397, %394, %391, %388, %385, %382, %379, %376, %373, %370, %367, %364, %361, %358, %355, %352, %349, %346, %343, %340, %337, %334, %331, %328, %325, %322, %319, %316, %313, %310, %307, %304, %301, %298, %295, %292, %289, %286, %283, %280, %277, %274, %271, %268, %265, %262, %259, %256, %253, %250, %247, %244, %241, %238, %235, %232, %229, %226, %223
  %storemerge.lcssa = phi i32 [ 9, %223 ], [ 10, %226 ], [ 11, %229 ], [ 12, %232 ], [ 13, %235 ], [ 14, %238 ], [ 15, %241 ], [ 16, %244 ], [ 17, %247 ], [ 18, %250 ], [ 19, %253 ], [ 20, %256 ], [ 21, %259 ], [ 22, %262 ], [ 23, %265 ], [ 24, %268 ], [ 25, %271 ], [ 26, %274 ], [ 27, %277 ], [ 28, %280 ], [ 29, %283 ], [ 30, %286 ], [ 31, %289 ], [ 32, %292 ], [ 33, %295 ], [ 34, %298 ], [ 35, %301 ], [ 36, %304 ], [ 37, %307 ], [ 38, %310 ], [ 39, %313 ], [ 40, %316 ], [ 41, %319 ], [ 42, %322 ], [ 43, %325 ], [ 44, %328 ], [ 45, %331 ], [ 46, %334 ], [ 47, %337 ], [ 48, %340 ], [ 49, %343 ], [ 50, %346 ], [ 51, %349 ], [ 52, %352 ], [ 53, %355 ], [ 54, %358 ], [ 55, %361 ], [ 56, %364 ], [ 57, %367 ], [ 58, %370 ], [ 59, %373 ], [ 60, %376 ], [ 61, %379 ], [ 62, %382 ], [ 63, %385 ], [ 64, %388 ], [ 65, %391 ], [ 66, %394 ], [ 67, %397 ], [ 68, %400 ], [ 69, %403 ], [ 70, %406 ], [ 71, %409 ], [ %spec.select347, %412 ]
  store i32 %storemerge.lcssa, ptr %8, align 4, !tbaa !5
  %415 = call i32 @xdrfile_write_int(ptr noundef nonnull %8, i32 noundef 1, ptr noundef nonnull %3)
  %416 = load i32, ptr %8, align 4, !tbaa !5
  %417 = add nsw i32 %416, 8
  %418 = call i32 @llvm.umin.i32(i32 %417, i32 73)
  %419 = add nsw i32 %418, -8
  %420 = call i32 @llvm.smax.i32(i32 %416, i32 10)
  %421 = add nsw i32 %420, -1
  %422 = zext nneg i32 %421 to i64
  %423 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %422
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = sext i32 %416 to i64
  %426 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %425
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = getelementptr inbounds i8, ptr %10, i64 8
  store i32 %427, ptr %428, align 4, !tbaa !5
  %429 = getelementptr inbounds i8, ptr %10, i64 4
  store i32 %427, ptr %429, align 4, !tbaa !5
  store i32 %427, ptr %10, align 4, !tbaa !5
  %430 = zext nneg i32 %418 to i64
  %431 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %430
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = sdiv i32 %432, 2
  %434 = load i32, ptr %5, align 4, !tbaa !5
  %435 = icmp sgt i32 %434, 0
  br i1 %435, label %.lr.ph305, label %._crit_edge306

.lr.ph305:                                        ; preds = %.critedge
  %436 = sdiv i32 %427, 2
  %437 = sdiv i32 %424, 2
  %438 = getelementptr inbounds i8, ptr %13, i64 4
  %439 = getelementptr inbounds i8, ptr %13, i64 8
  %440 = icmp eq i32 %.0, 0
  br label %441

441:                                              ; preds = %.lr.ph305, %603
  %442 = phi i32 [ undef, %.lr.ph305 ], [ %573, %603 ]
  %443 = phi i32 [ undef, %.lr.ph305 ], [ %574, %603 ]
  %444 = phi i32 [ %434, %.lr.ph305 ], [ %604, %603 ]
  %.0220304 = phi i32 [ -1, %.lr.ph305 ], [ %.1221, %603 ]
  %.1231303 = phi i32 [ 0, %.lr.ph305 ], [ %.2232.lcssa, %603 ]
  %.0234302 = phi i32 [ %437, %.lr.ph305 ], [ %.2236, %603 ]
  %.0237301 = phi i32 [ %436, %.lr.ph305 ], [ %.2239, %603 ]
  %.promoted298300 = phi i32 [ undef, %.lr.ph305 ], [ %.promoted299, %603 ]
  %445 = mul nsw i32 %.1231303, 3
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds i32, ptr %85, i64 %446
  %448 = load i32, ptr %8, align 4, !tbaa !5
  %449 = icmp slt i32 %448, %418
  %450 = icmp sgt i32 %.1231303, 0
  %or.cond = and i1 %450, %449
  %.pre337.pre.pre = load i32, ptr %447, align 4, !tbaa !5
  br i1 %or.cond, label %451, label %467

451:                                              ; preds = %441
  %452 = sub nsw i32 %.pre337.pre.pre, %.promoted298300
  %453 = call i32 @llvm.abs.i32(i32 %452, i1 true)
  %454 = icmp slt i32 %453, %433
  br i1 %454, label %455, label %467

455:                                              ; preds = %451
  %456 = getelementptr inbounds i8, ptr %447, i64 4
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = sub nsw i32 %457, %443
  %459 = call i32 @llvm.abs.i32(i32 %458, i1 true)
  %460 = icmp ult i32 %459, %433
  br i1 %460, label %461, label %467

461:                                              ; preds = %455
  %462 = getelementptr inbounds i8, ptr %447, i64 8
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = sub nsw i32 %463, %442
  %465 = call i32 @llvm.abs.i32(i32 %464, i1 true)
  %466 = icmp ult i32 %465, %433
  br i1 %466, label %469, label %467

467:                                              ; preds = %461, %455, %451, %441
  %468 = icmp sgt i32 %448, %419
  %.268 = sext i1 %468 to i32
  br label %469

469:                                              ; preds = %467, %461
  %470 = phi i1 [ false, %461 ], [ %468, %467 ]
  %.0223 = phi i32 [ 1, %461 ], [ %.268, %467 ]
  %471 = add nsw i32 %.1231303, 1
  %472 = icmp slt i32 %471, %444
  br i1 %472, label %473, label %496

473:                                              ; preds = %469
  %474 = getelementptr inbounds i8, ptr %447, i64 12
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = sub nsw i32 %.pre337.pre.pre, %475
  %477 = call i32 @llvm.abs.i32(i32 %476, i1 true)
  %478 = icmp slt i32 %477, %.0237301
  br i1 %478, label %479, label %496

479:                                              ; preds = %473
  %480 = getelementptr inbounds i8, ptr %447, i64 4
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = getelementptr inbounds i8, ptr %447, i64 16
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = sub nsw i32 %481, %483
  %485 = call i32 @llvm.abs.i32(i32 %484, i1 true)
  %486 = icmp ult i32 %485, %.0237301
  br i1 %486, label %487, label %496

487:                                              ; preds = %479
  %488 = getelementptr inbounds i8, ptr %447, i64 8
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = getelementptr inbounds i8, ptr %447, i64 20
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = sub nsw i32 %489, %491
  %493 = call i32 @llvm.abs.i32(i32 %492, i1 true)
  %494 = icmp ult i32 %493, %.0237301
  br i1 %494, label %495, label %496

495:                                              ; preds = %487
  store i32 %475, ptr %447, align 4, !tbaa !5
  store i32 %.pre337.pre.pre, ptr %474, align 4, !tbaa !5
  store i32 %483, ptr %480, align 4, !tbaa !5
  store i32 %481, ptr %482, align 4, !tbaa !5
  store i32 %491, ptr %488, align 4, !tbaa !5
  store i32 %489, ptr %490, align 4, !tbaa !5
  br label %496

496:                                              ; preds = %473, %479, %487, %495, %469
  %497 = phi i32 [ %475, %495 ], [ %.pre337.pre.pre, %487 ], [ %.pre337.pre.pre, %479 ], [ %.pre337.pre.pre, %473 ], [ %.pre337.pre.pre, %469 ]
  %498 = phi i1 [ false, %495 ], [ true, %487 ], [ true, %479 ], [ true, %473 ], [ true, %469 ]
  %499 = load i32, ptr %6, align 4, !tbaa !5
  %500 = sub nsw i32 %497, %499
  store i32 %500, ptr %13, align 16, !tbaa !5
  %501 = getelementptr inbounds i8, ptr %447, i64 4
  %502 = load i32, ptr %501, align 4, !tbaa !5
  %503 = load i32, ptr %91, align 4, !tbaa !5
  %504 = sub nsw i32 %502, %503
  store i32 %504, ptr %438, align 4, !tbaa !5
  %505 = getelementptr inbounds i8, ptr %447, i64 8
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = load i32, ptr %90, align 4, !tbaa !5
  %508 = sub nsw i32 %506, %507
  store i32 %508, ptr %439, align 8, !tbaa !5
  br i1 %440, label %509, label %512

509:                                              ; preds = %496
  call void @encodebits(ptr noundef nonnull %87, i32 noundef %.sroa.0.0, i32 noundef %500)
  %510 = load i32, ptr %438, align 4, !tbaa !5
  call void @encodebits(ptr noundef nonnull %87, i32 noundef %.sroa.5.0, i32 noundef %510)
  %511 = load i32, ptr %439, align 8, !tbaa !5
  call void @encodebits(ptr noundef nonnull %87, i32 noundef %.sroa.8.0, i32 noundef %511)
  br label %513

512:                                              ; preds = %496
  call void @encodeints(ptr noundef nonnull %87, i32 noundef 3, i32 noundef %.0, ptr noundef nonnull %9, ptr noundef nonnull %13)
  br label %513

513:                                              ; preds = %512, %509
  %514 = load i32, ptr %447, align 4, !tbaa !5
  %515 = load i32, ptr %501, align 4, !tbaa !5
  %516 = load i32, ptr %505, align 4, !tbaa !5
  %or.cond3 = and i1 %470, %498
  %spec.store.select = select i1 %or.cond3, i32 0, i32 %.0223
  br i1 %498, label %._crit_edge289, label %.preheader273.lr.ph

.preheader273.lr.ph:                              ; preds = %513
  %517 = getelementptr inbounds i8, ptr %447, i64 12
  %518 = mul nsw i32 %.0234302, %.0234302
  %519 = load i32, ptr %5, align 4, !tbaa !5
  br label %.preheader273

.preheader273:                                    ; preds = %.preheader273.lr.ph, %564
  %.sroa.10.0 = phi i32 [ %516, %.preheader273.lr.ph ], [ %549, %564 ]
  %.sroa.6.0 = phi i32 [ %515, %.preheader273.lr.ph ], [ %548, %564 ]
  %.sroa.0.0331 = phi i32 [ %514, %.preheader273.lr.ph ], [ %547, %564 ]
  %indvars.iv = phi i64 [ 0, %.preheader273.lr.ph ], [ %indvars.iv.next, %564 ]
  %.0216288 = phi ptr [ %517, %.preheader273.lr.ph ], [ %551, %564 ]
  %.1224286 = phi i32 [ %.0223, %.preheader273.lr.ph ], [ %.2225, %564 ]
  %.2232285 = phi i32 [ %471, %.preheader273.lr.ph ], [ %550, %564 ]
  %520 = load i32, ptr %.0216288, align 4, !tbaa !5
  %521 = sub nsw i32 %520, %.sroa.0.0331
  %522 = mul nsw i32 %521, %521
  %523 = getelementptr inbounds i8, ptr %.0216288, i64 4
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = sub nsw i32 %524, %.sroa.6.0
  %526 = mul nsw i32 %525, %525
  %527 = add nuw nsw i32 %526, %522
  %528 = getelementptr inbounds i8, ptr %.0216288, i64 8
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = sub nsw i32 %529, %.sroa.10.0
  %531 = mul nsw i32 %530, %530
  %532 = add nuw nsw i32 %531, %527
  %533 = icmp eq i32 %.1224286, -1
  %.not266 = icmp ult i32 %532, %518
  %spec.select = sext i1 %.not266 to i32
  %.2225 = select i1 %533, i32 %spec.select, i32 %.1224286
  %534 = add i32 %520, %.0237301
  %535 = sub i32 %534, %.sroa.0.0331
  %536 = add nuw nsw i64 %indvars.iv, 1
  %537 = getelementptr inbounds [30 x i32], ptr %13, i64 0, i64 %indvars.iv
  store i32 %535, ptr %537, align 4, !tbaa !5
  %538 = load i32, ptr %523, align 4, !tbaa !5
  %539 = add i32 %538, %.0237301
  %540 = sub i32 %539, %.sroa.6.0
  %541 = add nuw nsw i64 %indvars.iv, 2
  %542 = getelementptr inbounds [30 x i32], ptr %13, i64 0, i64 %536
  store i32 %540, ptr %542, align 4, !tbaa !5
  %543 = load i32, ptr %528, align 4, !tbaa !5
  %544 = add i32 %543, %.0237301
  %545 = sub i32 %544, %.sroa.10.0
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 3
  %546 = getelementptr inbounds [30 x i32], ptr %13, i64 0, i64 %541
  store i32 %545, ptr %546, align 4, !tbaa !5
  %547 = load i32, ptr %.0216288, align 4, !tbaa !5
  %548 = load i32, ptr %523, align 4, !tbaa !5
  %549 = load i32, ptr %528, align 4, !tbaa !5
  %550 = add nsw i32 %.2232285, 1
  %551 = getelementptr inbounds i8, ptr %.0216288, i64 12
  %552 = icmp slt i32 %550, %519
  br i1 %552, label %553, label %._crit_edge289.loopexit

553:                                              ; preds = %.preheader273
  %554 = load i32, ptr %551, align 4, !tbaa !5
  %555 = sub nsw i32 %554, %547
  %556 = call i32 @llvm.abs.i32(i32 %555, i1 true)
  %557 = icmp slt i32 %556, %.0237301
  br i1 %557, label %558, label %._crit_edge289.loopexit

558:                                              ; preds = %553
  %559 = getelementptr inbounds i8, ptr %.0216288, i64 16
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = sub nsw i32 %560, %548
  %562 = call i32 @llvm.abs.i32(i32 %561, i1 true)
  %563 = icmp ult i32 %562, %.0237301
  br i1 %563, label %564, label %._crit_edge289.loopexit

564:                                              ; preds = %558
  %565 = getelementptr inbounds i8, ptr %.0216288, i64 20
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = sub nsw i32 %566, %549
  %568 = call i32 @llvm.abs.i32(i32 %567, i1 true)
  %569 = icmp ult i32 %568, %.0237301
  %570 = icmp ult i64 %indvars.iv, 21
  %571 = and i1 %569, %570
  br i1 %571, label %.preheader273, label %._crit_edge289.loopexit, !llvm.loop !22

._crit_edge289.loopexit:                          ; preds = %.preheader273, %553, %558, %564
  %572 = trunc nuw nsw i64 %indvars.iv.next to i32
  br label %._crit_edge289

._crit_edge289:                                   ; preds = %._crit_edge289.loopexit, %513
  %573 = phi i32 [ %516, %513 ], [ %549, %._crit_edge289.loopexit ]
  %574 = phi i32 [ %515, %513 ], [ %548, %._crit_edge289.loopexit ]
  %.promoted299 = phi i32 [ %514, %513 ], [ %547, %._crit_edge289.loopexit ]
  %.2232.lcssa = phi i32 [ %471, %513 ], [ %550, %._crit_edge289.loopexit ]
  %.1224.lcssa = phi i32 [ %spec.store.select, %513 ], [ %.2225, %._crit_edge289.loopexit ]
  %.0222.lcssa = phi i32 [ 0, %513 ], [ %572, %._crit_edge289.loopexit ]
  %575 = icmp ne i32 %.0222.lcssa, %.0220304
  %576 = icmp ne i32 %.1224.lcssa, 0
  %or.cond5 = select i1 %575, i1 true, i1 %576
  br i1 %or.cond5, label %577, label %580

577:                                              ; preds = %._crit_edge289
  call void @encodebits(ptr noundef nonnull %87, i32 noundef 1, i32 noundef 1)
  %578 = add i32 %.0222.lcssa, 1
  %579 = add i32 %578, %.1224.lcssa
  call void @encodebits(ptr noundef nonnull %87, i32 noundef 5, i32 noundef %579)
  br label %581

580:                                              ; preds = %._crit_edge289
  call void @encodebits(ptr noundef nonnull %87, i32 noundef 1, i32 noundef 0)
  br label %581

581:                                              ; preds = %580, %577
  %.1221 = phi i32 [ %.0222.lcssa, %577 ], [ %.0220304, %580 ]
  %.not313 = icmp eq i32 %.0222.lcssa, 0
  br i1 %.not313, label %._crit_edge296, label %.lr.ph295.preheader

.lr.ph295.preheader:                              ; preds = %581
  %582 = zext i32 %.0222.lcssa to i64
  br label %.lr.ph295

.lr.ph295:                                        ; preds = %.lr.ph295.preheader, %.lr.ph295
  %indvars.iv322 = phi i64 [ 0, %.lr.ph295.preheader ], [ %indvars.iv.next323, %.lr.ph295 ]
  %583 = load i32, ptr %8, align 4, !tbaa !5
  %584 = getelementptr inbounds [30 x i32], ptr %13, i64 0, i64 %indvars.iv322
  call void @encodeints(ptr noundef nonnull %87, i32 noundef 3, i32 noundef %583, ptr noundef nonnull %10, ptr noundef nonnull %584)
  %indvars.iv.next323 = add nuw nsw i64 %indvars.iv322, 3
  %585 = icmp ult i64 %indvars.iv.next323, %582
  br i1 %585, label %.lr.ph295, label %._crit_edge296, !llvm.loop !23

._crit_edge296:                                   ; preds = %.lr.ph295, %581
  br i1 %576, label %586, label %603

586:                                              ; preds = %._crit_edge296
  %587 = load i32, ptr %8, align 4, !tbaa !5
  %588 = add nsw i32 %587, %.1224.lcssa
  store i32 %588, ptr %8, align 4, !tbaa !5
  %589 = icmp slt i32 %.1224.lcssa, 0
  br i1 %589, label %590, label %596

590:                                              ; preds = %586
  %591 = add nsw i32 %588, -1
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %592
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = sdiv i32 %594, 2
  %.pre338 = sext i32 %588 to i64
  %.phi.trans.insert = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %.pre338
  %.pre339 = load i32, ptr %.phi.trans.insert, align 4, !tbaa !5
  br label %601

596:                                              ; preds = %586
  %597 = sext i32 %588 to i64
  %598 = getelementptr inbounds [73 x i32], ptr @magicints, i64 0, i64 %597
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = sdiv i32 %599, 2
  br label %601

601:                                              ; preds = %596, %590
  %602 = phi i32 [ %599, %596 ], [ %.pre339, %590 ]
  %.1238 = phi i32 [ %600, %596 ], [ %.0234302, %590 ]
  %.1235 = phi i32 [ %.0237301, %596 ], [ %595, %590 ]
  store i32 %602, ptr %428, align 4, !tbaa !5
  store i32 %602, ptr %429, align 4, !tbaa !5
  store i32 %602, ptr %10, align 4, !tbaa !5
  br label %603

603:                                              ; preds = %601, %._crit_edge296
  %.2239 = phi i32 [ %.1238, %601 ], [ %.0237301, %._crit_edge296 ]
  %.2236 = phi i32 [ %.1235, %601 ], [ %.0234302, %._crit_edge296 ]
  %604 = load i32, ptr %5, align 4, !tbaa !5
  %605 = icmp slt i32 %.2232.lcssa, %604
  br i1 %605, label %441, label %._crit_edge306, !llvm.loop !24

._crit_edge306:                                   ; preds = %603, %.critedge
  %606 = load i32, ptr %89, align 4, !tbaa !5
  %.not = icmp eq i32 %606, 0
  br i1 %.not, label %610, label %607

607:                                              ; preds = %._crit_edge306
  %608 = load i32, ptr %87, align 4, !tbaa !5
  %609 = add nsw i32 %608, 1
  store i32 %609, ptr %87, align 4, !tbaa !5
  br label %610

610:                                              ; preds = %607, %._crit_edge306
  %611 = call i32 @xdrfile_write_int(ptr noundef nonnull %87, i32 noundef 1, ptr noundef nonnull %3)
  %612 = getelementptr inbounds i8, ptr %87, i64 12
  %613 = load i32, ptr %87, align 4, !tbaa !5
  %614 = call i32 @xdrfile_write_opaque(ptr noundef nonnull %612, i32 noundef %613, ptr noundef nonnull %3)
  %615 = load i32, ptr %87, align 4, !tbaa !5
  %616 = icmp eq i32 %614, %615
  %617 = load i32, ptr %5, align 4
  %spec.select270 = select i1 %616, i32 %617, i32 -1
  br label %618

618:                                              ; preds = %610, %42, %4, %.preheader.preheader, %39, %26
  %.0233 = phi i32 [ -1, %26 ], [ -1, %39 ], [ %79, %.preheader.preheader ], [ -1, %4 ], [ -1, %42 ], [ %spec.select270, %610 ]
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) #6
  ret i32 %.0233
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fabs.f32(float) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #5

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

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

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


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