; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/BLAS/TESTING (zblat2)

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

%union.anon = type { %struct.anon }
%struct.anon = type { i64, i64, i64, i64 }
%struct.doublecomplex = type { double, double }
%struct.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local global %union.anon, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i64, align 8
@c_b2 = external hidden global %struct.doublecomplex, align 8
@c_true = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@c__0 = external hidden global i64, align 8
@zchk4_.io___285 = external hidden global %struct.cilist, align 8
@zchk4_.io___286 = external hidden global %struct.cilist, align 8
@zchk4_.io___289 = external hidden global %struct.cilist, align 8
@zchk4_.io___293 = external hidden global %struct.cilist, align 8
@zchk4_.io___294 = external hidden global %struct.cilist, align 8
@zchk4_.io___295 = external hidden global %struct.cilist, align 8
@zchk4_.io___296 = external hidden global %struct.cilist, align 8
@zchk4_.io___297 = external hidden global %struct.cilist, align 8

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

declare i64 @s_wsfe(ptr noundef) #1

declare i64 @do_fio(ptr noundef, ptr noundef, i64 noundef) #1

declare i64 @e_wsfe() #1

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @zchk4_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, i64 noundef %28) #2 {
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca %struct.doublecomplex, align 8
  %69 = alloca %struct.alist, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca [1 x %struct.doublecomplex], align 16
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca %struct.doublecomplex, align 8
  %89 = alloca double, align 8
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca i64, align 8
  %94 = alloca i64, align 8
  %95 = alloca i64, align 8
  %96 = alloca %struct.doublecomplex, align 8
  %97 = alloca [13 x i64], align 16
  %98 = alloca i64, align 8
  %99 = alloca i64, align 8
  %100 = alloca i64, align 8
  %101 = alloca i64, align 8
  %102 = alloca double, align 8
  %103 = alloca %struct.doublecomplex, align 8
  store ptr %0, ptr %30, align 8, !tbaa !5
  store ptr %1, ptr %31, align 8, !tbaa !5
  store ptr %2, ptr %32, align 8, !tbaa !5
  store ptr %3, ptr %33, align 8, !tbaa !5
  store ptr %4, ptr %34, align 8, !tbaa !5
  store ptr %5, ptr %35, align 8, !tbaa !5
  store ptr %6, ptr %36, align 8, !tbaa !5
  store ptr %7, ptr %37, align 8, !tbaa !5
  store ptr %8, ptr %38, align 8, !tbaa !5
  store ptr %9, ptr %39, align 8, !tbaa !5
  store ptr %10, ptr %40, align 8, !tbaa !5
  store ptr %11, ptr %41, align 8, !tbaa !5
  store ptr %12, ptr %42, align 8, !tbaa !5
  store ptr %13, ptr %43, align 8, !tbaa !5
  store ptr %14, ptr %44, align 8, !tbaa !5
  store ptr %15, ptr %45, align 8, !tbaa !5
  store ptr %16, ptr %46, align 8, !tbaa !5
  store ptr %17, ptr %47, align 8, !tbaa !5
  store ptr %18, ptr %48, align 8, !tbaa !5
  store ptr %19, ptr %49, align 8, !tbaa !5
  store ptr %20, ptr %50, align 8, !tbaa !5
  store ptr %21, ptr %51, align 8, !tbaa !5
  store ptr %22, ptr %52, align 8, !tbaa !5
  store ptr %23, ptr %53, align 8, !tbaa !5
  store ptr %24, ptr %54, align 8, !tbaa !5
  store ptr %25, ptr %55, align 8, !tbaa !5
  store ptr %26, ptr %56, align 8, !tbaa !5
  store ptr %27, ptr %57, align 8, !tbaa !5
  store i64 %28, ptr %58, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 104, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %103) #3
  %104 = load ptr, ptr %39, align 8, !tbaa !5
  %105 = getelementptr inbounds i64, ptr %104, i32 -1
  store ptr %105, ptr %39, align 8, !tbaa !5
  %106 = load ptr, ptr %41, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 -1
  store ptr %107, ptr %41, align 8, !tbaa !5
  %108 = load ptr, ptr %43, align 8, !tbaa !5
  %109 = getelementptr inbounds i64, ptr %108, i32 -1
  store ptr %109, ptr %43, align 8, !tbaa !5
  %110 = load ptr, ptr %57, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.doublecomplex, ptr %110, i32 -1
  store ptr %111, ptr %57, align 8, !tbaa !5
  %112 = load ptr, ptr %56, align 8, !tbaa !5
  %113 = getelementptr inbounds double, ptr %112, i32 -1
  store ptr %113, ptr %56, align 8, !tbaa !5
  %114 = load ptr, ptr %55, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.doublecomplex, ptr %114, i32 -1
  store ptr %115, ptr %55, align 8, !tbaa !5
  %116 = load ptr, ptr %52, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.doublecomplex, ptr %116, i32 -1
  store ptr %117, ptr %52, align 8, !tbaa !5
  %118 = load ptr, ptr %49, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.doublecomplex, ptr %118, i32 -1
  store ptr %119, ptr %49, align 8, !tbaa !5
  %120 = load ptr, ptr %48, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.doublecomplex, ptr %120, i32 -1
  store ptr %121, ptr %48, align 8, !tbaa !5
  %122 = load ptr, ptr %47, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.doublecomplex, ptr %122, i32 -1
  store ptr %123, ptr %47, align 8, !tbaa !5
  %124 = load ptr, ptr %44, align 8, !tbaa !5
  %125 = load i64, ptr %124, align 8, !tbaa !9
  store i64 %125, ptr %59, align 8, !tbaa !9
  %126 = load i64, ptr %59, align 8, !tbaa !9
  %127 = add nsw i64 1, %126
  store i64 %127, ptr %60, align 8, !tbaa !9
  %128 = load i64, ptr %60, align 8, !tbaa !9
  %129 = load ptr, ptr %46, align 8, !tbaa !5
  %130 = sub i64 0, %128
  %131 = getelementptr inbounds %struct.doublecomplex, ptr %129, i64 %130
  store ptr %131, ptr %46, align 8, !tbaa !5
  %132 = load ptr, ptr %54, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.doublecomplex, ptr %132, i32 -1
  store ptr %133, ptr %54, align 8, !tbaa !5
  %134 = load ptr, ptr %53, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.doublecomplex, ptr %134, i32 -1
  store ptr %135, ptr %53, align 8, !tbaa !5
  %136 = load ptr, ptr %51, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.doublecomplex, ptr %136, i32 -1
  store ptr %137, ptr %51, align 8, !tbaa !5
  %138 = load ptr, ptr %50, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.doublecomplex, ptr %138, i32 -1
  store ptr %139, ptr %50, align 8, !tbaa !5
  %140 = load ptr, ptr %30, align 8, !tbaa !5
  %141 = getelementptr inbounds i8, ptr %140, i64 4
  %142 = load i8, ptr %141, align 1, !tbaa !11
  %143 = zext i8 %142 to i32
  %144 = icmp eq i32 %143, 67
  %145 = zext i1 %144 to i32
  %146 = sext i32 %145 to i64
  store i64 %146, ptr %92, align 8, !tbaa !9
  store i64 9, ptr %98, align 8, !tbaa !9
  store i64 0, ptr %76, align 8, !tbaa !9
  store i64 1, ptr %99, align 8, !tbaa !9
  store double 0.000000e+00, ptr %102, align 8, !tbaa !12
  %147 = load ptr, ptr %38, align 8, !tbaa !5
  %148 = load i64, ptr %147, align 8, !tbaa !9
  store i64 %148, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %149

149:                                              ; preds = %884, %29
  %150 = load i64, ptr %79, align 8, !tbaa !9
  %151 = load i64, ptr %61, align 8, !tbaa !9
  %152 = icmp sle i64 %150, %151
  br i1 %152, label %153, label %887

153:                                              ; preds = %149
  %154 = load ptr, ptr %39, align 8, !tbaa !5
  %155 = load i64, ptr %79, align 8, !tbaa !9
  %156 = getelementptr inbounds i64, ptr %154, i64 %155
  %157 = load i64, ptr %156, align 8, !tbaa !9
  store i64 %157, ptr %73, align 8, !tbaa !9
  %158 = load i64, ptr %73, align 8, !tbaa !9
  %159 = sdiv i64 %158, 2
  %160 = add nsw i64 %159, 1
  store i64 %160, ptr %77, align 8, !tbaa !9
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %161

161:                                              ; preds = %880, %153
  %162 = load i64, ptr %78, align 8, !tbaa !9
  %163 = icmp sle i64 %162, 2
  br i1 %163, label %164, label %883

164:                                              ; preds = %161
  %165 = load i64, ptr %78, align 8, !tbaa !9
  %166 = icmp eq i64 %165, 1
  br i1 %166, label %167, label %178

167:                                              ; preds = %164
  %168 = load i64, ptr %73, align 8, !tbaa !9
  %169 = load i64, ptr %77, align 8, !tbaa !9
  %170 = sub nsw i64 %168, %169
  store i64 %170, ptr %62, align 8, !tbaa !9
  %171 = load i64, ptr %62, align 8, !tbaa !9
  %172 = icmp sge i64 %171, 0
  br i1 %172, label %173, label %175

173:                                              ; preds = %167
  %174 = load i64, ptr %62, align 8, !tbaa !9
  br label %176

175:                                              ; preds = %167
  br label %176

176:                                              ; preds = %175, %173
  %177 = phi i64 [ %174, %173 ], [ 0, %175 ]
  store i64 %177, ptr %72, align 8, !tbaa !9
  br label %178

178:                                              ; preds = %176, %164
  %179 = load i64, ptr %78, align 8, !tbaa !9
  %180 = icmp eq i64 %179, 2
  br i1 %180, label %181, label %196

181:                                              ; preds = %178
  %182 = load i64, ptr %73, align 8, !tbaa !9
  %183 = load i64, ptr %77, align 8, !tbaa !9
  %184 = add nsw i64 %182, %183
  store i64 %184, ptr %62, align 8, !tbaa !9
  %185 = load i64, ptr %62, align 8, !tbaa !9
  %186 = load ptr, ptr %44, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  %188 = icmp sle i64 %185, %187
  br i1 %188, label %189, label %191

189:                                              ; preds = %181
  %190 = load i64, ptr %62, align 8, !tbaa !9
  br label %194

191:                                              ; preds = %181
  %192 = load ptr, ptr %44, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  br label %194

194:                                              ; preds = %191, %189
  %195 = phi i64 [ %190, %189 ], [ %193, %191 ]
  store i64 %195, ptr %72, align 8, !tbaa !9
  br label %196

196:                                              ; preds = %194, %178
  %197 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %197, ptr %87, align 8, !tbaa !9
  %198 = load i64, ptr %87, align 8, !tbaa !9
  %199 = load ptr, ptr %44, align 8, !tbaa !5
  %200 = load i64, ptr %199, align 8, !tbaa !9
  %201 = icmp slt i64 %198, %200
  br i1 %201, label %202, label %205

202:                                              ; preds = %196
  %203 = load i64, ptr %87, align 8, !tbaa !9
  %204 = add nsw i64 %203, 1
  store i64 %204, ptr %87, align 8, !tbaa !9
  br label %205

205:                                              ; preds = %202, %196
  %206 = load i64, ptr %87, align 8, !tbaa !9
  %207 = load ptr, ptr %44, align 8, !tbaa !5
  %208 = load i64, ptr %207, align 8, !tbaa !9
  %209 = icmp sgt i64 %206, %208
  br i1 %209, label %210, label %211

210:                                              ; preds = %205
  br label %879

211:                                              ; preds = %205
  %212 = load i64, ptr %87, align 8, !tbaa !9
  %213 = load i64, ptr %73, align 8, !tbaa !9
  %214 = mul nsw i64 %212, %213
  store i64 %214, ptr %86, align 8, !tbaa !9
  %215 = load i64, ptr %73, align 8, !tbaa !9
  %216 = icmp sle i64 %215, 0
  br i1 %216, label %220, label %217

217:                                              ; preds = %211
  %218 = load i64, ptr %72, align 8, !tbaa !9
  %219 = icmp sle i64 %218, 0
  br label %220

220:                                              ; preds = %217, %211
  %221 = phi i1 [ true, %211 ], [ %219, %217 ]
  %222 = zext i1 %221 to i32
  %223 = sext i32 %222 to i64
  store i64 %223, ptr %95, align 8, !tbaa !9
  %224 = load ptr, ptr %42, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  store i64 %225, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %81, align 8, !tbaa !9
  br label %226

226:                                              ; preds = %875, %220
  %227 = load i64, ptr %81, align 8, !tbaa !9
  %228 = load i64, ptr %62, align 8, !tbaa !9
  %229 = icmp sle i64 %227, %228
  br i1 %229, label %230, label %878

230:                                              ; preds = %226
  %231 = load ptr, ptr %43, align 8, !tbaa !5
  %232 = load i64, ptr %81, align 8, !tbaa !9
  %233 = getelementptr inbounds i64, ptr %231, i64 %232
  %234 = load i64, ptr %233, align 8, !tbaa !9
  store i64 %234, ptr %93, align 8, !tbaa !9
  %235 = load i64, ptr %93, align 8, !tbaa !9
  %236 = icmp sge i64 %235, 0
  br i1 %236, label %237, label %239

237:                                              ; preds = %230
  %238 = load i64, ptr %93, align 8, !tbaa !9
  br label %242

239:                                              ; preds = %230
  %240 = load i64, ptr %93, align 8, !tbaa !9
  %241 = sub nsw i64 0, %240
  br label %242

242:                                              ; preds = %239, %237
  %243 = phi i64 [ %238, %237 ], [ %241, %239 ]
  %244 = load i64, ptr %72, align 8, !tbaa !9
  %245 = mul nsw i64 %243, %244
  store i64 %245, ptr %84, align 8, !tbaa !9
  %246 = getelementptr inbounds %struct.doublecomplex, ptr %103, i32 0, i32 0
  store double 5.000000e-01, ptr %246, align 8, !tbaa !14
  %247 = getelementptr inbounds %struct.doublecomplex, ptr %103, i32 0, i32 1
  store double 0.000000e+00, ptr %247, align 8, !tbaa !16
  %248 = load i64, ptr %93, align 8, !tbaa !9
  %249 = icmp sge i64 %248, 0
  br i1 %249, label %250, label %252

250:                                              ; preds = %242
  %251 = load i64, ptr %93, align 8, !tbaa !9
  br label %255

252:                                              ; preds = %242
  %253 = load i64, ptr %93, align 8, !tbaa !9
  %254 = sub nsw i64 0, %253
  br label %255

255:                                              ; preds = %252, %250
  %256 = phi i64 [ %251, %250 ], [ %254, %252 ]
  store i64 %256, ptr %63, align 8, !tbaa !9
  %257 = load i64, ptr %72, align 8, !tbaa !9
  %258 = sub nsw i64 %257, 1
  store i64 %258, ptr %64, align 8, !tbaa !9
  %259 = load ptr, ptr %49, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.doublecomplex, ptr %259, i64 1
  %261 = load ptr, ptr %50, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.doublecomplex, ptr %261, i64 1
  %263 = call i32 @zmake_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %72, ptr noundef %260, ptr noundef @c__1, ptr noundef %262, ptr noundef %63, ptr noundef @c__0, ptr noundef %64, ptr noundef %99, ptr noundef %103, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %264 = load i64, ptr %72, align 8, !tbaa !9
  %265 = icmp sgt i64 %264, 1
  br i1 %265, label %266, label %299

266:                                              ; preds = %255
  %267 = load i64, ptr %72, align 8, !tbaa !9
  %268 = sdiv i64 %267, 2
  store i64 %268, ptr %63, align 8, !tbaa !9
  %269 = load ptr, ptr %49, align 8, !tbaa !5
  %270 = load i64, ptr %63, align 8, !tbaa !9
  %271 = getelementptr inbounds %struct.doublecomplex, ptr %269, i64 %270
  %272 = getelementptr inbounds %struct.doublecomplex, ptr %271, i32 0, i32 0
  store double 0.000000e+00, ptr %272, align 8, !tbaa !14
  %273 = load ptr, ptr %49, align 8, !tbaa !5
  %274 = load i64, ptr %63, align 8, !tbaa !9
  %275 = getelementptr inbounds %struct.doublecomplex, ptr %273, i64 %274
  %276 = getelementptr inbounds %struct.doublecomplex, ptr %275, i32 0, i32 1
  store double 0.000000e+00, ptr %276, align 8, !tbaa !16
  %277 = load i64, ptr %93, align 8, !tbaa !9
  %278 = icmp sge i64 %277, 0
  br i1 %278, label %279, label %281

279:                                              ; preds = %266
  %280 = load i64, ptr %93, align 8, !tbaa !9
  br label %284

281:                                              ; preds = %266
  %282 = load i64, ptr %93, align 8, !tbaa !9
  %283 = sub nsw i64 0, %282
  br label %284

284:                                              ; preds = %281, %279
  %285 = phi i64 [ %280, %279 ], [ %283, %281 ]
  %286 = load i64, ptr %72, align 8, !tbaa !9
  %287 = sdiv i64 %286, 2
  %288 = sub nsw i64 %287, 1
  %289 = mul nsw i64 %285, %288
  %290 = add nsw i64 %289, 1
  store i64 %290, ptr %63, align 8, !tbaa !9
  %291 = load ptr, ptr %50, align 8, !tbaa !5
  %292 = load i64, ptr %63, align 8, !tbaa !9
  %293 = getelementptr inbounds %struct.doublecomplex, ptr %291, i64 %292
  %294 = getelementptr inbounds %struct.doublecomplex, ptr %293, i32 0, i32 0
  store double 0.000000e+00, ptr %294, align 8, !tbaa !14
  %295 = load ptr, ptr %50, align 8, !tbaa !5
  %296 = load i64, ptr %63, align 8, !tbaa !9
  %297 = getelementptr inbounds %struct.doublecomplex, ptr %295, i64 %296
  %298 = getelementptr inbounds %struct.doublecomplex, ptr %297, i32 0, i32 1
  store double 0.000000e+00, ptr %298, align 8, !tbaa !16
  br label %299

299:                                              ; preds = %284, %255
  %300 = load ptr, ptr %42, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  store i64 %301, ptr %63, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %302

302:                                              ; preds = %871, %299
  %303 = load i64, ptr %82, align 8, !tbaa !9
  %304 = load i64, ptr %63, align 8, !tbaa !9
  %305 = icmp sle i64 %303, %304
  br i1 %305, label %306, label %874

306:                                              ; preds = %302
  %307 = load ptr, ptr %43, align 8, !tbaa !5
  %308 = load i64, ptr %82, align 8, !tbaa !9
  %309 = getelementptr inbounds i64, ptr %307, i64 %308
  %310 = load i64, ptr %309, align 8, !tbaa !9
  store i64 %310, ptr %94, align 8, !tbaa !9
  %311 = load i64, ptr %94, align 8, !tbaa !9
  %312 = icmp sge i64 %311, 0
  br i1 %312, label %313, label %315

313:                                              ; preds = %306
  %314 = load i64, ptr %94, align 8, !tbaa !9
  br label %318

315:                                              ; preds = %306
  %316 = load i64, ptr %94, align 8, !tbaa !9
  %317 = sub nsw i64 0, %316
  br label %318

318:                                              ; preds = %315, %313
  %319 = phi i64 [ %314, %313 ], [ %317, %315 ]
  %320 = load i64, ptr %73, align 8, !tbaa !9
  %321 = mul nsw i64 %319, %320
  store i64 %321, ptr %85, align 8, !tbaa !9
  %322 = getelementptr inbounds %struct.doublecomplex, ptr %103, i32 0, i32 0
  store double 0.000000e+00, ptr %322, align 8, !tbaa !14
  %323 = getelementptr inbounds %struct.doublecomplex, ptr %103, i32 0, i32 1
  store double 0.000000e+00, ptr %323, align 8, !tbaa !16
  %324 = load i64, ptr %94, align 8, !tbaa !9
  %325 = icmp sge i64 %324, 0
  br i1 %325, label %326, label %328

326:                                              ; preds = %318
  %327 = load i64, ptr %94, align 8, !tbaa !9
  br label %331

328:                                              ; preds = %318
  %329 = load i64, ptr %94, align 8, !tbaa !9
  %330 = sub nsw i64 0, %329
  br label %331

331:                                              ; preds = %328, %326
  %332 = phi i64 [ %327, %326 ], [ %330, %328 ]
  store i64 %332, ptr %64, align 8, !tbaa !9
  %333 = load i64, ptr %73, align 8, !tbaa !9
  %334 = sub nsw i64 %333, 1
  store i64 %334, ptr %65, align 8, !tbaa !9
  %335 = load ptr, ptr %52, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.doublecomplex, ptr %335, i64 1
  %337 = load ptr, ptr %53, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.doublecomplex, ptr %337, i64 1
  %339 = call i32 @zmake_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %73, ptr noundef %336, ptr noundef @c__1, ptr noundef %338, ptr noundef %64, ptr noundef @c__0, ptr noundef %65, ptr noundef %99, ptr noundef %103, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %340 = load i64, ptr %73, align 8, !tbaa !9
  %341 = icmp sgt i64 %340, 1
  br i1 %341, label %342, label %375

342:                                              ; preds = %331
  %343 = load i64, ptr %73, align 8, !tbaa !9
  %344 = sdiv i64 %343, 2
  store i64 %344, ptr %64, align 8, !tbaa !9
  %345 = load ptr, ptr %52, align 8, !tbaa !5
  %346 = load i64, ptr %64, align 8, !tbaa !9
  %347 = getelementptr inbounds %struct.doublecomplex, ptr %345, i64 %346
  %348 = getelementptr inbounds %struct.doublecomplex, ptr %347, i32 0, i32 0
  store double 0.000000e+00, ptr %348, align 8, !tbaa !14
  %349 = load ptr, ptr %52, align 8, !tbaa !5
  %350 = load i64, ptr %64, align 8, !tbaa !9
  %351 = getelementptr inbounds %struct.doublecomplex, ptr %349, i64 %350
  %352 = getelementptr inbounds %struct.doublecomplex, ptr %351, i32 0, i32 1
  store double 0.000000e+00, ptr %352, align 8, !tbaa !16
  %353 = load i64, ptr %94, align 8, !tbaa !9
  %354 = icmp sge i64 %353, 0
  br i1 %354, label %355, label %357

355:                                              ; preds = %342
  %356 = load i64, ptr %94, align 8, !tbaa !9
  br label %360

357:                                              ; preds = %342
  %358 = load i64, ptr %94, align 8, !tbaa !9
  %359 = sub nsw i64 0, %358
  br label %360

360:                                              ; preds = %357, %355
  %361 = phi i64 [ %356, %355 ], [ %359, %357 ]
  %362 = load i64, ptr %73, align 8, !tbaa !9
  %363 = sdiv i64 %362, 2
  %364 = sub nsw i64 %363, 1
  %365 = mul nsw i64 %361, %364
  %366 = add nsw i64 %365, 1
  store i64 %366, ptr %64, align 8, !tbaa !9
  %367 = load ptr, ptr %53, align 8, !tbaa !5
  %368 = load i64, ptr %64, align 8, !tbaa !9
  %369 = getelementptr inbounds %struct.doublecomplex, ptr %367, i64 %368
  %370 = getelementptr inbounds %struct.doublecomplex, ptr %369, i32 0, i32 0
  store double 0.000000e+00, ptr %370, align 8, !tbaa !14
  %371 = load ptr, ptr %53, align 8, !tbaa !5
  %372 = load i64, ptr %64, align 8, !tbaa !9
  %373 = getelementptr inbounds %struct.doublecomplex, ptr %371, i64 %372
  %374 = getelementptr inbounds %struct.doublecomplex, ptr %373, i32 0, i32 1
  store double 0.000000e+00, ptr %374, align 8, !tbaa !16
  br label %375

375:                                              ; preds = %360, %331
  %376 = load ptr, ptr %40, align 8, !tbaa !5
  %377 = load i64, ptr %376, align 8, !tbaa !9
  store i64 %377, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %378

378:                                              ; preds = %867, %375
  %379 = load i64, ptr %75, align 8, !tbaa !9
  %380 = load i64, ptr %64, align 8, !tbaa !9
  %381 = icmp sle i64 %379, %380
  br i1 %381, label %382, label %870

382:                                              ; preds = %378
  %383 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %383, ptr %65, align 8, !tbaa !9
  %384 = load ptr, ptr %41, align 8, !tbaa !5
  %385 = load i64, ptr %65, align 8, !tbaa !9
  %386 = getelementptr inbounds %struct.doublecomplex, ptr %384, i64 %385
  %387 = getelementptr inbounds %struct.doublecomplex, ptr %386, i32 0, i32 0
  %388 = load double, ptr %387, align 8, !tbaa !14
  %389 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  store double %388, ptr %389, align 8, !tbaa !14
  %390 = load ptr, ptr %41, align 8, !tbaa !5
  %391 = load i64, ptr %65, align 8, !tbaa !9
  %392 = getelementptr inbounds %struct.doublecomplex, ptr %390, i64 %391
  %393 = getelementptr inbounds %struct.doublecomplex, ptr %392, i32 0, i32 1
  %394 = load double, ptr %393, align 8, !tbaa !16
  %395 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  store double %394, ptr %395, align 8, !tbaa !16
  %396 = getelementptr inbounds %struct.doublecomplex, ptr %103, i32 0, i32 0
  store double 0.000000e+00, ptr %396, align 8, !tbaa !14
  %397 = getelementptr inbounds %struct.doublecomplex, ptr %103, i32 0, i32 1
  store double 0.000000e+00, ptr %397, align 8, !tbaa !16
  %398 = load i64, ptr %72, align 8, !tbaa !9
  %399 = sub nsw i64 %398, 1
  store i64 %399, ptr %65, align 8, !tbaa !9
  %400 = load i64, ptr %73, align 8, !tbaa !9
  %401 = sub nsw i64 %400, 1
  store i64 %401, ptr %66, align 8, !tbaa !9
  %402 = load ptr, ptr %30, align 8, !tbaa !5
  %403 = getelementptr inbounds i8, ptr %402, i64 1
  %404 = load ptr, ptr %46, align 8, !tbaa !5
  %405 = load i64, ptr %60, align 8, !tbaa !9
  %406 = getelementptr inbounds %struct.doublecomplex, ptr %404, i64 %405
  %407 = load ptr, ptr %44, align 8, !tbaa !5
  %408 = load ptr, ptr %47, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.doublecomplex, ptr %408, i64 1
  %410 = call i32 @zmake_(ptr noundef %403, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef %72, ptr noundef %73, ptr noundef %406, ptr noundef %407, ptr noundef %409, ptr noundef %87, ptr noundef %65, ptr noundef %66, ptr noundef %99, ptr noundef %103, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %411 = load i64, ptr %76, align 8, !tbaa !9
  %412 = add nsw i64 %411, 1
  store i64 %412, ptr %76, align 8, !tbaa !9
  %413 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %413, ptr %80, align 8, !tbaa !9
  %414 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %414, ptr %83, align 8, !tbaa !9
  %415 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  %416 = load double, ptr %415, align 8, !tbaa !14
  %417 = getelementptr inbounds %struct.doublecomplex, ptr %88, i32 0, i32 0
  store double %416, ptr %417, align 8, !tbaa !14
  %418 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  %419 = load double, ptr %418, align 8, !tbaa !16
  %420 = getelementptr inbounds %struct.doublecomplex, ptr %88, i32 0, i32 1
  store double %419, ptr %420, align 8, !tbaa !16
  %421 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %421, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %422

422:                                              ; preds = %447, %382
  %423 = load i64, ptr %70, align 8, !tbaa !9
  %424 = load i64, ptr %65, align 8, !tbaa !9
  %425 = icmp sle i64 %423, %424
  br i1 %425, label %426, label %450

426:                                              ; preds = %422
  %427 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %427, ptr %66, align 8, !tbaa !9
  %428 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %428, ptr %67, align 8, !tbaa !9
  %429 = load ptr, ptr %47, align 8, !tbaa !5
  %430 = load i64, ptr %67, align 8, !tbaa !9
  %431 = getelementptr inbounds %struct.doublecomplex, ptr %429, i64 %430
  %432 = getelementptr inbounds %struct.doublecomplex, ptr %431, i32 0, i32 0
  %433 = load double, ptr %432, align 8, !tbaa !14
  %434 = load ptr, ptr %48, align 8, !tbaa !5
  %435 = load i64, ptr %66, align 8, !tbaa !9
  %436 = getelementptr inbounds %struct.doublecomplex, ptr %434, i64 %435
  %437 = getelementptr inbounds %struct.doublecomplex, ptr %436, i32 0, i32 0
  store double %433, ptr %437, align 8, !tbaa !14
  %438 = load ptr, ptr %47, align 8, !tbaa !5
  %439 = load i64, ptr %67, align 8, !tbaa !9
  %440 = getelementptr inbounds %struct.doublecomplex, ptr %438, i64 %439
  %441 = getelementptr inbounds %struct.doublecomplex, ptr %440, i32 0, i32 1
  %442 = load double, ptr %441, align 8, !tbaa !16
  %443 = load ptr, ptr %48, align 8, !tbaa !5
  %444 = load i64, ptr %66, align 8, !tbaa !9
  %445 = getelementptr inbounds %struct.doublecomplex, ptr %443, i64 %444
  %446 = getelementptr inbounds %struct.doublecomplex, ptr %445, i32 0, i32 1
  store double %442, ptr %446, align 8, !tbaa !16
  br label %447

447:                                              ; preds = %426
  %448 = load i64, ptr %70, align 8, !tbaa !9
  %449 = add nsw i64 %448, 1
  store i64 %449, ptr %70, align 8, !tbaa !9
  br label %422, !llvm.loop !17

450:                                              ; preds = %422
  %451 = load i64, ptr %87, align 8, !tbaa !9
  store i64 %451, ptr %90, align 8, !tbaa !9
  %452 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %452, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %453

453:                                              ; preds = %478, %450
  %454 = load i64, ptr %70, align 8, !tbaa !9
  %455 = load i64, ptr %65, align 8, !tbaa !9
  %456 = icmp sle i64 %454, %455
  br i1 %456, label %457, label %481

457:                                              ; preds = %453
  %458 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %458, ptr %66, align 8, !tbaa !9
  %459 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %459, ptr %67, align 8, !tbaa !9
  %460 = load ptr, ptr %50, align 8, !tbaa !5
  %461 = load i64, ptr %67, align 8, !tbaa !9
  %462 = getelementptr inbounds %struct.doublecomplex, ptr %460, i64 %461
  %463 = getelementptr inbounds %struct.doublecomplex, ptr %462, i32 0, i32 0
  %464 = load double, ptr %463, align 8, !tbaa !14
  %465 = load ptr, ptr %51, align 8, !tbaa !5
  %466 = load i64, ptr %66, align 8, !tbaa !9
  %467 = getelementptr inbounds %struct.doublecomplex, ptr %465, i64 %466
  %468 = getelementptr inbounds %struct.doublecomplex, ptr %467, i32 0, i32 0
  store double %464, ptr %468, align 8, !tbaa !14
  %469 = load ptr, ptr %50, align 8, !tbaa !5
  %470 = load i64, ptr %67, align 8, !tbaa !9
  %471 = getelementptr inbounds %struct.doublecomplex, ptr %469, i64 %470
  %472 = getelementptr inbounds %struct.doublecomplex, ptr %471, i32 0, i32 1
  %473 = load double, ptr %472, align 8, !tbaa !16
  %474 = load ptr, ptr %51, align 8, !tbaa !5
  %475 = load i64, ptr %66, align 8, !tbaa !9
  %476 = getelementptr inbounds %struct.doublecomplex, ptr %474, i64 %475
  %477 = getelementptr inbounds %struct.doublecomplex, ptr %476, i32 0, i32 1
  store double %473, ptr %477, align 8, !tbaa !16
  br label %478

478:                                              ; preds = %457
  %479 = load i64, ptr %70, align 8, !tbaa !9
  %480 = add nsw i64 %479, 1
  store i64 %480, ptr %70, align 8, !tbaa !9
  br label %453, !llvm.loop !19

481:                                              ; preds = %453
  %482 = load i64, ptr %93, align 8, !tbaa !9
  store i64 %482, ptr %100, align 8, !tbaa !9
  %483 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %483, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %484

484:                                              ; preds = %509, %481
  %485 = load i64, ptr %70, align 8, !tbaa !9
  %486 = load i64, ptr %65, align 8, !tbaa !9
  %487 = icmp sle i64 %485, %486
  br i1 %487, label %488, label %512

488:                                              ; preds = %484
  %489 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %489, ptr %66, align 8, !tbaa !9
  %490 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %490, ptr %67, align 8, !tbaa !9
  %491 = load ptr, ptr %53, align 8, !tbaa !5
  %492 = load i64, ptr %67, align 8, !tbaa !9
  %493 = getelementptr inbounds %struct.doublecomplex, ptr %491, i64 %492
  %494 = getelementptr inbounds %struct.doublecomplex, ptr %493, i32 0, i32 0
  %495 = load double, ptr %494, align 8, !tbaa !14
  %496 = load ptr, ptr %54, align 8, !tbaa !5
  %497 = load i64, ptr %66, align 8, !tbaa !9
  %498 = getelementptr inbounds %struct.doublecomplex, ptr %496, i64 %497
  %499 = getelementptr inbounds %struct.doublecomplex, ptr %498, i32 0, i32 0
  store double %495, ptr %499, align 8, !tbaa !14
  %500 = load ptr, ptr %53, align 8, !tbaa !5
  %501 = load i64, ptr %67, align 8, !tbaa !9
  %502 = getelementptr inbounds %struct.doublecomplex, ptr %500, i64 %501
  %503 = getelementptr inbounds %struct.doublecomplex, ptr %502, i32 0, i32 1
  %504 = load double, ptr %503, align 8, !tbaa !16
  %505 = load ptr, ptr %54, align 8, !tbaa !5
  %506 = load i64, ptr %66, align 8, !tbaa !9
  %507 = getelementptr inbounds %struct.doublecomplex, ptr %505, i64 %506
  %508 = getelementptr inbounds %struct.doublecomplex, ptr %507, i32 0, i32 1
  store double %504, ptr %508, align 8, !tbaa !16
  br label %509

509:                                              ; preds = %488
  %510 = load i64, ptr %70, align 8, !tbaa !9
  %511 = add nsw i64 %510, 1
  store i64 %511, ptr %70, align 8, !tbaa !9
  br label %484, !llvm.loop !20

512:                                              ; preds = %484
  %513 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %513, ptr %101, align 8, !tbaa !9
  %514 = load ptr, ptr %35, align 8, !tbaa !5
  %515 = load i64, ptr %514, align 8, !tbaa !9
  %516 = icmp ne i64 %515, 0
  br i1 %516, label %517, label %531

517:                                              ; preds = %512
  %518 = load ptr, ptr %34, align 8, !tbaa !5
  %519 = load i64, ptr %518, align 8, !tbaa !9
  store i64 %519, ptr getelementptr inbounds (%struct.cilist, ptr @zchk4_.io___285, i32 0, i32 1), align 8, !tbaa !21
  %520 = call i64 @s_wsfe(ptr noundef @zchk4_.io___285)
  %521 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %522 = load ptr, ptr %30, align 8, !tbaa !5
  %523 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %522, i64 noundef 6)
  %524 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %72, i64 noundef 8)
  %525 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %73, i64 noundef 8)
  %526 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %96, i64 noundef 8)
  %527 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %93, i64 noundef 8)
  %528 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %529 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %87, i64 noundef 8)
  %530 = call i64 @e_wsfe()
  br label %531

531:                                              ; preds = %517, %512
  %532 = load i64, ptr %92, align 8, !tbaa !9
  %533 = icmp ne i64 %532, 0
  br i1 %533, label %534, label %552

534:                                              ; preds = %531
  %535 = load ptr, ptr %36, align 8, !tbaa !5
  %536 = load i64, ptr %535, align 8, !tbaa !9
  %537 = icmp ne i64 %536, 0
  br i1 %537, label %538, label %544

538:                                              ; preds = %534
  %539 = getelementptr inbounds %struct.alist, ptr %69, i32 0, i32 0
  store i64 0, ptr %539, align 8, !tbaa !23
  %540 = load ptr, ptr %34, align 8, !tbaa !5
  %541 = load i64, ptr %540, align 8, !tbaa !9
  %542 = getelementptr inbounds %struct.alist, ptr %69, i32 0, i32 1
  store i64 %541, ptr %542, align 8, !tbaa !25
  %543 = call i64 @f_rew(ptr noundef %69)
  br label %544

544:                                              ; preds = %538, %534
  %545 = load ptr, ptr %50, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.doublecomplex, ptr %545, i64 1
  %547 = load ptr, ptr %53, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.doublecomplex, ptr %547, i64 1
  %549 = load ptr, ptr %47, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.doublecomplex, ptr %549, i64 1
  %551 = call i32 @f2c_zgerc(ptr noundef %72, ptr noundef %73, ptr noundef %96, ptr noundef %546, ptr noundef %93, ptr noundef %548, ptr noundef %94, ptr noundef %550, ptr noundef %87)
  br label %570

552:                                              ; preds = %531
  %553 = load ptr, ptr %36, align 8, !tbaa !5
  %554 = load i64, ptr %553, align 8, !tbaa !9
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %556, label %562

556:                                              ; preds = %552
  %557 = getelementptr inbounds %struct.alist, ptr %69, i32 0, i32 0
  store i64 0, ptr %557, align 8, !tbaa !23
  %558 = load ptr, ptr %34, align 8, !tbaa !5
  %559 = load i64, ptr %558, align 8, !tbaa !9
  %560 = getelementptr inbounds %struct.alist, ptr %69, i32 0, i32 1
  store i64 %559, ptr %560, align 8, !tbaa !25
  %561 = call i64 @f_rew(ptr noundef %69)
  br label %562

562:                                              ; preds = %556, %552
  %563 = load ptr, ptr %50, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.doublecomplex, ptr %563, i64 1
  %565 = load ptr, ptr %53, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.doublecomplex, ptr %565, i64 1
  %567 = load ptr, ptr %47, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.doublecomplex, ptr %567, i64 1
  %569 = call i32 @f2c_zgeru(ptr noundef %72, ptr noundef %73, ptr noundef %96, ptr noundef %564, ptr noundef %93, ptr noundef %566, ptr noundef %94, ptr noundef %568, ptr noundef %87)
  br label %570

570:                                              ; preds = %562, %544
  %571 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !11
  %572 = icmp ne i64 %571, 0
  br i1 %572, label %579, label %573

573:                                              ; preds = %570
  %574 = load ptr, ptr %33, align 8, !tbaa !5
  %575 = load i64, ptr %574, align 8, !tbaa !9
  store i64 %575, ptr getelementptr inbounds (%struct.cilist, ptr @zchk4_.io___286, i32 0, i32 1), align 8, !tbaa !21
  %576 = call i64 @s_wsfe(ptr noundef @zchk4_.io___286)
  %577 = call i64 @e_wsfe()
  %578 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 1, ptr %578, align 8, !tbaa !9
  br label %916

579:                                              ; preds = %570
  %580 = load i64, ptr %80, align 8, !tbaa !9
  %581 = load i64, ptr %72, align 8, !tbaa !9
  %582 = icmp eq i64 %580, %581
  %583 = zext i1 %582 to i32
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 0
  store i64 %584, ptr %585, align 16, !tbaa !9
  %586 = load i64, ptr %83, align 8, !tbaa !9
  %587 = load i64, ptr %73, align 8, !tbaa !9
  %588 = icmp eq i64 %586, %587
  %589 = zext i1 %588 to i32
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 1
  store i64 %590, ptr %591, align 8, !tbaa !9
  %592 = getelementptr inbounds %struct.doublecomplex, ptr %88, i32 0, i32 0
  %593 = load double, ptr %592, align 8, !tbaa !14
  %594 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  %595 = load double, ptr %594, align 8, !tbaa !14
  %596 = fcmp oeq double %593, %595
  br i1 %596, label %597, label %603

597:                                              ; preds = %579
  %598 = getelementptr inbounds %struct.doublecomplex, ptr %88, i32 0, i32 1
  %599 = load double, ptr %598, align 8, !tbaa !16
  %600 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  %601 = load double, ptr %600, align 8, !tbaa !16
  %602 = fcmp oeq double %599, %601
  br label %603

603:                                              ; preds = %597, %579
  %604 = phi i1 [ false, %579 ], [ %602, %597 ]
  %605 = zext i1 %604 to i32
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 2
  store i64 %606, ptr %607, align 16, !tbaa !9
  %608 = load ptr, ptr %51, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.doublecomplex, ptr %608, i64 1
  %610 = load ptr, ptr %50, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.doublecomplex, ptr %610, i64 1
  %612 = call i64 @lze_(ptr noundef %609, ptr noundef %611, ptr noundef %84)
  %613 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 3
  store i64 %612, ptr %613, align 8, !tbaa !9
  %614 = load i64, ptr %100, align 8, !tbaa !9
  %615 = load i64, ptr %93, align 8, !tbaa !9
  %616 = icmp eq i64 %614, %615
  %617 = zext i1 %616 to i32
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 4
  store i64 %618, ptr %619, align 16, !tbaa !9
  %620 = load ptr, ptr %54, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.doublecomplex, ptr %620, i64 1
  %622 = load ptr, ptr %53, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.doublecomplex, ptr %622, i64 1
  %624 = call i64 @lze_(ptr noundef %621, ptr noundef %623, ptr noundef %85)
  %625 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 5
  store i64 %624, ptr %625, align 8, !tbaa !9
  %626 = load i64, ptr %101, align 8, !tbaa !9
  %627 = load i64, ptr %94, align 8, !tbaa !9
  %628 = icmp eq i64 %626, %627
  %629 = zext i1 %628 to i32
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 6
  store i64 %630, ptr %631, align 16, !tbaa !9
  %632 = load i64, ptr %95, align 8, !tbaa !9
  %633 = icmp ne i64 %632, 0
  br i1 %633, label %634, label %641

634:                                              ; preds = %603
  %635 = load ptr, ptr %48, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.doublecomplex, ptr %635, i64 1
  %637 = load ptr, ptr %47, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.doublecomplex, ptr %637, i64 1
  %639 = call i64 @lze_(ptr noundef %636, ptr noundef %638, ptr noundef %86)
  %640 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 7
  store i64 %639, ptr %640, align 8, !tbaa !9
  br label %648

641:                                              ; preds = %603
  %642 = load ptr, ptr %48, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.doublecomplex, ptr %642, i64 1
  %644 = load ptr, ptr %47, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.doublecomplex, ptr %644, i64 1
  %646 = call i64 @lzeres_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef %72, ptr noundef %73, ptr noundef %643, ptr noundef %645, ptr noundef %87, i64 noundef 2, i64 noundef 1)
  %647 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 7
  store i64 %646, ptr %647, align 8, !tbaa !9
  br label %648

648:                                              ; preds = %641, %634
  %649 = load i64, ptr %90, align 8, !tbaa !9
  %650 = load i64, ptr %87, align 8, !tbaa !9
  %651 = icmp eq i64 %649, %650
  %652 = zext i1 %651 to i32
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 8
  store i64 %653, ptr %654, align 16, !tbaa !9
  store i64 1, ptr %91, align 8, !tbaa !9
  %655 = load i64, ptr %98, align 8, !tbaa !9
  store i64 %655, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %656

656:                                              ; preds = %685, %648
  %657 = load i64, ptr %70, align 8, !tbaa !9
  %658 = load i64, ptr %65, align 8, !tbaa !9
  %659 = icmp sle i64 %657, %658
  br i1 %659, label %660, label %688

660:                                              ; preds = %656
  %661 = load i64, ptr %91, align 8, !tbaa !9
  %662 = icmp ne i64 %661, 0
  br i1 %662, label %663, label %669

663:                                              ; preds = %660
  %664 = load i64, ptr %70, align 8, !tbaa !9
  %665 = sub nsw i64 %664, 1
  %666 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 %665
  %667 = load i64, ptr %666, align 8, !tbaa !9
  %668 = icmp ne i64 %667, 0
  br label %669

669:                                              ; preds = %663, %660
  %670 = phi i1 [ false, %660 ], [ %668, %663 ]
  %671 = zext i1 %670 to i32
  %672 = sext i32 %671 to i64
  store i64 %672, ptr %91, align 8, !tbaa !9
  %673 = load i64, ptr %70, align 8, !tbaa !9
  %674 = sub nsw i64 %673, 1
  %675 = getelementptr inbounds [13 x i64], ptr %97, i64 0, i64 %674
  %676 = load i64, ptr %675, align 8, !tbaa !9
  %677 = icmp ne i64 %676, 0
  br i1 %677, label %684, label %678

678:                                              ; preds = %669
  %679 = load ptr, ptr %33, align 8, !tbaa !5
  %680 = load i64, ptr %679, align 8, !tbaa !9
  store i64 %680, ptr getelementptr inbounds (%struct.cilist, ptr @zchk4_.io___289, i32 0, i32 1), align 8, !tbaa !21
  %681 = call i64 @s_wsfe(ptr noundef @zchk4_.io___289)
  %682 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %683 = call i64 @e_wsfe()
  br label %684

684:                                              ; preds = %678, %669
  br label %685

685:                                              ; preds = %684
  %686 = load i64, ptr %70, align 8, !tbaa !9
  %687 = add nsw i64 %686, 1
  store i64 %687, ptr %70, align 8, !tbaa !9
  br label %656, !llvm.loop !26

688:                                              ; preds = %656
  %689 = load i64, ptr %91, align 8, !tbaa !9
  %690 = icmp ne i64 %689, 0
  br i1 %690, label %693, label %691

691:                                              ; preds = %688
  %692 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 1, ptr %692, align 8, !tbaa !9
  br label %916

693:                                              ; preds = %688
  %694 = load i64, ptr %95, align 8, !tbaa !9
  %695 = icmp ne i64 %694, 0
  br i1 %695, label %865, label %696

696:                                              ; preds = %693
  %697 = load i64, ptr %93, align 8, !tbaa !9
  %698 = icmp sgt i64 %697, 0
  br i1 %698, label %699, label %730

699:                                              ; preds = %696
  %700 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %700, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %701

701:                                              ; preds = %726, %699
  %702 = load i64, ptr %70, align 8, !tbaa !9
  %703 = load i64, ptr %65, align 8, !tbaa !9
  %704 = icmp sle i64 %702, %703
  br i1 %704, label %705, label %729

705:                                              ; preds = %701
  %706 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %706, ptr %66, align 8, !tbaa !9
  %707 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %707, ptr %67, align 8, !tbaa !9
  %708 = load ptr, ptr %49, align 8, !tbaa !5
  %709 = load i64, ptr %67, align 8, !tbaa !9
  %710 = getelementptr inbounds %struct.doublecomplex, ptr %708, i64 %709
  %711 = getelementptr inbounds %struct.doublecomplex, ptr %710, i32 0, i32 0
  %712 = load double, ptr %711, align 8, !tbaa !14
  %713 = load ptr, ptr %57, align 8, !tbaa !5
  %714 = load i64, ptr %66, align 8, !tbaa !9
  %715 = getelementptr inbounds %struct.doublecomplex, ptr %713, i64 %714
  %716 = getelementptr inbounds %struct.doublecomplex, ptr %715, i32 0, i32 0
  store double %712, ptr %716, align 8, !tbaa !14
  %717 = load ptr, ptr %49, align 8, !tbaa !5
  %718 = load i64, ptr %67, align 8, !tbaa !9
  %719 = getelementptr inbounds %struct.doublecomplex, ptr %717, i64 %718
  %720 = getelementptr inbounds %struct.doublecomplex, ptr %719, i32 0, i32 1
  %721 = load double, ptr %720, align 8, !tbaa !16
  %722 = load ptr, ptr %57, align 8, !tbaa !5
  %723 = load i64, ptr %66, align 8, !tbaa !9
  %724 = getelementptr inbounds %struct.doublecomplex, ptr %722, i64 %723
  %725 = getelementptr inbounds %struct.doublecomplex, ptr %724, i32 0, i32 1
  store double %721, ptr %725, align 8, !tbaa !16
  br label %726

726:                                              ; preds = %705
  %727 = load i64, ptr %70, align 8, !tbaa !9
  %728 = add nsw i64 %727, 1
  store i64 %728, ptr %70, align 8, !tbaa !9
  br label %701, !llvm.loop !27

729:                                              ; preds = %701
  br label %764

730:                                              ; preds = %696
  %731 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %731, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %732

732:                                              ; preds = %760, %730
  %733 = load i64, ptr %70, align 8, !tbaa !9
  %734 = load i64, ptr %65, align 8, !tbaa !9
  %735 = icmp sle i64 %733, %734
  br i1 %735, label %736, label %763

736:                                              ; preds = %732
  %737 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %737, ptr %66, align 8, !tbaa !9
  %738 = load i64, ptr %72, align 8, !tbaa !9
  %739 = load i64, ptr %70, align 8, !tbaa !9
  %740 = sub nsw i64 %738, %739
  %741 = add nsw i64 %740, 1
  store i64 %741, ptr %67, align 8, !tbaa !9
  %742 = load ptr, ptr %49, align 8, !tbaa !5
  %743 = load i64, ptr %67, align 8, !tbaa !9
  %744 = getelementptr inbounds %struct.doublecomplex, ptr %742, i64 %743
  %745 = getelementptr inbounds %struct.doublecomplex, ptr %744, i32 0, i32 0
  %746 = load double, ptr %745, align 8, !tbaa !14
  %747 = load ptr, ptr %57, align 8, !tbaa !5
  %748 = load i64, ptr %66, align 8, !tbaa !9
  %749 = getelementptr inbounds %struct.doublecomplex, ptr %747, i64 %748
  %750 = getelementptr inbounds %struct.doublecomplex, ptr %749, i32 0, i32 0
  store double %746, ptr %750, align 8, !tbaa !14
  %751 = load ptr, ptr %49, align 8, !tbaa !5
  %752 = load i64, ptr %67, align 8, !tbaa !9
  %753 = getelementptr inbounds %struct.doublecomplex, ptr %751, i64 %752
  %754 = getelementptr inbounds %struct.doublecomplex, ptr %753, i32 0, i32 1
  %755 = load double, ptr %754, align 8, !tbaa !16
  %756 = load ptr, ptr %57, align 8, !tbaa !5
  %757 = load i64, ptr %66, align 8, !tbaa !9
  %758 = getelementptr inbounds %struct.doublecomplex, ptr %756, i64 %757
  %759 = getelementptr inbounds %struct.doublecomplex, ptr %758, i32 0, i32 1
  store double %755, ptr %759, align 8, !tbaa !16
  br label %760

760:                                              ; preds = %736
  %761 = load i64, ptr %70, align 8, !tbaa !9
  %762 = add nsw i64 %761, 1
  store i64 %762, ptr %70, align 8, !tbaa !9
  br label %732, !llvm.loop !28

763:                                              ; preds = %732
  br label %764

764:                                              ; preds = %763, %729
  %765 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %765, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %766

766:                                              ; preds = %861, %764
  %767 = load i64, ptr %71, align 8, !tbaa !9
  %768 = load i64, ptr %65, align 8, !tbaa !9
  %769 = icmp sle i64 %767, %768
  br i1 %769, label %770, label %864

770:                                              ; preds = %766
  %771 = load i64, ptr %94, align 8, !tbaa !9
  %772 = icmp sgt i64 %771, 0
  br i1 %772, label %773, label %789

773:                                              ; preds = %770
  %774 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %774, ptr %66, align 8, !tbaa !9
  %775 = load ptr, ptr %52, align 8, !tbaa !5
  %776 = load i64, ptr %66, align 8, !tbaa !9
  %777 = getelementptr inbounds %struct.doublecomplex, ptr %775, i64 %776
  %778 = getelementptr inbounds %struct.doublecomplex, ptr %777, i32 0, i32 0
  %779 = load double, ptr %778, align 8, !tbaa !14
  %780 = getelementptr inbounds [1 x %struct.doublecomplex], ptr %74, i64 0, i64 0
  %781 = getelementptr inbounds %struct.doublecomplex, ptr %780, i32 0, i32 0
  store double %779, ptr %781, align 16, !tbaa !14
  %782 = load ptr, ptr %52, align 8, !tbaa !5
  %783 = load i64, ptr %66, align 8, !tbaa !9
  %784 = getelementptr inbounds %struct.doublecomplex, ptr %782, i64 %783
  %785 = getelementptr inbounds %struct.doublecomplex, ptr %784, i32 0, i32 1
  %786 = load double, ptr %785, align 8, !tbaa !16
  %787 = getelementptr inbounds [1 x %struct.doublecomplex], ptr %74, i64 0, i64 0
  %788 = getelementptr inbounds %struct.doublecomplex, ptr %787, i32 0, i32 1
  store double %786, ptr %788, align 8, !tbaa !16
  br label %808

789:                                              ; preds = %770
  %790 = load i64, ptr %73, align 8, !tbaa !9
  %791 = load i64, ptr %71, align 8, !tbaa !9
  %792 = sub nsw i64 %790, %791
  %793 = add nsw i64 %792, 1
  store i64 %793, ptr %66, align 8, !tbaa !9
  %794 = load ptr, ptr %52, align 8, !tbaa !5
  %795 = load i64, ptr %66, align 8, !tbaa !9
  %796 = getelementptr inbounds %struct.doublecomplex, ptr %794, i64 %795
  %797 = getelementptr inbounds %struct.doublecomplex, ptr %796, i32 0, i32 0
  %798 = load double, ptr %797, align 8, !tbaa !14
  %799 = getelementptr inbounds [1 x %struct.doublecomplex], ptr %74, i64 0, i64 0
  %800 = getelementptr inbounds %struct.doublecomplex, ptr %799, i32 0, i32 0
  store double %798, ptr %800, align 16, !tbaa !14
  %801 = load ptr, ptr %52, align 8, !tbaa !5
  %802 = load i64, ptr %66, align 8, !tbaa !9
  %803 = getelementptr inbounds %struct.doublecomplex, ptr %801, i64 %802
  %804 = getelementptr inbounds %struct.doublecomplex, ptr %803, i32 0, i32 1
  %805 = load double, ptr %804, align 8, !tbaa !16
  %806 = getelementptr inbounds [1 x %struct.doublecomplex], ptr %74, i64 0, i64 0
  %807 = getelementptr inbounds %struct.doublecomplex, ptr %806, i32 0, i32 1
  store double %805, ptr %807, align 8, !tbaa !16
  br label %808

808:                                              ; preds = %789, %773
  %809 = load i64, ptr %92, align 8, !tbaa !9
  %810 = icmp ne i64 %809, 0
  br i1 %810, label %811, label %821

811:                                              ; preds = %808
  %812 = getelementptr inbounds [1 x %struct.doublecomplex], ptr %74, i64 0, i64 0
  call void @d_cnjg(ptr noundef %68, ptr noundef %812)
  %813 = getelementptr inbounds %struct.doublecomplex, ptr %68, i32 0, i32 0
  %814 = load double, ptr %813, align 8, !tbaa !14
  %815 = getelementptr inbounds [1 x %struct.doublecomplex], ptr %74, i64 0, i64 0
  %816 = getelementptr inbounds %struct.doublecomplex, ptr %815, i32 0, i32 0
  store double %814, ptr %816, align 16, !tbaa !14
  %817 = getelementptr inbounds %struct.doublecomplex, ptr %68, i32 0, i32 1
  %818 = load double, ptr %817, align 8, !tbaa !16
  %819 = getelementptr inbounds [1 x %struct.doublecomplex], ptr %74, i64 0, i64 0
  %820 = getelementptr inbounds %struct.doublecomplex, ptr %819, i32 0, i32 1
  store double %818, ptr %820, align 8, !tbaa !16
  br label %821

821:                                              ; preds = %811, %808
  %822 = load ptr, ptr %57, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.doublecomplex, ptr %822, i64 1
  %824 = load ptr, ptr %44, align 8, !tbaa !5
  %825 = getelementptr inbounds [1 x %struct.doublecomplex], ptr %74, i64 0, i64 0
  %826 = load ptr, ptr %46, align 8, !tbaa !5
  %827 = load i64, ptr %71, align 8, !tbaa !9
  %828 = load i64, ptr %59, align 8, !tbaa !9
  %829 = mul nsw i64 %827, %828
  %830 = add nsw i64 %829, 1
  %831 = getelementptr inbounds %struct.doublecomplex, ptr %826, i64 %830
  %832 = load ptr, ptr %55, align 8, !tbaa !5
  %833 = getelementptr inbounds %struct.doublecomplex, ptr %832, i64 1
  %834 = load ptr, ptr %56, align 8, !tbaa !5
  %835 = getelementptr inbounds double, ptr %834, i64 1
  %836 = load ptr, ptr %47, align 8, !tbaa !5
  %837 = load i64, ptr %71, align 8, !tbaa !9
  %838 = sub nsw i64 %837, 1
  %839 = load i64, ptr %87, align 8, !tbaa !9
  %840 = mul nsw i64 %838, %839
  %841 = add nsw i64 %840, 1
  %842 = getelementptr inbounds %struct.doublecomplex, ptr %836, i64 %841
  %843 = load ptr, ptr %31, align 8, !tbaa !5
  %844 = load ptr, ptr %37, align 8, !tbaa !5
  %845 = load ptr, ptr %33, align 8, !tbaa !5
  %846 = call i32 @zmvch_(ptr noundef @.str.1, ptr noundef %72, ptr noundef @c__1, ptr noundef %96, ptr noundef %823, ptr noundef %824, ptr noundef %825, ptr noundef @c__1, ptr noundef @c_b2, ptr noundef %831, ptr noundef @c__1, ptr noundef %833, ptr noundef %835, ptr noundef %842, ptr noundef %843, ptr noundef %89, ptr noundef %844, ptr noundef %845, ptr noundef @c_true, i64 noundef 1)
  %847 = load double, ptr %102, align 8, !tbaa !12
  %848 = load double, ptr %89, align 8, !tbaa !12
  %849 = fcmp oge double %847, %848
  br i1 %849, label %850, label %852

850:                                              ; preds = %821
  %851 = load double, ptr %102, align 8, !tbaa !12
  br label %854

852:                                              ; preds = %821
  %853 = load double, ptr %89, align 8, !tbaa !12
  br label %854

854:                                              ; preds = %852, %850
  %855 = phi double [ %851, %850 ], [ %853, %852 ]
  store double %855, ptr %102, align 8, !tbaa !12
  %856 = load ptr, ptr %37, align 8, !tbaa !5
  %857 = load i64, ptr %856, align 8, !tbaa !9
  %858 = icmp ne i64 %857, 0
  br i1 %858, label %859, label %860

859:                                              ; preds = %854
  br label %910

860:                                              ; preds = %854
  br label %861

861:                                              ; preds = %860
  %862 = load i64, ptr %71, align 8, !tbaa !9
  %863 = add nsw i64 %862, 1
  store i64 %863, ptr %71, align 8, !tbaa !9
  br label %766, !llvm.loop !29

864:                                              ; preds = %766
  br label %866

865:                                              ; preds = %693
  br label %879

866:                                              ; preds = %864
  br label %867

867:                                              ; preds = %866
  %868 = load i64, ptr %75, align 8, !tbaa !9
  %869 = add nsw i64 %868, 1
  store i64 %869, ptr %75, align 8, !tbaa !9
  br label %378, !llvm.loop !30

870:                                              ; preds = %378
  br label %871

871:                                              ; preds = %870
  %872 = load i64, ptr %82, align 8, !tbaa !9
  %873 = add nsw i64 %872, 1
  store i64 %873, ptr %82, align 8, !tbaa !9
  br label %302, !llvm.loop !31

874:                                              ; preds = %302
  br label %875

875:                                              ; preds = %874
  %876 = load i64, ptr %81, align 8, !tbaa !9
  %877 = add nsw i64 %876, 1
  store i64 %877, ptr %81, align 8, !tbaa !9
  br label %226, !llvm.loop !32

878:                                              ; preds = %226
  br label %879

879:                                              ; preds = %878, %865, %210
  br label %880

880:                                              ; preds = %879
  %881 = load i64, ptr %78, align 8, !tbaa !9
  %882 = add nsw i64 %881, 1
  store i64 %882, ptr %78, align 8, !tbaa !9
  br label %161, !llvm.loop !33

883:                                              ; preds = %161
  br label %884

884:                                              ; preds = %883
  %885 = load i64, ptr %79, align 8, !tbaa !9
  %886 = add nsw i64 %885, 1
  store i64 %886, ptr %79, align 8, !tbaa !9
  br label %149, !llvm.loop !34

887:                                              ; preds = %149
  %888 = load double, ptr %102, align 8, !tbaa !12
  %889 = load ptr, ptr %32, align 8, !tbaa !5
  %890 = load double, ptr %889, align 8, !tbaa !12
  %891 = fcmp olt double %888, %890
  br i1 %891, label %892, label %900

892:                                              ; preds = %887
  %893 = load ptr, ptr %33, align 8, !tbaa !5
  %894 = load i64, ptr %893, align 8, !tbaa !9
  store i64 %894, ptr getelementptr inbounds (%struct.cilist, ptr @zchk4_.io___293, i32 0, i32 1), align 8, !tbaa !21
  %895 = call i64 @s_wsfe(ptr noundef @zchk4_.io___293)
  %896 = load ptr, ptr %30, align 8, !tbaa !5
  %897 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %896, i64 noundef 6)
  %898 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %899 = call i64 @e_wsfe()
  br label %909

900:                                              ; preds = %887
  %901 = load ptr, ptr %33, align 8, !tbaa !5
  %902 = load i64, ptr %901, align 8, !tbaa !9
  store i64 %902, ptr getelementptr inbounds (%struct.cilist, ptr @zchk4_.io___294, i32 0, i32 1), align 8, !tbaa !21
  %903 = call i64 @s_wsfe(ptr noundef @zchk4_.io___294)
  %904 = load ptr, ptr %30, align 8, !tbaa !5
  %905 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %904, i64 noundef 6)
  %906 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %907 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %908 = call i64 @e_wsfe()
  br label %909

909:                                              ; preds = %900, %892
  br label %936

910:                                              ; preds = %859
  %911 = load ptr, ptr %33, align 8, !tbaa !5
  %912 = load i64, ptr %911, align 8, !tbaa !9
  store i64 %912, ptr getelementptr inbounds (%struct.cilist, ptr @zchk4_.io___295, i32 0, i32 1), align 8, !tbaa !21
  %913 = call i64 @s_wsfe(ptr noundef @zchk4_.io___295)
  %914 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %915 = call i64 @e_wsfe()
  br label %916

916:                                              ; preds = %910, %691, %573
  %917 = load ptr, ptr %33, align 8, !tbaa !5
  %918 = load i64, ptr %917, align 8, !tbaa !9
  store i64 %918, ptr getelementptr inbounds (%struct.cilist, ptr @zchk4_.io___296, i32 0, i32 1), align 8, !tbaa !21
  %919 = call i64 @s_wsfe(ptr noundef @zchk4_.io___296)
  %920 = load ptr, ptr %30, align 8, !tbaa !5
  %921 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %920, i64 noundef 6)
  %922 = call i64 @e_wsfe()
  %923 = load ptr, ptr %33, align 8, !tbaa !5
  %924 = load i64, ptr %923, align 8, !tbaa !9
  store i64 %924, ptr getelementptr inbounds (%struct.cilist, ptr @zchk4_.io___297, i32 0, i32 1), align 8, !tbaa !21
  %925 = call i64 @s_wsfe(ptr noundef @zchk4_.io___297)
  %926 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %927 = load ptr, ptr %30, align 8, !tbaa !5
  %928 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %927, i64 noundef 6)
  %929 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %72, i64 noundef 8)
  %930 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %73, i64 noundef 8)
  %931 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %96, i64 noundef 8)
  %932 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %93, i64 noundef 8)
  %933 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %934 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %87, i64 noundef 8)
  %935 = call i64 @e_wsfe()
  br label %936

936:                                              ; preds = %916, %909
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  ret i32 0
}

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

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

declare i64 @f_rew(ptr noundef) #1

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

declare i32 @f2c_zgerc(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare i32 @f2c_zgeru(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @d_cnjg(ptr noundef, ptr noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 }

!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 = !{!"long", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = !{!15, !13, i64 0}
!15 = !{!"", !13, i64 0, !13, i64 8}
!16 = !{!15, !13, i64 8}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = !{!22, !10, i64 8}
!22 = !{!"", !10, i64 0, !10, i64 8, !10, i64 16, !6, i64 24, !10, i64 32}
!23 = !{!24, !10, i64 0}
!24 = !{!"", !10, i64 0, !10, i64 8}
!25 = !{!24, !10, i64 8}
!26 = distinct !{!26, !18}
!27 = distinct !{!27, !18}
!28 = distinct !{!28, !18}
!29 = distinct !{!29, !18}
!30 = distinct !{!30, !18}
!31 = distinct !{!31, !18}
!32 = distinct !{!32, !18}
!33 = distinct !{!33, !18}
!34 = distinct !{!34, !18}


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

%union.anon = type { %struct.anon }
%struct.anon = type { i64, i64, i64, i64 }
%struct.doublecomplex = type { double, double }
%struct.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local local_unnamed_addr global %union.anon, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i64, align 8
@c_b2 = external hidden global %struct.doublecomplex, align 8
@c_true = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@c__0 = external hidden global i64, align 8
@zchk4_.io___285 = external hidden global %struct.cilist, align 8
@zchk4_.io___286 = external hidden global %struct.cilist, align 8
@zchk4_.io___289 = external hidden global %struct.cilist, align 8
@zchk4_.io___293 = external hidden global %struct.cilist, align 8
@zchk4_.io___294 = external hidden global %struct.cilist, align 8
@zchk4_.io___295 = external hidden global %struct.cilist, align 8
@zchk4_.io___296 = external hidden global %struct.cilist, align 8
@zchk4_.io___297 = external hidden global %struct.cilist, align 8

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

declare i64 @s_wsfe(ptr noundef) local_unnamed_addr #1

declare i64 @do_fio(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #1

declare i64 @e_wsfe() local_unnamed_addr #1

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @zchk4_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture noundef readonly %11, ptr nocapture noundef readonly %12, ptr nocapture noundef readonly %13, ptr noundef %14, ptr nocapture noundef readnone %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, i64 noundef %28) local_unnamed_addr #2 {
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca %struct.doublecomplex, align 16
  %35 = alloca %struct.alist, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca [1 x %struct.doublecomplex], align 16
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca double, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca %struct.doublecomplex, align 16
  %50 = alloca [13 x i64], align 16
  %51 = alloca i64, align 8
  %52 = alloca double, align 8
  %53 = alloca %struct.doublecomplex, align 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #5
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %50) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #5
  %54 = getelementptr inbounds i8, ptr %9, i64 -8
  %55 = getelementptr inbounds i8, ptr %11, i64 -16
  %56 = getelementptr inbounds i8, ptr %13, i64 -8
  %57 = getelementptr inbounds i8, ptr %27, i64 -16
  %58 = getelementptr inbounds i8, ptr %22, i64 -16
  %59 = getelementptr inbounds i8, ptr %19, i64 -16
  %60 = getelementptr inbounds i8, ptr %18, i64 -16
  %61 = getelementptr inbounds i8, ptr %17, i64 -16
  %62 = load i64, ptr %14, align 8, !tbaa !5
  %63 = getelementptr inbounds i8, ptr %24, i64 -16
  %64 = getelementptr inbounds i8, ptr %23, i64 -16
  %65 = getelementptr inbounds i8, ptr %21, i64 -16
  %66 = getelementptr inbounds i8, ptr %20, i64 -16
  %67 = getelementptr inbounds i8, ptr %0, i64 4
  %68 = load i8, ptr %67, align 1, !tbaa !9
  %69 = icmp eq i8 %68, 67
  store i64 0, ptr %41, align 8, !tbaa !5
  store i64 1, ptr %51, align 8, !tbaa !5
  store double 0.000000e+00, ptr %52, align 8, !tbaa !10
  %70 = load i64, ptr %8, align 8, !tbaa !5
  %.not261 = icmp slt i64 %70, 1
  br i1 %.not261, label %._crit_edge265, label %.lr.ph264

.lr.ph264:                                        ; preds = %29
  %71 = xor i64 %62, -1
  %72 = getelementptr inbounds %struct.doublecomplex, ptr %16, i64 %71
  %73 = getelementptr inbounds i8, ptr %49, i64 8
  %74 = getelementptr inbounds i8, ptr %0, i64 1
  %75 = getelementptr inbounds i8, ptr %35, i64 8
  %76 = getelementptr inbounds i8, ptr %50, i64 8
  %77 = getelementptr inbounds i8, ptr %50, i64 16
  %78 = getelementptr inbounds i8, ptr %50, i64 24
  %79 = getelementptr inbounds i8, ptr %50, i64 32
  %80 = getelementptr inbounds i8, ptr %50, i64 40
  %81 = getelementptr inbounds i8, ptr %50, i64 48
  %82 = getelementptr inbounds i8, ptr %50, i64 56
  %83 = getelementptr inbounds i8, ptr %50, i64 64
  %invariant.gep = getelementptr i8, ptr %72, i64 16
  %84 = getelementptr inbounds i8, ptr %40, i64 8
  br label %85

85:                                               ; preds = %.lr.ph264, %402
  %86 = phi double [ 0.000000e+00, %.lr.ph264 ], [ %400, %402 ]
  %.0166262 = phi i64 [ 1, %.lr.ph264 ], [ %403, %402 ]
  %87 = getelementptr inbounds i64, ptr %54, i64 %.0166262
  %88 = load i64, ptr %87, align 8, !tbaa !5
  store i64 %88, ptr %39, align 8, !tbaa !5
  %89 = sdiv i64 %88, 2
  %90 = add nsw i64 %89, 1
  br label %91

91:                                               ; preds = %85, %.loopexit208
  %92 = phi double [ %86, %85 ], [ %400, %.loopexit208 ]
  %.0167260 = phi i64 [ 1, %85 ], [ %401, %.loopexit208 ]
  switch i64 %.0167260, label %._crit_edge279 [
    i64 1, label %93
    i64 2, label %97
  ]

._crit_edge279:                                   ; preds = %91
  %.pre = load i64, ptr %38, align 8
  br label %101

93:                                               ; preds = %91
  %94 = load i64, ptr %39, align 8, !tbaa !5
  %95 = sub nsw i64 %94, %90
  %96 = call i64 @llvm.smax.i64(i64 %95, i64 0)
  store i64 %96, ptr %38, align 8, !tbaa !5
  br label %101

97:                                               ; preds = %91
  %98 = load i64, ptr %39, align 8, !tbaa !5
  %99 = add nsw i64 %98, %90
  %100 = load i64, ptr %14, align 8, !tbaa !5
  %. = call i64 @llvm.smin.i64(i64 %99, i64 %100)
  store i64 %., ptr %38, align 8, !tbaa !5
  br label %101

101:                                              ; preds = %._crit_edge279, %93, %97
  %102 = phi i64 [ %.pre, %._crit_edge279 ], [ %96, %93 ], [ %., %97 ]
  store i64 %102, ptr %45, align 8, !tbaa !5
  %103 = load i64, ptr %14, align 8, !tbaa !5
  %104 = icmp slt i64 %102, %103
  br i1 %104, label %105, label %107

105:                                              ; preds = %101
  %106 = add nsw i64 %102, 1
  store i64 %106, ptr %45, align 8, !tbaa !5
  br label %107

107:                                              ; preds = %105, %101
  %108 = phi i64 [ %106, %105 ], [ %102, %101 ]
  %109 = icmp sgt i64 %108, %103
  br i1 %109, label %.loopexit208, label %110

110:                                              ; preds = %107
  %111 = load i64, ptr %39, align 8, !tbaa !5
  %112 = mul nsw i64 %111, %108
  store i64 %112, ptr %44, align 8, !tbaa !5
  %113 = icmp slt i64 %111, 1
  %114 = icmp slt i64 %102, 1
  %115 = or i1 %114, %113
  %116 = load i64, ptr %12, align 8, !tbaa !5
  %.not183256 = icmp slt i64 %116, 1
  br i1 %.not183256, label %.loopexit208, label %.lr.ph259

.lr.ph259:                                        ; preds = %110, %._crit_edge255
  %117 = phi double [ %398, %._crit_edge255 ], [ %92, %110 ]
  %.0165257 = phi i64 [ %399, %._crit_edge255 ], [ 1, %110 ]
  %118 = getelementptr inbounds i64, ptr %56, i64 %.0165257
  %119 = load i64, ptr %118, align 8, !tbaa !5
  store i64 %119, ptr %47, align 8, !tbaa !5
  %120 = call i64 @llvm.abs.i64(i64 %119, i1 true)
  %121 = load i64, ptr %38, align 8, !tbaa !5
  %122 = mul nsw i64 %121, %120
  store i64 %122, ptr %42, align 8, !tbaa !5
  store <2 x double> <double 5.000000e-01, double 0.000000e+00>, ptr %53, align 16, !tbaa !10
  store i64 %120, ptr %30, align 8, !tbaa !5
  %123 = add nsw i64 %121, -1
  store i64 %123, ptr %31, align 8, !tbaa !5
  %124 = call i32 @zmake_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef %19, ptr noundef nonnull @c__1, ptr noundef %20, ptr noundef nonnull %30, ptr noundef nonnull @c__0, ptr noundef nonnull %31, ptr noundef nonnull %51, ptr noundef nonnull %53, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %125 = load i64, ptr %38, align 8
  %126 = icmp sgt i64 %125, 1
  br i1 %126, label %127, label %135

127:                                              ; preds = %.lr.ph259
  %128 = lshr i64 %125, 1
  %129 = getelementptr inbounds %struct.doublecomplex, ptr %59, i64 %128
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %129, i8 0, i64 16, i1 false)
  %130 = load i64, ptr %47, align 8
  %131 = call i64 @llvm.abs.i64(i64 %130, i1 true)
  %132 = add nsw i64 %128, -1
  %133 = mul nsw i64 %131, %132
  %134 = getelementptr %struct.doublecomplex, ptr %20, i64 %133
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %134, i8 0, i64 16, i1 false)
  br label %135

135:                                              ; preds = %127, %.lr.ph259
  %136 = load i64, ptr %12, align 8, !tbaa !5
  store i64 %136, ptr %30, align 8, !tbaa !5
  %.not184251 = icmp slt i64 %136, 1
  br i1 %.not184251, label %._crit_edge255, label %.lr.ph254

.lr.ph254:                                        ; preds = %135, %._crit_edge250
  %137 = phi double [ %395, %._crit_edge250 ], [ %117, %135 ]
  %.0164252 = phi i64 [ %396, %._crit_edge250 ], [ 1, %135 ]
  %138 = getelementptr inbounds i64, ptr %56, i64 %.0164252
  %139 = load i64, ptr %138, align 8, !tbaa !5
  store i64 %139, ptr %48, align 8, !tbaa !5
  %140 = call i64 @llvm.abs.i64(i64 %139, i1 true)
  %141 = load i64, ptr %39, align 8, !tbaa !5
  %142 = mul nsw i64 %141, %140
  store i64 %142, ptr %43, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %53, i8 0, i64 16, i1 false)
  store i64 %140, ptr %31, align 8, !tbaa !5
  %143 = add nsw i64 %141, -1
  store i64 %143, ptr %32, align 8, !tbaa !5
  %144 = call i32 @zmake_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %39, ptr noundef %22, ptr noundef nonnull @c__1, ptr noundef %23, ptr noundef nonnull %31, ptr noundef nonnull @c__0, ptr noundef nonnull %32, ptr noundef nonnull %51, ptr noundef nonnull %53, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %145 = load i64, ptr %39, align 8, !tbaa !5
  %146 = icmp sgt i64 %145, 1
  br i1 %146, label %147, label %155

147:                                              ; preds = %.lr.ph254
  %148 = lshr i64 %145, 1
  %149 = getelementptr inbounds %struct.doublecomplex, ptr %58, i64 %148
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %149, i8 0, i64 16, i1 false)
  %150 = load i64, ptr %48, align 8
  %151 = call i64 @llvm.abs.i64(i64 %150, i1 true)
  %152 = add nsw i64 %148, -1
  %153 = mul nsw i64 %151, %152
  %154 = getelementptr %struct.doublecomplex, ptr %23, i64 %153
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %154, i8 0, i64 16, i1 false)
  br label %155

155:                                              ; preds = %147, %.lr.ph254
  %156 = load i64, ptr %10, align 8, !tbaa !5
  store i64 %156, ptr %31, align 8, !tbaa !5
  %.not185246 = icmp slt i64 %156, 1
  br i1 %.not185246, label %._crit_edge250, label %.lr.ph249

.lr.ph249:                                        ; preds = %155, %._crit_edge245
  %157 = phi double [ %392, %._crit_edge245 ], [ %137, %155 ]
  %.0168247 = phi i64 [ %393, %._crit_edge245 ], [ 1, %155 ]
  %158 = getelementptr inbounds %struct.doublecomplex, ptr %55, i64 %.0168247
  %159 = load <2 x double>, ptr %158, align 8, !tbaa !10
  store <2 x double> %159, ptr %49, align 16, !tbaa !10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %53, i8 0, i64 16, i1 false)
  %160 = load i64, ptr %38, align 8, !tbaa !5
  %161 = add nsw i64 %160, -1
  store i64 %161, ptr %32, align 8, !tbaa !5
  %162 = load i64, ptr %39, align 8, !tbaa !5
  %163 = add nsw i64 %162, -1
  store i64 %163, ptr %33, align 8, !tbaa !5
  %164 = call i32 @zmake_(ptr noundef nonnull %74, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.7, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %17, ptr noundef nonnull %45, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %51, ptr noundef nonnull %53, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %165 = load i64, ptr %41, align 8, !tbaa !5
  %166 = add nsw i64 %165, 1
  store i64 %166, ptr %41, align 8, !tbaa !5
  %167 = load i64, ptr %38, align 8, !tbaa !5
  %168 = load i64, ptr %39, align 8, !tbaa !5
  %169 = load double, ptr %49, align 16, !tbaa !12
  %170 = load double, ptr %73, align 8, !tbaa !14
  %171 = load i64, ptr %44, align 8, !tbaa !5
  %.not186210 = icmp slt i64 %171, 1
  br i1 %.not186210, label %192, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph249
  %xtraiter = and i64 %171, 3
  %172 = icmp ult i64 %171, 4
  br i1 %172, label %._crit_edge.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %171, 9223372036854775804
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %storemerge211 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %187, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.3, %.lr.ph ]
  %173 = getelementptr inbounds %struct.doublecomplex, ptr %61, i64 %storemerge211
  %174 = getelementptr inbounds %struct.doublecomplex, ptr %60, i64 %storemerge211
  %175 = load <2 x double>, ptr %173, align 8, !tbaa !10
  store <2 x double> %175, ptr %174, align 8, !tbaa !10
  %176 = getelementptr %struct.doublecomplex, ptr %17, i64 %storemerge211
  %177 = getelementptr %struct.doublecomplex, ptr %18, i64 %storemerge211
  %178 = load <2 x double>, ptr %176, align 8, !tbaa !10
  store <2 x double> %178, ptr %177, align 8, !tbaa !10
  %179 = add nuw nsw i64 %storemerge211, 2
  %180 = getelementptr inbounds %struct.doublecomplex, ptr %61, i64 %179
  %181 = getelementptr inbounds %struct.doublecomplex, ptr %60, i64 %179
  %182 = load <2 x double>, ptr %180, align 8, !tbaa !10
  store <2 x double> %182, ptr %181, align 8, !tbaa !10
  %183 = add nuw i64 %storemerge211, 3
  %184 = getelementptr inbounds %struct.doublecomplex, ptr %61, i64 %183
  %185 = getelementptr inbounds %struct.doublecomplex, ptr %60, i64 %183
  %186 = load <2 x double>, ptr %184, align 8, !tbaa !10
  store <2 x double> %186, ptr %185, align 8, !tbaa !10
  %187 = add nuw i64 %storemerge211, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge.unr-lcssa, label %.lr.ph, !llvm.loop !15

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph, %.lr.ph.preheader
  %storemerge211.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %187, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph.epil
  %storemerge211.epil = phi i64 [ %191, %.lr.ph.epil ], [ %storemerge211.unr, %._crit_edge.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph.epil ], [ 0, %._crit_edge.unr-lcssa ]
  %188 = getelementptr inbounds %struct.doublecomplex, ptr %61, i64 %storemerge211.epil
  %189 = getelementptr inbounds %struct.doublecomplex, ptr %60, i64 %storemerge211.epil
  %190 = load <2 x double>, ptr %188, align 8, !tbaa !10
  store <2 x double> %190, ptr %189, align 8, !tbaa !10
  %191 = add nuw i64 %storemerge211.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.lr.ph.epil, !llvm.loop !17

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.unr-lcssa
  store i64 %171, ptr %33, align 8, !tbaa !5
  br label %192

192:                                              ; preds = %._crit_edge, %.lr.ph249
  %193 = load i64, ptr %45, align 8, !tbaa !5
  %194 = load i64, ptr %42, align 8, !tbaa !5
  %.not188212 = icmp slt i64 %194, 1
  br i1 %.not188212, label %215, label %.lr.ph215.preheader

.lr.ph215.preheader:                              ; preds = %192
  %xtraiter321 = and i64 %194, 3
  %195 = icmp ult i64 %194, 4
  br i1 %195, label %._crit_edge216.unr-lcssa, label %.lr.ph215.preheader.new

.lr.ph215.preheader.new:                          ; preds = %.lr.ph215.preheader
  %unroll_iter324 = and i64 %194, 9223372036854775804
  br label %.lr.ph215

.lr.ph215:                                        ; preds = %.lr.ph215, %.lr.ph215.preheader.new
  %storemerge187213 = phi i64 [ 1, %.lr.ph215.preheader.new ], [ %210, %.lr.ph215 ]
  %niter325 = phi i64 [ 0, %.lr.ph215.preheader.new ], [ %niter325.next.3, %.lr.ph215 ]
  %196 = getelementptr inbounds %struct.doublecomplex, ptr %66, i64 %storemerge187213
  %197 = getelementptr inbounds %struct.doublecomplex, ptr %65, i64 %storemerge187213
  %198 = load <2 x double>, ptr %196, align 8, !tbaa !10
  store <2 x double> %198, ptr %197, align 8, !tbaa !10
  %199 = getelementptr %struct.doublecomplex, ptr %20, i64 %storemerge187213
  %200 = getelementptr %struct.doublecomplex, ptr %21, i64 %storemerge187213
  %201 = load <2 x double>, ptr %199, align 8, !tbaa !10
  store <2 x double> %201, ptr %200, align 8, !tbaa !10
  %202 = add nuw nsw i64 %storemerge187213, 2
  %203 = getelementptr inbounds %struct.doublecomplex, ptr %66, i64 %202
  %204 = getelementptr inbounds %struct.doublecomplex, ptr %65, i64 %202
  %205 = load <2 x double>, ptr %203, align 8, !tbaa !10
  store <2 x double> %205, ptr %204, align 8, !tbaa !10
  %206 = add nuw i64 %storemerge187213, 3
  %207 = getelementptr inbounds %struct.doublecomplex, ptr %66, i64 %206
  %208 = getelementptr inbounds %struct.doublecomplex, ptr %65, i64 %206
  %209 = load <2 x double>, ptr %207, align 8, !tbaa !10
  store <2 x double> %209, ptr %208, align 8, !tbaa !10
  %210 = add nuw i64 %storemerge187213, 4
  %niter325.next.3 = add i64 %niter325, 4
  %niter325.ncmp.3 = icmp eq i64 %niter325.next.3, %unroll_iter324
  br i1 %niter325.ncmp.3, label %._crit_edge216.unr-lcssa, label %.lr.ph215, !llvm.loop !19

._crit_edge216.unr-lcssa:                         ; preds = %.lr.ph215, %.lr.ph215.preheader
  %storemerge187213.unr = phi i64 [ 1, %.lr.ph215.preheader ], [ %210, %.lr.ph215 ]
  %lcmp.mod323.not = icmp eq i64 %xtraiter321, 0
  br i1 %lcmp.mod323.not, label %._crit_edge216, label %.lr.ph215.epil

.lr.ph215.epil:                                   ; preds = %._crit_edge216.unr-lcssa, %.lr.ph215.epil
  %storemerge187213.epil = phi i64 [ %214, %.lr.ph215.epil ], [ %storemerge187213.unr, %._crit_edge216.unr-lcssa ]
  %epil.iter322 = phi i64 [ %epil.iter322.next, %.lr.ph215.epil ], [ 0, %._crit_edge216.unr-lcssa ]
  %211 = getelementptr inbounds %struct.doublecomplex, ptr %66, i64 %storemerge187213.epil
  %212 = getelementptr inbounds %struct.doublecomplex, ptr %65, i64 %storemerge187213.epil
  %213 = load <2 x double>, ptr %211, align 8, !tbaa !10
  store <2 x double> %213, ptr %212, align 8, !tbaa !10
  %214 = add nuw i64 %storemerge187213.epil, 1
  %epil.iter322.next = add i64 %epil.iter322, 1
  %epil.iter322.cmp.not = icmp eq i64 %epil.iter322.next, %xtraiter321
  br i1 %epil.iter322.cmp.not, label %._crit_edge216, label %.lr.ph215.epil, !llvm.loop !20

._crit_edge216:                                   ; preds = %.lr.ph215.epil, %._crit_edge216.unr-lcssa
  store i64 %194, ptr %33, align 8, !tbaa !5
  br label %215

215:                                              ; preds = %._crit_edge216, %192
  %216 = load i64, ptr %47, align 8, !tbaa !5
  %217 = load i64, ptr %43, align 8, !tbaa !5
  store i64 %217, ptr %32, align 8, !tbaa !5
  %.not190218 = icmp slt i64 %217, 1
  br i1 %.not190218, label %239, label %.lr.ph221.preheader

.lr.ph221.preheader:                              ; preds = %215
  %218 = add nuw i64 %217, 1
  %xtraiter326 = and i64 %217, 3
  %219 = icmp ult i64 %217, 4
  br i1 %219, label %._crit_edge222.unr-lcssa, label %.lr.ph221.preheader.new

.lr.ph221.preheader.new:                          ; preds = %.lr.ph221.preheader
  %unroll_iter329 = and i64 %217, 9223372036854775804
  br label %.lr.ph221

.lr.ph221:                                        ; preds = %.lr.ph221, %.lr.ph221.preheader.new
  %storemerge189219 = phi i64 [ 1, %.lr.ph221.preheader.new ], [ %234, %.lr.ph221 ]
  %niter330 = phi i64 [ 0, %.lr.ph221.preheader.new ], [ %niter330.next.3, %.lr.ph221 ]
  %220 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %storemerge189219
  %221 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %storemerge189219
  %222 = load <2 x double>, ptr %220, align 8, !tbaa !10
  store <2 x double> %222, ptr %221, align 8, !tbaa !10
  %223 = getelementptr %struct.doublecomplex, ptr %23, i64 %storemerge189219
  %224 = getelementptr %struct.doublecomplex, ptr %24, i64 %storemerge189219
  %225 = load <2 x double>, ptr %223, align 8, !tbaa !10
  store <2 x double> %225, ptr %224, align 8, !tbaa !10
  %226 = add nuw nsw i64 %storemerge189219, 2
  %227 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %226
  %228 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %226
  %229 = load <2 x double>, ptr %227, align 8, !tbaa !10
  store <2 x double> %229, ptr %228, align 8, !tbaa !10
  %230 = add nuw i64 %storemerge189219, 3
  %231 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %230
  %232 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %230
  %233 = load <2 x double>, ptr %231, align 8, !tbaa !10
  store <2 x double> %233, ptr %232, align 8, !tbaa !10
  %234 = add nuw i64 %storemerge189219, 4
  %niter330.next.3 = add i64 %niter330, 4
  %niter330.ncmp.3 = icmp eq i64 %niter330.next.3, %unroll_iter329
  br i1 %niter330.ncmp.3, label %._crit_edge222.unr-lcssa, label %.lr.ph221, !llvm.loop !21

._crit_edge222.unr-lcssa:                         ; preds = %.lr.ph221, %.lr.ph221.preheader
  %storemerge189219.unr = phi i64 [ 1, %.lr.ph221.preheader ], [ %234, %.lr.ph221 ]
  %lcmp.mod328.not = icmp eq i64 %xtraiter326, 0
  br i1 %lcmp.mod328.not, label %._crit_edge222, label %.lr.ph221.epil

.lr.ph221.epil:                                   ; preds = %._crit_edge222.unr-lcssa, %.lr.ph221.epil
  %storemerge189219.epil = phi i64 [ %238, %.lr.ph221.epil ], [ %storemerge189219.unr, %._crit_edge222.unr-lcssa ]
  %epil.iter327 = phi i64 [ %epil.iter327.next, %.lr.ph221.epil ], [ 0, %._crit_edge222.unr-lcssa ]
  %235 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %storemerge189219.epil
  %236 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %storemerge189219.epil
  %237 = load <2 x double>, ptr %235, align 8, !tbaa !10
  store <2 x double> %237, ptr %236, align 8, !tbaa !10
  %238 = add nuw i64 %storemerge189219.epil, 1
  %epil.iter327.next = add i64 %epil.iter327, 1
  %epil.iter327.cmp.not = icmp eq i64 %epil.iter327.next, %xtraiter326
  br i1 %epil.iter327.cmp.not, label %._crit_edge222, label %.lr.ph221.epil, !llvm.loop !22

._crit_edge222:                                   ; preds = %.lr.ph221.epil, %._crit_edge222.unr-lcssa
  store i64 %217, ptr %33, align 8, !tbaa !5
  br label %239

239:                                              ; preds = %._crit_edge222, %215
  %storemerge189.lcssa = phi i64 [ %218, %._crit_edge222 ], [ 1, %215 ]
  store i64 %storemerge189.lcssa, ptr %36, align 8, !tbaa !5
  %240 = load i64, ptr %48, align 8, !tbaa !5
  %241 = load i64, ptr %5, align 8, !tbaa !5
  %.not191 = icmp eq i64 %241, 0
  br i1 %.not191, label %254, label %242

242:                                              ; preds = %239
  %243 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %243, ptr getelementptr inbounds (i8, ptr @zchk4_.io___285, i64 8), align 8, !tbaa !23
  %244 = call i64 @s_wsfe(ptr noundef nonnull @zchk4_.io___285) #5
  %245 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  %246 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %247 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #5
  %248 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %249 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %49, i64 noundef 8) #5
  %250 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #5
  %251 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #5
  %252 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #5
  %253 = call i64 @e_wsfe() #5
  br label %254

254:                                              ; preds = %242, %239
  %255 = load i64, ptr %6, align 8, !tbaa !5
  %.not193 = icmp eq i64 %255, 0
  br i1 %69, label %256, label %262

256:                                              ; preds = %254
  br i1 %.not193, label %260, label %257

257:                                              ; preds = %256
  store i64 0, ptr %35, align 8, !tbaa !26
  %258 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %258, ptr %75, align 8, !tbaa !28
  %259 = call i64 @f_rew(ptr noundef nonnull %35) #5
  br label %260

260:                                              ; preds = %257, %256
  %261 = call i32 @f2c_zgerc(ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %49, ptr noundef %20, ptr noundef nonnull %47, ptr noundef %23, ptr noundef nonnull %48, ptr noundef %17, ptr noundef nonnull %45) #5
  br label %268

262:                                              ; preds = %254
  br i1 %.not193, label %266, label %263

263:                                              ; preds = %262
  store i64 0, ptr %35, align 8, !tbaa !26
  %264 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %264, ptr %75, align 8, !tbaa !28
  %265 = call i64 @f_rew(ptr noundef nonnull %35) #5
  br label %266

266:                                              ; preds = %263, %262
  %267 = call i32 @f2c_zgeru(ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %49, ptr noundef %20, ptr noundef nonnull %47, ptr noundef %23, ptr noundef nonnull %48, ptr noundef %17, ptr noundef nonnull %45) #5
  br label %268

268:                                              ; preds = %266, %260
  %269 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !9
  %.not194 = icmp eq i64 %269, 0
  br i1 %.not194, label %270, label %274

270:                                              ; preds = %268
  %271 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %271, ptr getelementptr inbounds (i8, ptr @zchk4_.io___286, i64 8), align 8, !tbaa !23
  %272 = call i64 @s_wsfe(ptr noundef nonnull @zchk4_.io___286) #5
  %273 = call i64 @e_wsfe() #5
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %420

274:                                              ; preds = %268
  %275 = load i64, ptr %38, align 8, !tbaa !5
  %276 = icmp eq i64 %167, %275
  %277 = zext i1 %276 to i64
  store i64 %277, ptr %50, align 16, !tbaa !5
  %278 = load i64, ptr %39, align 8, !tbaa !5
  %279 = icmp eq i64 %168, %278
  %280 = zext i1 %279 to i64
  store i64 %280, ptr %76, align 8, !tbaa !5
  %281 = load double, ptr %49, align 16, !tbaa !12
  %282 = fcmp oeq double %169, %281
  %283 = load double, ptr %73, align 8
  %284 = fcmp oeq double %170, %283
  %285 = select i1 %282, i1 %284, i1 false
  %286 = zext i1 %285 to i64
  store i64 %286, ptr %77, align 16, !tbaa !5
  %287 = call i64 @lze_(ptr noundef %21, ptr noundef %20, ptr noundef nonnull %42)
  store i64 %287, ptr %78, align 8, !tbaa !5
  %288 = load i64, ptr %47, align 8, !tbaa !5
  %289 = icmp eq i64 %216, %288
  %290 = zext i1 %289 to i64
  store i64 %290, ptr %79, align 16, !tbaa !5
  %291 = call i64 @lze_(ptr noundef %24, ptr noundef %23, ptr noundef nonnull %43)
  store i64 %291, ptr %80, align 8, !tbaa !5
  %292 = load i64, ptr %48, align 8, !tbaa !5
  %293 = icmp eq i64 %240, %292
  %294 = zext i1 %293 to i64
  store i64 %294, ptr %81, align 16, !tbaa !5
  br i1 %115, label %295, label %297

295:                                              ; preds = %274
  %296 = call i64 @lze_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %44)
  br label %.lr.ph228.preheader

297:                                              ; preds = %274
  %298 = call i64 @lzeres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %18, ptr noundef %17, ptr noundef nonnull %45, i64 noundef 2, i64 noundef 1)
  br label %.lr.ph228.preheader

.lr.ph228.preheader:                              ; preds = %295, %297
  %storemerge283 = phi i64 [ %298, %297 ], [ %296, %295 ]
  store i64 %storemerge283, ptr %82, align 8, !tbaa !5
  %299 = load i64, ptr %45, align 8, !tbaa !5
  %300 = icmp eq i64 %193, %299
  %301 = zext i1 %300 to i64
  store i64 %301, ptr %83, align 16, !tbaa !5
  store i64 9, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %36, align 8, !tbaa !5
  br label %.lr.ph228

.lr.ph228:                                        ; preds = %.lr.ph228.preheader, %311
  %302 = phi i64 [ %312, %311 ], [ 9, %.lr.ph228.preheader ]
  %303 = phi i64 [ %314, %311 ], [ 1, %.lr.ph228.preheader ]
  %.0226 = phi i1 [ %305, %311 ], [ true, %.lr.ph228.preheader ]
  %storemerge195225 = phi i64 [ %313, %311 ], [ 0, %.lr.ph228.preheader ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %50, i64 0, i64 %storemerge195225
  %.pre280 = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %304 = icmp ne i64 %.pre280, 0
  %305 = and i1 %.0226, %304
  %.not206 = icmp eq i64 %.pre280, 0
  br i1 %.not206, label %306, label %311

306:                                              ; preds = %.lr.ph228
  %307 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %307, ptr getelementptr inbounds (i8, ptr @zchk4_.io___289, i64 8), align 8, !tbaa !23
  %308 = call i64 @s_wsfe(ptr noundef nonnull @zchk4_.io___289) #5
  %309 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %310 = call i64 @e_wsfe() #5
  %.pre281 = load i64, ptr %36, align 8, !tbaa !5
  %.pre282 = load i64, ptr %32, align 8, !tbaa !5
  br label %311

311:                                              ; preds = %.lr.ph228, %306
  %312 = phi i64 [ %302, %.lr.ph228 ], [ %.pre282, %306 ]
  %313 = phi i64 [ %303, %.lr.ph228 ], [ %.pre281, %306 ]
  %314 = add nsw i64 %313, 1
  store i64 %314, ptr %36, align 8, !tbaa !5
  %.not196.not = icmp slt i64 %313, %312
  br i1 %.not196.not, label %.lr.ph228, label %._crit_edge229, !llvm.loop !29

._crit_edge229:                                   ; preds = %311
  br i1 %305, label %316, label %315

315:                                              ; preds = %._crit_edge229
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %420

316:                                              ; preds = %._crit_edge229
  br i1 %115, label %.loopexit208, label %317

317:                                              ; preds = %316
  %318 = load i64, ptr %47, align 8, !tbaa !5
  %319 = icmp sgt i64 %318, 0
  %320 = load i64, ptr %38, align 8
  %.not201236 = icmp slt i64 %320, 1
  br i1 %319, label %321, label %339

321:                                              ; preds = %317
  br i1 %.not201236, label %.loopexit, label %.lr.ph239.preheader

.lr.ph239.preheader:                              ; preds = %321
  %322 = add nuw i64 %320, 1
  %xtraiter336 = and i64 %320, 3
  %323 = icmp ult i64 %320, 4
  br i1 %323, label %..loopexit_crit_edge.unr-lcssa, label %.lr.ph239.preheader.new

.lr.ph239.preheader.new:                          ; preds = %.lr.ph239.preheader
  %unroll_iter339 = and i64 %320, 9223372036854775804
  br label %.lr.ph239

.lr.ph239:                                        ; preds = %.lr.ph239, %.lr.ph239.preheader.new
  %storemerge200237 = phi i64 [ 1, %.lr.ph239.preheader.new ], [ %338, %.lr.ph239 ]
  %niter340 = phi i64 [ 0, %.lr.ph239.preheader.new ], [ %niter340.next.3, %.lr.ph239 ]
  %324 = getelementptr inbounds %struct.doublecomplex, ptr %59, i64 %storemerge200237
  %325 = getelementptr inbounds %struct.doublecomplex, ptr %57, i64 %storemerge200237
  %326 = load <2 x double>, ptr %324, align 8, !tbaa !10
  store <2 x double> %326, ptr %325, align 8, !tbaa !10
  %327 = getelementptr %struct.doublecomplex, ptr %19, i64 %storemerge200237
  %328 = getelementptr %struct.doublecomplex, ptr %27, i64 %storemerge200237
  %329 = load <2 x double>, ptr %327, align 8, !tbaa !10
  store <2 x double> %329, ptr %328, align 8, !tbaa !10
  %330 = add nuw nsw i64 %storemerge200237, 2
  %331 = getelementptr inbounds %struct.doublecomplex, ptr %59, i64 %330
  %332 = getelementptr inbounds %struct.doublecomplex, ptr %57, i64 %330
  %333 = load <2 x double>, ptr %331, align 8, !tbaa !10
  store <2 x double> %333, ptr %332, align 8, !tbaa !10
  %334 = add nuw i64 %storemerge200237, 3
  %335 = getelementptr inbounds %struct.doublecomplex, ptr %59, i64 %334
  %336 = getelementptr inbounds %struct.doublecomplex, ptr %57, i64 %334
  %337 = load <2 x double>, ptr %335, align 8, !tbaa !10
  store <2 x double> %337, ptr %336, align 8, !tbaa !10
  %338 = add nuw i64 %storemerge200237, 4
  %niter340.next.3 = add i64 %niter340, 4
  %niter340.ncmp.3 = icmp eq i64 %niter340.next.3, %unroll_iter339
  br i1 %niter340.ncmp.3, label %..loopexit_crit_edge.unr-lcssa, label %.lr.ph239, !llvm.loop !30

339:                                              ; preds = %317
  br i1 %.not201236, label %.loopexit, label %.lr.ph234.preheader

.lr.ph234.preheader:                              ; preds = %339
  %340 = add nuw i64 %320, 1
  %xtraiter331 = and i64 %320, 1
  %341 = icmp eq i64 %320, 1
  br i1 %341, label %..loopexit207_crit_edge.unr-lcssa, label %.lr.ph234.preheader.new

.lr.ph234.preheader.new:                          ; preds = %.lr.ph234.preheader
  %unroll_iter334 = and i64 %320, 9223372036854775806
  %342 = getelementptr %struct.doublecomplex, ptr %19, i64 %320
  br label %.lr.ph234

.lr.ph234:                                        ; preds = %.lr.ph234, %.lr.ph234.preheader.new
  %storemerge198232 = phi i64 [ 1, %.lr.ph234.preheader.new ], [ %350, %.lr.ph234 ]
  %niter335 = phi i64 [ 0, %.lr.ph234.preheader.new ], [ %niter335.next.1, %.lr.ph234 ]
  %343 = sub nsw i64 %320, %storemerge198232
  %344 = getelementptr %struct.doublecomplex, ptr %19, i64 %343
  %345 = getelementptr inbounds %struct.doublecomplex, ptr %57, i64 %storemerge198232
  %346 = load <2 x double>, ptr %344, align 8, !tbaa !10
  store <2 x double> %346, ptr %345, align 8, !tbaa !10
  %.neg = xor i64 %storemerge198232, -1
  %347 = getelementptr %struct.doublecomplex, ptr %342, i64 %.neg
  %348 = getelementptr %struct.doublecomplex, ptr %27, i64 %storemerge198232
  %349 = load <2 x double>, ptr %347, align 8, !tbaa !10
  store <2 x double> %349, ptr %348, align 8, !tbaa !10
  %350 = add nuw i64 %storemerge198232, 2
  %niter335.next.1 = add i64 %niter335, 2
  %niter335.ncmp.1 = icmp eq i64 %niter335.next.1, %unroll_iter334
  br i1 %niter335.ncmp.1, label %..loopexit207_crit_edge.unr-lcssa, label %.lr.ph234, !llvm.loop !31

..loopexit_crit_edge.unr-lcssa:                   ; preds = %.lr.ph239, %.lr.ph239.preheader
  %storemerge200237.unr = phi i64 [ 1, %.lr.ph239.preheader ], [ %338, %.lr.ph239 ]
  %lcmp.mod338.not = icmp eq i64 %xtraiter336, 0
  br i1 %lcmp.mod338.not, label %..loopexit_crit_edge, label %.lr.ph239.epil

.lr.ph239.epil:                                   ; preds = %..loopexit_crit_edge.unr-lcssa, %.lr.ph239.epil
  %storemerge200237.epil = phi i64 [ %354, %.lr.ph239.epil ], [ %storemerge200237.unr, %..loopexit_crit_edge.unr-lcssa ]
  %epil.iter337 = phi i64 [ %epil.iter337.next, %.lr.ph239.epil ], [ 0, %..loopexit_crit_edge.unr-lcssa ]
  %351 = getelementptr inbounds %struct.doublecomplex, ptr %59, i64 %storemerge200237.epil
  %352 = getelementptr inbounds %struct.doublecomplex, ptr %57, i64 %storemerge200237.epil
  %353 = load <2 x double>, ptr %351, align 8, !tbaa !10
  store <2 x double> %353, ptr %352, align 8, !tbaa !10
  %354 = add nuw i64 %storemerge200237.epil, 1
  %epil.iter337.next = add i64 %epil.iter337, 1
  %epil.iter337.cmp.not = icmp eq i64 %epil.iter337.next, %xtraiter336
  br i1 %epil.iter337.cmp.not, label %..loopexit_crit_edge, label %.lr.ph239.epil, !llvm.loop !32

..loopexit_crit_edge:                             ; preds = %.lr.ph239.epil, %..loopexit_crit_edge.unr-lcssa
  store i64 %320, ptr %33, align 8, !tbaa !5
  br label %.loopexit

..loopexit207_crit_edge.unr-lcssa:                ; preds = %.lr.ph234, %.lr.ph234.preheader
  %storemerge198232.unr = phi i64 [ 1, %.lr.ph234.preheader ], [ %350, %.lr.ph234 ]
  %lcmp.mod333.not = icmp eq i64 %xtraiter331, 0
  br i1 %lcmp.mod333.not, label %..loopexit207_crit_edge, label %.lr.ph234.epil

.lr.ph234.epil:                                   ; preds = %..loopexit207_crit_edge.unr-lcssa
  %355 = sub nsw i64 %320, %storemerge198232.unr
  %356 = getelementptr %struct.doublecomplex, ptr %19, i64 %355
  %357 = getelementptr inbounds %struct.doublecomplex, ptr %57, i64 %storemerge198232.unr
  %358 = load <2 x double>, ptr %356, align 8, !tbaa !10
  store <2 x double> %358, ptr %357, align 8, !tbaa !10
  br label %..loopexit207_crit_edge

..loopexit207_crit_edge:                          ; preds = %..loopexit207_crit_edge.unr-lcssa, %.lr.ph234.epil
  store i64 %320, ptr %33, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %339, %..loopexit207_crit_edge, %321, %..loopexit_crit_edge
  %storemerge = phi i64 [ %322, %..loopexit_crit_edge ], [ 1, %321 ], [ %340, %..loopexit207_crit_edge ], [ 1, %339 ]
  store i64 %storemerge, ptr %36, align 8, !tbaa !5
  %359 = load i64, ptr %39, align 8, !tbaa !5
  store i64 %359, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %37, align 8, !tbaa !5
  %.not203241 = icmp slt i64 %359, 1
  br i1 %.not203241, label %._crit_edge245, label %.lr.ph244

.lr.ph244:                                        ; preds = %.loopexit, %389
  %360 = phi double [ %387, %389 ], [ %157, %.loopexit ]
  %361 = phi i64 [ %390, %389 ], [ 1, %.loopexit ]
  %362 = load i64, ptr %48, align 8, !tbaa !5
  %363 = icmp sgt i64 %362, 0
  br i1 %363, label %364, label %368

364:                                              ; preds = %.lr.ph244
  store i64 %361, ptr %33, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.doublecomplex, ptr %58, i64 %361
  %366 = load double, ptr %365, align 8, !tbaa !12
  store double %366, ptr %40, align 16, !tbaa !12
  %367 = getelementptr inbounds %struct.doublecomplex, ptr %58, i64 %361, i32 1
  br label %375

368:                                              ; preds = %.lr.ph244
  %369 = load i64, ptr %39, align 8, !tbaa !5
  %370 = sub nsw i64 %369, %361
  %371 = add nsw i64 %370, 1
  store i64 %371, ptr %33, align 8, !tbaa !5
  %372 = getelementptr %struct.doublecomplex, ptr %22, i64 %370
  %373 = load double, ptr %372, align 8, !tbaa !12
  store double %373, ptr %40, align 16, !tbaa !12
  %374 = getelementptr %struct.doublecomplex, ptr %22, i64 %370, i32 1
  br label %375

375:                                              ; preds = %368, %364
  %storemerge284.in = phi ptr [ %374, %368 ], [ %367, %364 ]
  %storemerge284 = load double, ptr %storemerge284.in, align 8, !tbaa !14
  store double %storemerge284, ptr %84, align 8, !tbaa !14
  br i1 %69, label %376, label %378

376:                                              ; preds = %375
  call void @d_cnjg(ptr noundef nonnull %34, ptr noundef nonnull %40) #5
  %377 = load <2 x double>, ptr %34, align 16, !tbaa !10
  store <2 x double> %377, ptr %40, align 16, !tbaa !10
  br label %378

378:                                              ; preds = %376, %375
  %379 = mul nsw i64 %361, %62
  %gep = getelementptr %struct.doublecomplex, ptr %invariant.gep, i64 %379
  %380 = add nsw i64 %361, -1
  %381 = load i64, ptr %45, align 8, !tbaa !5
  %382 = mul nsw i64 %380, %381
  %383 = getelementptr %struct.doublecomplex, ptr %17, i64 %382
  %384 = call i32 @zmvch_(ptr noundef nonnull @.str.1, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef nonnull %49, ptr noundef %27, ptr noundef nonnull %14, ptr noundef nonnull %40, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b2, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %25, ptr noundef %26, ptr noundef %383, ptr noundef %1, ptr noundef nonnull %46, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1)
  %385 = load double, ptr %46, align 8
  %386 = fcmp oge double %360, %385
  %387 = select i1 %386, double %360, double %385
  store double %387, ptr %52, align 8, !tbaa !10
  %388 = load i64, ptr %7, align 8, !tbaa !5
  %.not204 = icmp eq i64 %388, 0
  br i1 %.not204, label %389, label %415

389:                                              ; preds = %378
  %390 = add nuw nsw i64 %361, 1
  store i64 %390, ptr %37, align 8, !tbaa !5
  %391 = load i64, ptr %32, align 8, !tbaa !5
  %.not203.not = icmp slt i64 %361, %391
  br i1 %.not203.not, label %.lr.ph244, label %._crit_edge245, !llvm.loop !33

._crit_edge245:                                   ; preds = %389, %.loopexit
  %392 = phi double [ %157, %.loopexit ], [ %387, %389 ]
  %393 = add nuw nsw i64 %.0168247, 1
  %394 = load i64, ptr %31, align 8, !tbaa !5
  %.not185.not = icmp slt i64 %.0168247, %394
  br i1 %.not185.not, label %.lr.ph249, label %._crit_edge250, !llvm.loop !34

._crit_edge250:                                   ; preds = %._crit_edge245, %155
  %395 = phi double [ %137, %155 ], [ %392, %._crit_edge245 ]
  %396 = add nuw nsw i64 %.0164252, 1
  %397 = load i64, ptr %30, align 8, !tbaa !5
  %.not184.not = icmp slt i64 %.0164252, %397
  br i1 %.not184.not, label %.lr.ph254, label %._crit_edge255, !llvm.loop !35

._crit_edge255:                                   ; preds = %._crit_edge250, %135
  %398 = phi double [ %117, %135 ], [ %395, %._crit_edge250 ]
  %399 = add nuw i64 %.0165257, 1
  %exitcond276.not = icmp eq i64 %.0165257, %116
  br i1 %exitcond276.not, label %.loopexit208, label %.lr.ph259, !llvm.loop !36

.loopexit208:                                     ; preds = %._crit_edge255, %316, %110, %107
  %400 = phi double [ %92, %110 ], [ %92, %107 ], [ %157, %316 ], [ %398, %._crit_edge255 ]
  %401 = add nuw nsw i64 %.0167260, 1
  %exitcond277.not = icmp eq i64 %401, 3
  br i1 %exitcond277.not, label %402, label %91, !llvm.loop !37

402:                                              ; preds = %.loopexit208
  %403 = add nuw i64 %.0166262, 1
  %exitcond278.not = icmp eq i64 %.0166262, %70
  br i1 %exitcond278.not, label %._crit_edge265, label %85, !llvm.loop !38

._crit_edge265:                                   ; preds = %402, %29
  %404 = phi double [ 0.000000e+00, %29 ], [ %400, %402 ]
  %405 = load double, ptr %2, align 8, !tbaa !10
  %406 = fcmp olt double %404, %405
  %407 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %406, label %408, label %411

408:                                              ; preds = %._crit_edge265
  store i64 %407, ptr getelementptr inbounds (i8, ptr @zchk4_.io___293, i64 8), align 8, !tbaa !23
  %409 = call i64 @s_wsfe(ptr noundef nonnull @zchk4_.io___293) #5
  %410 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  br label %434

411:                                              ; preds = %._crit_edge265
  store i64 %407, ptr getelementptr inbounds (i8, ptr @zchk4_.io___294, i64 8), align 8, !tbaa !23
  %412 = call i64 @s_wsfe(ptr noundef nonnull @zchk4_.io___294) #5
  %413 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %414 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  br label %434

415:                                              ; preds = %378
  %416 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %416, ptr getelementptr inbounds (i8, ptr @zchk4_.io___295, i64 8), align 8, !tbaa !23
  %417 = call i64 @s_wsfe(ptr noundef nonnull @zchk4_.io___295) #5
  %418 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #5
  %419 = call i64 @e_wsfe() #5
  br label %420

420:                                              ; preds = %415, %315, %270
  %421 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %421, ptr getelementptr inbounds (i8, ptr @zchk4_.io___296, i64 8), align 8, !tbaa !23
  %422 = call i64 @s_wsfe(ptr noundef nonnull @zchk4_.io___296) #5
  %423 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %424 = call i64 @e_wsfe() #5
  %425 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %425, ptr getelementptr inbounds (i8, ptr @zchk4_.io___297, i64 8), align 8, !tbaa !23
  %426 = call i64 @s_wsfe(ptr noundef nonnull @zchk4_.io___297) #5
  %427 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  %428 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %429 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #5
  %430 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %431 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %49, i64 noundef 8) #5
  %432 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #5
  %433 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #5
  br label %434

434:                                              ; preds = %408, %411, %420
  %.sink = phi ptr [ %41, %408 ], [ %52, %411 ], [ %45, %420 ]
  %435 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %.sink, i64 noundef 8) #5
  %436 = call i64 @e_wsfe() #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #5
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %50) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  ret i32 0
}

; 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 @zmake_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #2

declare i64 @f_rew(ptr noundef) local_unnamed_addr #1

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

declare i32 @f2c_zgerc(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @f2c_zgeru(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @d_cnjg(ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nounwind }

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

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


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