; 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.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }
%struct.doublecomplex = type { double, double }

@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_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
@zchk2_.ich = external hidden global [2 x i8], align 1
@zchk2_.io___189 = external hidden global %struct.cilist, align 8
@zchk2_.io___190 = external hidden global %struct.cilist, align 8
@zchk2_.io___191 = external hidden global %struct.cilist, align 8
@zchk2_.io___192 = external hidden global %struct.cilist, align 8
@zchk2_.io___195 = external hidden global %struct.cilist, align 8
@zchk2_.io___197 = external hidden global %struct.cilist, align 8
@zchk2_.io___198 = external hidden global %struct.cilist, align 8
@zchk2_.io___199 = external hidden global %struct.cilist, align 8
@zchk2_.io___200 = external hidden global %struct.cilist, align 8
@zchk2_.io___201 = external hidden global %struct.cilist, align 8
@zchk2_.io___202 = 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 @zchk2_(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, ptr noundef %28, ptr noundef %29, ptr noundef %30, i64 noundef %31) #2 {
  %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 ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca %struct.alist, 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 i64, align 8
  %89 = alloca i64, 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 %struct.doublecomplex, align 8
  %96 = alloca %struct.doublecomplex, align 8
  %97 = alloca double, align 8
  %98 = alloca %struct.doublecomplex, align 8
  %99 = alloca i64, align 8
  %100 = alloca i64, align 8
  %101 = alloca i64, align 8
  %102 = alloca i64, align 8
  %103 = alloca i64, align 8
  %104 = alloca i64, align 8
  %105 = alloca [1 x i8], align 1
  %106 = alloca %struct.doublecomplex, align 8
  %107 = alloca [13 x i64], align 16
  %108 = alloca i64, align 8
  %109 = alloca i64, align 8
  %110 = alloca i64, align 8
  %111 = alloca i64, align 8
  %112 = alloca [1 x i8], align 1
  %113 = alloca i64, align 8
  %114 = alloca i64, align 8
  %115 = alloca double, align 8
  %116 = alloca %struct.doublecomplex, align 8
  store ptr %0, ptr %33, align 8, !tbaa !5
  store ptr %1, ptr %34, align 8, !tbaa !5
  store ptr %2, ptr %35, align 8, !tbaa !5
  store ptr %3, ptr %36, align 8, !tbaa !5
  store ptr %4, ptr %37, align 8, !tbaa !5
  store ptr %5, ptr %38, align 8, !tbaa !5
  store ptr %6, ptr %39, align 8, !tbaa !5
  store ptr %7, ptr %40, align 8, !tbaa !5
  store ptr %8, ptr %41, align 8, !tbaa !5
  store ptr %9, ptr %42, align 8, !tbaa !5
  store ptr %10, ptr %43, align 8, !tbaa !5
  store ptr %11, ptr %44, align 8, !tbaa !5
  store ptr %12, ptr %45, align 8, !tbaa !5
  store ptr %13, ptr %46, align 8, !tbaa !5
  store ptr %14, ptr %47, align 8, !tbaa !5
  store ptr %15, ptr %48, align 8, !tbaa !5
  store ptr %16, ptr %49, align 8, !tbaa !5
  store ptr %17, ptr %50, align 8, !tbaa !5
  store ptr %18, ptr %51, align 8, !tbaa !5
  store ptr %19, ptr %52, align 8, !tbaa !5
  store ptr %20, ptr %53, align 8, !tbaa !5
  store ptr %21, ptr %54, align 8, !tbaa !5
  store ptr %22, ptr %55, align 8, !tbaa !5
  store ptr %23, ptr %56, align 8, !tbaa !5
  store ptr %24, ptr %57, align 8, !tbaa !5
  store ptr %25, ptr %58, align 8, !tbaa !5
  store ptr %26, ptr %59, align 8, !tbaa !5
  store ptr %27, ptr %60, align 8, !tbaa !5
  store ptr %28, ptr %61, align 8, !tbaa !5
  store ptr %29, ptr %62, align 8, !tbaa !5
  store ptr %30, ptr %63, align 8, !tbaa !5
  store i64 %31, ptr %64, align 8, !tbaa !9
  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 8, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.start.p0(i64 16, 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 8, 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 16, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 16, 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 8, ptr %103) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %105) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #3
  call void @llvm.lifetime.start.p0(i64 104, ptr %107) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #3
  %117 = load ptr, ptr %42, align 8, !tbaa !5
  %118 = getelementptr inbounds i64, ptr %117, i32 -1
  store ptr %118, ptr %42, align 8, !tbaa !5
  %119 = load ptr, ptr %44, align 8, !tbaa !5
  %120 = getelementptr inbounds i64, ptr %119, i32 -1
  store ptr %120, ptr %44, align 8, !tbaa !5
  %121 = load ptr, ptr %46, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.doublecomplex, ptr %121, i32 -1
  store ptr %122, ptr %46, align 8, !tbaa !5
  %123 = load ptr, ptr %48, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.doublecomplex, ptr %123, i32 -1
  store ptr %124, ptr %48, align 8, !tbaa !5
  %125 = load ptr, ptr %50, align 8, !tbaa !5
  %126 = getelementptr inbounds i64, ptr %125, i32 -1
  store ptr %126, ptr %50, align 8, !tbaa !5
  %127 = load ptr, ptr %63, align 8, !tbaa !5
  %128 = getelementptr inbounds double, ptr %127, i32 -1
  store ptr %128, ptr %63, align 8, !tbaa !5
  %129 = load ptr, ptr %62, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.doublecomplex, ptr %129, i32 -1
  store ptr %130, ptr %62, align 8, !tbaa !5
  %131 = load ptr, ptr %59, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.doublecomplex, ptr %131, i32 -1
  store ptr %132, ptr %59, align 8, !tbaa !5
  %133 = load ptr, ptr %56, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.doublecomplex, ptr %133, i32 -1
  store ptr %134, ptr %56, align 8, !tbaa !5
  %135 = load ptr, ptr %55, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.doublecomplex, ptr %135, i32 -1
  store ptr %136, ptr %55, align 8, !tbaa !5
  %137 = load ptr, ptr %54, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.doublecomplex, ptr %137, i32 -1
  store ptr %138, ptr %54, align 8, !tbaa !5
  %139 = load ptr, ptr %51, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  store i64 %140, ptr %65, align 8, !tbaa !9
  %141 = load i64, ptr %65, align 8, !tbaa !9
  %142 = add nsw i64 1, %141
  store i64 %142, ptr %66, align 8, !tbaa !9
  %143 = load i64, ptr %66, align 8, !tbaa !9
  %144 = load ptr, ptr %53, align 8, !tbaa !5
  %145 = sub i64 0, %143
  %146 = getelementptr inbounds %struct.doublecomplex, ptr %144, i64 %145
  store ptr %146, ptr %53, align 8, !tbaa !5
  %147 = load ptr, ptr %61, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.doublecomplex, ptr %147, i32 -1
  store ptr %148, ptr %61, align 8, !tbaa !5
  %149 = load ptr, ptr %60, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.doublecomplex, ptr %149, i32 -1
  store ptr %150, ptr %60, align 8, !tbaa !5
  %151 = load ptr, ptr %58, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.doublecomplex, ptr %151, i32 -1
  store ptr %152, ptr %58, align 8, !tbaa !5
  %153 = load ptr, ptr %57, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.doublecomplex, ptr %153, i32 -1
  store ptr %154, ptr %57, align 8, !tbaa !5
  %155 = load ptr, ptr %33, align 8, !tbaa !5
  %156 = getelementptr inbounds i8, ptr %155, i64 2
  %157 = load i8, ptr %156, align 1, !tbaa !11
  %158 = zext i8 %157 to i32
  %159 = icmp eq i32 %158, 69
  %160 = zext i1 %159 to i32
  %161 = sext i32 %160 to i64
  store i64 %161, ptr %103, align 8, !tbaa !9
  %162 = load ptr, ptr %33, align 8, !tbaa !5
  %163 = getelementptr inbounds i8, ptr %162, i64 2
  %164 = load i8, ptr %163, align 1, !tbaa !11
  %165 = zext i8 %164 to i32
  %166 = icmp eq i32 %165, 66
  %167 = zext i1 %166 to i32
  %168 = sext i32 %167 to i64
  store i64 %168, ptr %113, align 8, !tbaa !9
  %169 = load ptr, ptr %33, align 8, !tbaa !5
  %170 = getelementptr inbounds i8, ptr %169, i64 2
  %171 = load i8, ptr %170, align 1, !tbaa !11
  %172 = zext i8 %171 to i32
  %173 = icmp eq i32 %172, 80
  %174 = zext i1 %173 to i32
  %175 = sext i32 %174 to i64
  store i64 %175, ptr %114, align 8, !tbaa !9
  %176 = load i64, ptr %103, align 8, !tbaa !9
  %177 = icmp ne i64 %176, 0
  br i1 %177, label %178, label %179

178:                                              ; preds = %32
  store i64 10, ptr %108, align 8, !tbaa !9
  br label %189

179:                                              ; preds = %32
  %180 = load i64, ptr %113, align 8, !tbaa !9
  %181 = icmp ne i64 %180, 0
  br i1 %181, label %182, label %183

182:                                              ; preds = %179
  store i64 11, ptr %108, align 8, !tbaa !9
  br label %188

183:                                              ; preds = %179
  %184 = load i64, ptr %114, align 8, !tbaa !9
  %185 = icmp ne i64 %184, 0
  br i1 %185, label %186, label %187

186:                                              ; preds = %183
  store i64 9, ptr %108, align 8, !tbaa !9
  br label %187

187:                                              ; preds = %186, %183
  br label %188

188:                                              ; preds = %187, %182
  br label %189

189:                                              ; preds = %188, %178
  store i64 0, ptr %83, align 8, !tbaa !9
  store i64 1, ptr %109, align 8, !tbaa !9
  store double 0.000000e+00, ptr %115, align 8, !tbaa !12
  %190 = load ptr, ptr %41, align 8, !tbaa !5
  %191 = load i64, ptr %190, align 8, !tbaa !9
  store i64 %191, ptr %67, align 8, !tbaa !9
  store i64 1, ptr %85, align 8, !tbaa !9
  br label %192

192:                                              ; preds = %1086, %189
  %193 = load i64, ptr %85, align 8, !tbaa !9
  %194 = load i64, ptr %67, align 8, !tbaa !9
  %195 = icmp sle i64 %193, %194
  br i1 %195, label %196, label %1089

196:                                              ; preds = %192
  %197 = load ptr, ptr %42, align 8, !tbaa !5
  %198 = load i64, ptr %85, align 8, !tbaa !9
  %199 = getelementptr inbounds i64, ptr %197, i64 %198
  %200 = load i64, ptr %199, align 8, !tbaa !9
  store i64 %200, ptr %79, align 8, !tbaa !9
  %201 = load i64, ptr %113, align 8, !tbaa !9
  %202 = icmp ne i64 %201, 0
  br i1 %202, label %203, label %206

203:                                              ; preds = %196
  %204 = load ptr, ptr %43, align 8, !tbaa !5
  %205 = load i64, ptr %204, align 8, !tbaa !9
  store i64 %205, ptr %86, align 8, !tbaa !9
  br label %207

206:                                              ; preds = %196
  store i64 1, ptr %86, align 8, !tbaa !9
  br label %207

207:                                              ; preds = %206, %203
  %208 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %208, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %209

209:                                              ; preds = %1081, %207
  %210 = load i64, ptr %84, align 8, !tbaa !9
  %211 = load i64, ptr %68, align 8, !tbaa !9
  %212 = icmp sle i64 %210, %211
  br i1 %212, label %213, label %1084

213:                                              ; preds = %209
  %214 = load i64, ptr %113, align 8, !tbaa !9
  %215 = icmp ne i64 %214, 0
  br i1 %215, label %216, label %221

216:                                              ; preds = %213
  %217 = load ptr, ptr %44, align 8, !tbaa !5
  %218 = load i64, ptr %84, align 8, !tbaa !9
  %219 = getelementptr inbounds i64, ptr %217, i64 %218
  %220 = load i64, ptr %219, align 8, !tbaa !9
  store i64 %220, ptr %78, align 8, !tbaa !9
  br label %224

221:                                              ; preds = %213
  %222 = load i64, ptr %79, align 8, !tbaa !9
  %223 = sub nsw i64 %222, 1
  store i64 %223, ptr %78, align 8, !tbaa !9
  br label %224

224:                                              ; preds = %221, %216
  %225 = load i64, ptr %113, align 8, !tbaa !9
  %226 = icmp ne i64 %225, 0
  br i1 %226, label %227, label %230

227:                                              ; preds = %224
  %228 = load i64, ptr %78, align 8, !tbaa !9
  %229 = add nsw i64 %228, 1
  store i64 %229, ptr %94, align 8, !tbaa !9
  br label %232

230:                                              ; preds = %224
  %231 = load i64, ptr %79, align 8, !tbaa !9
  store i64 %231, ptr %94, align 8, !tbaa !9
  br label %232

232:                                              ; preds = %230, %227
  %233 = load i64, ptr %94, align 8, !tbaa !9
  %234 = load ptr, ptr %51, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  %236 = icmp slt i64 %233, %235
  br i1 %236, label %237, label %240

237:                                              ; preds = %232
  %238 = load i64, ptr %94, align 8, !tbaa !9
  %239 = add nsw i64 %238, 1
  store i64 %239, ptr %94, align 8, !tbaa !9
  br label %240

240:                                              ; preds = %237, %232
  %241 = load i64, ptr %94, align 8, !tbaa !9
  %242 = load ptr, ptr %51, align 8, !tbaa !5
  %243 = load i64, ptr %242, align 8, !tbaa !9
  %244 = icmp sgt i64 %241, %243
  br i1 %244, label %245, label %246

245:                                              ; preds = %240
  br label %1080

246:                                              ; preds = %240
  %247 = load i64, ptr %114, align 8, !tbaa !9
  %248 = icmp ne i64 %247, 0
  br i1 %248, label %249, label %255

249:                                              ; preds = %246
  %250 = load i64, ptr %79, align 8, !tbaa !9
  %251 = load i64, ptr %79, align 8, !tbaa !9
  %252 = add nsw i64 %251, 1
  %253 = mul nsw i64 %250, %252
  %254 = sdiv i64 %253, 2
  store i64 %254, ptr %93, align 8, !tbaa !9
  br label %259

255:                                              ; preds = %246
  %256 = load i64, ptr %94, align 8, !tbaa !9
  %257 = load i64, ptr %79, align 8, !tbaa !9
  %258 = mul nsw i64 %256, %257
  store i64 %258, ptr %93, align 8, !tbaa !9
  br label %259

259:                                              ; preds = %255, %249
  %260 = load i64, ptr %79, align 8, !tbaa !9
  %261 = icmp sle i64 %260, 0
  %262 = zext i1 %261 to i32
  %263 = sext i32 %262 to i64
  store i64 %263, ptr %104, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %264

264:                                              ; preds = %1076, %259
  %265 = load i64, ptr %82, align 8, !tbaa !9
  %266 = icmp sle i64 %265, 2
  br i1 %266, label %267, label %1079

267:                                              ; preds = %264
  %268 = load i64, ptr %82, align 8, !tbaa !9
  %269 = sub nsw i64 %268, 1
  %270 = getelementptr inbounds [2 x i8], ptr @zchk2_.ich, i64 0, i64 %269
  %271 = load i8, ptr %270, align 1, !tbaa !11
  %272 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  store i8 %271, ptr %272, align 1, !tbaa !11
  %273 = getelementptr inbounds %struct.doublecomplex, ptr %116, i32 0, i32 0
  store double 0.000000e+00, ptr %273, align 8, !tbaa !14
  %274 = getelementptr inbounds %struct.doublecomplex, ptr %116, i32 0, i32 1
  store double 0.000000e+00, ptr %274, align 8, !tbaa !16
  %275 = load ptr, ptr %33, align 8, !tbaa !5
  %276 = getelementptr inbounds i8, ptr %275, i64 1
  %277 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %278 = load ptr, ptr %53, align 8, !tbaa !5
  %279 = load i64, ptr %66, align 8, !tbaa !9
  %280 = getelementptr inbounds %struct.doublecomplex, ptr %278, i64 %279
  %281 = load ptr, ptr %51, align 8, !tbaa !5
  %282 = load ptr, ptr %54, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.doublecomplex, ptr %282, i64 1
  %284 = call i32 @zmake_(ptr noundef %276, ptr noundef %277, ptr noundef @.str.7, ptr noundef %79, ptr noundef %79, ptr noundef %280, ptr noundef %281, ptr noundef %283, ptr noundef %94, ptr noundef %78, ptr noundef %78, ptr noundef %109, ptr noundef %116, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %285 = load ptr, ptr %49, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  store i64 %286, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %88, align 8, !tbaa !9
  br label %287

287:                                              ; preds = %1072, %267
  %288 = load i64, ptr %88, align 8, !tbaa !9
  %289 = load i64, ptr %69, align 8, !tbaa !9
  %290 = icmp sle i64 %288, %289
  br i1 %290, label %291, label %1075

291:                                              ; preds = %287
  %292 = load ptr, ptr %50, align 8, !tbaa !5
  %293 = load i64, ptr %88, align 8, !tbaa !9
  %294 = getelementptr inbounds i64, ptr %292, i64 %293
  %295 = load i64, ptr %294, align 8, !tbaa !9
  store i64 %295, ptr %101, align 8, !tbaa !9
  %296 = load i64, ptr %101, align 8, !tbaa !9
  %297 = icmp sge i64 %296, 0
  br i1 %297, label %298, label %300

298:                                              ; preds = %291
  %299 = load i64, ptr %101, align 8, !tbaa !9
  br label %303

300:                                              ; preds = %291
  %301 = load i64, ptr %101, align 8, !tbaa !9
  %302 = sub nsw i64 0, %301
  br label %303

303:                                              ; preds = %300, %298
  %304 = phi i64 [ %299, %298 ], [ %302, %300 ]
  %305 = load i64, ptr %79, align 8, !tbaa !9
  %306 = mul nsw i64 %304, %305
  store i64 %306, ptr %91, align 8, !tbaa !9
  %307 = getelementptr inbounds %struct.doublecomplex, ptr %116, i32 0, i32 0
  store double 5.000000e-01, ptr %307, align 8, !tbaa !14
  %308 = getelementptr inbounds %struct.doublecomplex, ptr %116, i32 0, i32 1
  store double 0.000000e+00, ptr %308, align 8, !tbaa !16
  %309 = load i64, ptr %101, align 8, !tbaa !9
  %310 = icmp sge i64 %309, 0
  br i1 %310, label %311, label %313

311:                                              ; preds = %303
  %312 = load i64, ptr %101, align 8, !tbaa !9
  br label %316

313:                                              ; preds = %303
  %314 = load i64, ptr %101, align 8, !tbaa !9
  %315 = sub nsw i64 0, %314
  br label %316

316:                                              ; preds = %313, %311
  %317 = phi i64 [ %312, %311 ], [ %315, %313 ]
  store i64 %317, ptr %70, align 8, !tbaa !9
  %318 = load i64, ptr %79, align 8, !tbaa !9
  %319 = sub nsw i64 %318, 1
  store i64 %319, ptr %71, align 8, !tbaa !9
  %320 = load ptr, ptr %56, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.doublecomplex, ptr %320, i64 1
  %322 = load ptr, ptr %57, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.doublecomplex, ptr %322, i64 1
  %324 = call i32 @zmake_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %79, ptr noundef %321, ptr noundef @c__1, ptr noundef %323, ptr noundef %70, ptr noundef @c__0, ptr noundef %71, ptr noundef %109, ptr noundef %116, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %325 = load i64, ptr %79, align 8, !tbaa !9
  %326 = icmp sgt i64 %325, 1
  br i1 %326, label %327, label %360

327:                                              ; preds = %316
  %328 = load i64, ptr %79, align 8, !tbaa !9
  %329 = sdiv i64 %328, 2
  store i64 %329, ptr %70, align 8, !tbaa !9
  %330 = load ptr, ptr %56, align 8, !tbaa !5
  %331 = load i64, ptr %70, align 8, !tbaa !9
  %332 = getelementptr inbounds %struct.doublecomplex, ptr %330, i64 %331
  %333 = getelementptr inbounds %struct.doublecomplex, ptr %332, i32 0, i32 0
  store double 0.000000e+00, ptr %333, align 8, !tbaa !14
  %334 = load ptr, ptr %56, align 8, !tbaa !5
  %335 = load i64, ptr %70, align 8, !tbaa !9
  %336 = getelementptr inbounds %struct.doublecomplex, ptr %334, i64 %335
  %337 = getelementptr inbounds %struct.doublecomplex, ptr %336, i32 0, i32 1
  store double 0.000000e+00, ptr %337, align 8, !tbaa !16
  %338 = load i64, ptr %101, align 8, !tbaa !9
  %339 = icmp sge i64 %338, 0
  br i1 %339, label %340, label %342

340:                                              ; preds = %327
  %341 = load i64, ptr %101, align 8, !tbaa !9
  br label %345

342:                                              ; preds = %327
  %343 = load i64, ptr %101, align 8, !tbaa !9
  %344 = sub nsw i64 0, %343
  br label %345

345:                                              ; preds = %342, %340
  %346 = phi i64 [ %341, %340 ], [ %344, %342 ]
  %347 = load i64, ptr %79, align 8, !tbaa !9
  %348 = sdiv i64 %347, 2
  %349 = sub nsw i64 %348, 1
  %350 = mul nsw i64 %346, %349
  %351 = add nsw i64 %350, 1
  store i64 %351, ptr %70, align 8, !tbaa !9
  %352 = load ptr, ptr %57, align 8, !tbaa !5
  %353 = load i64, ptr %70, align 8, !tbaa !9
  %354 = getelementptr inbounds %struct.doublecomplex, ptr %352, i64 %353
  %355 = getelementptr inbounds %struct.doublecomplex, ptr %354, i32 0, i32 0
  store double 0.000000e+00, ptr %355, align 8, !tbaa !14
  %356 = load ptr, ptr %57, align 8, !tbaa !5
  %357 = load i64, ptr %70, align 8, !tbaa !9
  %358 = getelementptr inbounds %struct.doublecomplex, ptr %356, i64 %357
  %359 = getelementptr inbounds %struct.doublecomplex, ptr %358, i32 0, i32 1
  store double 0.000000e+00, ptr %359, align 8, !tbaa !16
  br label %360

360:                                              ; preds = %345, %316
  %361 = load ptr, ptr %49, align 8, !tbaa !5
  %362 = load i64, ptr %361, align 8, !tbaa !9
  store i64 %362, ptr %70, align 8, !tbaa !9
  store i64 1, ptr %89, align 8, !tbaa !9
  br label %363

363:                                              ; preds = %1068, %360
  %364 = load i64, ptr %89, align 8, !tbaa !9
  %365 = load i64, ptr %70, align 8, !tbaa !9
  %366 = icmp sle i64 %364, %365
  br i1 %366, label %367, label %1071

367:                                              ; preds = %363
  %368 = load ptr, ptr %50, align 8, !tbaa !5
  %369 = load i64, ptr %89, align 8, !tbaa !9
  %370 = getelementptr inbounds i64, ptr %368, i64 %369
  %371 = load i64, ptr %370, align 8, !tbaa !9
  store i64 %371, ptr %102, align 8, !tbaa !9
  %372 = load i64, ptr %102, align 8, !tbaa !9
  %373 = icmp sge i64 %372, 0
  br i1 %373, label %374, label %376

374:                                              ; preds = %367
  %375 = load i64, ptr %102, align 8, !tbaa !9
  br label %379

376:                                              ; preds = %367
  %377 = load i64, ptr %102, align 8, !tbaa !9
  %378 = sub nsw i64 0, %377
  br label %379

379:                                              ; preds = %376, %374
  %380 = phi i64 [ %375, %374 ], [ %378, %376 ]
  %381 = load i64, ptr %79, align 8, !tbaa !9
  %382 = mul nsw i64 %380, %381
  store i64 %382, ptr %92, align 8, !tbaa !9
  %383 = load ptr, ptr %45, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  store i64 %384, ptr %71, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %385

385:                                              ; preds = %1064, %379
  %386 = load i64, ptr %80, align 8, !tbaa !9
  %387 = load i64, ptr %71, align 8, !tbaa !9
  %388 = icmp sle i64 %386, %387
  br i1 %388, label %389, label %1067

389:                                              ; preds = %385
  %390 = load i64, ptr %80, align 8, !tbaa !9
  store i64 %390, ptr %72, align 8, !tbaa !9
  %391 = load ptr, ptr %46, align 8, !tbaa !5
  %392 = load i64, ptr %72, align 8, !tbaa !9
  %393 = getelementptr inbounds %struct.doublecomplex, ptr %391, i64 %392
  %394 = getelementptr inbounds %struct.doublecomplex, ptr %393, i32 0, i32 0
  %395 = load double, ptr %394, align 8, !tbaa !14
  %396 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 0
  store double %395, ptr %396, align 8, !tbaa !14
  %397 = load ptr, ptr %46, align 8, !tbaa !5
  %398 = load i64, ptr %72, align 8, !tbaa !9
  %399 = getelementptr inbounds %struct.doublecomplex, ptr %397, i64 %398
  %400 = getelementptr inbounds %struct.doublecomplex, ptr %399, i32 0, i32 1
  %401 = load double, ptr %400, align 8, !tbaa !16
  %402 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 1
  store double %401, ptr %402, align 8, !tbaa !16
  %403 = load ptr, ptr %47, align 8, !tbaa !5
  %404 = load i64, ptr %403, align 8, !tbaa !9
  store i64 %404, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %81, align 8, !tbaa !9
  br label %405

405:                                              ; preds = %1060, %389
  %406 = load i64, ptr %81, align 8, !tbaa !9
  %407 = load i64, ptr %72, align 8, !tbaa !9
  %408 = icmp sle i64 %406, %407
  br i1 %408, label %409, label %1063

409:                                              ; preds = %405
  %410 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %410, ptr %73, align 8, !tbaa !9
  %411 = load ptr, ptr %48, align 8, !tbaa !5
  %412 = load i64, ptr %73, align 8, !tbaa !9
  %413 = getelementptr inbounds %struct.doublecomplex, ptr %411, i64 %412
  %414 = getelementptr inbounds %struct.doublecomplex, ptr %413, i32 0, i32 0
  %415 = load double, ptr %414, align 8, !tbaa !14
  %416 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 0
  store double %415, ptr %416, align 8, !tbaa !14
  %417 = load ptr, ptr %48, align 8, !tbaa !5
  %418 = load i64, ptr %73, align 8, !tbaa !9
  %419 = getelementptr inbounds %struct.doublecomplex, ptr %417, i64 %418
  %420 = getelementptr inbounds %struct.doublecomplex, ptr %419, i32 0, i32 1
  %421 = load double, ptr %420, align 8, !tbaa !16
  %422 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 1
  store double %421, ptr %422, align 8, !tbaa !16
  %423 = getelementptr inbounds %struct.doublecomplex, ptr %116, i32 0, i32 0
  store double 0.000000e+00, ptr %423, align 8, !tbaa !14
  %424 = getelementptr inbounds %struct.doublecomplex, ptr %116, i32 0, i32 1
  store double 0.000000e+00, ptr %424, align 8, !tbaa !16
  %425 = load i64, ptr %102, align 8, !tbaa !9
  %426 = icmp sge i64 %425, 0
  br i1 %426, label %427, label %429

427:                                              ; preds = %409
  %428 = load i64, ptr %102, align 8, !tbaa !9
  br label %432

429:                                              ; preds = %409
  %430 = load i64, ptr %102, align 8, !tbaa !9
  %431 = sub nsw i64 0, %430
  br label %432

432:                                              ; preds = %429, %427
  %433 = phi i64 [ %428, %427 ], [ %431, %429 ]
  store i64 %433, ptr %73, align 8, !tbaa !9
  %434 = load i64, ptr %79, align 8, !tbaa !9
  %435 = sub nsw i64 %434, 1
  store i64 %435, ptr %74, align 8, !tbaa !9
  %436 = load ptr, ptr %59, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.doublecomplex, ptr %436, i64 1
  %438 = load ptr, ptr %60, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.doublecomplex, ptr %438, i64 1
  %440 = call i32 @zmake_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %79, ptr noundef %437, ptr noundef @c__1, ptr noundef %439, ptr noundef %73, ptr noundef @c__0, ptr noundef %74, ptr noundef %109, ptr noundef %116, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %441 = load i64, ptr %83, align 8, !tbaa !9
  %442 = add nsw i64 %441, 1
  store i64 %442, ptr %83, align 8, !tbaa !9
  %443 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %444 = load i8, ptr %443, align 1, !tbaa !11
  %445 = getelementptr inbounds [1 x i8], ptr %112, i64 0, i64 0
  store i8 %444, ptr %445, align 1, !tbaa !11
  %446 = load i64, ptr %79, align 8, !tbaa !9
  store i64 %446, ptr %90, align 8, !tbaa !9
  %447 = load i64, ptr %78, align 8, !tbaa !9
  store i64 %447, ptr %87, align 8, !tbaa !9
  %448 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 0
  %449 = load double, ptr %448, align 8, !tbaa !14
  %450 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  store double %449, ptr %450, align 8, !tbaa !14
  %451 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 1
  %452 = load double, ptr %451, align 8, !tbaa !16
  %453 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 1
  store double %452, ptr %453, align 8, !tbaa !16
  %454 = load i64, ptr %93, align 8, !tbaa !9
  store i64 %454, ptr %73, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %455

455:                                              ; preds = %480, %432
  %456 = load i64, ptr %77, align 8, !tbaa !9
  %457 = load i64, ptr %73, align 8, !tbaa !9
  %458 = icmp sle i64 %456, %457
  br i1 %458, label %459, label %483

459:                                              ; preds = %455
  %460 = load i64, ptr %77, align 8, !tbaa !9
  store i64 %460, ptr %74, align 8, !tbaa !9
  %461 = load i64, ptr %77, align 8, !tbaa !9
  store i64 %461, ptr %75, align 8, !tbaa !9
  %462 = load ptr, ptr %54, align 8, !tbaa !5
  %463 = load i64, ptr %75, align 8, !tbaa !9
  %464 = getelementptr inbounds %struct.doublecomplex, ptr %462, i64 %463
  %465 = getelementptr inbounds %struct.doublecomplex, ptr %464, i32 0, i32 0
  %466 = load double, ptr %465, align 8, !tbaa !14
  %467 = load ptr, ptr %55, align 8, !tbaa !5
  %468 = load i64, ptr %74, align 8, !tbaa !9
  %469 = getelementptr inbounds %struct.doublecomplex, ptr %467, i64 %468
  %470 = getelementptr inbounds %struct.doublecomplex, ptr %469, i32 0, i32 0
  store double %466, ptr %470, align 8, !tbaa !14
  %471 = load ptr, ptr %54, align 8, !tbaa !5
  %472 = load i64, ptr %75, align 8, !tbaa !9
  %473 = getelementptr inbounds %struct.doublecomplex, ptr %471, i64 %472
  %474 = getelementptr inbounds %struct.doublecomplex, ptr %473, i32 0, i32 1
  %475 = load double, ptr %474, align 8, !tbaa !16
  %476 = load ptr, ptr %55, align 8, !tbaa !5
  %477 = load i64, ptr %74, align 8, !tbaa !9
  %478 = getelementptr inbounds %struct.doublecomplex, ptr %476, i64 %477
  %479 = getelementptr inbounds %struct.doublecomplex, ptr %478, i32 0, i32 1
  store double %475, ptr %479, align 8, !tbaa !16
  br label %480

480:                                              ; preds = %459
  %481 = load i64, ptr %77, align 8, !tbaa !9
  %482 = add nsw i64 %481, 1
  store i64 %482, ptr %77, align 8, !tbaa !9
  br label %455, !llvm.loop !17

483:                                              ; preds = %455
  %484 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %484, ptr %99, align 8, !tbaa !9
  %485 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %485, ptr %73, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %486

486:                                              ; preds = %511, %483
  %487 = load i64, ptr %77, align 8, !tbaa !9
  %488 = load i64, ptr %73, align 8, !tbaa !9
  %489 = icmp sle i64 %487, %488
  br i1 %489, label %490, label %514

490:                                              ; preds = %486
  %491 = load i64, ptr %77, align 8, !tbaa !9
  store i64 %491, ptr %74, align 8, !tbaa !9
  %492 = load i64, ptr %77, align 8, !tbaa !9
  store i64 %492, ptr %75, align 8, !tbaa !9
  %493 = load ptr, ptr %57, align 8, !tbaa !5
  %494 = load i64, ptr %75, align 8, !tbaa !9
  %495 = getelementptr inbounds %struct.doublecomplex, ptr %493, i64 %494
  %496 = getelementptr inbounds %struct.doublecomplex, ptr %495, i32 0, i32 0
  %497 = load double, ptr %496, align 8, !tbaa !14
  %498 = load ptr, ptr %58, align 8, !tbaa !5
  %499 = load i64, ptr %74, align 8, !tbaa !9
  %500 = getelementptr inbounds %struct.doublecomplex, ptr %498, i64 %499
  %501 = getelementptr inbounds %struct.doublecomplex, ptr %500, i32 0, i32 0
  store double %497, ptr %501, align 8, !tbaa !14
  %502 = load ptr, ptr %57, align 8, !tbaa !5
  %503 = load i64, ptr %75, align 8, !tbaa !9
  %504 = getelementptr inbounds %struct.doublecomplex, ptr %502, i64 %503
  %505 = getelementptr inbounds %struct.doublecomplex, ptr %504, i32 0, i32 1
  %506 = load double, ptr %505, align 8, !tbaa !16
  %507 = load ptr, ptr %58, align 8, !tbaa !5
  %508 = load i64, ptr %74, align 8, !tbaa !9
  %509 = getelementptr inbounds %struct.doublecomplex, ptr %507, i64 %508
  %510 = getelementptr inbounds %struct.doublecomplex, ptr %509, i32 0, i32 1
  store double %506, ptr %510, align 8, !tbaa !16
  br label %511

511:                                              ; preds = %490
  %512 = load i64, ptr %77, align 8, !tbaa !9
  %513 = add nsw i64 %512, 1
  store i64 %513, ptr %77, align 8, !tbaa !9
  br label %486, !llvm.loop !19

514:                                              ; preds = %486
  %515 = load i64, ptr %101, align 8, !tbaa !9
  store i64 %515, ptr %110, align 8, !tbaa !9
  %516 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 0
  %517 = load double, ptr %516, align 8, !tbaa !14
  %518 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  store double %517, ptr %518, align 8, !tbaa !14
  %519 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 1
  %520 = load double, ptr %519, align 8, !tbaa !16
  %521 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  store double %520, ptr %521, align 8, !tbaa !16
  %522 = load i64, ptr %92, align 8, !tbaa !9
  store i64 %522, ptr %73, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %523

523:                                              ; preds = %548, %514
  %524 = load i64, ptr %77, align 8, !tbaa !9
  %525 = load i64, ptr %73, align 8, !tbaa !9
  %526 = icmp sle i64 %524, %525
  br i1 %526, label %527, label %551

527:                                              ; preds = %523
  %528 = load i64, ptr %77, align 8, !tbaa !9
  store i64 %528, ptr %74, align 8, !tbaa !9
  %529 = load i64, ptr %77, align 8, !tbaa !9
  store i64 %529, ptr %75, align 8, !tbaa !9
  %530 = load ptr, ptr %60, align 8, !tbaa !5
  %531 = load i64, ptr %75, align 8, !tbaa !9
  %532 = getelementptr inbounds %struct.doublecomplex, ptr %530, i64 %531
  %533 = getelementptr inbounds %struct.doublecomplex, ptr %532, i32 0, i32 0
  %534 = load double, ptr %533, align 8, !tbaa !14
  %535 = load ptr, ptr %61, align 8, !tbaa !5
  %536 = load i64, ptr %74, align 8, !tbaa !9
  %537 = getelementptr inbounds %struct.doublecomplex, ptr %535, i64 %536
  %538 = getelementptr inbounds %struct.doublecomplex, ptr %537, i32 0, i32 0
  store double %534, ptr %538, align 8, !tbaa !14
  %539 = load ptr, ptr %60, align 8, !tbaa !5
  %540 = load i64, ptr %75, align 8, !tbaa !9
  %541 = getelementptr inbounds %struct.doublecomplex, ptr %539, i64 %540
  %542 = getelementptr inbounds %struct.doublecomplex, ptr %541, i32 0, i32 1
  %543 = load double, ptr %542, align 8, !tbaa !16
  %544 = load ptr, ptr %61, align 8, !tbaa !5
  %545 = load i64, ptr %74, align 8, !tbaa !9
  %546 = getelementptr inbounds %struct.doublecomplex, ptr %544, i64 %545
  %547 = getelementptr inbounds %struct.doublecomplex, ptr %546, i32 0, i32 1
  store double %543, ptr %547, align 8, !tbaa !16
  br label %548

548:                                              ; preds = %527
  %549 = load i64, ptr %77, align 8, !tbaa !9
  %550 = add nsw i64 %549, 1
  store i64 %550, ptr %77, align 8, !tbaa !9
  br label %523, !llvm.loop !20

551:                                              ; preds = %523
  %552 = load i64, ptr %102, align 8, !tbaa !9
  store i64 %552, ptr %111, align 8, !tbaa !9
  %553 = load i64, ptr %103, align 8, !tbaa !9
  %554 = icmp ne i64 %553, 0
  br i1 %554, label %555, label %594

555:                                              ; preds = %551
  %556 = load ptr, ptr %38, align 8, !tbaa !5
  %557 = load i64, ptr %556, align 8, !tbaa !9
  %558 = icmp ne i64 %557, 0
  br i1 %558, label %559, label %575

559:                                              ; preds = %555
  %560 = load ptr, ptr %37, align 8, !tbaa !5
  %561 = load i64, ptr %560, align 8, !tbaa !9
  store i64 %561, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___189, i32 0, i32 1), align 8, !tbaa !21
  %562 = call i64 @s_wsfe(ptr noundef @zchk2_.io___189)
  %563 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %83, i64 noundef 8)
  %564 = load ptr, ptr %33, align 8, !tbaa !5
  %565 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %564, i64 noundef 6)
  %566 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %567 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %566, i64 noundef 1)
  %568 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %79, i64 noundef 8)
  %569 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %106, i64 noundef 8)
  %570 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %571 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %101, i64 noundef 8)
  %572 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %98, i64 noundef 8)
  %573 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %574 = call i64 @e_wsfe()
  br label %575

575:                                              ; preds = %559, %555
  %576 = load ptr, ptr %39, align 8, !tbaa !5
  %577 = load i64, ptr %576, align 8, !tbaa !9
  %578 = icmp ne i64 %577, 0
  br i1 %578, label %579, label %585

579:                                              ; preds = %575
  %580 = getelementptr inbounds %struct.alist, ptr %76, i32 0, i32 0
  store i64 0, ptr %580, align 8, !tbaa !23
  %581 = load ptr, ptr %37, align 8, !tbaa !5
  %582 = load i64, ptr %581, align 8, !tbaa !9
  %583 = getelementptr inbounds %struct.alist, ptr %76, i32 0, i32 1
  store i64 %582, ptr %583, align 8, !tbaa !25
  %584 = call i64 @f_rew(ptr noundef %76)
  br label %585

585:                                              ; preds = %579, %575
  %586 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %587 = load ptr, ptr %54, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.doublecomplex, ptr %587, i64 1
  %589 = load ptr, ptr %57, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.doublecomplex, ptr %589, i64 1
  %591 = load ptr, ptr %60, align 8, !tbaa !5
  %592 = getelementptr inbounds %struct.doublecomplex, ptr %591, i64 1
  %593 = call i32 @f2c_zhemv(ptr noundef %586, ptr noundef %79, ptr noundef %106, ptr noundef %588, ptr noundef %94, ptr noundef %590, ptr noundef %101, ptr noundef %98, ptr noundef %592, ptr noundef %102)
  br label %680

594:                                              ; preds = %551
  %595 = load i64, ptr %113, align 8, !tbaa !9
  %596 = icmp ne i64 %595, 0
  br i1 %596, label %597, label %637

597:                                              ; preds = %594
  %598 = load ptr, ptr %38, align 8, !tbaa !5
  %599 = load i64, ptr %598, align 8, !tbaa !9
  %600 = icmp ne i64 %599, 0
  br i1 %600, label %601, label %618

601:                                              ; preds = %597
  %602 = load ptr, ptr %37, align 8, !tbaa !5
  %603 = load i64, ptr %602, align 8, !tbaa !9
  store i64 %603, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___190, i32 0, i32 1), align 8, !tbaa !21
  %604 = call i64 @s_wsfe(ptr noundef @zchk2_.io___190)
  %605 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %83, i64 noundef 8)
  %606 = load ptr, ptr %33, align 8, !tbaa !5
  %607 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %606, i64 noundef 6)
  %608 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %609 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %608, i64 noundef 1)
  %610 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %79, i64 noundef 8)
  %611 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %78, i64 noundef 8)
  %612 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %106, i64 noundef 8)
  %613 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %614 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %101, i64 noundef 8)
  %615 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %98, i64 noundef 8)
  %616 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %617 = call i64 @e_wsfe()
  br label %618

618:                                              ; preds = %601, %597
  %619 = load ptr, ptr %39, align 8, !tbaa !5
  %620 = load i64, ptr %619, align 8, !tbaa !9
  %621 = icmp ne i64 %620, 0
  br i1 %621, label %622, label %628

622:                                              ; preds = %618
  %623 = getelementptr inbounds %struct.alist, ptr %76, i32 0, i32 0
  store i64 0, ptr %623, align 8, !tbaa !23
  %624 = load ptr, ptr %37, align 8, !tbaa !5
  %625 = load i64, ptr %624, align 8, !tbaa !9
  %626 = getelementptr inbounds %struct.alist, ptr %76, i32 0, i32 1
  store i64 %625, ptr %626, align 8, !tbaa !25
  %627 = call i64 @f_rew(ptr noundef %76)
  br label %628

628:                                              ; preds = %622, %618
  %629 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %630 = load ptr, ptr %54, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.doublecomplex, ptr %630, i64 1
  %632 = load ptr, ptr %57, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.doublecomplex, ptr %632, i64 1
  %634 = load ptr, ptr %60, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.doublecomplex, ptr %634, i64 1
  %636 = call i32 @f2c_zhbmv(ptr noundef %629, ptr noundef %79, ptr noundef %78, ptr noundef %106, ptr noundef %631, ptr noundef %94, ptr noundef %633, ptr noundef %101, ptr noundef %98, ptr noundef %635, ptr noundef %102)
  br label %679

637:                                              ; preds = %594
  %638 = load i64, ptr %114, align 8, !tbaa !9
  %639 = icmp ne i64 %638, 0
  br i1 %639, label %640, label %678

640:                                              ; preds = %637
  %641 = load ptr, ptr %38, align 8, !tbaa !5
  %642 = load i64, ptr %641, align 8, !tbaa !9
  %643 = icmp ne i64 %642, 0
  br i1 %643, label %644, label %659

644:                                              ; preds = %640
  %645 = load ptr, ptr %37, align 8, !tbaa !5
  %646 = load i64, ptr %645, align 8, !tbaa !9
  store i64 %646, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___191, i32 0, i32 1), align 8, !tbaa !21
  %647 = call i64 @s_wsfe(ptr noundef @zchk2_.io___191)
  %648 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %83, i64 noundef 8)
  %649 = load ptr, ptr %33, align 8, !tbaa !5
  %650 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %649, i64 noundef 6)
  %651 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %652 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %651, i64 noundef 1)
  %653 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %79, i64 noundef 8)
  %654 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %106, i64 noundef 8)
  %655 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %101, i64 noundef 8)
  %656 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %98, i64 noundef 8)
  %657 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %658 = call i64 @e_wsfe()
  br label %659

659:                                              ; preds = %644, %640
  %660 = load ptr, ptr %39, align 8, !tbaa !5
  %661 = load i64, ptr %660, align 8, !tbaa !9
  %662 = icmp ne i64 %661, 0
  br i1 %662, label %663, label %669

663:                                              ; preds = %659
  %664 = getelementptr inbounds %struct.alist, ptr %76, i32 0, i32 0
  store i64 0, ptr %664, align 8, !tbaa !23
  %665 = load ptr, ptr %37, align 8, !tbaa !5
  %666 = load i64, ptr %665, align 8, !tbaa !9
  %667 = getelementptr inbounds %struct.alist, ptr %76, i32 0, i32 1
  store i64 %666, ptr %667, align 8, !tbaa !25
  %668 = call i64 @f_rew(ptr noundef %76)
  br label %669

669:                                              ; preds = %663, %659
  %670 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %671 = load ptr, ptr %54, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.doublecomplex, ptr %671, i64 1
  %673 = load ptr, ptr %57, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.doublecomplex, ptr %673, i64 1
  %675 = load ptr, ptr %60, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.doublecomplex, ptr %675, i64 1
  %677 = call i32 @f2c_zhpmv(ptr noundef %670, ptr noundef %79, ptr noundef %106, ptr noundef %672, ptr noundef %674, ptr noundef %101, ptr noundef %98, ptr noundef %676, ptr noundef %102)
  br label %678

678:                                              ; preds = %669, %637
  br label %679

679:                                              ; preds = %678, %628
  br label %680

680:                                              ; preds = %679, %585
  %681 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !11
  %682 = icmp ne i64 %681, 0
  br i1 %682, label %689, label %683

683:                                              ; preds = %680
  %684 = load ptr, ptr %36, align 8, !tbaa !5
  %685 = load i64, ptr %684, align 8, !tbaa !9
  store i64 %685, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___192, i32 0, i32 1), align 8, !tbaa !21
  %686 = call i64 @s_wsfe(ptr noundef @zchk2_.io___192)
  %687 = call i64 @e_wsfe()
  %688 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 1, ptr %688, align 8, !tbaa !9
  br label %1112

689:                                              ; preds = %680
  %690 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %691 = load i8, ptr %690, align 1, !tbaa !11
  %692 = zext i8 %691 to i32
  %693 = getelementptr inbounds [1 x i8], ptr %112, i64 0, i64 0
  %694 = load i8, ptr %693, align 1, !tbaa !11
  %695 = zext i8 %694 to i32
  %696 = icmp eq i32 %692, %695
  %697 = zext i1 %696 to i32
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 0
  store i64 %698, ptr %699, align 16, !tbaa !9
  %700 = load i64, ptr %90, align 8, !tbaa !9
  %701 = load i64, ptr %79, align 8, !tbaa !9
  %702 = icmp eq i64 %700, %701
  %703 = zext i1 %702 to i32
  %704 = sext i32 %703 to i64
  %705 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 1
  store i64 %704, ptr %705, align 8, !tbaa !9
  %706 = load i64, ptr %103, align 8, !tbaa !9
  %707 = icmp ne i64 %706, 0
  br i1 %707, label %708, label %797

708:                                              ; preds = %689
  %709 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  %710 = load double, ptr %709, align 8, !tbaa !14
  %711 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 0
  %712 = load double, ptr %711, align 8, !tbaa !14
  %713 = fcmp oeq double %710, %712
  br i1 %713, label %714, label %720

714:                                              ; preds = %708
  %715 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 1
  %716 = load double, ptr %715, align 8, !tbaa !16
  %717 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 1
  %718 = load double, ptr %717, align 8, !tbaa !16
  %719 = fcmp oeq double %716, %718
  br label %720

720:                                              ; preds = %714, %708
  %721 = phi i1 [ false, %708 ], [ %719, %714 ]
  %722 = zext i1 %721 to i32
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 2
  store i64 %723, ptr %724, align 16, !tbaa !9
  %725 = load ptr, ptr %55, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.doublecomplex, ptr %725, i64 1
  %727 = load ptr, ptr %54, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.doublecomplex, ptr %727, i64 1
  %729 = call i64 @lze_(ptr noundef %726, ptr noundef %728, ptr noundef %93)
  %730 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 3
  store i64 %729, ptr %730, align 8, !tbaa !9
  %731 = load i64, ptr %99, align 8, !tbaa !9
  %732 = load i64, ptr %94, align 8, !tbaa !9
  %733 = icmp eq i64 %731, %732
  %734 = zext i1 %733 to i32
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 4
  store i64 %735, ptr %736, align 16, !tbaa !9
  %737 = load ptr, ptr %58, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.doublecomplex, ptr %737, i64 1
  %739 = load ptr, ptr %57, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.doublecomplex, ptr %739, i64 1
  %741 = call i64 @lze_(ptr noundef %738, ptr noundef %740, ptr noundef %91)
  %742 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 5
  store i64 %741, ptr %742, align 8, !tbaa !9
  %743 = load i64, ptr %110, align 8, !tbaa !9
  %744 = load i64, ptr %101, align 8, !tbaa !9
  %745 = icmp eq i64 %743, %744
  %746 = zext i1 %745 to i32
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 6
  store i64 %747, ptr %748, align 16, !tbaa !9
  %749 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  %750 = load double, ptr %749, align 8, !tbaa !14
  %751 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 0
  %752 = load double, ptr %751, align 8, !tbaa !14
  %753 = fcmp oeq double %750, %752
  br i1 %753, label %754, label %760

754:                                              ; preds = %720
  %755 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  %756 = load double, ptr %755, align 8, !tbaa !16
  %757 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 1
  %758 = load double, ptr %757, align 8, !tbaa !16
  %759 = fcmp oeq double %756, %758
  br label %760

760:                                              ; preds = %754, %720
  %761 = phi i1 [ false, %720 ], [ %759, %754 ]
  %762 = zext i1 %761 to i32
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 7
  store i64 %763, ptr %764, align 8, !tbaa !9
  %765 = load i64, ptr %104, align 8, !tbaa !9
  %766 = icmp ne i64 %765, 0
  br i1 %766, label %767, label %774

767:                                              ; preds = %760
  %768 = load ptr, ptr %61, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.doublecomplex, ptr %768, i64 1
  %770 = load ptr, ptr %60, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.doublecomplex, ptr %770, i64 1
  %772 = call i64 @lze_(ptr noundef %769, ptr noundef %771, ptr noundef %92)
  %773 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 8
  store i64 %772, ptr %773, align 16, !tbaa !9
  br label %790

774:                                              ; preds = %760
  %775 = load i64, ptr %102, align 8, !tbaa !9
  %776 = icmp sge i64 %775, 0
  br i1 %776, label %777, label %779

777:                                              ; preds = %774
  %778 = load i64, ptr %102, align 8, !tbaa !9
  br label %782

779:                                              ; preds = %774
  %780 = load i64, ptr %102, align 8, !tbaa !9
  %781 = sub nsw i64 0, %780
  br label %782

782:                                              ; preds = %779, %777
  %783 = phi i64 [ %778, %777 ], [ %781, %779 ]
  store i64 %783, ptr %73, align 8, !tbaa !9
  %784 = load ptr, ptr %61, align 8, !tbaa !5
  %785 = getelementptr inbounds %struct.doublecomplex, ptr %784, i64 1
  %786 = load ptr, ptr %60, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.doublecomplex, ptr %786, i64 1
  %788 = call i64 @lzeres_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %79, ptr noundef %785, ptr noundef %787, ptr noundef %73, i64 noundef 2, i64 noundef 1)
  %789 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 8
  store i64 %788, ptr %789, align 16, !tbaa !9
  br label %790

790:                                              ; preds = %782, %767
  %791 = load i64, ptr %111, align 8, !tbaa !9
  %792 = load i64, ptr %102, align 8, !tbaa !9
  %793 = icmp eq i64 %791, %792
  %794 = zext i1 %793 to i32
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 9
  store i64 %795, ptr %796, align 8, !tbaa !9
  br label %983

797:                                              ; preds = %689
  %798 = load i64, ptr %113, align 8, !tbaa !9
  %799 = icmp ne i64 %798, 0
  br i1 %799, label %800, label %895

800:                                              ; preds = %797
  %801 = load i64, ptr %87, align 8, !tbaa !9
  %802 = load i64, ptr %78, align 8, !tbaa !9
  %803 = icmp eq i64 %801, %802
  %804 = zext i1 %803 to i32
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 2
  store i64 %805, ptr %806, align 16, !tbaa !9
  %807 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  %808 = load double, ptr %807, align 8, !tbaa !14
  %809 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 0
  %810 = load double, ptr %809, align 8, !tbaa !14
  %811 = fcmp oeq double %808, %810
  br i1 %811, label %812, label %818

812:                                              ; preds = %800
  %813 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 1
  %814 = load double, ptr %813, align 8, !tbaa !16
  %815 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 1
  %816 = load double, ptr %815, align 8, !tbaa !16
  %817 = fcmp oeq double %814, %816
  br label %818

818:                                              ; preds = %812, %800
  %819 = phi i1 [ false, %800 ], [ %817, %812 ]
  %820 = zext i1 %819 to i32
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 3
  store i64 %821, ptr %822, align 8, !tbaa !9
  %823 = load ptr, ptr %55, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.doublecomplex, ptr %823, i64 1
  %825 = load ptr, ptr %54, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.doublecomplex, ptr %825, i64 1
  %827 = call i64 @lze_(ptr noundef %824, ptr noundef %826, ptr noundef %93)
  %828 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 4
  store i64 %827, ptr %828, align 16, !tbaa !9
  %829 = load i64, ptr %99, align 8, !tbaa !9
  %830 = load i64, ptr %94, align 8, !tbaa !9
  %831 = icmp eq i64 %829, %830
  %832 = zext i1 %831 to i32
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 5
  store i64 %833, ptr %834, align 8, !tbaa !9
  %835 = load ptr, ptr %58, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.doublecomplex, ptr %835, i64 1
  %837 = load ptr, ptr %57, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.doublecomplex, ptr %837, i64 1
  %839 = call i64 @lze_(ptr noundef %836, ptr noundef %838, ptr noundef %91)
  %840 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 6
  store i64 %839, ptr %840, align 16, !tbaa !9
  %841 = load i64, ptr %110, align 8, !tbaa !9
  %842 = load i64, ptr %101, align 8, !tbaa !9
  %843 = icmp eq i64 %841, %842
  %844 = zext i1 %843 to i32
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 7
  store i64 %845, ptr %846, align 8, !tbaa !9
  %847 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  %848 = load double, ptr %847, align 8, !tbaa !14
  %849 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 0
  %850 = load double, ptr %849, align 8, !tbaa !14
  %851 = fcmp oeq double %848, %850
  br i1 %851, label %852, label %858

852:                                              ; preds = %818
  %853 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  %854 = load double, ptr %853, align 8, !tbaa !16
  %855 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 1
  %856 = load double, ptr %855, align 8, !tbaa !16
  %857 = fcmp oeq double %854, %856
  br label %858

858:                                              ; preds = %852, %818
  %859 = phi i1 [ false, %818 ], [ %857, %852 ]
  %860 = zext i1 %859 to i32
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 8
  store i64 %861, ptr %862, align 16, !tbaa !9
  %863 = load i64, ptr %104, align 8, !tbaa !9
  %864 = icmp ne i64 %863, 0
  br i1 %864, label %865, label %872

865:                                              ; preds = %858
  %866 = load ptr, ptr %61, align 8, !tbaa !5
  %867 = getelementptr inbounds %struct.doublecomplex, ptr %866, i64 1
  %868 = load ptr, ptr %60, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.doublecomplex, ptr %868, i64 1
  %870 = call i64 @lze_(ptr noundef %867, ptr noundef %869, ptr noundef %92)
  %871 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 9
  store i64 %870, ptr %871, align 8, !tbaa !9
  br label %888

872:                                              ; preds = %858
  %873 = load i64, ptr %102, align 8, !tbaa !9
  %874 = icmp sge i64 %873, 0
  br i1 %874, label %875, label %877

875:                                              ; preds = %872
  %876 = load i64, ptr %102, align 8, !tbaa !9
  br label %880

877:                                              ; preds = %872
  %878 = load i64, ptr %102, align 8, !tbaa !9
  %879 = sub nsw i64 0, %878
  br label %880

880:                                              ; preds = %877, %875
  %881 = phi i64 [ %876, %875 ], [ %879, %877 ]
  store i64 %881, ptr %73, align 8, !tbaa !9
  %882 = load ptr, ptr %61, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.doublecomplex, ptr %882, i64 1
  %884 = load ptr, ptr %60, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.doublecomplex, ptr %884, i64 1
  %886 = call i64 @lzeres_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %79, ptr noundef %883, ptr noundef %885, ptr noundef %73, i64 noundef 2, i64 noundef 1)
  %887 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 9
  store i64 %886, ptr %887, align 8, !tbaa !9
  br label %888

888:                                              ; preds = %880, %865
  %889 = load i64, ptr %111, align 8, !tbaa !9
  %890 = load i64, ptr %102, align 8, !tbaa !9
  %891 = icmp eq i64 %889, %890
  %892 = zext i1 %891 to i32
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 10
  store i64 %893, ptr %894, align 16, !tbaa !9
  br label %982

895:                                              ; preds = %797
  %896 = load i64, ptr %114, align 8, !tbaa !9
  %897 = icmp ne i64 %896, 0
  br i1 %897, label %898, label %981

898:                                              ; preds = %895
  %899 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  %900 = load double, ptr %899, align 8, !tbaa !14
  %901 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 0
  %902 = load double, ptr %901, align 8, !tbaa !14
  %903 = fcmp oeq double %900, %902
  br i1 %903, label %904, label %910

904:                                              ; preds = %898
  %905 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 1
  %906 = load double, ptr %905, align 8, !tbaa !16
  %907 = getelementptr inbounds %struct.doublecomplex, ptr %106, i32 0, i32 1
  %908 = load double, ptr %907, align 8, !tbaa !16
  %909 = fcmp oeq double %906, %908
  br label %910

910:                                              ; preds = %904, %898
  %911 = phi i1 [ false, %898 ], [ %909, %904 ]
  %912 = zext i1 %911 to i32
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 2
  store i64 %913, ptr %914, align 16, !tbaa !9
  %915 = load ptr, ptr %55, align 8, !tbaa !5
  %916 = getelementptr inbounds %struct.doublecomplex, ptr %915, i64 1
  %917 = load ptr, ptr %54, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.doublecomplex, ptr %917, i64 1
  %919 = call i64 @lze_(ptr noundef %916, ptr noundef %918, ptr noundef %93)
  %920 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 3
  store i64 %919, ptr %920, align 8, !tbaa !9
  %921 = load ptr, ptr %58, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.doublecomplex, ptr %921, i64 1
  %923 = load ptr, ptr %57, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.doublecomplex, ptr %923, i64 1
  %925 = call i64 @lze_(ptr noundef %922, ptr noundef %924, ptr noundef %91)
  %926 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 4
  store i64 %925, ptr %926, align 16, !tbaa !9
  %927 = load i64, ptr %110, align 8, !tbaa !9
  %928 = load i64, ptr %101, align 8, !tbaa !9
  %929 = icmp eq i64 %927, %928
  %930 = zext i1 %929 to i32
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 5
  store i64 %931, ptr %932, align 8, !tbaa !9
  %933 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  %934 = load double, ptr %933, align 8, !tbaa !14
  %935 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 0
  %936 = load double, ptr %935, align 8, !tbaa !14
  %937 = fcmp oeq double %934, %936
  br i1 %937, label %938, label %944

938:                                              ; preds = %910
  %939 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  %940 = load double, ptr %939, align 8, !tbaa !16
  %941 = getelementptr inbounds %struct.doublecomplex, ptr %98, i32 0, i32 1
  %942 = load double, ptr %941, align 8, !tbaa !16
  %943 = fcmp oeq double %940, %942
  br label %944

944:                                              ; preds = %938, %910
  %945 = phi i1 [ false, %910 ], [ %943, %938 ]
  %946 = zext i1 %945 to i32
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 6
  store i64 %947, ptr %948, align 16, !tbaa !9
  %949 = load i64, ptr %104, align 8, !tbaa !9
  %950 = icmp ne i64 %949, 0
  br i1 %950, label %951, label %958

951:                                              ; preds = %944
  %952 = load ptr, ptr %61, align 8, !tbaa !5
  %953 = getelementptr inbounds %struct.doublecomplex, ptr %952, i64 1
  %954 = load ptr, ptr %60, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.doublecomplex, ptr %954, i64 1
  %956 = call i64 @lze_(ptr noundef %953, ptr noundef %955, ptr noundef %92)
  %957 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 7
  store i64 %956, ptr %957, align 8, !tbaa !9
  br label %974

958:                                              ; preds = %944
  %959 = load i64, ptr %102, align 8, !tbaa !9
  %960 = icmp sge i64 %959, 0
  br i1 %960, label %961, label %963

961:                                              ; preds = %958
  %962 = load i64, ptr %102, align 8, !tbaa !9
  br label %966

963:                                              ; preds = %958
  %964 = load i64, ptr %102, align 8, !tbaa !9
  %965 = sub nsw i64 0, %964
  br label %966

966:                                              ; preds = %963, %961
  %967 = phi i64 [ %962, %961 ], [ %965, %963 ]
  store i64 %967, ptr %73, align 8, !tbaa !9
  %968 = load ptr, ptr %61, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.doublecomplex, ptr %968, i64 1
  %970 = load ptr, ptr %60, align 8, !tbaa !5
  %971 = getelementptr inbounds %struct.doublecomplex, ptr %970, i64 1
  %972 = call i64 @lzeres_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %79, ptr noundef %969, ptr noundef %971, ptr noundef %73, i64 noundef 2, i64 noundef 1)
  %973 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 7
  store i64 %972, ptr %973, align 8, !tbaa !9
  br label %974

974:                                              ; preds = %966, %951
  %975 = load i64, ptr %111, align 8, !tbaa !9
  %976 = load i64, ptr %102, align 8, !tbaa !9
  %977 = icmp eq i64 %975, %976
  %978 = zext i1 %977 to i32
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 8
  store i64 %979, ptr %980, align 16, !tbaa !9
  br label %981

981:                                              ; preds = %974, %895
  br label %982

982:                                              ; preds = %981, %888
  br label %983

983:                                              ; preds = %982, %790
  store i64 1, ptr %100, align 8, !tbaa !9
  %984 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %984, ptr %73, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %985

985:                                              ; preds = %1014, %983
  %986 = load i64, ptr %77, align 8, !tbaa !9
  %987 = load i64, ptr %73, align 8, !tbaa !9
  %988 = icmp sle i64 %986, %987
  br i1 %988, label %989, label %1017

989:                                              ; preds = %985
  %990 = load i64, ptr %100, align 8, !tbaa !9
  %991 = icmp ne i64 %990, 0
  br i1 %991, label %992, label %998

992:                                              ; preds = %989
  %993 = load i64, ptr %77, align 8, !tbaa !9
  %994 = sub nsw i64 %993, 1
  %995 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 %994
  %996 = load i64, ptr %995, align 8, !tbaa !9
  %997 = icmp ne i64 %996, 0
  br label %998

998:                                              ; preds = %992, %989
  %999 = phi i1 [ false, %989 ], [ %997, %992 ]
  %1000 = zext i1 %999 to i32
  %1001 = sext i32 %1000 to i64
  store i64 %1001, ptr %100, align 8, !tbaa !9
  %1002 = load i64, ptr %77, align 8, !tbaa !9
  %1003 = sub nsw i64 %1002, 1
  %1004 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 %1003
  %1005 = load i64, ptr %1004, align 8, !tbaa !9
  %1006 = icmp ne i64 %1005, 0
  br i1 %1006, label %1013, label %1007

1007:                                             ; preds = %998
  %1008 = load ptr, ptr %36, align 8, !tbaa !5
  %1009 = load i64, ptr %1008, align 8, !tbaa !9
  store i64 %1009, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___195, i32 0, i32 1), align 8, !tbaa !21
  %1010 = call i64 @s_wsfe(ptr noundef @zchk2_.io___195)
  %1011 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1012 = call i64 @e_wsfe()
  br label %1013

1013:                                             ; preds = %1007, %998
  br label %1014

1014:                                             ; preds = %1013
  %1015 = load i64, ptr %77, align 8, !tbaa !9
  %1016 = add nsw i64 %1015, 1
  store i64 %1016, ptr %77, align 8, !tbaa !9
  br label %985, !llvm.loop !26

1017:                                             ; preds = %985
  %1018 = load i64, ptr %100, align 8, !tbaa !9
  %1019 = icmp ne i64 %1018, 0
  br i1 %1019, label %1022, label %1020

1020:                                             ; preds = %1017
  %1021 = load ptr, ptr %40, align 8, !tbaa !5
  store i64 1, ptr %1021, align 8, !tbaa !9
  br label %1112

1022:                                             ; preds = %1017
  %1023 = load i64, ptr %104, align 8, !tbaa !9
  %1024 = icmp ne i64 %1023, 0
  br i1 %1024, label %1058, label %1025

1025:                                             ; preds = %1022
  %1026 = load ptr, ptr %53, align 8, !tbaa !5
  %1027 = load i64, ptr %66, align 8, !tbaa !9
  %1028 = getelementptr inbounds %struct.doublecomplex, ptr %1026, i64 %1027
  %1029 = load ptr, ptr %51, align 8, !tbaa !5
  %1030 = load ptr, ptr %56, align 8, !tbaa !5
  %1031 = getelementptr inbounds %struct.doublecomplex, ptr %1030, i64 1
  %1032 = load ptr, ptr %59, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.doublecomplex, ptr %1032, i64 1
  %1034 = load ptr, ptr %62, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.doublecomplex, ptr %1034, i64 1
  %1036 = load ptr, ptr %63, align 8, !tbaa !5
  %1037 = getelementptr inbounds double, ptr %1036, i64 1
  %1038 = load ptr, ptr %60, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.doublecomplex, ptr %1038, i64 1
  %1040 = load ptr, ptr %34, align 8, !tbaa !5
  %1041 = load ptr, ptr %40, align 8, !tbaa !5
  %1042 = load ptr, ptr %36, align 8, !tbaa !5
  %1043 = call i32 @zmvch_(ptr noundef @.str.1, ptr noundef %79, ptr noundef %79, ptr noundef %106, ptr noundef %1028, ptr noundef %1029, ptr noundef %1031, ptr noundef %101, ptr noundef %98, ptr noundef %1033, ptr noundef %102, ptr noundef %1035, ptr noundef %1037, ptr noundef %1039, ptr noundef %1040, ptr noundef %97, ptr noundef %1041, ptr noundef %1042, ptr noundef @c_true, i64 noundef 1)
  %1044 = load double, ptr %115, align 8, !tbaa !12
  %1045 = load double, ptr %97, align 8, !tbaa !12
  %1046 = fcmp oge double %1044, %1045
  br i1 %1046, label %1047, label %1049

1047:                                             ; preds = %1025
  %1048 = load double, ptr %115, align 8, !tbaa !12
  br label %1051

1049:                                             ; preds = %1025
  %1050 = load double, ptr %97, align 8, !tbaa !12
  br label %1051

1051:                                             ; preds = %1049, %1047
  %1052 = phi double [ %1048, %1047 ], [ %1050, %1049 ]
  store double %1052, ptr %115, align 8, !tbaa !12
  %1053 = load ptr, ptr %40, align 8, !tbaa !5
  %1054 = load i64, ptr %1053, align 8, !tbaa !9
  %1055 = icmp ne i64 %1054, 0
  br i1 %1055, label %1056, label %1057

1056:                                             ; preds = %1051
  br label %1112

1057:                                             ; preds = %1051
  br label %1059

1058:                                             ; preds = %1022
  br label %1085

1059:                                             ; preds = %1057
  br label %1060

1060:                                             ; preds = %1059
  %1061 = load i64, ptr %81, align 8, !tbaa !9
  %1062 = add nsw i64 %1061, 1
  store i64 %1062, ptr %81, align 8, !tbaa !9
  br label %405, !llvm.loop !27

1063:                                             ; preds = %405
  br label %1064

1064:                                             ; preds = %1063
  %1065 = load i64, ptr %80, align 8, !tbaa !9
  %1066 = add nsw i64 %1065, 1
  store i64 %1066, ptr %80, align 8, !tbaa !9
  br label %385, !llvm.loop !28

1067:                                             ; preds = %385
  br label %1068

1068:                                             ; preds = %1067
  %1069 = load i64, ptr %89, align 8, !tbaa !9
  %1070 = add nsw i64 %1069, 1
  store i64 %1070, ptr %89, align 8, !tbaa !9
  br label %363, !llvm.loop !29

1071:                                             ; preds = %363
  br label %1072

1072:                                             ; preds = %1071
  %1073 = load i64, ptr %88, align 8, !tbaa !9
  %1074 = add nsw i64 %1073, 1
  store i64 %1074, ptr %88, align 8, !tbaa !9
  br label %287, !llvm.loop !30

1075:                                             ; preds = %287
  br label %1076

1076:                                             ; preds = %1075
  %1077 = load i64, ptr %82, align 8, !tbaa !9
  %1078 = add nsw i64 %1077, 1
  store i64 %1078, ptr %82, align 8, !tbaa !9
  br label %264, !llvm.loop !31

1079:                                             ; preds = %264
  br label %1080

1080:                                             ; preds = %1079, %245
  br label %1081

1081:                                             ; preds = %1080
  %1082 = load i64, ptr %84, align 8, !tbaa !9
  %1083 = add nsw i64 %1082, 1
  store i64 %1083, ptr %84, align 8, !tbaa !9
  br label %209, !llvm.loop !32

1084:                                             ; preds = %209
  br label %1085

1085:                                             ; preds = %1084, %1058
  br label %1086

1086:                                             ; preds = %1085
  %1087 = load i64, ptr %85, align 8, !tbaa !9
  %1088 = add nsw i64 %1087, 1
  store i64 %1088, ptr %85, align 8, !tbaa !9
  br label %192, !llvm.loop !33

1089:                                             ; preds = %192
  %1090 = load double, ptr %115, align 8, !tbaa !12
  %1091 = load ptr, ptr %35, align 8, !tbaa !5
  %1092 = load double, ptr %1091, align 8, !tbaa !12
  %1093 = fcmp olt double %1090, %1092
  br i1 %1093, label %1094, label %1102

1094:                                             ; preds = %1089
  %1095 = load ptr, ptr %36, align 8, !tbaa !5
  %1096 = load i64, ptr %1095, align 8, !tbaa !9
  store i64 %1096, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___197, i32 0, i32 1), align 8, !tbaa !21
  %1097 = call i64 @s_wsfe(ptr noundef @zchk2_.io___197)
  %1098 = load ptr, ptr %33, align 8, !tbaa !5
  %1099 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1098, i64 noundef 6)
  %1100 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %83, i64 noundef 8)
  %1101 = call i64 @e_wsfe()
  br label %1111

1102:                                             ; preds = %1089
  %1103 = load ptr, ptr %36, align 8, !tbaa !5
  %1104 = load i64, ptr %1103, align 8, !tbaa !9
  store i64 %1104, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___198, i32 0, i32 1), align 8, !tbaa !21
  %1105 = call i64 @s_wsfe(ptr noundef @zchk2_.io___198)
  %1106 = load ptr, ptr %33, align 8, !tbaa !5
  %1107 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1106, i64 noundef 6)
  %1108 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %83, i64 noundef 8)
  %1109 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %115, i64 noundef 8)
  %1110 = call i64 @e_wsfe()
  br label %1111

1111:                                             ; preds = %1102, %1094
  br label %1178

1112:                                             ; preds = %1056, %1020, %683
  %1113 = load ptr, ptr %36, align 8, !tbaa !5
  %1114 = load i64, ptr %1113, align 8, !tbaa !9
  store i64 %1114, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___199, i32 0, i32 1), align 8, !tbaa !21
  %1115 = call i64 @s_wsfe(ptr noundef @zchk2_.io___199)
  %1116 = load ptr, ptr %33, align 8, !tbaa !5
  %1117 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1116, i64 noundef 6)
  %1118 = call i64 @e_wsfe()
  %1119 = load i64, ptr %103, align 8, !tbaa !9
  %1120 = icmp ne i64 %1119, 0
  br i1 %1120, label %1121, label %1137

1121:                                             ; preds = %1112
  %1122 = load ptr, ptr %36, align 8, !tbaa !5
  %1123 = load i64, ptr %1122, align 8, !tbaa !9
  store i64 %1123, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___200, i32 0, i32 1), align 8, !tbaa !21
  %1124 = call i64 @s_wsfe(ptr noundef @zchk2_.io___200)
  %1125 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %83, i64 noundef 8)
  %1126 = load ptr, ptr %33, align 8, !tbaa !5
  %1127 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1126, i64 noundef 6)
  %1128 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %1129 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1128, i64 noundef 1)
  %1130 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %79, i64 noundef 8)
  %1131 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %106, i64 noundef 8)
  %1132 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %1133 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %101, i64 noundef 8)
  %1134 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %98, i64 noundef 8)
  %1135 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %1136 = call i64 @e_wsfe()
  br label %1177

1137:                                             ; preds = %1112
  %1138 = load i64, ptr %113, align 8, !tbaa !9
  %1139 = icmp ne i64 %1138, 0
  br i1 %1139, label %1140, label %1157

1140:                                             ; preds = %1137
  %1141 = load ptr, ptr %36, align 8, !tbaa !5
  %1142 = load i64, ptr %1141, align 8, !tbaa !9
  store i64 %1142, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___201, i32 0, i32 1), align 8, !tbaa !21
  %1143 = call i64 @s_wsfe(ptr noundef @zchk2_.io___201)
  %1144 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %83, i64 noundef 8)
  %1145 = load ptr, ptr %33, align 8, !tbaa !5
  %1146 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1145, i64 noundef 6)
  %1147 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %1148 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1147, i64 noundef 1)
  %1149 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %79, i64 noundef 8)
  %1150 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %78, i64 noundef 8)
  %1151 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %106, i64 noundef 8)
  %1152 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %1153 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %101, i64 noundef 8)
  %1154 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %98, i64 noundef 8)
  %1155 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %1156 = call i64 @e_wsfe()
  br label %1176

1157:                                             ; preds = %1137
  %1158 = load i64, ptr %114, align 8, !tbaa !9
  %1159 = icmp ne i64 %1158, 0
  br i1 %1159, label %1160, label %1175

1160:                                             ; preds = %1157
  %1161 = load ptr, ptr %36, align 8, !tbaa !5
  %1162 = load i64, ptr %1161, align 8, !tbaa !9
  store i64 %1162, ptr getelementptr inbounds (%struct.cilist, ptr @zchk2_.io___202, i32 0, i32 1), align 8, !tbaa !21
  %1163 = call i64 @s_wsfe(ptr noundef @zchk2_.io___202)
  %1164 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %83, i64 noundef 8)
  %1165 = load ptr, ptr %33, align 8, !tbaa !5
  %1166 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1165, i64 noundef 6)
  %1167 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %1168 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1167, i64 noundef 1)
  %1169 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %79, i64 noundef 8)
  %1170 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %106, i64 noundef 8)
  %1171 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %101, i64 noundef 8)
  %1172 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %98, i64 noundef 8)
  %1173 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %1174 = call i64 @e_wsfe()
  br label %1175

1175:                                             ; preds = %1160, %1157
  br label %1176

1176:                                             ; preds = %1175, %1140
  br label %1177

1177:                                             ; preds = %1176, %1121
  br label %1178

1178:                                             ; preds = %1177, %1111
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 16, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 16, 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 8, 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 16, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, 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
  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_zhemv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

declare i32 @f2c_zhpmv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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}


; 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.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }
%struct.doublecomplex = type { double, double }

@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_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
@zchk2_.ich = external hidden local_unnamed_addr global [2 x i8], align 1
@zchk2_.io___189 = external hidden global %struct.cilist, align 8
@zchk2_.io___190 = external hidden global %struct.cilist, align 8
@zchk2_.io___191 = external hidden global %struct.cilist, align 8
@zchk2_.io___192 = external hidden global %struct.cilist, align 8
@zchk2_.io___195 = external hidden global %struct.cilist, align 8
@zchk2_.io___197 = external hidden global %struct.cilist, align 8
@zchk2_.io___198 = external hidden global %struct.cilist, align 8
@zchk2_.io___199 = external hidden global %struct.cilist, align 8
@zchk2_.io___200 = external hidden global %struct.cilist, align 8
@zchk2_.io___201 = external hidden global %struct.cilist, align 8
@zchk2_.io___202 = 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 @zchk2_(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 nocapture noundef readonly %14, ptr nocapture noundef readonly %15, ptr nocapture noundef readonly %16, ptr nocapture noundef readonly %17, ptr noundef %18, ptr nocapture noundef readnone %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, ptr noundef %28, ptr noundef %29, ptr noundef %30, i64 noundef %31) local_unnamed_addr #2 {
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca %struct.alist, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %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 %struct.doublecomplex, align 16
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca [1 x i8], align 1
  %51 = alloca %struct.doublecomplex, align 16
  %52 = alloca [13 x i64], align 16
  %53 = alloca i64, align 8
  %54 = alloca double, align 8
  %55 = alloca %struct.doublecomplex, align 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 16, 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 8, 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 16, ptr nonnull %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #5
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %52) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %55) #5
  %56 = getelementptr inbounds i8, ptr %9, i64 -8
  %57 = getelementptr inbounds i8, ptr %11, i64 -8
  %58 = getelementptr inbounds i8, ptr %13, i64 -16
  %59 = getelementptr inbounds i8, ptr %15, i64 -16
  %60 = getelementptr inbounds i8, ptr %17, i64 -8
  %61 = getelementptr inbounds i8, ptr %23, i64 -16
  %62 = getelementptr inbounds i8, ptr %22, i64 -16
  %63 = getelementptr inbounds i8, ptr %21, i64 -16
  %64 = getelementptr inbounds i8, ptr %28, i64 -16
  %65 = getelementptr inbounds i8, ptr %27, i64 -16
  %66 = getelementptr inbounds i8, ptr %25, i64 -16
  %67 = getelementptr inbounds i8, ptr %24, i64 -16
  %68 = getelementptr inbounds i8, ptr %0, i64 2
  %69 = load i8, ptr %68, align 1, !tbaa !5
  %70 = icmp eq i8 %69, 69
  %71 = icmp eq i8 %69, 66
  %72 = icmp eq i8 %69, 80
  %.mux = select i1 %71, i64 11, i64 9
  %.0 = select i1 %70, i64 10, i64 %.mux
  store i64 0, ptr %41, align 8, !tbaa !8
  store i64 1, ptr %53, align 8, !tbaa !8
  store double 0.000000e+00, ptr %54, align 8, !tbaa !10
  %73 = load i64, ptr %8, align 8, !tbaa !8
  %.not312 = icmp slt i64 %73, 1
  br i1 %.not312, label %._crit_edge316, label %.lr.ph315

.lr.ph315:                                        ; preds = %32
  %74 = getelementptr inbounds i8, ptr %0, i64 1
  %75 = getelementptr inbounds i8, ptr %51, i64 8
  %76 = getelementptr inbounds i8, ptr %47, i64 8
  %77 = getelementptr inbounds i8, ptr %37, i64 8
  %78 = getelementptr inbounds i8, ptr %52, i64 8
  %79 = getelementptr inbounds i8, ptr %52, i64 16
  %80 = getelementptr inbounds i8, ptr %52, i64 24
  %81 = getelementptr inbounds i8, ptr %52, i64 32
  %82 = getelementptr inbounds i8, ptr %52, i64 40
  %83 = getelementptr inbounds i8, ptr %52, i64 48
  %84 = getelementptr inbounds i8, ptr %52, i64 56
  %85 = getelementptr inbounds i8, ptr %52, i64 64
  %86 = getelementptr inbounds i8, ptr %52, i64 72
  %87 = getelementptr inbounds i8, ptr %52, i64 80
  br label %88

88:                                               ; preds = %.lr.ph315, %.loopexit
  %89 = phi double [ 0.000000e+00, %.lr.ph315 ], [ %461, %.loopexit ]
  %.0221313 = phi i64 [ 1, %.lr.ph315 ], [ %462, %.loopexit ]
  %90 = getelementptr inbounds i64, ptr %56, i64 %.0221313
  %91 = load i64, ptr %90, align 8, !tbaa !8
  store i64 %91, ptr %40, align 8, !tbaa !8
  br i1 %71, label %92, label %.lr.ph311.preheader

92:                                               ; preds = %88
  %93 = load i64, ptr %10, align 8, !tbaa !8
  %.not233308 = icmp slt i64 %93, 1
  br i1 %.not233308, label %.loopexit, label %.lr.ph311.preheader

.lr.ph311.preheader:                              ; preds = %88, %92
  %.0220337 = phi i64 [ %93, %92 ], [ 1, %88 ]
  br label %.lr.ph311

.lr.ph311:                                        ; preds = %.lr.ph311.preheader, %.loopexit260
  %94 = phi double [ %459, %.loopexit260 ], [ %89, %.lr.ph311.preheader ]
  %.0222309 = phi i64 [ %460, %.loopexit260 ], [ 1, %.lr.ph311.preheader ]
  br i1 %71, label %95, label %98

95:                                               ; preds = %.lr.ph311
  %96 = getelementptr inbounds i64, ptr %57, i64 %.0222309
  %97 = load i64, ptr %96, align 8, !tbaa !8
  %.pr = load i64, ptr %40, align 8
  br label %101

98:                                               ; preds = %.lr.ph311
  %99 = load i64, ptr %40, align 8
  %100 = add nsw i64 %99, -1
  br label %101

101:                                              ; preds = %98, %95
  %102 = phi i64 [ %99, %98 ], [ %.pr, %95 ]
  %storemerge = phi i64 [ %100, %98 ], [ %97, %95 ]
  store i64 %storemerge, ptr %39, align 8, !tbaa !8
  %103 = add nsw i64 %storemerge, 1
  %storemerge234 = select i1 %71, i64 %103, i64 %102
  store i64 %storemerge234, ptr %45, align 8, !tbaa !8
  %104 = load i64, ptr %18, align 8, !tbaa !8
  %105 = icmp slt i64 %storemerge234, %104
  br i1 %105, label %106, label %108

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

108:                                              ; preds = %106, %101
  %109 = phi i64 [ %107, %106 ], [ %storemerge234, %101 ]
  %110 = icmp sgt i64 %109, %104
  br i1 %110, label %.loopexit260, label %111

111:                                              ; preds = %108
  br i1 %72, label %112, label %116

112:                                              ; preds = %111
  %113 = add nsw i64 %102, 1
  %114 = mul nsw i64 %113, %102
  %115 = sdiv i64 %114, 2
  br label %118

116:                                              ; preds = %111
  %117 = mul nsw i64 %109, %102
  br label %118

118:                                              ; preds = %116, %112
  %storemerge235 = phi i64 [ %117, %116 ], [ %115, %112 ]
  store i64 %storemerge235, ptr %44, align 8, !tbaa !8
  %119 = icmp slt i64 %102, 1
  br label %120

120:                                              ; preds = %118, %._crit_edge306
  %121 = phi double [ %94, %118 ], [ %457, %._crit_edge306 ]
  %.0223307 = phi i64 [ 1, %118 ], [ %458, %._crit_edge306 ]
  %122 = add nsw i64 %.0223307, -1
  %123 = getelementptr inbounds [2 x i8], ptr @zchk2_.ich, i64 0, i64 %122
  %124 = load i8, ptr %123, align 1, !tbaa !5
  store i8 %124, ptr %50, align 1, !tbaa !5
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %55, i8 0, i64 16, i1 false)
  %125 = call i32 @zmake_(ptr noundef nonnull %74, ptr noundef nonnull %50, ptr noundef nonnull @.str.7, ptr noundef nonnull %40, ptr noundef nonnull %40, ptr noundef %20, ptr noundef nonnull %18, ptr noundef %21, ptr noundef nonnull %45, ptr noundef nonnull %39, ptr noundef nonnull %39, ptr noundef nonnull %53, ptr noundef nonnull %55, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %126 = load i64, ptr %16, align 8, !tbaa !8
  %.not236302 = icmp slt i64 %126, 1
  br i1 %.not236302, label %._crit_edge306, label %.lr.ph305

.lr.ph305:                                        ; preds = %120, %._crit_edge301
  %127 = phi double [ %455, %._crit_edge301 ], [ %121, %120 ]
  %.0219303 = phi i64 [ %456, %._crit_edge301 ], [ 1, %120 ]
  %128 = getelementptr inbounds i64, ptr %60, i64 %.0219303
  %129 = load i64, ptr %128, align 8, !tbaa !8
  store i64 %129, ptr %48, align 8, !tbaa !8
  %130 = call i64 @llvm.abs.i64(i64 %129, i1 true)
  %131 = load i64, ptr %40, align 8, !tbaa !8
  %132 = mul nsw i64 %131, %130
  store i64 %132, ptr %42, align 8, !tbaa !8
  store <2 x double> <double 5.000000e-01, double 0.000000e+00>, ptr %55, align 16, !tbaa !10
  store i64 %130, ptr %33, align 8, !tbaa !8
  %133 = add nsw i64 %131, -1
  store i64 %133, ptr %34, align 8, !tbaa !8
  %134 = 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 %40, ptr noundef %23, ptr noundef nonnull @c__1, ptr noundef %24, ptr noundef nonnull %33, ptr noundef nonnull @c__0, ptr noundef nonnull %34, ptr noundef nonnull %53, ptr noundef nonnull %55, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %135 = load i64, ptr %40, align 8, !tbaa !8
  %136 = icmp sgt i64 %135, 1
  br i1 %136, label %137, label %145

137:                                              ; preds = %.lr.ph305
  %138 = lshr i64 %135, 1
  %139 = getelementptr inbounds %struct.doublecomplex, ptr %61, i64 %138
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %139, i8 0, i64 16, i1 false)
  %140 = load i64, ptr %48, align 8
  %141 = call i64 @llvm.abs.i64(i64 %140, i1 true)
  %142 = add nsw i64 %138, -1
  %143 = mul nsw i64 %141, %142
  %144 = getelementptr %struct.doublecomplex, ptr %24, i64 %143
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %144, i8 0, i64 16, i1 false)
  br label %145

145:                                              ; preds = %137, %.lr.ph305
  %146 = load i64, ptr %16, align 8, !tbaa !8
  store i64 %146, ptr %33, align 8, !tbaa !8
  %.not237297 = icmp slt i64 %146, 1
  br i1 %.not237297, label %._crit_edge301, label %.lr.ph300

.lr.ph300:                                        ; preds = %145, %._crit_edge292
  %147 = phi i64 [ %452, %._crit_edge292 ], [ %146, %145 ]
  %148 = phi double [ %453, %._crit_edge292 ], [ %127, %145 ]
  %.0218298 = phi i64 [ %454, %._crit_edge292 ], [ 1, %145 ]
  %149 = getelementptr inbounds i64, ptr %60, i64 %.0218298
  %150 = load i64, ptr %149, align 8, !tbaa !8
  store i64 %150, ptr %49, align 8, !tbaa !8
  %151 = call i64 @llvm.abs.i64(i64 %150, i1 true)
  %152 = load i64, ptr %40, align 8, !tbaa !8
  %153 = mul nsw i64 %152, %151
  store i64 %153, ptr %43, align 8, !tbaa !8
  %154 = load i64, ptr %12, align 8, !tbaa !8
  store i64 %154, ptr %34, align 8, !tbaa !8
  %.not238288 = icmp slt i64 %154, 1
  br i1 %.not238288, label %._crit_edge292, label %.lr.ph291

.lr.ph291:                                        ; preds = %.lr.ph300
  %155 = load i64, ptr %14, align 8, !tbaa !8
  %156 = icmp slt i64 %155, 1
  br i1 %156, label %.lr.ph291.split.us, label %.lr.ph291.split

.lr.ph291.split.us:                               ; preds = %.lr.ph291
  %157 = getelementptr inbounds %struct.doublecomplex, ptr %58, i64 %154
  %158 = load <2 x double>, ptr %157, align 8, !tbaa !10
  store <2 x double> %158, ptr %51, align 16, !tbaa !10
  br label %._crit_edge292

.lr.ph291.split:                                  ; preds = %.lr.ph291, %._crit_edge287
  %159 = phi i64 [ %449, %._crit_edge287 ], [ %154, %.lr.ph291 ]
  %160 = phi double [ %450, %._crit_edge287 ], [ %148, %.lr.ph291 ]
  %.0225289 = phi i64 [ %451, %._crit_edge287 ], [ 1, %.lr.ph291 ]
  %161 = getelementptr inbounds %struct.doublecomplex, ptr %58, i64 %.0225289
  %162 = load <2 x double>, ptr %161, align 8, !tbaa !10
  store <2 x double> %162, ptr %51, align 16, !tbaa !10
  %163 = load i64, ptr %14, align 8, !tbaa !8
  %.not239283 = icmp slt i64 %163, 1
  br i1 %.not239283, label %._crit_edge287, label %.lr.ph286

164:                                              ; preds = %443
  %165 = add nuw i64 %.0224284, 1
  %exitcond323.not = icmp eq i64 %.0224284, %163
  br i1 %exitcond323.not, label %._crit_edge287.loopexit, label %.lr.ph286, !llvm.loop !12

.lr.ph286:                                        ; preds = %.lr.ph291.split, %164
  %166 = phi double [ %447, %164 ], [ %160, %.lr.ph291.split ]
  %.0224284 = phi i64 [ %165, %164 ], [ 1, %.lr.ph291.split ]
  %167 = getelementptr inbounds %struct.doublecomplex, ptr %59, i64 %.0224284
  %168 = load <2 x double>, ptr %167, align 8, !tbaa !10
  store <2 x double> %168, ptr %47, align 16, !tbaa !10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %55, i8 0, i64 16, i1 false)
  %169 = load i64, ptr %49, align 8
  %170 = call i64 @llvm.abs.i64(i64 %169, i1 true)
  store i64 %170, ptr %35, align 8, !tbaa !8
  %171 = load i64, ptr %40, align 8, !tbaa !8
  %172 = add nsw i64 %171, -1
  store i64 %172, ptr %36, align 8, !tbaa !8
  %173 = 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 %40, ptr noundef %26, ptr noundef nonnull @c__1, ptr noundef %27, ptr noundef nonnull %35, ptr noundef nonnull @c__0, ptr noundef nonnull %36, ptr noundef nonnull %53, ptr noundef nonnull %55, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %174 = load i64, ptr %41, align 8, !tbaa !8
  %175 = add nsw i64 %174, 1
  store i64 %175, ptr %41, align 8, !tbaa !8
  %176 = load i8, ptr %50, align 1, !tbaa !5
  %177 = load i64, ptr %40, align 8, !tbaa !8
  %178 = load i64, ptr %39, align 8, !tbaa !8
  %179 = load double, ptr %51, align 16, !tbaa !14
  %180 = load double, ptr %75, align 8, !tbaa !16
  %181 = load i64, ptr %44, align 8, !tbaa !8
  %.not241262 = icmp slt i64 %181, 1
  br i1 %.not241262, label %202, label %.lr.ph.preheader

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

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

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %storemerge240263 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %197, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.3, %.lr.ph ]
  %183 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %storemerge240263
  %184 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %storemerge240263
  %185 = load <2 x double>, ptr %183, align 8, !tbaa !10
  store <2 x double> %185, ptr %184, align 8, !tbaa !10
  %186 = getelementptr %struct.doublecomplex, ptr %21, i64 %storemerge240263
  %187 = getelementptr %struct.doublecomplex, ptr %22, i64 %storemerge240263
  %188 = load <2 x double>, ptr %186, align 8, !tbaa !10
  store <2 x double> %188, ptr %187, align 8, !tbaa !10
  %189 = add nuw nsw i64 %storemerge240263, 2
  %190 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %189
  %191 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %189
  %192 = load <2 x double>, ptr %190, align 8, !tbaa !10
  store <2 x double> %192, ptr %191, align 8, !tbaa !10
  %193 = add nuw i64 %storemerge240263, 3
  %194 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %193
  %195 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %193
  %196 = load <2 x double>, ptr %194, align 8, !tbaa !10
  store <2 x double> %196, ptr %195, align 8, !tbaa !10
  %197 = add nuw i64 %storemerge240263, 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 !17

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph, %.lr.ph.preheader
  %storemerge240263.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %197, %.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
  %storemerge240263.epil = phi i64 [ %201, %.lr.ph.epil ], [ %storemerge240263.unr, %._crit_edge.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph.epil ], [ 0, %._crit_edge.unr-lcssa ]
  %198 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %storemerge240263.epil
  %199 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %storemerge240263.epil
  %200 = load <2 x double>, ptr %198, align 8, !tbaa !10
  store <2 x double> %200, ptr %199, align 8, !tbaa !10
  %201 = add nuw i64 %storemerge240263.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 !18

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.unr-lcssa
  store i64 %181, ptr %36, align 8, !tbaa !8
  br label %202

202:                                              ; preds = %._crit_edge, %.lr.ph286
  %203 = load i64, ptr %45, align 8, !tbaa !8
  %204 = load i64, ptr %42, align 8, !tbaa !8
  %.not243264 = icmp slt i64 %204, 1
  br i1 %.not243264, label %225, label %.lr.ph267.preheader

.lr.ph267.preheader:                              ; preds = %202
  %xtraiter380 = and i64 %204, 3
  %205 = icmp ult i64 %204, 4
  br i1 %205, label %._crit_edge268.unr-lcssa, label %.lr.ph267.preheader.new

.lr.ph267.preheader.new:                          ; preds = %.lr.ph267.preheader
  %unroll_iter383 = and i64 %204, 9223372036854775804
  br label %.lr.ph267

.lr.ph267:                                        ; preds = %.lr.ph267, %.lr.ph267.preheader.new
  %storemerge242265 = phi i64 [ 1, %.lr.ph267.preheader.new ], [ %220, %.lr.ph267 ]
  %niter384 = phi i64 [ 0, %.lr.ph267.preheader.new ], [ %niter384.next.3, %.lr.ph267 ]
  %206 = getelementptr inbounds %struct.doublecomplex, ptr %67, i64 %storemerge242265
  %207 = getelementptr inbounds %struct.doublecomplex, ptr %66, i64 %storemerge242265
  %208 = load <2 x double>, ptr %206, align 8, !tbaa !10
  store <2 x double> %208, ptr %207, align 8, !tbaa !10
  %209 = getelementptr %struct.doublecomplex, ptr %24, i64 %storemerge242265
  %210 = getelementptr %struct.doublecomplex, ptr %25, i64 %storemerge242265
  %211 = load <2 x double>, ptr %209, align 8, !tbaa !10
  store <2 x double> %211, ptr %210, align 8, !tbaa !10
  %212 = add nuw nsw i64 %storemerge242265, 2
  %213 = getelementptr inbounds %struct.doublecomplex, ptr %67, i64 %212
  %214 = getelementptr inbounds %struct.doublecomplex, ptr %66, i64 %212
  %215 = load <2 x double>, ptr %213, align 8, !tbaa !10
  store <2 x double> %215, ptr %214, align 8, !tbaa !10
  %216 = add nuw i64 %storemerge242265, 3
  %217 = getelementptr inbounds %struct.doublecomplex, ptr %67, i64 %216
  %218 = getelementptr inbounds %struct.doublecomplex, ptr %66, i64 %216
  %219 = load <2 x double>, ptr %217, align 8, !tbaa !10
  store <2 x double> %219, ptr %218, align 8, !tbaa !10
  %220 = add nuw i64 %storemerge242265, 4
  %niter384.next.3 = add i64 %niter384, 4
  %niter384.ncmp.3 = icmp eq i64 %niter384.next.3, %unroll_iter383
  br i1 %niter384.ncmp.3, label %._crit_edge268.unr-lcssa, label %.lr.ph267, !llvm.loop !20

._crit_edge268.unr-lcssa:                         ; preds = %.lr.ph267, %.lr.ph267.preheader
  %storemerge242265.unr = phi i64 [ 1, %.lr.ph267.preheader ], [ %220, %.lr.ph267 ]
  %lcmp.mod382.not = icmp eq i64 %xtraiter380, 0
  br i1 %lcmp.mod382.not, label %._crit_edge268, label %.lr.ph267.epil

.lr.ph267.epil:                                   ; preds = %._crit_edge268.unr-lcssa, %.lr.ph267.epil
  %storemerge242265.epil = phi i64 [ %224, %.lr.ph267.epil ], [ %storemerge242265.unr, %._crit_edge268.unr-lcssa ]
  %epil.iter381 = phi i64 [ %epil.iter381.next, %.lr.ph267.epil ], [ 0, %._crit_edge268.unr-lcssa ]
  %221 = getelementptr inbounds %struct.doublecomplex, ptr %67, i64 %storemerge242265.epil
  %222 = getelementptr inbounds %struct.doublecomplex, ptr %66, i64 %storemerge242265.epil
  %223 = load <2 x double>, ptr %221, align 8, !tbaa !10
  store <2 x double> %223, ptr %222, align 8, !tbaa !10
  %224 = add nuw i64 %storemerge242265.epil, 1
  %epil.iter381.next = add i64 %epil.iter381, 1
  %epil.iter381.cmp.not = icmp eq i64 %epil.iter381.next, %xtraiter380
  br i1 %epil.iter381.cmp.not, label %._crit_edge268, label %.lr.ph267.epil, !llvm.loop !21

._crit_edge268:                                   ; preds = %.lr.ph267.epil, %._crit_edge268.unr-lcssa
  store i64 %204, ptr %36, align 8, !tbaa !8
  br label %225

225:                                              ; preds = %._crit_edge268, %202
  %226 = load i64, ptr %48, align 8, !tbaa !8
  %227 = load double, ptr %47, align 16, !tbaa !14
  %228 = load double, ptr %76, align 8, !tbaa !16
  %229 = load i64, ptr %43, align 8, !tbaa !8
  store i64 %229, ptr %35, align 8, !tbaa !8
  %.not245270 = icmp slt i64 %229, 1
  br i1 %.not245270, label %251, label %.lr.ph273.preheader

.lr.ph273.preheader:                              ; preds = %225
  %230 = add nuw i64 %229, 1
  %xtraiter385 = and i64 %229, 3
  %231 = icmp ult i64 %229, 4
  br i1 %231, label %._crit_edge274.unr-lcssa, label %.lr.ph273.preheader.new

.lr.ph273.preheader.new:                          ; preds = %.lr.ph273.preheader
  %unroll_iter388 = and i64 %229, 9223372036854775804
  br label %.lr.ph273

.lr.ph273:                                        ; preds = %.lr.ph273, %.lr.ph273.preheader.new
  %storemerge244271 = phi i64 [ 1, %.lr.ph273.preheader.new ], [ %246, %.lr.ph273 ]
  %niter389 = phi i64 [ 0, %.lr.ph273.preheader.new ], [ %niter389.next.3, %.lr.ph273 ]
  %232 = getelementptr inbounds %struct.doublecomplex, ptr %65, i64 %storemerge244271
  %233 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %storemerge244271
  %234 = load <2 x double>, ptr %232, align 8, !tbaa !10
  store <2 x double> %234, ptr %233, align 8, !tbaa !10
  %235 = getelementptr %struct.doublecomplex, ptr %27, i64 %storemerge244271
  %236 = getelementptr %struct.doublecomplex, ptr %28, i64 %storemerge244271
  %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 nsw i64 %storemerge244271, 2
  %239 = getelementptr inbounds %struct.doublecomplex, ptr %65, i64 %238
  %240 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %238
  %241 = load <2 x double>, ptr %239, align 8, !tbaa !10
  store <2 x double> %241, ptr %240, align 8, !tbaa !10
  %242 = add nuw i64 %storemerge244271, 3
  %243 = getelementptr inbounds %struct.doublecomplex, ptr %65, i64 %242
  %244 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %242
  %245 = load <2 x double>, ptr %243, align 8, !tbaa !10
  store <2 x double> %245, ptr %244, align 8, !tbaa !10
  %246 = add nuw i64 %storemerge244271, 4
  %niter389.next.3 = add i64 %niter389, 4
  %niter389.ncmp.3 = icmp eq i64 %niter389.next.3, %unroll_iter388
  br i1 %niter389.ncmp.3, label %._crit_edge274.unr-lcssa, label %.lr.ph273, !llvm.loop !22

._crit_edge274.unr-lcssa:                         ; preds = %.lr.ph273, %.lr.ph273.preheader
  %storemerge244271.unr = phi i64 [ 1, %.lr.ph273.preheader ], [ %246, %.lr.ph273 ]
  %lcmp.mod387.not = icmp eq i64 %xtraiter385, 0
  br i1 %lcmp.mod387.not, label %._crit_edge274, label %.lr.ph273.epil

.lr.ph273.epil:                                   ; preds = %._crit_edge274.unr-lcssa, %.lr.ph273.epil
  %storemerge244271.epil = phi i64 [ %250, %.lr.ph273.epil ], [ %storemerge244271.unr, %._crit_edge274.unr-lcssa ]
  %epil.iter386 = phi i64 [ %epil.iter386.next, %.lr.ph273.epil ], [ 0, %._crit_edge274.unr-lcssa ]
  %247 = getelementptr inbounds %struct.doublecomplex, ptr %65, i64 %storemerge244271.epil
  %248 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %storemerge244271.epil
  %249 = load <2 x double>, ptr %247, align 8, !tbaa !10
  store <2 x double> %249, ptr %248, align 8, !tbaa !10
  %250 = add nuw i64 %storemerge244271.epil, 1
  %epil.iter386.next = add i64 %epil.iter386, 1
  %epil.iter386.cmp.not = icmp eq i64 %epil.iter386.next, %xtraiter385
  br i1 %epil.iter386.cmp.not, label %._crit_edge274, label %.lr.ph273.epil, !llvm.loop !23

._crit_edge274:                                   ; preds = %.lr.ph273.epil, %._crit_edge274.unr-lcssa
  store i64 %229, ptr %36, align 8, !tbaa !8
  br label %251

251:                                              ; preds = %._crit_edge274, %225
  %storemerge244.lcssa = phi i64 [ %230, %._crit_edge274 ], [ 1, %225 ]
  store i64 %storemerge244.lcssa, ptr %38, align 8, !tbaa !8
  %252 = load i64, ptr %49, align 8, !tbaa !8
  br i1 %70, label %253, label %275

253:                                              ; preds = %251
  %254 = load i64, ptr %5, align 8, !tbaa !8
  %.not250 = icmp eq i64 %254, 0
  br i1 %.not250, label %268, label %255

255:                                              ; preds = %253
  %256 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %256, ptr getelementptr inbounds (i8, ptr @zchk2_.io___189, i64 8), align 8, !tbaa !24
  %257 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___189) #5
  %258 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  %259 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %260 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 1) #5
  %261 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %262 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %51, i64 noundef 8) #5
  %263 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #5
  %264 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #5
  %265 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %47, i64 noundef 8) #5
  %266 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %49, i64 noundef 8) #5
  %267 = call i64 @e_wsfe() #5
  br label %268

268:                                              ; preds = %255, %253
  %269 = load i64, ptr %6, align 8, !tbaa !8
  %.not251 = icmp eq i64 %269, 0
  br i1 %.not251, label %273, label %270

270:                                              ; preds = %268
  store i64 0, ptr %37, align 8, !tbaa !27
  %271 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %271, ptr %77, align 8, !tbaa !29
  %272 = call i64 @f_rew(ptr noundef nonnull %37) #5
  br label %273

273:                                              ; preds = %270, %268
  %274 = call i32 @f2c_zhemv(ptr noundef nonnull %50, ptr noundef nonnull %40, ptr noundef nonnull %51, ptr noundef %21, ptr noundef nonnull %45, ptr noundef %24, ptr noundef nonnull %48, ptr noundef nonnull %47, ptr noundef %27, ptr noundef nonnull %49) #5
  br label %321

275:                                              ; preds = %251
  br i1 %71, label %276, label %299

276:                                              ; preds = %275
  %277 = load i64, ptr %5, align 8, !tbaa !8
  %.not248 = icmp eq i64 %277, 0
  br i1 %.not248, label %292, label %278

278:                                              ; preds = %276
  %279 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %279, ptr getelementptr inbounds (i8, ptr @zchk2_.io___190, i64 8), align 8, !tbaa !24
  %280 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___190) #5
  %281 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  %282 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %283 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 1) #5
  %284 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %285 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %286 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %51, i64 noundef 8) #5
  %287 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #5
  %288 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #5
  %289 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %47, i64 noundef 8) #5
  %290 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %49, i64 noundef 8) #5
  %291 = call i64 @e_wsfe() #5
  br label %292

292:                                              ; preds = %278, %276
  %293 = load i64, ptr %6, align 8, !tbaa !8
  %.not249 = icmp eq i64 %293, 0
  br i1 %.not249, label %297, label %294

294:                                              ; preds = %292
  store i64 0, ptr %37, align 8, !tbaa !27
  %295 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %295, ptr %77, align 8, !tbaa !29
  %296 = call i64 @f_rew(ptr noundef nonnull %37) #5
  br label %297

297:                                              ; preds = %294, %292
  %298 = call i32 @f2c_zhbmv(ptr noundef nonnull %50, ptr noundef nonnull %40, ptr noundef nonnull %39, ptr noundef nonnull %51, ptr noundef %21, ptr noundef nonnull %45, ptr noundef %24, ptr noundef nonnull %48, ptr noundef nonnull %47, ptr noundef %27, ptr noundef nonnull %49) #5
  br label %321

299:                                              ; preds = %275
  br i1 %72, label %300, label %321

300:                                              ; preds = %299
  %301 = load i64, ptr %5, align 8, !tbaa !8
  %.not246 = icmp eq i64 %301, 0
  br i1 %.not246, label %314, label %302

302:                                              ; preds = %300
  %303 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %303, ptr getelementptr inbounds (i8, ptr @zchk2_.io___191, i64 8), align 8, !tbaa !24
  %304 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___191) #5
  %305 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  %306 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %307 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 1) #5
  %308 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %309 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %51, i64 noundef 8) #5
  %310 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #5
  %311 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %47, i64 noundef 8) #5
  %312 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %49, i64 noundef 8) #5
  %313 = call i64 @e_wsfe() #5
  br label %314

314:                                              ; preds = %302, %300
  %315 = load i64, ptr %6, align 8, !tbaa !8
  %.not247 = icmp eq i64 %315, 0
  br i1 %.not247, label %319, label %316

316:                                              ; preds = %314
  store i64 0, ptr %37, align 8, !tbaa !27
  %317 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %317, ptr %77, align 8, !tbaa !29
  %318 = call i64 @f_rew(ptr noundef nonnull %37) #5
  br label %319

319:                                              ; preds = %316, %314
  %320 = call i32 @f2c_zhpmv(ptr noundef nonnull %50, ptr noundef nonnull %40, ptr noundef nonnull %51, ptr noundef %21, ptr noundef %24, ptr noundef nonnull %48, ptr noundef nonnull %47, ptr noundef %27, ptr noundef nonnull %49) #5
  br label %321

321:                                              ; preds = %297, %319, %299, %273
  %322 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !5
  %.not252 = icmp eq i64 %322, 0
  br i1 %.not252, label %323, label %327

323:                                              ; preds = %321
  %324 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %324, ptr getelementptr inbounds (i8, ptr @zchk2_.io___192, i64 8), align 8, !tbaa !24
  %325 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___192) #5
  %326 = call i64 @e_wsfe() #5
  br label %.loopexit259.sink.split

327:                                              ; preds = %321
  %328 = load i8, ptr %50, align 1, !tbaa !5
  %329 = icmp eq i8 %328, %176
  %330 = zext i1 %329 to i64
  store i64 %330, ptr %52, align 16, !tbaa !8
  %331 = load i64, ptr %40, align 8, !tbaa !8
  %332 = icmp eq i64 %177, %331
  %333 = zext i1 %332 to i64
  store i64 %333, ptr %78, align 8, !tbaa !8
  br i1 %70, label %334, label %365

334:                                              ; preds = %327
  %335 = load double, ptr %51, align 16, !tbaa !14
  %336 = fcmp oeq double %179, %335
  %337 = load double, ptr %75, align 8
  %338 = fcmp oeq double %180, %337
  %339 = select i1 %336, i1 %338, i1 false
  %340 = zext i1 %339 to i64
  store i64 %340, ptr %79, align 16, !tbaa !8
  %341 = call i64 @lze_(ptr noundef %22, ptr noundef %21, ptr noundef nonnull %44)
  store i64 %341, ptr %80, align 8, !tbaa !8
  %342 = load i64, ptr %45, align 8, !tbaa !8
  %343 = icmp eq i64 %203, %342
  %344 = zext i1 %343 to i64
  store i64 %344, ptr %81, align 16, !tbaa !8
  %345 = call i64 @lze_(ptr noundef %25, ptr noundef %24, ptr noundef nonnull %42)
  store i64 %345, ptr %82, align 8, !tbaa !8
  %346 = load i64, ptr %48, align 8, !tbaa !8
  %347 = icmp eq i64 %226, %346
  %348 = zext i1 %347 to i64
  store i64 %348, ptr %83, align 16, !tbaa !8
  %349 = load double, ptr %47, align 16, !tbaa !14
  %350 = fcmp oeq double %227, %349
  %351 = load double, ptr %76, align 8
  %352 = fcmp oeq double %228, %351
  %353 = select i1 %350, i1 %352, i1 false
  %354 = zext i1 %353 to i64
  store i64 %354, ptr %84, align 8, !tbaa !8
  br i1 %119, label %355, label %357

355:                                              ; preds = %334
  %356 = call i64 @lze_(ptr noundef %28, ptr noundef %27, ptr noundef nonnull %43)
  br label %361

357:                                              ; preds = %334
  %358 = load i64, ptr %49, align 8
  %359 = call i64 @llvm.abs.i64(i64 %358, i1 true)
  store i64 %359, ptr %35, align 8, !tbaa !8
  %360 = call i64 @lzeres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %40, ptr noundef %28, ptr noundef %27, ptr noundef nonnull %35, i64 noundef 2, i64 noundef 1)
  br label %361

361:                                              ; preds = %357, %355
  %storemerge334 = phi i64 [ %360, %357 ], [ %356, %355 ]
  store i64 %storemerge334, ptr %85, align 16, !tbaa !8
  %362 = load i64, ptr %49, align 8, !tbaa !8
  %363 = icmp eq i64 %252, %362
  %364 = zext i1 %363 to i64
  store i64 %364, ptr %86, align 8, !tbaa !8
  br label %.lr.ph280.preheader

365:                                              ; preds = %327
  br i1 %71, label %366, label %400

366:                                              ; preds = %365
  %367 = load i64, ptr %39, align 8, !tbaa !8
  %368 = icmp eq i64 %178, %367
  %369 = zext i1 %368 to i64
  store i64 %369, ptr %79, align 16, !tbaa !8
  %370 = load double, ptr %51, align 16, !tbaa !14
  %371 = fcmp oeq double %179, %370
  %372 = load double, ptr %75, align 8
  %373 = fcmp oeq double %180, %372
  %374 = select i1 %371, i1 %373, i1 false
  %375 = zext i1 %374 to i64
  store i64 %375, ptr %80, align 8, !tbaa !8
  %376 = call i64 @lze_(ptr noundef %22, ptr noundef %21, ptr noundef nonnull %44)
  store i64 %376, ptr %81, align 16, !tbaa !8
  %377 = load i64, ptr %45, align 8, !tbaa !8
  %378 = icmp eq i64 %203, %377
  %379 = zext i1 %378 to i64
  store i64 %379, ptr %82, align 8, !tbaa !8
  %380 = call i64 @lze_(ptr noundef %25, ptr noundef %24, ptr noundef nonnull %42)
  store i64 %380, ptr %83, align 16, !tbaa !8
  %381 = load i64, ptr %48, align 8, !tbaa !8
  %382 = icmp eq i64 %226, %381
  %383 = zext i1 %382 to i64
  store i64 %383, ptr %84, align 8, !tbaa !8
  %384 = load double, ptr %47, align 16, !tbaa !14
  %385 = fcmp oeq double %227, %384
  %386 = load double, ptr %76, align 8
  %387 = fcmp oeq double %228, %386
  %388 = select i1 %385, i1 %387, i1 false
  %389 = zext i1 %388 to i64
  store i64 %389, ptr %85, align 16, !tbaa !8
  br i1 %119, label %390, label %392

390:                                              ; preds = %366
  %391 = call i64 @lze_(ptr noundef %28, ptr noundef %27, ptr noundef nonnull %43)
  br label %396

392:                                              ; preds = %366
  %393 = load i64, ptr %49, align 8
  %394 = call i64 @llvm.abs.i64(i64 %393, i1 true)
  store i64 %394, ptr %35, align 8, !tbaa !8
  %395 = call i64 @lzeres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %40, ptr noundef %28, ptr noundef %27, ptr noundef nonnull %35, i64 noundef 2, i64 noundef 1)
  br label %396

396:                                              ; preds = %392, %390
  %storemerge333 = phi i64 [ %395, %392 ], [ %391, %390 ]
  store i64 %storemerge333, ptr %86, align 8, !tbaa !8
  %397 = load i64, ptr %49, align 8, !tbaa !8
  %398 = icmp eq i64 %252, %397
  %399 = zext i1 %398 to i64
  store i64 %399, ptr %87, align 16, !tbaa !8
  br label %.lr.ph280.preheader

400:                                              ; preds = %365
  br i1 %72, label %401, label %.lr.ph280.preheader

401:                                              ; preds = %400
  %402 = load double, ptr %51, align 16, !tbaa !14
  %403 = fcmp oeq double %179, %402
  %404 = load double, ptr %75, align 8
  %405 = fcmp oeq double %180, %404
  %406 = select i1 %403, i1 %405, i1 false
  %407 = zext i1 %406 to i64
  store i64 %407, ptr %79, align 16, !tbaa !8
  %408 = call i64 @lze_(ptr noundef %22, ptr noundef %21, ptr noundef nonnull %44)
  store i64 %408, ptr %80, align 8, !tbaa !8
  %409 = call i64 @lze_(ptr noundef %25, ptr noundef %24, ptr noundef nonnull %42)
  store i64 %409, ptr %81, align 16, !tbaa !8
  %410 = load i64, ptr %48, align 8, !tbaa !8
  %411 = icmp eq i64 %226, %410
  %412 = zext i1 %411 to i64
  store i64 %412, ptr %82, align 8, !tbaa !8
  %413 = load double, ptr %47, align 16, !tbaa !14
  %414 = fcmp oeq double %227, %413
  %415 = load double, ptr %76, align 8
  %416 = fcmp oeq double %228, %415
  %417 = select i1 %414, i1 %416, i1 false
  %418 = zext i1 %417 to i64
  store i64 %418, ptr %83, align 16, !tbaa !8
  br i1 %119, label %419, label %421

419:                                              ; preds = %401
  %420 = call i64 @lze_(ptr noundef %28, ptr noundef %27, ptr noundef nonnull %43)
  br label %425

421:                                              ; preds = %401
  %422 = load i64, ptr %49, align 8
  %423 = call i64 @llvm.abs.i64(i64 %422, i1 true)
  store i64 %423, ptr %35, align 8, !tbaa !8
  %424 = call i64 @lzeres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %40, ptr noundef %28, ptr noundef %27, ptr noundef nonnull %35, i64 noundef 2, i64 noundef 1)
  br label %425

425:                                              ; preds = %421, %419
  %storemerge332 = phi i64 [ %424, %421 ], [ %420, %419 ]
  store i64 %storemerge332, ptr %84, align 8, !tbaa !8
  %426 = load i64, ptr %49, align 8, !tbaa !8
  %427 = icmp eq i64 %252, %426
  %428 = zext i1 %427 to i64
  store i64 %428, ptr %85, align 16, !tbaa !8
  br label %.lr.ph280.preheader

.lr.ph280.preheader:                              ; preds = %361, %400, %425, %396
  store i64 %.0, ptr %35, align 8, !tbaa !8
  store i64 1, ptr %38, align 8, !tbaa !8
  br label %.lr.ph280

.lr.ph280:                                        ; preds = %.lr.ph280.preheader, %438
  %429 = phi i64 [ %439, %438 ], [ %.0, %.lr.ph280.preheader ]
  %430 = phi i64 [ %441, %438 ], [ 1, %.lr.ph280.preheader ]
  %.0217278 = phi i1 [ %432, %438 ], [ true, %.lr.ph280.preheader ]
  %storemerge253277 = phi i64 [ %440, %438 ], [ 0, %.lr.ph280.preheader ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %52, i64 0, i64 %storemerge253277
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !8
  %431 = icmp ne i64 %.pre, 0
  %432 = and i1 %.0217278, %431
  %.not258 = icmp eq i64 %.pre, 0
  br i1 %.not258, label %433, label %438

433:                                              ; preds = %.lr.ph280
  %434 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %434, ptr getelementptr inbounds (i8, ptr @zchk2_.io___195, i64 8), align 8, !tbaa !24
  %435 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___195) #5
  %436 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #5
  %437 = call i64 @e_wsfe() #5
  %.pre328 = load i64, ptr %38, align 8, !tbaa !8
  %.pre329 = load i64, ptr %35, align 8, !tbaa !8
  br label %438

438:                                              ; preds = %.lr.ph280, %433
  %439 = phi i64 [ %429, %.lr.ph280 ], [ %.pre329, %433 ]
  %440 = phi i64 [ %430, %.lr.ph280 ], [ %.pre328, %433 ]
  %441 = add nsw i64 %440, 1
  store i64 %441, ptr %38, align 8, !tbaa !8
  %.not254.not = icmp slt i64 %440, %439
  br i1 %.not254.not, label %.lr.ph280, label %._crit_edge281, !llvm.loop !30

._crit_edge281:                                   ; preds = %438
  br i1 %432, label %442, label %.loopexit259.sink.split

442:                                              ; preds = %._crit_edge281
  br i1 %119, label %.loopexit, label %443

443:                                              ; preds = %442
  %444 = call i32 @zmvch_(ptr noundef nonnull @.str.1, ptr noundef nonnull %40, ptr noundef nonnull %40, ptr noundef nonnull %51, ptr noundef %20, ptr noundef nonnull %18, ptr noundef %23, ptr noundef nonnull %48, ptr noundef nonnull %47, ptr noundef %26, ptr noundef nonnull %49, ptr noundef %29, ptr noundef %30, ptr noundef %27, ptr noundef %1, ptr noundef nonnull %46, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1)
  %445 = load double, ptr %46, align 8
  %446 = fcmp oge double %166, %445
  %447 = select i1 %446, double %166, double %445
  store double %447, ptr %54, align 8, !tbaa !10
  %448 = load i64, ptr %7, align 8, !tbaa !8
  %.not256 = icmp eq i64 %448, 0
  br i1 %.not256, label %164, label %.loopexit259

._crit_edge287.loopexit:                          ; preds = %164
  %.pre330 = load i64, ptr %34, align 8, !tbaa !8
  br label %._crit_edge287

._crit_edge287:                                   ; preds = %._crit_edge287.loopexit, %.lr.ph291.split
  %449 = phi i64 [ %.pre330, %._crit_edge287.loopexit ], [ %159, %.lr.ph291.split ]
  %450 = phi double [ %447, %._crit_edge287.loopexit ], [ %160, %.lr.ph291.split ]
  %451 = add nuw nsw i64 %.0225289, 1
  %.not238.not = icmp slt i64 %.0225289, %449
  br i1 %.not238.not, label %.lr.ph291.split, label %._crit_edge292.loopexit, !llvm.loop !31

._crit_edge292.loopexit:                          ; preds = %._crit_edge287
  %.pre331 = load i64, ptr %33, align 8, !tbaa !8
  br label %._crit_edge292

._crit_edge292:                                   ; preds = %._crit_edge292.loopexit, %.lr.ph291.split.us, %.lr.ph300
  %452 = phi i64 [ %.pre331, %._crit_edge292.loopexit ], [ %147, %.lr.ph291.split.us ], [ %147, %.lr.ph300 ]
  %453 = phi double [ %450, %._crit_edge292.loopexit ], [ %148, %.lr.ph291.split.us ], [ %148, %.lr.ph300 ]
  %454 = add nuw nsw i64 %.0218298, 1
  %.not237.not = icmp slt i64 %.0218298, %452
  br i1 %.not237.not, label %.lr.ph300, label %._crit_edge301, !llvm.loop !33

._crit_edge301:                                   ; preds = %._crit_edge292, %145
  %455 = phi double [ %127, %145 ], [ %453, %._crit_edge292 ]
  %456 = add nuw i64 %.0219303, 1
  %exitcond324.not = icmp eq i64 %.0219303, %126
  br i1 %exitcond324.not, label %._crit_edge306, label %.lr.ph305, !llvm.loop !34

._crit_edge306:                                   ; preds = %._crit_edge301, %120
  %457 = phi double [ %121, %120 ], [ %455, %._crit_edge301 ]
  %458 = add nuw nsw i64 %.0223307, 1
  %exitcond325.not = icmp eq i64 %458, 3
  br i1 %exitcond325.not, label %.loopexit260, label %120, !llvm.loop !35

.loopexit260:                                     ; preds = %._crit_edge306, %108
  %459 = phi double [ %94, %108 ], [ %457, %._crit_edge306 ]
  %460 = add nuw i64 %.0222309, 1
  %exitcond326.not = icmp eq i64 %.0222309, %.0220337
  br i1 %exitcond326.not, label %.loopexit, label %.lr.ph311, !llvm.loop !36

.loopexit:                                        ; preds = %.loopexit260, %442, %92
  %461 = phi double [ %89, %92 ], [ %166, %442 ], [ %459, %.loopexit260 ]
  %462 = add nuw i64 %.0221313, 1
  %exitcond327.not = icmp eq i64 %.0221313, %73
  br i1 %exitcond327.not, label %._crit_edge316, label %88, !llvm.loop !37

._crit_edge316:                                   ; preds = %.loopexit, %32
  %463 = phi double [ 0.000000e+00, %32 ], [ %461, %.loopexit ]
  %464 = load double, ptr %2, align 8, !tbaa !10
  %465 = fcmp olt double %463, %464
  %466 = load i64, ptr %3, align 8, !tbaa !8
  br i1 %465, label %467, label %470

467:                                              ; preds = %._crit_edge316
  store i64 %466, ptr getelementptr inbounds (i8, ptr @zchk2_.io___197, i64 8), align 8, !tbaa !24
  %468 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___197) #5
  %469 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  br label %.sink.split

470:                                              ; preds = %._crit_edge316
  store i64 %466, ptr getelementptr inbounds (i8, ptr @zchk2_.io___198, i64 8), align 8, !tbaa !24
  %471 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___198) #5
  %472 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %473 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  br label %.sink.split

.loopexit259.sink.split:                          ; preds = %._crit_edge281, %323
  store i64 1, ptr %7, align 8, !tbaa !8
  br label %.loopexit259

.loopexit259:                                     ; preds = %443, %.loopexit259.sink.split
  %474 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %474, ptr getelementptr inbounds (i8, ptr @zchk2_.io___199, i64 8), align 8, !tbaa !24
  %475 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___199) #5
  %476 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %477 = call i64 @e_wsfe() #5
  br i1 %70, label %478, label %489

478:                                              ; preds = %.loopexit259
  %479 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %479, ptr getelementptr inbounds (i8, ptr @zchk2_.io___200, i64 8), align 8, !tbaa !24
  %480 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___200) #5
  %481 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  %482 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %483 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 1) #5
  %484 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %485 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %51, i64 noundef 8) #5
  %486 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #5
  %487 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #5
  %488 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %47, i64 noundef 8) #5
  br label %.sink.split

489:                                              ; preds = %.loopexit259
  br i1 %71, label %490, label %502

490:                                              ; preds = %489
  %491 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %491, ptr getelementptr inbounds (i8, ptr @zchk2_.io___201, i64 8), align 8, !tbaa !24
  %492 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___201) #5
  %493 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  %494 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %495 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 1) #5
  %496 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %497 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %498 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %51, i64 noundef 8) #5
  %499 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #5
  %500 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #5
  %501 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %47, i64 noundef 8) #5
  br label %.sink.split

502:                                              ; preds = %489
  br i1 %72, label %503, label %515

503:                                              ; preds = %502
  %504 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %504, ptr getelementptr inbounds (i8, ptr @zchk2_.io___202, i64 8), align 8, !tbaa !24
  %505 = call i64 @s_wsfe(ptr noundef nonnull @zchk2_.io___202) #5
  %506 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #5
  %507 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %508 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 1) #5
  %509 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %510 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %51, i64 noundef 8) #5
  %511 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #5
  %512 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %47, i64 noundef 8) #5
  br label %.sink.split

.sink.split:                                      ; preds = %470, %467, %490, %503, %478
  %.sink = phi ptr [ %49, %478 ], [ %49, %503 ], [ %49, %490 ], [ %41, %467 ], [ %54, %470 ]
  %513 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %.sink, i64 noundef 8) #5
  %514 = call i64 @e_wsfe() #5
  br label %515

515:                                              ; preds = %.sink.split, %502
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %52) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 16, 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 8, 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 16, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #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_zhemv(ptr noundef, 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_zhbmv(ptr noundef, ptr noundef, 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_zhpmv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.abs.i64(i64, i1 immarg) #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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"long", !6, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"double", !6, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!15, !11, i64 0}
!15 = !{!"", !11, i64 0, !11, i64 8}
!16 = !{!15, !11, i64 8}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.unroll.disable"}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !19}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !19}
!24 = !{!25, !9, i64 8}
!25 = !{!"", !9, i64 0, !9, i64 8, !9, i64 16, !26, i64 24, !9, i64 32}
!26 = !{!"any pointer", !6, i64 0}
!27 = !{!28, !9, i64 0}
!28 = !{!"", !9, i64 0, !9, i64 8}
!29 = !{!28, !9, i64 8}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13, !32}
!32 = !{!"llvm.loop.unswitch.partial.disable"}
!33 = distinct !{!33, !13}
!34 = distinct !{!34, !13}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}
!37 = distinct !{!37, !13}


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