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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local global %union.anon, align 8
@c_b2 = external hidden global %struct.doublecomplex, align 8
@c_b1 = external hidden global %struct.doublecomplex, align 8
@c_true = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@c__0 = external hidden global i64, align 8
@zchk3_.ichu = external hidden global [2 x i8], align 1
@zchk3_.icht = external hidden global [3 x i8], align 1
@zchk3_.ichd = external hidden global [2 x i8], align 1
@zchk3_.io___239 = external hidden global %struct.cilist, align 8
@zchk3_.io___240 = external hidden global %struct.cilist, align 8
@zchk3_.io___241 = external hidden global %struct.cilist, align 8
@zchk3_.io___242 = external hidden global %struct.cilist, align 8
@zchk3_.io___243 = external hidden global %struct.cilist, align 8
@zchk3_.io___244 = external hidden global %struct.cilist, align 8
@zchk3_.io___245 = external hidden global %struct.cilist, align 8
@zchk3_.io___248 = external hidden global %struct.cilist, align 8
@zchk3_.io___250 = external hidden global %struct.cilist, align 8
@zchk3_.io___251 = external hidden global %struct.cilist, align 8
@zchk3_.io___252 = external hidden global %struct.cilist, align 8
@zchk3_.io___253 = external hidden global %struct.cilist, align 8
@zchk3_.io___254 = external hidden global %struct.cilist, align 8
@zchk3_.io___255 = external hidden global %struct.cilist, align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [3 x i8], align 1
@c_false = external hidden global i64, 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

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

151:                                              ; preds = %26
  store i64 8, ptr %88, align 8, !tbaa !9
  br label %162

152:                                              ; preds = %26
  %153 = load i64, ptr %93, align 8, !tbaa !9
  %154 = icmp ne i64 %153, 0
  br i1 %154, label %155, label %156

155:                                              ; preds = %152
  store i64 9, ptr %88, align 8, !tbaa !9
  br label %161

156:                                              ; preds = %152
  %157 = load i64, ptr %94, align 8, !tbaa !9
  %158 = icmp ne i64 %157, 0
  br i1 %158, label %159, label %160

159:                                              ; preds = %156
  store i64 7, ptr %88, align 8, !tbaa !9
  br label %160

160:                                              ; preds = %159, %156
  br label %161

161:                                              ; preds = %160, %155
  br label %162

162:                                              ; preds = %161, %151
  store i64 0, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %89, align 8, !tbaa !9
  store double 0.000000e+00, ptr %95, align 8, !tbaa !12
  %163 = load ptr, ptr %41, align 8, !tbaa !5
  %164 = load i64, ptr %163, align 8, !tbaa !9
  store i64 %164, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %165

165:                                              ; preds = %179, %162
  %166 = load i64, ptr %62, align 8, !tbaa !9
  %167 = load i64, ptr %55, align 8, !tbaa !9
  %168 = icmp sle i64 %166, %167
  br i1 %168, label %169, label %182

169:                                              ; preds = %165
  %170 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %170, ptr %56, align 8, !tbaa !9
  %171 = load ptr, ptr %51, align 8, !tbaa !5
  %172 = load i64, ptr %56, align 8, !tbaa !9
  %173 = getelementptr inbounds %struct.doublecomplex, ptr %171, i64 %172
  %174 = getelementptr inbounds %struct.doublecomplex, ptr %173, i32 0, i32 0
  store double 0.000000e+00, ptr %174, align 8, !tbaa !14
  %175 = load ptr, ptr %51, align 8, !tbaa !5
  %176 = load i64, ptr %56, align 8, !tbaa !9
  %177 = getelementptr inbounds %struct.doublecomplex, ptr %175, i64 %176
  %178 = getelementptr inbounds %struct.doublecomplex, ptr %177, i32 0, i32 1
  store double 0.000000e+00, ptr %178, align 8, !tbaa !16
  br label %179

179:                                              ; preds = %169
  %180 = load i64, ptr %62, align 8, !tbaa !9
  %181 = add nsw i64 %180, 1
  store i64 %181, ptr %62, align 8, !tbaa !9
  br label %165, !llvm.loop !17

182:                                              ; preds = %165
  %183 = load ptr, ptr %35, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  store i64 %184, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %185

185:                                              ; preds = %1119, %182
  %186 = load i64, ptr %67, align 8, !tbaa !9
  %187 = load i64, ptr %55, align 8, !tbaa !9
  %188 = icmp sle i64 %186, %187
  br i1 %188, label %189, label %1122

189:                                              ; preds = %185
  %190 = load ptr, ptr %36, align 8, !tbaa !5
  %191 = load i64, ptr %67, align 8, !tbaa !9
  %192 = getelementptr inbounds i64, ptr %190, i64 %191
  %193 = load i64, ptr %192, align 8, !tbaa !9
  store i64 %193, ptr %64, align 8, !tbaa !9
  %194 = load i64, ptr %93, align 8, !tbaa !9
  %195 = icmp ne i64 %194, 0
  br i1 %195, label %196, label %199

196:                                              ; preds = %189
  %197 = load ptr, ptr %37, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  store i64 %198, ptr %68, align 8, !tbaa !9
  br label %200

199:                                              ; preds = %189
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %200

200:                                              ; preds = %199, %196
  %201 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %201, ptr %56, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %202

202:                                              ; preds = %1114, %200
  %203 = load i64, ptr %66, align 8, !tbaa !9
  %204 = load i64, ptr %56, align 8, !tbaa !9
  %205 = icmp sle i64 %203, %204
  br i1 %205, label %206, label %1117

206:                                              ; preds = %202
  %207 = load i64, ptr %93, align 8, !tbaa !9
  %208 = icmp ne i64 %207, 0
  br i1 %208, label %209, label %214

209:                                              ; preds = %206
  %210 = load ptr, ptr %38, align 8, !tbaa !5
  %211 = load i64, ptr %66, align 8, !tbaa !9
  %212 = getelementptr inbounds i64, ptr %210, i64 %211
  %213 = load i64, ptr %212, align 8, !tbaa !9
  store i64 %213, ptr %63, align 8, !tbaa !9
  br label %217

214:                                              ; preds = %206
  %215 = load i64, ptr %64, align 8, !tbaa !9
  %216 = sub nsw i64 %215, 1
  store i64 %216, ptr %63, align 8, !tbaa !9
  br label %217

217:                                              ; preds = %214, %209
  %218 = load i64, ptr %93, align 8, !tbaa !9
  %219 = icmp ne i64 %218, 0
  br i1 %219, label %220, label %223

220:                                              ; preds = %217
  %221 = load i64, ptr %63, align 8, !tbaa !9
  %222 = add nsw i64 %221, 1
  store i64 %222, ptr %75, align 8, !tbaa !9
  br label %225

223:                                              ; preds = %217
  %224 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %224, ptr %75, align 8, !tbaa !9
  br label %225

225:                                              ; preds = %223, %220
  %226 = load i64, ptr %75, align 8, !tbaa !9
  %227 = load ptr, ptr %41, align 8, !tbaa !5
  %228 = load i64, ptr %227, align 8, !tbaa !9
  %229 = icmp slt i64 %226, %228
  br i1 %229, label %230, label %233

230:                                              ; preds = %225
  %231 = load i64, ptr %75, align 8, !tbaa !9
  %232 = add nsw i64 %231, 1
  store i64 %232, ptr %75, align 8, !tbaa !9
  br label %233

233:                                              ; preds = %230, %225
  %234 = load i64, ptr %75, align 8, !tbaa !9
  %235 = load ptr, ptr %41, align 8, !tbaa !5
  %236 = load i64, ptr %235, align 8, !tbaa !9
  %237 = icmp sgt i64 %234, %236
  br i1 %237, label %238, label %239

238:                                              ; preds = %233
  br label %1113

239:                                              ; preds = %233
  %240 = load i64, ptr %94, align 8, !tbaa !9
  %241 = icmp ne i64 %240, 0
  br i1 %241, label %242, label %248

242:                                              ; preds = %239
  %243 = load i64, ptr %64, align 8, !tbaa !9
  %244 = load i64, ptr %64, align 8, !tbaa !9
  %245 = add nsw i64 %244, 1
  %246 = mul nsw i64 %243, %245
  %247 = sdiv i64 %246, 2
  store i64 %247, ptr %73, align 8, !tbaa !9
  br label %252

248:                                              ; preds = %239
  %249 = load i64, ptr %75, align 8, !tbaa !9
  %250 = load i64, ptr %64, align 8, !tbaa !9
  %251 = mul nsw i64 %249, %250
  store i64 %251, ptr %73, align 8, !tbaa !9
  br label %252

252:                                              ; preds = %248, %242
  %253 = load i64, ptr %64, align 8, !tbaa !9
  %254 = icmp sle i64 %253, 0
  %255 = zext i1 %254 to i32
  %256 = sext i32 %255 to i64
  store i64 %256, ptr %84, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %257

257:                                              ; preds = %1109, %252
  %258 = load i64, ptr %77, align 8, !tbaa !9
  %259 = icmp sle i64 %258, 2
  br i1 %259, label %260, label %1112

260:                                              ; preds = %257
  %261 = load i64, ptr %77, align 8, !tbaa !9
  %262 = sub nsw i64 %261, 1
  %263 = getelementptr inbounds [2 x i8], ptr @zchk3_.ichu, i64 0, i64 %262
  %264 = load i8, ptr %263, align 1, !tbaa !11
  %265 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  store i8 %264, ptr %265, align 1, !tbaa !11
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %266

266:                                              ; preds = %1105, %260
  %267 = load i64, ptr %76, align 8, !tbaa !9
  %268 = icmp sle i64 %267, 3
  br i1 %268, label %269, label %1108

269:                                              ; preds = %266
  %270 = load i64, ptr %76, align 8, !tbaa !9
  %271 = sub nsw i64 %270, 1
  %272 = getelementptr inbounds [3 x i8], ptr @zchk3_.icht, i64 0, i64 %271
  %273 = load i8, ptr %272, align 1, !tbaa !11
  %274 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  store i8 %273, ptr %274, align 1, !tbaa !11
  store i64 1, ptr %74, align 8, !tbaa !9
  br label %275

275:                                              ; preds = %1101, %269
  %276 = load i64, ptr %74, align 8, !tbaa !9
  %277 = icmp sle i64 %276, 2
  br i1 %277, label %278, label %1104

278:                                              ; preds = %275
  %279 = load i64, ptr %74, align 8, !tbaa !9
  %280 = sub nsw i64 %279, 1
  %281 = getelementptr inbounds [2 x i8], ptr @zchk3_.ichd, i64 0, i64 %280
  %282 = load i8, ptr %281, align 1, !tbaa !11
  %283 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  store i8 %282, ptr %283, align 1, !tbaa !11
  %284 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  store double 0.000000e+00, ptr %284, align 8, !tbaa !14
  %285 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  store double 0.000000e+00, ptr %285, align 8, !tbaa !16
  %286 = load ptr, ptr %27, align 8, !tbaa !5
  %287 = getelementptr inbounds i8, ptr %286, i64 1
  %288 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %289 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %290 = load ptr, ptr %43, align 8, !tbaa !5
  %291 = load i64, ptr %54, align 8, !tbaa !9
  %292 = getelementptr inbounds %struct.doublecomplex, ptr %290, i64 %291
  %293 = load ptr, ptr %41, align 8, !tbaa !5
  %294 = load ptr, ptr %44, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.doublecomplex, ptr %294, i64 1
  %296 = call i32 @zmake_(ptr noundef %287, ptr noundef %288, ptr noundef %289, ptr noundef %64, ptr noundef %64, ptr noundef %292, ptr noundef %293, ptr noundef %295, ptr noundef %75, ptr noundef %63, ptr noundef %63, ptr noundef %89, ptr noundef %96, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %297 = load ptr, ptr %39, align 8, !tbaa !5
  %298 = load i64, ptr %297, align 8, !tbaa !9
  store i64 %298, ptr %57, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %299

299:                                              ; preds = %1097, %278
  %300 = load i64, ptr %70, align 8, !tbaa !9
  %301 = load i64, ptr %57, align 8, !tbaa !9
  %302 = icmp sle i64 %300, %301
  br i1 %302, label %303, label %1100

303:                                              ; preds = %299
  %304 = load ptr, ptr %40, align 8, !tbaa !5
  %305 = load i64, ptr %70, align 8, !tbaa !9
  %306 = getelementptr inbounds i64, ptr %304, i64 %305
  %307 = load i64, ptr %306, align 8, !tbaa !9
  store i64 %307, ptr %82, align 8, !tbaa !9
  %308 = load i64, ptr %82, align 8, !tbaa !9
  %309 = icmp sge i64 %308, 0
  br i1 %309, label %310, label %312

310:                                              ; preds = %303
  %311 = load i64, ptr %82, align 8, !tbaa !9
  br label %315

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

315:                                              ; preds = %312, %310
  %316 = phi i64 [ %311, %310 ], [ %314, %312 ]
  %317 = load i64, ptr %64, align 8, !tbaa !9
  %318 = mul nsw i64 %316, %317
  store i64 %318, ptr %72, align 8, !tbaa !9
  %319 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 0
  store double 5.000000e-01, ptr %319, align 8, !tbaa !14
  %320 = getelementptr inbounds %struct.doublecomplex, ptr %96, i32 0, i32 1
  store double 0.000000e+00, ptr %320, align 8, !tbaa !16
  %321 = load i64, ptr %82, align 8, !tbaa !9
  %322 = icmp sge i64 %321, 0
  br i1 %322, label %323, label %325

323:                                              ; preds = %315
  %324 = load i64, ptr %82, align 8, !tbaa !9
  br label %328

325:                                              ; preds = %315
  %326 = load i64, ptr %82, align 8, !tbaa !9
  %327 = sub nsw i64 0, %326
  br label %328

328:                                              ; preds = %325, %323
  %329 = phi i64 [ %324, %323 ], [ %327, %325 ]
  store i64 %329, ptr %58, align 8, !tbaa !9
  %330 = load i64, ptr %64, align 8, !tbaa !9
  %331 = sub nsw i64 %330, 1
  store i64 %331, ptr %59, align 8, !tbaa !9
  %332 = load ptr, ptr %46, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.doublecomplex, ptr %332, i64 1
  %334 = load ptr, ptr %47, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.doublecomplex, ptr %334, i64 1
  %336 = call i32 @zmake_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %64, ptr noundef %333, ptr noundef @c__1, ptr noundef %335, ptr noundef %58, ptr noundef @c__0, ptr noundef %59, ptr noundef %89, ptr noundef %96, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %337 = load i64, ptr %64, align 8, !tbaa !9
  %338 = icmp sgt i64 %337, 1
  br i1 %338, label %339, label %372

339:                                              ; preds = %328
  %340 = load i64, ptr %64, align 8, !tbaa !9
  %341 = sdiv i64 %340, 2
  store i64 %341, ptr %58, align 8, !tbaa !9
  %342 = load ptr, ptr %46, align 8, !tbaa !5
  %343 = load i64, ptr %58, align 8, !tbaa !9
  %344 = getelementptr inbounds %struct.doublecomplex, ptr %342, i64 %343
  %345 = getelementptr inbounds %struct.doublecomplex, ptr %344, i32 0, i32 0
  store double 0.000000e+00, ptr %345, align 8, !tbaa !14
  %346 = load ptr, ptr %46, align 8, !tbaa !5
  %347 = load i64, ptr %58, align 8, !tbaa !9
  %348 = getelementptr inbounds %struct.doublecomplex, ptr %346, i64 %347
  %349 = getelementptr inbounds %struct.doublecomplex, ptr %348, i32 0, i32 1
  store double 0.000000e+00, ptr %349, align 8, !tbaa !16
  %350 = load i64, ptr %82, align 8, !tbaa !9
  %351 = icmp sge i64 %350, 0
  br i1 %351, label %352, label %354

352:                                              ; preds = %339
  %353 = load i64, ptr %82, align 8, !tbaa !9
  br label %357

354:                                              ; preds = %339
  %355 = load i64, ptr %82, align 8, !tbaa !9
  %356 = sub nsw i64 0, %355
  br label %357

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

372:                                              ; preds = %357, %328
  %373 = load i64, ptr %65, align 8, !tbaa !9
  %374 = add nsw i64 %373, 1
  store i64 %374, ptr %65, align 8, !tbaa !9
  %375 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %376 = load i8, ptr %375, align 1, !tbaa !11
  %377 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  store i8 %376, ptr %377, align 1, !tbaa !11
  %378 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %379 = load i8, ptr %378, align 1, !tbaa !11
  %380 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  store i8 %379, ptr %380, align 1, !tbaa !11
  %381 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %382 = load i8, ptr %381, align 1, !tbaa !11
  %383 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  store i8 %382, ptr %383, align 1, !tbaa !11
  %384 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %384, ptr %71, align 8, !tbaa !9
  %385 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %385, ptr %69, align 8, !tbaa !9
  %386 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %386, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %387

387:                                              ; preds = %412, %372
  %388 = load i64, ptr %62, align 8, !tbaa !9
  %389 = load i64, ptr %58, align 8, !tbaa !9
  %390 = icmp sle i64 %388, %389
  br i1 %390, label %391, label %415

391:                                              ; preds = %387
  %392 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %392, ptr %59, align 8, !tbaa !9
  %393 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %393, ptr %60, align 8, !tbaa !9
  %394 = load ptr, ptr %44, align 8, !tbaa !5
  %395 = load i64, ptr %60, align 8, !tbaa !9
  %396 = getelementptr inbounds %struct.doublecomplex, ptr %394, i64 %395
  %397 = getelementptr inbounds %struct.doublecomplex, ptr %396, i32 0, i32 0
  %398 = load double, ptr %397, align 8, !tbaa !14
  %399 = load ptr, ptr %45, align 8, !tbaa !5
  %400 = load i64, ptr %59, align 8, !tbaa !9
  %401 = getelementptr inbounds %struct.doublecomplex, ptr %399, i64 %400
  %402 = getelementptr inbounds %struct.doublecomplex, ptr %401, i32 0, i32 0
  store double %398, ptr %402, align 8, !tbaa !14
  %403 = load ptr, ptr %44, align 8, !tbaa !5
  %404 = load i64, ptr %60, align 8, !tbaa !9
  %405 = getelementptr inbounds %struct.doublecomplex, ptr %403, i64 %404
  %406 = getelementptr inbounds %struct.doublecomplex, ptr %405, i32 0, i32 1
  %407 = load double, ptr %406, align 8, !tbaa !16
  %408 = load ptr, ptr %45, align 8, !tbaa !5
  %409 = load i64, ptr %59, align 8, !tbaa !9
  %410 = getelementptr inbounds %struct.doublecomplex, ptr %408, i64 %409
  %411 = getelementptr inbounds %struct.doublecomplex, ptr %410, i32 0, i32 1
  store double %407, ptr %411, align 8, !tbaa !16
  br label %412

412:                                              ; preds = %391
  %413 = load i64, ptr %62, align 8, !tbaa !9
  %414 = add nsw i64 %413, 1
  store i64 %414, ptr %62, align 8, !tbaa !9
  br label %387, !llvm.loop !19

415:                                              ; preds = %387
  %416 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %416, ptr %80, align 8, !tbaa !9
  %417 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %417, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %418

418:                                              ; preds = %443, %415
  %419 = load i64, ptr %62, align 8, !tbaa !9
  %420 = load i64, ptr %58, align 8, !tbaa !9
  %421 = icmp sle i64 %419, %420
  br i1 %421, label %422, label %446

422:                                              ; preds = %418
  %423 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %423, ptr %59, align 8, !tbaa !9
  %424 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %424, ptr %60, align 8, !tbaa !9
  %425 = load ptr, ptr %47, align 8, !tbaa !5
  %426 = load i64, ptr %60, align 8, !tbaa !9
  %427 = getelementptr inbounds %struct.doublecomplex, ptr %425, i64 %426
  %428 = getelementptr inbounds %struct.doublecomplex, ptr %427, i32 0, i32 0
  %429 = load double, ptr %428, align 8, !tbaa !14
  %430 = load ptr, ptr %48, align 8, !tbaa !5
  %431 = load i64, ptr %59, align 8, !tbaa !9
  %432 = getelementptr inbounds %struct.doublecomplex, ptr %430, i64 %431
  %433 = getelementptr inbounds %struct.doublecomplex, ptr %432, i32 0, i32 0
  store double %429, ptr %433, align 8, !tbaa !14
  %434 = load ptr, ptr %47, align 8, !tbaa !5
  %435 = load i64, ptr %60, align 8, !tbaa !9
  %436 = getelementptr inbounds %struct.doublecomplex, ptr %434, i64 %435
  %437 = getelementptr inbounds %struct.doublecomplex, ptr %436, i32 0, i32 1
  %438 = load double, ptr %437, align 8, !tbaa !16
  %439 = load ptr, ptr %48, align 8, !tbaa !5
  %440 = load i64, ptr %59, align 8, !tbaa !9
  %441 = getelementptr inbounds %struct.doublecomplex, ptr %439, i64 %440
  %442 = getelementptr inbounds %struct.doublecomplex, ptr %441, i32 0, i32 1
  store double %438, ptr %442, align 8, !tbaa !16
  br label %443

443:                                              ; preds = %422
  %444 = load i64, ptr %62, align 8, !tbaa !9
  %445 = add nsw i64 %444, 1
  store i64 %445, ptr %62, align 8, !tbaa !9
  br label %418, !llvm.loop !20

446:                                              ; preds = %418
  %447 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %447, ptr %90, align 8, !tbaa !9
  %448 = load ptr, ptr %27, align 8, !tbaa !5
  %449 = getelementptr inbounds i8, ptr %448, i64 3
  %450 = call i64 @s_cmp(ptr noundef %449, ptr noundef @.str.9, i64 noundef 2, i64 noundef 2)
  %451 = icmp eq i64 %450, 0
  br i1 %451, label %452, label %584

452:                                              ; preds = %446
  %453 = load i64, ptr %83, align 8, !tbaa !9
  %454 = icmp ne i64 %453, 0
  br i1 %454, label %455, label %495

455:                                              ; preds = %452
  %456 = load ptr, ptr %32, align 8, !tbaa !5
  %457 = load i64, ptr %456, align 8, !tbaa !9
  %458 = icmp ne i64 %457, 0
  br i1 %458, label %459, label %476

459:                                              ; preds = %455
  %460 = load ptr, ptr %31, align 8, !tbaa !5
  %461 = load i64, ptr %460, align 8, !tbaa !9
  store i64 %461, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___239, i32 0, i32 1), align 8, !tbaa !21
  %462 = call i64 @s_wsfe(ptr noundef @zchk3_.io___239)
  %463 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %464 = load ptr, ptr %27, align 8, !tbaa !5
  %465 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %464, i64 noundef 6)
  %466 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %467 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %466, i64 noundef 1)
  %468 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %469 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %468, i64 noundef 1)
  %470 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %471 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %470, i64 noundef 1)
  %472 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %473 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %474 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %475 = call i64 @e_wsfe()
  br label %476

476:                                              ; preds = %459, %455
  %477 = load ptr, ptr %33, align 8, !tbaa !5
  %478 = load i64, ptr %477, align 8, !tbaa !9
  %479 = icmp ne i64 %478, 0
  br i1 %479, label %480, label %486

480:                                              ; preds = %476
  %481 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 0
  store i64 0, ptr %481, align 8, !tbaa !23
  %482 = load ptr, ptr %31, align 8, !tbaa !5
  %483 = load i64, ptr %482, align 8, !tbaa !9
  %484 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 1
  store i64 %483, ptr %484, align 8, !tbaa !25
  %485 = call i64 @f_rew(ptr noundef %61)
  br label %486

486:                                              ; preds = %480, %476
  %487 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %488 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %489 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %490 = load ptr, ptr %44, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.doublecomplex, ptr %490, i64 1
  %492 = load ptr, ptr %47, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.doublecomplex, ptr %492, i64 1
  %494 = call i32 @f2c_ztrmv(ptr noundef %487, ptr noundef %488, ptr noundef %489, ptr noundef %64, ptr noundef %491, ptr noundef %75, ptr noundef %493, ptr noundef %82)
  br label %583

495:                                              ; preds = %452
  %496 = load i64, ptr %93, align 8, !tbaa !9
  %497 = icmp ne i64 %496, 0
  br i1 %497, label %498, label %539

498:                                              ; preds = %495
  %499 = load ptr, ptr %32, align 8, !tbaa !5
  %500 = load i64, ptr %499, align 8, !tbaa !9
  %501 = icmp ne i64 %500, 0
  br i1 %501, label %502, label %520

502:                                              ; preds = %498
  %503 = load ptr, ptr %31, align 8, !tbaa !5
  %504 = load i64, ptr %503, align 8, !tbaa !9
  store i64 %504, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___240, i32 0, i32 1), align 8, !tbaa !21
  %505 = call i64 @s_wsfe(ptr noundef @zchk3_.io___240)
  %506 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %507 = load ptr, ptr %27, align 8, !tbaa !5
  %508 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %507, i64 noundef 6)
  %509 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %510 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %509, i64 noundef 1)
  %511 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %512 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %511, i64 noundef 1)
  %513 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %514 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %513, i64 noundef 1)
  %515 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %516 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %517 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %518 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %519 = call i64 @e_wsfe()
  br label %520

520:                                              ; preds = %502, %498
  %521 = load ptr, ptr %33, align 8, !tbaa !5
  %522 = load i64, ptr %521, align 8, !tbaa !9
  %523 = icmp ne i64 %522, 0
  br i1 %523, label %524, label %530

524:                                              ; preds = %520
  %525 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 0
  store i64 0, ptr %525, align 8, !tbaa !23
  %526 = load ptr, ptr %31, align 8, !tbaa !5
  %527 = load i64, ptr %526, align 8, !tbaa !9
  %528 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 1
  store i64 %527, ptr %528, align 8, !tbaa !25
  %529 = call i64 @f_rew(ptr noundef %61)
  br label %530

530:                                              ; preds = %524, %520
  %531 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %532 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %533 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %534 = load ptr, ptr %44, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.doublecomplex, ptr %534, i64 1
  %536 = load ptr, ptr %47, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.doublecomplex, ptr %536, i64 1
  %538 = call i32 @f2c_ztbmv(ptr noundef %531, ptr noundef %532, ptr noundef %533, ptr noundef %64, ptr noundef %63, ptr noundef %535, ptr noundef %75, ptr noundef %537, ptr noundef %82)
  br label %582

539:                                              ; preds = %495
  %540 = load i64, ptr %94, align 8, !tbaa !9
  %541 = icmp ne i64 %540, 0
  br i1 %541, label %542, label %581

542:                                              ; preds = %539
  %543 = load ptr, ptr %32, align 8, !tbaa !5
  %544 = load i64, ptr %543, align 8, !tbaa !9
  %545 = icmp ne i64 %544, 0
  br i1 %545, label %546, label %562

546:                                              ; preds = %542
  %547 = load ptr, ptr %31, align 8, !tbaa !5
  %548 = load i64, ptr %547, align 8, !tbaa !9
  store i64 %548, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___241, i32 0, i32 1), align 8, !tbaa !21
  %549 = call i64 @s_wsfe(ptr noundef @zchk3_.io___241)
  %550 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %551 = load ptr, ptr %27, align 8, !tbaa !5
  %552 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %551, i64 noundef 6)
  %553 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %554 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %553, i64 noundef 1)
  %555 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %556 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %555, i64 noundef 1)
  %557 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %558 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %557, i64 noundef 1)
  %559 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %560 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %561 = call i64 @e_wsfe()
  br label %562

562:                                              ; preds = %546, %542
  %563 = load ptr, ptr %33, align 8, !tbaa !5
  %564 = load i64, ptr %563, align 8, !tbaa !9
  %565 = icmp ne i64 %564, 0
  br i1 %565, label %566, label %572

566:                                              ; preds = %562
  %567 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 0
  store i64 0, ptr %567, align 8, !tbaa !23
  %568 = load ptr, ptr %31, align 8, !tbaa !5
  %569 = load i64, ptr %568, align 8, !tbaa !9
  %570 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 1
  store i64 %569, ptr %570, align 8, !tbaa !25
  %571 = call i64 @f_rew(ptr noundef %61)
  br label %572

572:                                              ; preds = %566, %562
  %573 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %574 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %575 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %576 = load ptr, ptr %44, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.doublecomplex, ptr %576, i64 1
  %578 = load ptr, ptr %47, align 8, !tbaa !5
  %579 = getelementptr inbounds %struct.doublecomplex, ptr %578, i64 1
  %580 = call i32 @f2c_ztpmv(ptr noundef %573, ptr noundef %574, ptr noundef %575, ptr noundef %64, ptr noundef %577, ptr noundef %579, ptr noundef %82)
  br label %581

581:                                              ; preds = %572, %539
  br label %582

582:                                              ; preds = %581, %530
  br label %583

583:                                              ; preds = %582, %486
  br label %722

584:                                              ; preds = %446
  %585 = load ptr, ptr %27, align 8, !tbaa !5
  %586 = getelementptr inbounds i8, ptr %585, i64 3
  %587 = call i64 @s_cmp(ptr noundef %586, ptr noundef @.str.10, i64 noundef 2, i64 noundef 2)
  %588 = icmp eq i64 %587, 0
  br i1 %588, label %589, label %721

589:                                              ; preds = %584
  %590 = load i64, ptr %83, align 8, !tbaa !9
  %591 = icmp ne i64 %590, 0
  br i1 %591, label %592, label %632

592:                                              ; preds = %589
  %593 = load ptr, ptr %32, align 8, !tbaa !5
  %594 = load i64, ptr %593, align 8, !tbaa !9
  %595 = icmp ne i64 %594, 0
  br i1 %595, label %596, label %613

596:                                              ; preds = %592
  %597 = load ptr, ptr %31, align 8, !tbaa !5
  %598 = load i64, ptr %597, align 8, !tbaa !9
  store i64 %598, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___242, i32 0, i32 1), align 8, !tbaa !21
  %599 = call i64 @s_wsfe(ptr noundef @zchk3_.io___242)
  %600 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %601 = load ptr, ptr %27, align 8, !tbaa !5
  %602 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %601, i64 noundef 6)
  %603 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %604 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %603, i64 noundef 1)
  %605 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %606 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %605, i64 noundef 1)
  %607 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %608 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %607, i64 noundef 1)
  %609 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %610 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %611 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %612 = call i64 @e_wsfe()
  br label %613

613:                                              ; preds = %596, %592
  %614 = load ptr, ptr %33, align 8, !tbaa !5
  %615 = load i64, ptr %614, align 8, !tbaa !9
  %616 = icmp ne i64 %615, 0
  br i1 %616, label %617, label %623

617:                                              ; preds = %613
  %618 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 0
  store i64 0, ptr %618, align 8, !tbaa !23
  %619 = load ptr, ptr %31, align 8, !tbaa !5
  %620 = load i64, ptr %619, align 8, !tbaa !9
  %621 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 1
  store i64 %620, ptr %621, align 8, !tbaa !25
  %622 = call i64 @f_rew(ptr noundef %61)
  br label %623

623:                                              ; preds = %617, %613
  %624 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %625 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %626 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %627 = load ptr, ptr %44, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.doublecomplex, ptr %627, i64 1
  %629 = load ptr, ptr %47, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.doublecomplex, ptr %629, i64 1
  %631 = call i32 @f2c_ztrsv(ptr noundef %624, ptr noundef %625, ptr noundef %626, ptr noundef %64, ptr noundef %628, ptr noundef %75, ptr noundef %630, ptr noundef %82)
  br label %720

632:                                              ; preds = %589
  %633 = load i64, ptr %93, align 8, !tbaa !9
  %634 = icmp ne i64 %633, 0
  br i1 %634, label %635, label %676

635:                                              ; preds = %632
  %636 = load ptr, ptr %32, align 8, !tbaa !5
  %637 = load i64, ptr %636, align 8, !tbaa !9
  %638 = icmp ne i64 %637, 0
  br i1 %638, label %639, label %657

639:                                              ; preds = %635
  %640 = load ptr, ptr %31, align 8, !tbaa !5
  %641 = load i64, ptr %640, align 8, !tbaa !9
  store i64 %641, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___243, i32 0, i32 1), align 8, !tbaa !21
  %642 = call i64 @s_wsfe(ptr noundef @zchk3_.io___243)
  %643 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %644 = load ptr, ptr %27, align 8, !tbaa !5
  %645 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %644, i64 noundef 6)
  %646 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %647 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %646, i64 noundef 1)
  %648 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %649 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %648, i64 noundef 1)
  %650 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %651 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %650, i64 noundef 1)
  %652 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %653 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %654 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %655 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %656 = call i64 @e_wsfe()
  br label %657

657:                                              ; preds = %639, %635
  %658 = load ptr, ptr %33, align 8, !tbaa !5
  %659 = load i64, ptr %658, align 8, !tbaa !9
  %660 = icmp ne i64 %659, 0
  br i1 %660, label %661, label %667

661:                                              ; preds = %657
  %662 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 0
  store i64 0, ptr %662, align 8, !tbaa !23
  %663 = load ptr, ptr %31, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 1
  store i64 %664, ptr %665, align 8, !tbaa !25
  %666 = call i64 @f_rew(ptr noundef %61)
  br label %667

667:                                              ; preds = %661, %657
  %668 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %669 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %670 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %671 = load ptr, ptr %44, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.doublecomplex, ptr %671, i64 1
  %673 = load ptr, ptr %47, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.doublecomplex, ptr %673, i64 1
  %675 = call i32 @f2c_ztbsv(ptr noundef %668, ptr noundef %669, ptr noundef %670, ptr noundef %64, ptr noundef %63, ptr noundef %672, ptr noundef %75, ptr noundef %674, ptr noundef %82)
  br label %719

676:                                              ; preds = %632
  %677 = load i64, ptr %94, align 8, !tbaa !9
  %678 = icmp ne i64 %677, 0
  br i1 %678, label %679, label %718

679:                                              ; preds = %676
  %680 = load ptr, ptr %32, align 8, !tbaa !5
  %681 = load i64, ptr %680, align 8, !tbaa !9
  %682 = icmp ne i64 %681, 0
  br i1 %682, label %683, label %699

683:                                              ; preds = %679
  %684 = load ptr, ptr %31, align 8, !tbaa !5
  %685 = load i64, ptr %684, align 8, !tbaa !9
  store i64 %685, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___244, i32 0, i32 1), align 8, !tbaa !21
  %686 = call i64 @s_wsfe(ptr noundef @zchk3_.io___244)
  %687 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %688 = load ptr, ptr %27, align 8, !tbaa !5
  %689 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %688, i64 noundef 6)
  %690 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %691 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %690, i64 noundef 1)
  %692 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %693 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %692, i64 noundef 1)
  %694 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %695 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %694, i64 noundef 1)
  %696 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %697 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %698 = call i64 @e_wsfe()
  br label %699

699:                                              ; preds = %683, %679
  %700 = load ptr, ptr %33, align 8, !tbaa !5
  %701 = load i64, ptr %700, align 8, !tbaa !9
  %702 = icmp ne i64 %701, 0
  br i1 %702, label %703, label %709

703:                                              ; preds = %699
  %704 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 0
  store i64 0, ptr %704, align 8, !tbaa !23
  %705 = load ptr, ptr %31, align 8, !tbaa !5
  %706 = load i64, ptr %705, align 8, !tbaa !9
  %707 = getelementptr inbounds %struct.alist, ptr %61, i32 0, i32 1
  store i64 %706, ptr %707, align 8, !tbaa !25
  %708 = call i64 @f_rew(ptr noundef %61)
  br label %709

709:                                              ; preds = %703, %699
  %710 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %711 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %712 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %713 = load ptr, ptr %44, align 8, !tbaa !5
  %714 = getelementptr inbounds %struct.doublecomplex, ptr %713, i64 1
  %715 = load ptr, ptr %47, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.doublecomplex, ptr %715, i64 1
  %717 = call i32 @f2c_ztpsv(ptr noundef %710, ptr noundef %711, ptr noundef %712, ptr noundef %64, ptr noundef %714, ptr noundef %716, ptr noundef %82)
  br label %718

718:                                              ; preds = %709, %676
  br label %719

719:                                              ; preds = %718, %667
  br label %720

720:                                              ; preds = %719, %623
  br label %721

721:                                              ; preds = %720, %584
  br label %722

722:                                              ; preds = %721, %583
  %723 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !11
  %724 = icmp ne i64 %723, 0
  br i1 %724, label %731, label %725

725:                                              ; preds = %722
  %726 = load ptr, ptr %30, align 8, !tbaa !5
  %727 = load i64, ptr %726, align 8, !tbaa !9
  store i64 %727, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___245, i32 0, i32 1), align 8, !tbaa !21
  %728 = call i64 @s_wsfe(ptr noundef @zchk3_.io___245)
  %729 = call i64 @e_wsfe()
  %730 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 1, ptr %730, align 8, !tbaa !9
  br label %1145

731:                                              ; preds = %722
  %732 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %733 = load i8, ptr %732, align 1, !tbaa !11
  %734 = zext i8 %733 to i32
  %735 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %736 = load i8, ptr %735, align 1, !tbaa !11
  %737 = zext i8 %736 to i32
  %738 = icmp eq i32 %734, %737
  %739 = zext i1 %738 to i32
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 0
  store i64 %740, ptr %741, align 16, !tbaa !9
  %742 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %743 = load i8, ptr %742, align 1, !tbaa !11
  %744 = zext i8 %743 to i32
  %745 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  %746 = load i8, ptr %745, align 1, !tbaa !11
  %747 = zext i8 %746 to i32
  %748 = icmp eq i32 %744, %747
  %749 = zext i1 %748 to i32
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 1
  store i64 %750, ptr %751, align 8, !tbaa !9
  %752 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %753 = load i8, ptr %752, align 1, !tbaa !11
  %754 = zext i8 %753 to i32
  %755 = getelementptr inbounds [1 x i8], ptr %86, i64 0, i64 0
  %756 = load i8, ptr %755, align 1, !tbaa !11
  %757 = zext i8 %756 to i32
  %758 = icmp eq i32 %754, %757
  %759 = zext i1 %758 to i32
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 2
  store i64 %760, ptr %761, align 16, !tbaa !9
  %762 = load i64, ptr %71, align 8, !tbaa !9
  %763 = load i64, ptr %64, align 8, !tbaa !9
  %764 = icmp eq i64 %762, %763
  %765 = zext i1 %764 to i32
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 3
  store i64 %766, ptr %767, align 8, !tbaa !9
  %768 = load i64, ptr %83, align 8, !tbaa !9
  %769 = icmp ne i64 %768, 0
  br i1 %769, label %770, label %815

770:                                              ; preds = %731
  %771 = load ptr, ptr %45, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.doublecomplex, ptr %771, i64 1
  %773 = load ptr, ptr %44, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.doublecomplex, ptr %773, i64 1
  %775 = call i64 @lze_(ptr noundef %772, ptr noundef %774, ptr noundef %73)
  %776 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 4
  store i64 %775, ptr %776, align 16, !tbaa !9
  %777 = load i64, ptr %80, align 8, !tbaa !9
  %778 = load i64, ptr %75, align 8, !tbaa !9
  %779 = icmp eq i64 %777, %778
  %780 = zext i1 %779 to i32
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 5
  store i64 %781, ptr %782, align 8, !tbaa !9
  %783 = load i64, ptr %84, align 8, !tbaa !9
  %784 = icmp ne i64 %783, 0
  br i1 %784, label %785, label %792

785:                                              ; preds = %770
  %786 = load ptr, ptr %48, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.doublecomplex, ptr %786, i64 1
  %788 = load ptr, ptr %47, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.doublecomplex, ptr %788, i64 1
  %790 = call i64 @lze_(ptr noundef %787, ptr noundef %789, ptr noundef %72)
  %791 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 6
  store i64 %790, ptr %791, align 16, !tbaa !9
  br label %808

792:                                              ; preds = %770
  %793 = load i64, ptr %82, align 8, !tbaa !9
  %794 = icmp sge i64 %793, 0
  br i1 %794, label %795, label %797

795:                                              ; preds = %792
  %796 = load i64, ptr %82, align 8, !tbaa !9
  br label %800

797:                                              ; preds = %792
  %798 = load i64, ptr %82, align 8, !tbaa !9
  %799 = sub nsw i64 0, %798
  br label %800

800:                                              ; preds = %797, %795
  %801 = phi i64 [ %796, %795 ], [ %799, %797 ]
  store i64 %801, ptr %58, align 8, !tbaa !9
  %802 = load ptr, ptr %48, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.doublecomplex, ptr %802, i64 1
  %804 = load ptr, ptr %47, align 8, !tbaa !5
  %805 = getelementptr inbounds %struct.doublecomplex, ptr %804, i64 1
  %806 = call i64 @lzeres_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %64, ptr noundef %803, ptr noundef %805, ptr noundef %58, i64 noundef 2, i64 noundef 1)
  %807 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 6
  store i64 %806, ptr %807, align 16, !tbaa !9
  br label %808

808:                                              ; preds = %800, %785
  %809 = load i64, ptr %90, align 8, !tbaa !9
  %810 = load i64, ptr %82, align 8, !tbaa !9
  %811 = icmp eq i64 %809, %810
  %812 = zext i1 %811 to i32
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 7
  store i64 %813, ptr %814, align 8, !tbaa !9
  br label %913

815:                                              ; preds = %731
  %816 = load i64, ptr %93, align 8, !tbaa !9
  %817 = icmp ne i64 %816, 0
  br i1 %817, label %818, label %869

818:                                              ; preds = %815
  %819 = load i64, ptr %69, align 8, !tbaa !9
  %820 = load i64, ptr %63, align 8, !tbaa !9
  %821 = icmp eq i64 %819, %820
  %822 = zext i1 %821 to i32
  %823 = sext i32 %822 to i64
  %824 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 4
  store i64 %823, ptr %824, align 16, !tbaa !9
  %825 = load ptr, ptr %45, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.doublecomplex, ptr %825, i64 1
  %827 = load ptr, ptr %44, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.doublecomplex, ptr %827, i64 1
  %829 = call i64 @lze_(ptr noundef %826, ptr noundef %828, ptr noundef %73)
  %830 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 5
  store i64 %829, ptr %830, align 8, !tbaa !9
  %831 = load i64, ptr %80, align 8, !tbaa !9
  %832 = load i64, ptr %75, align 8, !tbaa !9
  %833 = icmp eq i64 %831, %832
  %834 = zext i1 %833 to i32
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 6
  store i64 %835, ptr %836, align 16, !tbaa !9
  %837 = load i64, ptr %84, align 8, !tbaa !9
  %838 = icmp ne i64 %837, 0
  br i1 %838, label %839, label %846

839:                                              ; preds = %818
  %840 = load ptr, ptr %48, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.doublecomplex, ptr %840, i64 1
  %842 = load ptr, ptr %47, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.doublecomplex, ptr %842, i64 1
  %844 = call i64 @lze_(ptr noundef %841, ptr noundef %843, ptr noundef %72)
  %845 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 7
  store i64 %844, ptr %845, align 8, !tbaa !9
  br label %862

846:                                              ; preds = %818
  %847 = load i64, ptr %82, align 8, !tbaa !9
  %848 = icmp sge i64 %847, 0
  br i1 %848, label %849, label %851

849:                                              ; preds = %846
  %850 = load i64, ptr %82, align 8, !tbaa !9
  br label %854

851:                                              ; preds = %846
  %852 = load i64, ptr %82, align 8, !tbaa !9
  %853 = sub nsw i64 0, %852
  br label %854

854:                                              ; preds = %851, %849
  %855 = phi i64 [ %850, %849 ], [ %853, %851 ]
  store i64 %855, ptr %58, align 8, !tbaa !9
  %856 = load ptr, ptr %48, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.doublecomplex, ptr %856, i64 1
  %858 = load ptr, ptr %47, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.doublecomplex, ptr %858, i64 1
  %860 = call i64 @lzeres_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %64, ptr noundef %857, ptr noundef %859, ptr noundef %58, i64 noundef 2, i64 noundef 1)
  %861 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 7
  store i64 %860, ptr %861, align 8, !tbaa !9
  br label %862

862:                                              ; preds = %854, %839
  %863 = load i64, ptr %90, align 8, !tbaa !9
  %864 = load i64, ptr %82, align 8, !tbaa !9
  %865 = icmp eq i64 %863, %864
  %866 = zext i1 %865 to i32
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 8
  store i64 %867, ptr %868, align 16, !tbaa !9
  br label %912

869:                                              ; preds = %815
  %870 = load i64, ptr %94, align 8, !tbaa !9
  %871 = icmp ne i64 %870, 0
  br i1 %871, label %872, label %911

872:                                              ; preds = %869
  %873 = load ptr, ptr %45, align 8, !tbaa !5
  %874 = getelementptr inbounds %struct.doublecomplex, ptr %873, i64 1
  %875 = load ptr, ptr %44, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.doublecomplex, ptr %875, i64 1
  %877 = call i64 @lze_(ptr noundef %874, ptr noundef %876, ptr noundef %73)
  %878 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 4
  store i64 %877, ptr %878, align 16, !tbaa !9
  %879 = load i64, ptr %84, align 8, !tbaa !9
  %880 = icmp ne i64 %879, 0
  br i1 %880, label %881, label %888

881:                                              ; preds = %872
  %882 = load ptr, ptr %48, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.doublecomplex, ptr %882, i64 1
  %884 = load ptr, ptr %47, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.doublecomplex, ptr %884, i64 1
  %886 = call i64 @lze_(ptr noundef %883, ptr noundef %885, ptr noundef %72)
  %887 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 5
  store i64 %886, ptr %887, align 8, !tbaa !9
  br label %904

888:                                              ; preds = %872
  %889 = load i64, ptr %82, align 8, !tbaa !9
  %890 = icmp sge i64 %889, 0
  br i1 %890, label %891, label %893

891:                                              ; preds = %888
  %892 = load i64, ptr %82, align 8, !tbaa !9
  br label %896

893:                                              ; preds = %888
  %894 = load i64, ptr %82, align 8, !tbaa !9
  %895 = sub nsw i64 0, %894
  br label %896

896:                                              ; preds = %893, %891
  %897 = phi i64 [ %892, %891 ], [ %895, %893 ]
  store i64 %897, ptr %58, align 8, !tbaa !9
  %898 = load ptr, ptr %48, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.doublecomplex, ptr %898, i64 1
  %900 = load ptr, ptr %47, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.doublecomplex, ptr %900, i64 1
  %902 = call i64 @lzeres_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %64, ptr noundef %899, ptr noundef %901, ptr noundef %58, i64 noundef 2, i64 noundef 1)
  %903 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 5
  store i64 %902, ptr %903, align 8, !tbaa !9
  br label %904

904:                                              ; preds = %896, %881
  %905 = load i64, ptr %90, align 8, !tbaa !9
  %906 = load i64, ptr %82, align 8, !tbaa !9
  %907 = icmp eq i64 %905, %906
  %908 = zext i1 %907 to i32
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 6
  store i64 %909, ptr %910, align 16, !tbaa !9
  br label %911

911:                                              ; preds = %904, %869
  br label %912

912:                                              ; preds = %911, %862
  br label %913

913:                                              ; preds = %912, %808
  store i64 1, ptr %81, align 8, !tbaa !9
  %914 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %914, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %915

915:                                              ; preds = %944, %913
  %916 = load i64, ptr %62, align 8, !tbaa !9
  %917 = load i64, ptr %58, align 8, !tbaa !9
  %918 = icmp sle i64 %916, %917
  br i1 %918, label %919, label %947

919:                                              ; preds = %915
  %920 = load i64, ptr %81, align 8, !tbaa !9
  %921 = icmp ne i64 %920, 0
  br i1 %921, label %922, label %928

922:                                              ; preds = %919
  %923 = load i64, ptr %62, align 8, !tbaa !9
  %924 = sub nsw i64 %923, 1
  %925 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 %924
  %926 = load i64, ptr %925, align 8, !tbaa !9
  %927 = icmp ne i64 %926, 0
  br label %928

928:                                              ; preds = %922, %919
  %929 = phi i1 [ false, %919 ], [ %927, %922 ]
  %930 = zext i1 %929 to i32
  %931 = sext i32 %930 to i64
  store i64 %931, ptr %81, align 8, !tbaa !9
  %932 = load i64, ptr %62, align 8, !tbaa !9
  %933 = sub nsw i64 %932, 1
  %934 = getelementptr inbounds [13 x i64], ptr %87, i64 0, i64 %933
  %935 = load i64, ptr %934, align 8, !tbaa !9
  %936 = icmp ne i64 %935, 0
  br i1 %936, label %943, label %937

937:                                              ; preds = %928
  %938 = load ptr, ptr %30, align 8, !tbaa !5
  %939 = load i64, ptr %938, align 8, !tbaa !9
  store i64 %939, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___248, i32 0, i32 1), align 8, !tbaa !21
  %940 = call i64 @s_wsfe(ptr noundef @zchk3_.io___248)
  %941 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %62, i64 noundef 8)
  %942 = call i64 @e_wsfe()
  br label %943

943:                                              ; preds = %937, %928
  br label %944

944:                                              ; preds = %943
  %945 = load i64, ptr %62, align 8, !tbaa !9
  %946 = add nsw i64 %945, 1
  store i64 %946, ptr %62, align 8, !tbaa !9
  br label %915, !llvm.loop !26

947:                                              ; preds = %915
  %948 = load i64, ptr %81, align 8, !tbaa !9
  %949 = icmp ne i64 %948, 0
  br i1 %949, label %952, label %950

950:                                              ; preds = %947
  %951 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 1, ptr %951, align 8, !tbaa !9
  br label %1145

952:                                              ; preds = %947
  %953 = load i64, ptr %84, align 8, !tbaa !9
  %954 = icmp ne i64 %953, 0
  br i1 %954, label %1095, label %955

955:                                              ; preds = %952
  %956 = load ptr, ptr %27, align 8, !tbaa !5
  %957 = getelementptr inbounds i8, ptr %956, i64 3
  %958 = call i64 @s_cmp(ptr noundef %957, ptr noundef @.str.9, i64 noundef 2, i64 noundef 2)
  %959 = icmp eq i64 %958, 0
  br i1 %959, label %960, label %980

960:                                              ; preds = %955
  %961 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %962 = load ptr, ptr %43, align 8, !tbaa !5
  %963 = load i64, ptr %54, align 8, !tbaa !9
  %964 = getelementptr inbounds %struct.doublecomplex, ptr %962, i64 %963
  %965 = load ptr, ptr %41, align 8, !tbaa !5
  %966 = load ptr, ptr %46, align 8, !tbaa !5
  %967 = getelementptr inbounds %struct.doublecomplex, ptr %966, i64 1
  %968 = load ptr, ptr %51, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.doublecomplex, ptr %968, i64 1
  %970 = load ptr, ptr %49, align 8, !tbaa !5
  %971 = getelementptr inbounds %struct.doublecomplex, ptr %970, i64 1
  %972 = load ptr, ptr %50, align 8, !tbaa !5
  %973 = getelementptr inbounds double, ptr %972, i64 1
  %974 = load ptr, ptr %47, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.doublecomplex, ptr %974, i64 1
  %976 = load ptr, ptr %28, align 8, !tbaa !5
  %977 = load ptr, ptr %34, align 8, !tbaa !5
  %978 = load ptr, ptr %30, align 8, !tbaa !5
  %979 = call i32 @zmvch_(ptr noundef %961, ptr noundef %64, ptr noundef %64, ptr noundef @c_b2, ptr noundef %964, ptr noundef %965, ptr noundef %967, ptr noundef %82, ptr noundef @c_b1, ptr noundef %969, ptr noundef %82, ptr noundef %971, ptr noundef %973, ptr noundef %975, ptr noundef %976, ptr noundef %78, ptr noundef %977, ptr noundef %978, ptr noundef @c_true, i64 noundef 1)
  br label %1080

980:                                              ; preds = %955
  %981 = load ptr, ptr %27, align 8, !tbaa !5
  %982 = getelementptr inbounds i8, ptr %981, i64 3
  %983 = call i64 @s_cmp(ptr noundef %982, ptr noundef @.str.10, i64 noundef 2, i64 noundef 2)
  %984 = icmp eq i64 %983, 0
  br i1 %984, label %985, label %1079

985:                                              ; preds = %980
  %986 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %986, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %987

987:                                              ; preds = %1056, %985
  %988 = load i64, ptr %62, align 8, !tbaa !9
  %989 = load i64, ptr %58, align 8, !tbaa !9
  %990 = icmp sle i64 %988, %989
  br i1 %990, label %991, label %1059

991:                                              ; preds = %987
  %992 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %992, ptr %59, align 8, !tbaa !9
  %993 = load i64, ptr %62, align 8, !tbaa !9
  %994 = sub nsw i64 %993, 1
  %995 = load i64, ptr %82, align 8, !tbaa !9
  %996 = icmp sge i64 %995, 0
  br i1 %996, label %997, label %999

997:                                              ; preds = %991
  %998 = load i64, ptr %82, align 8, !tbaa !9
  br label %1002

999:                                              ; preds = %991
  %1000 = load i64, ptr %82, align 8, !tbaa !9
  %1001 = sub nsw i64 0, %1000
  br label %1002

1002:                                             ; preds = %999, %997
  %1003 = phi i64 [ %998, %997 ], [ %1001, %999 ]
  %1004 = mul nsw i64 %994, %1003
  %1005 = add nsw i64 %1004, 1
  store i64 %1005, ptr %60, align 8, !tbaa !9
  %1006 = load ptr, ptr %47, align 8, !tbaa !5
  %1007 = load i64, ptr %60, align 8, !tbaa !9
  %1008 = getelementptr inbounds %struct.doublecomplex, ptr %1006, i64 %1007
  %1009 = getelementptr inbounds %struct.doublecomplex, ptr %1008, i32 0, i32 0
  %1010 = load double, ptr %1009, align 8, !tbaa !14
  %1011 = load ptr, ptr %51, align 8, !tbaa !5
  %1012 = load i64, ptr %59, align 8, !tbaa !9
  %1013 = getelementptr inbounds %struct.doublecomplex, ptr %1011, i64 %1012
  %1014 = getelementptr inbounds %struct.doublecomplex, ptr %1013, i32 0, i32 0
  store double %1010, ptr %1014, align 8, !tbaa !14
  %1015 = load ptr, ptr %47, align 8, !tbaa !5
  %1016 = load i64, ptr %60, align 8, !tbaa !9
  %1017 = getelementptr inbounds %struct.doublecomplex, ptr %1015, i64 %1016
  %1018 = getelementptr inbounds %struct.doublecomplex, ptr %1017, i32 0, i32 1
  %1019 = load double, ptr %1018, align 8, !tbaa !16
  %1020 = load ptr, ptr %51, align 8, !tbaa !5
  %1021 = load i64, ptr %59, align 8, !tbaa !9
  %1022 = getelementptr inbounds %struct.doublecomplex, ptr %1020, i64 %1021
  %1023 = getelementptr inbounds %struct.doublecomplex, ptr %1022, i32 0, i32 1
  store double %1019, ptr %1023, align 8, !tbaa !16
  %1024 = load i64, ptr %62, align 8, !tbaa !9
  %1025 = sub nsw i64 %1024, 1
  %1026 = load i64, ptr %82, align 8, !tbaa !9
  %1027 = icmp sge i64 %1026, 0
  br i1 %1027, label %1028, label %1030

1028:                                             ; preds = %1002
  %1029 = load i64, ptr %82, align 8, !tbaa !9
  br label %1033

1030:                                             ; preds = %1002
  %1031 = load i64, ptr %82, align 8, !tbaa !9
  %1032 = sub nsw i64 0, %1031
  br label %1033

1033:                                             ; preds = %1030, %1028
  %1034 = phi i64 [ %1029, %1028 ], [ %1032, %1030 ]
  %1035 = mul nsw i64 %1025, %1034
  %1036 = add nsw i64 %1035, 1
  store i64 %1036, ptr %59, align 8, !tbaa !9
  %1037 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %1037, ptr %60, align 8, !tbaa !9
  %1038 = load ptr, ptr %46, align 8, !tbaa !5
  %1039 = load i64, ptr %60, align 8, !tbaa !9
  %1040 = getelementptr inbounds %struct.doublecomplex, ptr %1038, i64 %1039
  %1041 = getelementptr inbounds %struct.doublecomplex, ptr %1040, i32 0, i32 0
  %1042 = load double, ptr %1041, align 8, !tbaa !14
  %1043 = load ptr, ptr %47, align 8, !tbaa !5
  %1044 = load i64, ptr %59, align 8, !tbaa !9
  %1045 = getelementptr inbounds %struct.doublecomplex, ptr %1043, i64 %1044
  %1046 = getelementptr inbounds %struct.doublecomplex, ptr %1045, i32 0, i32 0
  store double %1042, ptr %1046, align 8, !tbaa !14
  %1047 = load ptr, ptr %46, align 8, !tbaa !5
  %1048 = load i64, ptr %60, align 8, !tbaa !9
  %1049 = getelementptr inbounds %struct.doublecomplex, ptr %1047, i64 %1048
  %1050 = getelementptr inbounds %struct.doublecomplex, ptr %1049, i32 0, i32 1
  %1051 = load double, ptr %1050, align 8, !tbaa !16
  %1052 = load ptr, ptr %47, align 8, !tbaa !5
  %1053 = load i64, ptr %59, align 8, !tbaa !9
  %1054 = getelementptr inbounds %struct.doublecomplex, ptr %1052, i64 %1053
  %1055 = getelementptr inbounds %struct.doublecomplex, ptr %1054, i32 0, i32 1
  store double %1051, ptr %1055, align 8, !tbaa !16
  br label %1056

1056:                                             ; preds = %1033
  %1057 = load i64, ptr %62, align 8, !tbaa !9
  %1058 = add nsw i64 %1057, 1
  store i64 %1058, ptr %62, align 8, !tbaa !9
  br label %987, !llvm.loop !27

1059:                                             ; preds = %987
  %1060 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %1061 = load ptr, ptr %43, align 8, !tbaa !5
  %1062 = load i64, ptr %54, align 8, !tbaa !9
  %1063 = getelementptr inbounds %struct.doublecomplex, ptr %1061, i64 %1062
  %1064 = load ptr, ptr %41, align 8, !tbaa !5
  %1065 = load ptr, ptr %51, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.doublecomplex, ptr %1065, i64 1
  %1067 = load ptr, ptr %46, align 8, !tbaa !5
  %1068 = getelementptr inbounds %struct.doublecomplex, ptr %1067, i64 1
  %1069 = load ptr, ptr %49, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.doublecomplex, ptr %1069, i64 1
  %1071 = load ptr, ptr %50, align 8, !tbaa !5
  %1072 = getelementptr inbounds double, ptr %1071, i64 1
  %1073 = load ptr, ptr %47, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.doublecomplex, ptr %1073, i64 1
  %1075 = load ptr, ptr %28, align 8, !tbaa !5
  %1076 = load ptr, ptr %34, align 8, !tbaa !5
  %1077 = load ptr, ptr %30, align 8, !tbaa !5
  %1078 = call i32 @zmvch_(ptr noundef %1060, ptr noundef %64, ptr noundef %64, ptr noundef @c_b2, ptr noundef %1063, ptr noundef %1064, ptr noundef %1066, ptr noundef %82, ptr noundef @c_b1, ptr noundef %1068, ptr noundef %82, ptr noundef %1070, ptr noundef %1072, ptr noundef %1074, ptr noundef %1075, ptr noundef %78, ptr noundef %1076, ptr noundef %1077, ptr noundef @c_false, i64 noundef 1)
  br label %1079

1079:                                             ; preds = %1059, %980
  br label %1080

1080:                                             ; preds = %1079, %960
  %1081 = load double, ptr %95, align 8, !tbaa !12
  %1082 = load double, ptr %78, align 8, !tbaa !12
  %1083 = fcmp oge double %1081, %1082
  br i1 %1083, label %1084, label %1086

1084:                                             ; preds = %1080
  %1085 = load double, ptr %95, align 8, !tbaa !12
  br label %1088

1086:                                             ; preds = %1080
  %1087 = load double, ptr %78, align 8, !tbaa !12
  br label %1088

1088:                                             ; preds = %1086, %1084
  %1089 = phi double [ %1085, %1084 ], [ %1087, %1086 ]
  store double %1089, ptr %95, align 8, !tbaa !12
  %1090 = load ptr, ptr %34, align 8, !tbaa !5
  %1091 = load i64, ptr %1090, align 8, !tbaa !9
  %1092 = icmp ne i64 %1091, 0
  br i1 %1092, label %1093, label %1094

1093:                                             ; preds = %1088
  br label %1145

1094:                                             ; preds = %1088
  br label %1096

1095:                                             ; preds = %952
  br label %1118

1096:                                             ; preds = %1094
  br label %1097

1097:                                             ; preds = %1096
  %1098 = load i64, ptr %70, align 8, !tbaa !9
  %1099 = add nsw i64 %1098, 1
  store i64 %1099, ptr %70, align 8, !tbaa !9
  br label %299, !llvm.loop !28

1100:                                             ; preds = %299
  br label %1101

1101:                                             ; preds = %1100
  %1102 = load i64, ptr %74, align 8, !tbaa !9
  %1103 = add nsw i64 %1102, 1
  store i64 %1103, ptr %74, align 8, !tbaa !9
  br label %275, !llvm.loop !29

1104:                                             ; preds = %275
  br label %1105

1105:                                             ; preds = %1104
  %1106 = load i64, ptr %76, align 8, !tbaa !9
  %1107 = add nsw i64 %1106, 1
  store i64 %1107, ptr %76, align 8, !tbaa !9
  br label %266, !llvm.loop !30

1108:                                             ; preds = %266
  br label %1109

1109:                                             ; preds = %1108
  %1110 = load i64, ptr %77, align 8, !tbaa !9
  %1111 = add nsw i64 %1110, 1
  store i64 %1111, ptr %77, align 8, !tbaa !9
  br label %257, !llvm.loop !31

1112:                                             ; preds = %257
  br label %1113

1113:                                             ; preds = %1112, %238
  br label %1114

1114:                                             ; preds = %1113
  %1115 = load i64, ptr %66, align 8, !tbaa !9
  %1116 = add nsw i64 %1115, 1
  store i64 %1116, ptr %66, align 8, !tbaa !9
  br label %202, !llvm.loop !32

1117:                                             ; preds = %202
  br label %1118

1118:                                             ; preds = %1117, %1095
  br label %1119

1119:                                             ; preds = %1118
  %1120 = load i64, ptr %67, align 8, !tbaa !9
  %1121 = add nsw i64 %1120, 1
  store i64 %1121, ptr %67, align 8, !tbaa !9
  br label %185, !llvm.loop !33

1122:                                             ; preds = %185
  %1123 = load double, ptr %95, align 8, !tbaa !12
  %1124 = load ptr, ptr %29, align 8, !tbaa !5
  %1125 = load double, ptr %1124, align 8, !tbaa !12
  %1126 = fcmp olt double %1123, %1125
  br i1 %1126, label %1127, label %1135

1127:                                             ; preds = %1122
  %1128 = load ptr, ptr %30, align 8, !tbaa !5
  %1129 = load i64, ptr %1128, align 8, !tbaa !9
  store i64 %1129, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___250, i32 0, i32 1), align 8, !tbaa !21
  %1130 = call i64 @s_wsfe(ptr noundef @zchk3_.io___250)
  %1131 = load ptr, ptr %27, align 8, !tbaa !5
  %1132 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1131, i64 noundef 6)
  %1133 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %1134 = call i64 @e_wsfe()
  br label %1144

1135:                                             ; preds = %1122
  %1136 = load ptr, ptr %30, align 8, !tbaa !5
  %1137 = load i64, ptr %1136, align 8, !tbaa !9
  store i64 %1137, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___251, i32 0, i32 1), align 8, !tbaa !21
  %1138 = call i64 @s_wsfe(ptr noundef @zchk3_.io___251)
  %1139 = load ptr, ptr %27, align 8, !tbaa !5
  %1140 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1139, i64 noundef 6)
  %1141 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %1142 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %95, i64 noundef 8)
  %1143 = call i64 @e_wsfe()
  br label %1144

1144:                                             ; preds = %1135, %1127
  br label %1214

1145:                                             ; preds = %1093, %950, %725
  %1146 = load ptr, ptr %30, align 8, !tbaa !5
  %1147 = load i64, ptr %1146, align 8, !tbaa !9
  store i64 %1147, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___252, i32 0, i32 1), align 8, !tbaa !21
  %1148 = call i64 @s_wsfe(ptr noundef @zchk3_.io___252)
  %1149 = load ptr, ptr %27, align 8, !tbaa !5
  %1150 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1149, i64 noundef 6)
  %1151 = call i64 @e_wsfe()
  %1152 = load i64, ptr %83, align 8, !tbaa !9
  %1153 = icmp ne i64 %1152, 0
  br i1 %1153, label %1154, label %1171

1154:                                             ; preds = %1145
  %1155 = load ptr, ptr %30, align 8, !tbaa !5
  %1156 = load i64, ptr %1155, align 8, !tbaa !9
  store i64 %1156, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___253, i32 0, i32 1), align 8, !tbaa !21
  %1157 = call i64 @s_wsfe(ptr noundef @zchk3_.io___253)
  %1158 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %1159 = load ptr, ptr %27, align 8, !tbaa !5
  %1160 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1159, i64 noundef 6)
  %1161 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %1162 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1161, i64 noundef 1)
  %1163 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %1164 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1163, i64 noundef 1)
  %1165 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %1166 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1165, i64 noundef 1)
  %1167 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %1168 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %1169 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %1170 = call i64 @e_wsfe()
  br label %1213

1171:                                             ; preds = %1145
  %1172 = load i64, ptr %93, align 8, !tbaa !9
  %1173 = icmp ne i64 %1172, 0
  br i1 %1173, label %1174, label %1192

1174:                                             ; preds = %1171
  %1175 = load ptr, ptr %30, align 8, !tbaa !5
  %1176 = load i64, ptr %1175, align 8, !tbaa !9
  store i64 %1176, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___254, i32 0, i32 1), align 8, !tbaa !21
  %1177 = call i64 @s_wsfe(ptr noundef @zchk3_.io___254)
  %1178 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %1179 = load ptr, ptr %27, align 8, !tbaa !5
  %1180 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1179, i64 noundef 6)
  %1181 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %1182 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1181, i64 noundef 1)
  %1183 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %1184 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1183, i64 noundef 1)
  %1185 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %1186 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1185, i64 noundef 1)
  %1187 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %1188 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %1189 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %1190 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %1191 = call i64 @e_wsfe()
  br label %1212

1192:                                             ; preds = %1171
  %1193 = load i64, ptr %94, align 8, !tbaa !9
  %1194 = icmp ne i64 %1193, 0
  br i1 %1194, label %1195, label %1211

1195:                                             ; preds = %1192
  %1196 = load ptr, ptr %30, align 8, !tbaa !5
  %1197 = load i64, ptr %1196, align 8, !tbaa !9
  store i64 %1197, ptr getelementptr inbounds (%struct.cilist, ptr @zchk3_.io___255, i32 0, i32 1), align 8, !tbaa !21
  %1198 = call i64 @s_wsfe(ptr noundef @zchk3_.io___255)
  %1199 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %65, i64 noundef 8)
  %1200 = load ptr, ptr %27, align 8, !tbaa !5
  %1201 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1200, i64 noundef 6)
  %1202 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %1203 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1202, i64 noundef 1)
  %1204 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %1205 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1204, i64 noundef 1)
  %1206 = getelementptr inbounds [1 x i8], ptr %79, i64 0, i64 0
  %1207 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1206, i64 noundef 1)
  %1208 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %1209 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %82, i64 noundef 8)
  %1210 = call i64 @e_wsfe()
  br label %1211

1211:                                             ; preds = %1195, %1192
  br label %1212

1212:                                             ; preds = %1211, %1174
  br label %1213

1213:                                             ; preds = %1212, %1154
  br label %1214

1214:                                             ; preds = %1213, %1144
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 1, 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 104, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 1, 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 1, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 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
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #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_ztrmv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

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

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

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

declare i32 @f2c_ztpsv(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.doublecomplex = type { double, double }
%struct.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local local_unnamed_addr global %union.anon, align 8
@c_b2 = external hidden global %struct.doublecomplex, align 8
@c_b1 = external hidden global %struct.doublecomplex, align 8
@c_true = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@c__0 = external hidden global i64, align 8
@zchk3_.ichu = external hidden local_unnamed_addr global [2 x i8], align 1
@zchk3_.icht = external hidden local_unnamed_addr global [3 x i8], align 1
@zchk3_.ichd = external hidden local_unnamed_addr global [2 x i8], align 1
@zchk3_.io___239 = external hidden global %struct.cilist, align 8
@zchk3_.io___240 = external hidden global %struct.cilist, align 8
@zchk3_.io___241 = external hidden global %struct.cilist, align 8
@zchk3_.io___242 = external hidden global %struct.cilist, align 8
@zchk3_.io___243 = external hidden global %struct.cilist, align 8
@zchk3_.io___244 = external hidden global %struct.cilist, align 8
@zchk3_.io___245 = external hidden global %struct.cilist, align 8
@zchk3_.io___248 = external hidden global %struct.cilist, align 8
@zchk3_.io___250 = external hidden global %struct.cilist, align 8
@zchk3_.io___251 = external hidden global %struct.cilist, align 8
@zchk3_.io___252 = external hidden global %struct.cilist, align 8
@zchk3_.io___253 = external hidden global %struct.cilist, align 8
@zchk3_.io___254 = external hidden global %struct.cilist, align 8
@zchk3_.io___255 = external hidden global %struct.cilist, align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [3 x i8], align 1
@c_false = external hidden global i64, 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

declare i64 @s_cmp(ptr noundef, ptr noundef, i64 noundef, i64 noundef) 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 @zchk3_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture noundef readonly %11, ptr nocapture noundef readonly %12, ptr nocapture noundef readonly %13, ptr noundef %14, ptr nocapture noundef readnone %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, i64 noundef %25) local_unnamed_addr #2 {
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca %struct.alist, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca double, align 8
  %38 = alloca [1 x i8], align 1
  %39 = alloca i64, align 8
  %40 = alloca [1 x i8], align 1
  %41 = alloca [13 x i64], align 16
  %42 = alloca i64, align 8
  %43 = alloca [1 x i8], align 1
  %44 = alloca double, align 8
  %45 = alloca %struct.doublecomplex, align 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 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 8, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #5
  %46 = getelementptr inbounds i8, ptr %9, i64 -8
  %47 = getelementptr inbounds i8, ptr %11, i64 -8
  %48 = getelementptr inbounds i8, ptr %13, i64 -8
  %49 = getelementptr inbounds i8, ptr %24, i64 -16
  %50 = getelementptr inbounds i8, ptr %19, i64 -16
  %51 = getelementptr inbounds i8, ptr %18, i64 -16
  %52 = getelementptr inbounds i8, ptr %17, i64 -16
  %53 = getelementptr inbounds i8, ptr %21, i64 -16
  %54 = getelementptr inbounds i8, ptr %20, i64 -16
  %55 = getelementptr inbounds i8, ptr %0, i64 2
  %56 = load i8, ptr %55, align 1, !tbaa !5
  %57 = icmp eq i8 %56, 82
  %58 = icmp eq i8 %56, 66
  %59 = icmp eq i8 %56, 80
  %.mux = select i1 %58, i64 9, i64 7
  %.0 = select i1 %57, i64 8, i64 %.mux
  store i64 0, ptr %33, align 8, !tbaa !8
  store i64 1, ptr %42, align 8, !tbaa !8
  store double 0.000000e+00, ptr %44, align 8, !tbaa !10
  %60 = load i64, ptr %14, align 8, !tbaa !8
  %.not277 = icmp slt i64 %60, 1
  br i1 %.not277, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %26
  %61 = shl nuw i64 %60, 4
  tail call void @llvm.memset.p0.i64(ptr align 8 %24, i8 0, i64 %61, i1 false), !tbaa !10
  %62 = add nuw i64 %60, 1
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.preheader, %26
  %storemerge.lcssa = phi i64 [ 1, %26 ], [ %62, %.lr.ph.preheader ]
  store i64 %storemerge.lcssa, ptr %30, align 8, !tbaa !8
  %63 = load i64, ptr %8, align 8, !tbaa !8
  %.not243316 = icmp slt i64 %63, 1
  br i1 %.not243316, label %._crit_edge320, label %.lr.ph319

.lr.ph319:                                        ; preds = %._crit_edge
  %64 = getelementptr inbounds i8, ptr %0, i64 1
  %65 = getelementptr inbounds i8, ptr %0, i64 3
  %66 = getelementptr inbounds i8, ptr %29, i64 8
  %67 = getelementptr inbounds i8, ptr %41, i64 8
  %68 = getelementptr inbounds i8, ptr %41, i64 16
  %69 = getelementptr inbounds i8, ptr %41, i64 24
  %70 = getelementptr inbounds i8, ptr %41, i64 32
  %71 = getelementptr inbounds i8, ptr %41, i64 40
  %72 = getelementptr inbounds i8, ptr %41, i64 48
  %73 = getelementptr inbounds i8, ptr %41, i64 56
  %74 = getelementptr inbounds i8, ptr %41, i64 64
  br label %75

75:                                               ; preds = %.lr.ph319, %.loopexit
  %76 = phi double [ 0.000000e+00, %.lr.ph319 ], [ %467, %.loopexit ]
  %.0233317 = phi i64 [ 1, %.lr.ph319 ], [ %468, %.loopexit ]
  %77 = getelementptr inbounds i64, ptr %46, i64 %.0233317
  %78 = load i64, ptr %77, align 8, !tbaa !8
  store i64 %78, ptr %32, align 8, !tbaa !8
  br i1 %58, label %79, label %.lr.ph315.preheader

79:                                               ; preds = %75
  %80 = load i64, ptr %10, align 8, !tbaa !8
  %.not244312 = icmp slt i64 %80, 1
  br i1 %.not244312, label %.loopexit, label %.lr.ph315.preheader

.lr.ph315.preheader:                              ; preds = %75, %79
  %.0232341 = phi i64 [ %80, %79 ], [ 1, %75 ]
  br label %.lr.ph315

.lr.ph315:                                        ; preds = %.lr.ph315.preheader, %.loopexit275
  %81 = phi double [ %465, %.loopexit275 ], [ %76, %.lr.ph315.preheader ]
  %.0234313 = phi i64 [ %466, %.loopexit275 ], [ 1, %.lr.ph315.preheader ]
  br i1 %58, label %82, label %85

82:                                               ; preds = %.lr.ph315
  %83 = getelementptr inbounds i64, ptr %47, i64 %.0234313
  %84 = load i64, ptr %83, align 8, !tbaa !8
  %.pr = load i64, ptr %32, align 8
  br label %88

85:                                               ; preds = %.lr.ph315
  %86 = load i64, ptr %32, align 8
  %87 = add nsw i64 %86, -1
  br label %88

88:                                               ; preds = %85, %82
  %89 = phi i64 [ %86, %85 ], [ %.pr, %82 ]
  %storemerge245 = phi i64 [ %87, %85 ], [ %84, %82 ]
  store i64 %storemerge245, ptr %31, align 8, !tbaa !8
  %90 = add nsw i64 %storemerge245, 1
  %storemerge246 = select i1 %58, i64 %90, i64 %89
  store i64 %storemerge246, ptr %36, align 8, !tbaa !8
  %91 = load i64, ptr %14, align 8, !tbaa !8
  %92 = icmp slt i64 %storemerge246, %91
  br i1 %92, label %93, label %95

93:                                               ; preds = %88
  %94 = add nsw i64 %storemerge246, 1
  store i64 %94, ptr %36, align 8, !tbaa !8
  br label %95

95:                                               ; preds = %93, %88
  %96 = phi i64 [ %94, %93 ], [ %storemerge246, %88 ]
  %97 = icmp sgt i64 %96, %91
  br i1 %97, label %.loopexit275, label %98

98:                                               ; preds = %95
  br i1 %59, label %99, label %103

99:                                               ; preds = %98
  %100 = add nsw i64 %89, 1
  %101 = mul nsw i64 %100, %89
  %102 = sdiv i64 %101, 2
  br label %105

103:                                              ; preds = %98
  %104 = mul nsw i64 %96, %89
  br label %105

105:                                              ; preds = %103, %99
  %storemerge247 = phi i64 [ %104, %103 ], [ %102, %99 ]
  store i64 %storemerge247, ptr %35, align 8, !tbaa !8
  %106 = icmp slt i64 %89, 1
  br label %107

107:                                              ; preds = %105, %463
  %108 = phi double [ %81, %105 ], [ %459, %463 ]
  %.0228311 = phi i64 [ 1, %105 ], [ %464, %463 ]
  %109 = add nsw i64 %.0228311, -1
  %110 = getelementptr inbounds [2 x i8], ptr @zchk3_.ichu, i64 0, i64 %109
  %111 = load i8, ptr %110, align 1, !tbaa !5
  store i8 %111, ptr %40, align 1, !tbaa !5
  br label %112

112:                                              ; preds = %107, %461
  %113 = phi double [ %108, %107 ], [ %459, %461 ]
  %.0229310 = phi i64 [ 1, %107 ], [ %462, %461 ]
  %114 = add nsw i64 %.0229310, -1
  %115 = getelementptr inbounds [3 x i8], ptr @zchk3_.icht, i64 0, i64 %114
  %116 = load i8, ptr %115, align 1, !tbaa !5
  store i8 %116, ptr %43, align 1, !tbaa !5
  br label %117

117:                                              ; preds = %112, %._crit_edge308
  %118 = phi double [ %113, %112 ], [ %459, %._crit_edge308 ]
  %.0230309 = phi i64 [ 1, %112 ], [ %460, %._crit_edge308 ]
  %119 = add nsw i64 %.0230309, -1
  %120 = getelementptr inbounds [2 x i8], ptr @zchk3_.ichd, i64 0, i64 %119
  %121 = load i8, ptr %120, align 1, !tbaa !5
  store i8 %121, ptr %38, align 1, !tbaa !5
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %45, i8 0, i64 16, i1 false)
  %122 = call i32 @zmake_(ptr noundef nonnull %64, ptr noundef nonnull %40, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %17, ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef nonnull %31, ptr noundef nonnull %42, ptr noundef nonnull %45, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %123 = load i64, ptr %12, align 8, !tbaa !8
  %.not248304 = icmp slt i64 %123, 1
  br i1 %.not248304, label %._crit_edge308, label %.lr.ph307

124:                                              ; preds = %454
  %125 = add nuw i64 %.0231305, 1
  %exitcond329.not = icmp eq i64 %.0231305, %123
  br i1 %exitcond329.not, label %._crit_edge308, label %.lr.ph307, !llvm.loop !12

.lr.ph307:                                        ; preds = %117, %124
  %126 = phi double [ %457, %124 ], [ %118, %117 ]
  %.0231305 = phi i64 [ %125, %124 ], [ 1, %117 ]
  %127 = getelementptr inbounds i64, ptr %48, i64 %.0231305
  %128 = load i64, ptr %127, align 8, !tbaa !8
  store i64 %128, ptr %39, align 8, !tbaa !8
  %129 = call i64 @llvm.abs.i64(i64 %128, i1 true)
  %130 = load i64, ptr %32, align 8, !tbaa !8
  %131 = mul nsw i64 %130, %129
  store i64 %131, ptr %34, align 8, !tbaa !8
  store <2 x double> <double 5.000000e-01, double 0.000000e+00>, ptr %45, align 16, !tbaa !10
  store i64 %129, ptr %27, align 8, !tbaa !8
  %132 = add nsw i64 %130, -1
  store i64 %132, ptr %28, align 8, !tbaa !8
  %133 = 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 %32, ptr noundef %19, ptr noundef nonnull @c__1, ptr noundef %20, ptr noundef nonnull %27, ptr noundef nonnull @c__0, ptr noundef nonnull %28, ptr noundef nonnull %42, ptr noundef nonnull %45, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %134 = load i64, ptr %32, align 8, !tbaa !8
  %135 = icmp sgt i64 %134, 1
  br i1 %135, label %136, label %144

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

144:                                              ; preds = %136, %.lr.ph307
  %145 = load i64, ptr %33, align 8, !tbaa !8
  %146 = add nsw i64 %145, 1
  store i64 %146, ptr %33, align 8, !tbaa !8
  %147 = load i8, ptr %40, align 1, !tbaa !5
  %148 = load i8, ptr %43, align 1, !tbaa !5
  %149 = load i8, ptr %38, align 1, !tbaa !5
  %150 = load i64, ptr %31, align 8, !tbaa !8
  %151 = load i64, ptr %35, align 8, !tbaa !8
  %.not250279 = icmp slt i64 %151, 1
  br i1 %.not250279, label %172, label %.lr.ph282.preheader

.lr.ph282.preheader:                              ; preds = %144
  %xtraiter = and i64 %151, 3
  %152 = icmp ult i64 %151, 4
  br i1 %152, label %._crit_edge283.unr-lcssa, label %.lr.ph282.preheader.new

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

.lr.ph282:                                        ; preds = %.lr.ph282, %.lr.ph282.preheader.new
  %storemerge249280 = phi i64 [ 1, %.lr.ph282.preheader.new ], [ %167, %.lr.ph282 ]
  %niter = phi i64 [ 0, %.lr.ph282.preheader.new ], [ %niter.next.3, %.lr.ph282 ]
  %153 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %storemerge249280
  %154 = getelementptr inbounds %struct.doublecomplex, ptr %51, i64 %storemerge249280
  %155 = load <2 x double>, ptr %153, align 8, !tbaa !10
  store <2 x double> %155, ptr %154, align 8, !tbaa !10
  %156 = getelementptr %struct.doublecomplex, ptr %17, i64 %storemerge249280
  %157 = getelementptr %struct.doublecomplex, ptr %18, i64 %storemerge249280
  %158 = load <2 x double>, ptr %156, align 8, !tbaa !10
  store <2 x double> %158, ptr %157, align 8, !tbaa !10
  %159 = add nuw nsw i64 %storemerge249280, 2
  %160 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %159
  %161 = getelementptr inbounds %struct.doublecomplex, ptr %51, i64 %159
  %162 = load <2 x double>, ptr %160, align 8, !tbaa !10
  store <2 x double> %162, ptr %161, align 8, !tbaa !10
  %163 = add nuw i64 %storemerge249280, 3
  %164 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %163
  %165 = getelementptr inbounds %struct.doublecomplex, ptr %51, i64 %163
  %166 = load <2 x double>, ptr %164, align 8, !tbaa !10
  store <2 x double> %166, ptr %165, align 8, !tbaa !10
  %167 = add nuw i64 %storemerge249280, 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_edge283.unr-lcssa, label %.lr.ph282, !llvm.loop !14

._crit_edge283.unr-lcssa:                         ; preds = %.lr.ph282, %.lr.ph282.preheader
  %storemerge249280.unr = phi i64 [ 1, %.lr.ph282.preheader ], [ %167, %.lr.ph282 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge283, label %.lr.ph282.epil

.lr.ph282.epil:                                   ; preds = %._crit_edge283.unr-lcssa, %.lr.ph282.epil
  %storemerge249280.epil = phi i64 [ %171, %.lr.ph282.epil ], [ %storemerge249280.unr, %._crit_edge283.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph282.epil ], [ 0, %._crit_edge283.unr-lcssa ]
  %168 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %storemerge249280.epil
  %169 = getelementptr inbounds %struct.doublecomplex, ptr %51, i64 %storemerge249280.epil
  %170 = load <2 x double>, ptr %168, align 8, !tbaa !10
  store <2 x double> %170, ptr %169, align 8, !tbaa !10
  %171 = add nuw i64 %storemerge249280.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_edge283, label %.lr.ph282.epil, !llvm.loop !15

._crit_edge283:                                   ; preds = %.lr.ph282.epil, %._crit_edge283.unr-lcssa
  store i64 %151, ptr %28, align 8, !tbaa !8
  br label %172

172:                                              ; preds = %._crit_edge283, %144
  %173 = load i64, ptr %36, align 8, !tbaa !8
  %174 = load i64, ptr %34, align 8, !tbaa !8
  store i64 %174, ptr %27, align 8, !tbaa !8
  %.not252285 = icmp slt i64 %174, 1
  br i1 %.not252285, label %196, label %.lr.ph288.preheader

.lr.ph288.preheader:                              ; preds = %172
  %175 = add nuw i64 %174, 1
  %xtraiter378 = and i64 %174, 3
  %176 = icmp ult i64 %174, 4
  br i1 %176, label %._crit_edge289.unr-lcssa, label %.lr.ph288.preheader.new

.lr.ph288.preheader.new:                          ; preds = %.lr.ph288.preheader
  %unroll_iter381 = and i64 %174, 9223372036854775804
  br label %.lr.ph288

.lr.ph288:                                        ; preds = %.lr.ph288, %.lr.ph288.preheader.new
  %storemerge251286 = phi i64 [ 1, %.lr.ph288.preheader.new ], [ %191, %.lr.ph288 ]
  %niter382 = phi i64 [ 0, %.lr.ph288.preheader.new ], [ %niter382.next.3, %.lr.ph288 ]
  %177 = getelementptr inbounds %struct.doublecomplex, ptr %54, i64 %storemerge251286
  %178 = getelementptr inbounds %struct.doublecomplex, ptr %53, i64 %storemerge251286
  %179 = load <2 x double>, ptr %177, align 8, !tbaa !10
  store <2 x double> %179, ptr %178, align 8, !tbaa !10
  %180 = getelementptr %struct.doublecomplex, ptr %20, i64 %storemerge251286
  %181 = getelementptr %struct.doublecomplex, ptr %21, i64 %storemerge251286
  %182 = load <2 x double>, ptr %180, align 8, !tbaa !10
  store <2 x double> %182, ptr %181, align 8, !tbaa !10
  %183 = add nuw nsw i64 %storemerge251286, 2
  %184 = getelementptr inbounds %struct.doublecomplex, ptr %54, i64 %183
  %185 = getelementptr inbounds %struct.doublecomplex, ptr %53, i64 %183
  %186 = load <2 x double>, ptr %184, align 8, !tbaa !10
  store <2 x double> %186, ptr %185, align 8, !tbaa !10
  %187 = add nuw i64 %storemerge251286, 3
  %188 = getelementptr inbounds %struct.doublecomplex, ptr %54, i64 %187
  %189 = getelementptr inbounds %struct.doublecomplex, ptr %53, i64 %187
  %190 = load <2 x double>, ptr %188, align 8, !tbaa !10
  store <2 x double> %190, ptr %189, align 8, !tbaa !10
  %191 = add nuw i64 %storemerge251286, 4
  %niter382.next.3 = add i64 %niter382, 4
  %niter382.ncmp.3 = icmp eq i64 %niter382.next.3, %unroll_iter381
  br i1 %niter382.ncmp.3, label %._crit_edge289.unr-lcssa, label %.lr.ph288, !llvm.loop !17

._crit_edge289.unr-lcssa:                         ; preds = %.lr.ph288, %.lr.ph288.preheader
  %storemerge251286.unr = phi i64 [ 1, %.lr.ph288.preheader ], [ %191, %.lr.ph288 ]
  %lcmp.mod380.not = icmp eq i64 %xtraiter378, 0
  br i1 %lcmp.mod380.not, label %._crit_edge289, label %.lr.ph288.epil

.lr.ph288.epil:                                   ; preds = %._crit_edge289.unr-lcssa, %.lr.ph288.epil
  %storemerge251286.epil = phi i64 [ %195, %.lr.ph288.epil ], [ %storemerge251286.unr, %._crit_edge289.unr-lcssa ]
  %epil.iter379 = phi i64 [ %epil.iter379.next, %.lr.ph288.epil ], [ 0, %._crit_edge289.unr-lcssa ]
  %192 = getelementptr inbounds %struct.doublecomplex, ptr %54, i64 %storemerge251286.epil
  %193 = getelementptr inbounds %struct.doublecomplex, ptr %53, i64 %storemerge251286.epil
  %194 = load <2 x double>, ptr %192, align 8, !tbaa !10
  store <2 x double> %194, ptr %193, align 8, !tbaa !10
  %195 = add nuw i64 %storemerge251286.epil, 1
  %epil.iter379.next = add i64 %epil.iter379, 1
  %epil.iter379.cmp.not = icmp eq i64 %epil.iter379.next, %xtraiter378
  br i1 %epil.iter379.cmp.not, label %._crit_edge289, label %.lr.ph288.epil, !llvm.loop !18

._crit_edge289:                                   ; preds = %.lr.ph288.epil, %._crit_edge289.unr-lcssa
  store i64 %174, ptr %28, align 8, !tbaa !8
  br label %196

196:                                              ; preds = %._crit_edge289, %172
  %storemerge251.lcssa = phi i64 [ %175, %._crit_edge289 ], [ 1, %172 ]
  store i64 %storemerge251.lcssa, ptr %30, align 8, !tbaa !8
  %197 = load i64, ptr %39, align 8, !tbaa !8
  %198 = call i64 @s_cmp(ptr noundef nonnull %65, ptr noundef nonnull @.str.9, i64 noundef 2, i64 noundef 2) #5
  %199 = icmp eq i64 %198, 0
  br i1 %199, label %200, label %266

200:                                              ; preds = %196
  br i1 %57, label %201, label %222

201:                                              ; preds = %200
  %202 = load i64, ptr %5, align 8, !tbaa !8
  %.not263 = icmp eq i64 %202, 0
  br i1 %.not263, label %215, label %203

203:                                              ; preds = %201
  %204 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %204, ptr getelementptr inbounds (i8, ptr @zchk3_.io___239, i64 8), align 8, !tbaa !19
  %205 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___239) #5
  %206 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %207 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %208 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %209 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %210 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %211 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %212 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %213 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %214 = call i64 @e_wsfe() #5
  br label %215

215:                                              ; preds = %203, %201
  %216 = load i64, ptr %6, align 8, !tbaa !8
  %.not264 = icmp eq i64 %216, 0
  br i1 %.not264, label %220, label %217

217:                                              ; preds = %215
  store i64 0, ptr %29, align 8, !tbaa !22
  %218 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %218, ptr %66, align 8, !tbaa !24
  %219 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %220

220:                                              ; preds = %217, %215
  %221 = call i32 @f2c_ztrmv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef %17, ptr noundef nonnull %36, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %335

222:                                              ; preds = %200
  br i1 %58, label %223, label %245

223:                                              ; preds = %222
  %224 = load i64, ptr %5, align 8, !tbaa !8
  %.not261 = icmp eq i64 %224, 0
  br i1 %.not261, label %238, label %225

225:                                              ; preds = %223
  %226 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %226, ptr getelementptr inbounds (i8, ptr @zchk3_.io___240, i64 8), align 8, !tbaa !19
  %227 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___240) #5
  %228 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %229 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %230 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %231 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %232 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %233 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %234 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #5
  %235 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %236 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %237 = call i64 @e_wsfe() #5
  br label %238

238:                                              ; preds = %225, %223
  %239 = load i64, ptr %6, align 8, !tbaa !8
  %.not262 = icmp eq i64 %239, 0
  br i1 %.not262, label %243, label %240

240:                                              ; preds = %238
  store i64 0, ptr %29, align 8, !tbaa !22
  %241 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %241, ptr %66, align 8, !tbaa !24
  %242 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %243

243:                                              ; preds = %240, %238
  %244 = call i32 @f2c_ztbmv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef %17, ptr noundef nonnull %36, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %335

245:                                              ; preds = %222
  br i1 %59, label %246, label %335

246:                                              ; preds = %245
  %247 = load i64, ptr %5, align 8, !tbaa !8
  %.not259 = icmp eq i64 %247, 0
  br i1 %.not259, label %259, label %248

248:                                              ; preds = %246
  %249 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %249, ptr getelementptr inbounds (i8, ptr @zchk3_.io___241, i64 8), align 8, !tbaa !19
  %250 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___241) #5
  %251 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %252 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %253 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %254 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %255 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %256 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %257 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %258 = call i64 @e_wsfe() #5
  br label %259

259:                                              ; preds = %248, %246
  %260 = load i64, ptr %6, align 8, !tbaa !8
  %.not260 = icmp eq i64 %260, 0
  br i1 %.not260, label %264, label %261

261:                                              ; preds = %259
  store i64 0, ptr %29, align 8, !tbaa !22
  %262 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %262, ptr %66, align 8, !tbaa !24
  %263 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %264

264:                                              ; preds = %261, %259
  %265 = call i32 @f2c_ztpmv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef %17, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %335

266:                                              ; preds = %196
  %267 = call i64 @s_cmp(ptr noundef nonnull %65, ptr noundef nonnull @.str.10, i64 noundef 2, i64 noundef 2) #5
  %268 = icmp eq i64 %267, 0
  br i1 %268, label %269, label %335

269:                                              ; preds = %266
  br i1 %57, label %270, label %291

270:                                              ; preds = %269
  %271 = load i64, ptr %5, align 8, !tbaa !8
  %.not257 = icmp eq i64 %271, 0
  br i1 %.not257, label %284, label %272

272:                                              ; preds = %270
  %273 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %273, ptr getelementptr inbounds (i8, ptr @zchk3_.io___242, i64 8), align 8, !tbaa !19
  %274 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___242) #5
  %275 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %276 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %277 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %278 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %279 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %280 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %281 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %282 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %283 = call i64 @e_wsfe() #5
  br label %284

284:                                              ; preds = %272, %270
  %285 = load i64, ptr %6, align 8, !tbaa !8
  %.not258 = icmp eq i64 %285, 0
  br i1 %.not258, label %289, label %286

286:                                              ; preds = %284
  store i64 0, ptr %29, align 8, !tbaa !22
  %287 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %287, ptr %66, align 8, !tbaa !24
  %288 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %289

289:                                              ; preds = %286, %284
  %290 = call i32 @f2c_ztrsv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef %17, ptr noundef nonnull %36, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %335

291:                                              ; preds = %269
  br i1 %58, label %292, label %314

292:                                              ; preds = %291
  %293 = load i64, ptr %5, align 8, !tbaa !8
  %.not255 = icmp eq i64 %293, 0
  br i1 %.not255, label %307, label %294

294:                                              ; preds = %292
  %295 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %295, ptr getelementptr inbounds (i8, ptr @zchk3_.io___243, i64 8), align 8, !tbaa !19
  %296 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___243) #5
  %297 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %298 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %299 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %300 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %301 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %302 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %303 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #5
  %304 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %305 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %306 = call i64 @e_wsfe() #5
  br label %307

307:                                              ; preds = %294, %292
  %308 = load i64, ptr %6, align 8, !tbaa !8
  %.not256 = icmp eq i64 %308, 0
  br i1 %.not256, label %312, label %309

309:                                              ; preds = %307
  store i64 0, ptr %29, align 8, !tbaa !22
  %310 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %310, ptr %66, align 8, !tbaa !24
  %311 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %312

312:                                              ; preds = %309, %307
  %313 = call i32 @f2c_ztbsv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef %17, ptr noundef nonnull %36, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %335

314:                                              ; preds = %291
  br i1 %59, label %315, label %335

315:                                              ; preds = %314
  %316 = load i64, ptr %5, align 8, !tbaa !8
  %.not253 = icmp eq i64 %316, 0
  br i1 %.not253, label %328, label %317

317:                                              ; preds = %315
  %318 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %318, ptr getelementptr inbounds (i8, ptr @zchk3_.io___244, i64 8), align 8, !tbaa !19
  %319 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___244) #5
  %320 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %321 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %322 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %323 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %324 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %325 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %326 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %327 = call i64 @e_wsfe() #5
  br label %328

328:                                              ; preds = %317, %315
  %329 = load i64, ptr %6, align 8, !tbaa !8
  %.not254 = icmp eq i64 %329, 0
  br i1 %.not254, label %333, label %330

330:                                              ; preds = %328
  store i64 0, ptr %29, align 8, !tbaa !22
  %331 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %331, ptr %66, align 8, !tbaa !24
  %332 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %333

333:                                              ; preds = %330, %328
  %334 = call i32 @f2c_ztpsv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef %17, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %335

335:                                              ; preds = %266, %312, %333, %314, %289, %220, %245, %264, %243
  %336 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !5
  %.not265 = icmp eq i64 %336, 0
  br i1 %.not265, label %337, label %341

337:                                              ; preds = %335
  %338 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %338, ptr getelementptr inbounds (i8, ptr @zchk3_.io___245, i64 8), align 8, !tbaa !19
  %339 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___245) #5
  %340 = call i64 @e_wsfe() #5
  br label %.loopexit274.sink.split

341:                                              ; preds = %335
  %342 = load i8, ptr %40, align 1, !tbaa !5
  %343 = icmp eq i8 %342, %147
  %344 = zext i1 %343 to i64
  store i64 %344, ptr %41, align 16, !tbaa !8
  %345 = load i8, ptr %43, align 1, !tbaa !5
  %346 = icmp eq i8 %345, %148
  %347 = zext i1 %346 to i64
  store i64 %347, ptr %67, align 8, !tbaa !8
  %348 = load i8, ptr %38, align 1, !tbaa !5
  %349 = icmp eq i8 %348, %149
  %350 = zext i1 %349 to i64
  store i64 %350, ptr %68, align 16, !tbaa !8
  %351 = load i64, ptr %32, align 8, !tbaa !8
  %352 = icmp eq i64 %134, %351
  %353 = zext i1 %352 to i64
  store i64 %353, ptr %69, align 8, !tbaa !8
  br i1 %57, label %354, label %369

354:                                              ; preds = %341
  %355 = call i64 @lze_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %35)
  store i64 %355, ptr %70, align 16, !tbaa !8
  %356 = load i64, ptr %36, align 8, !tbaa !8
  %357 = icmp eq i64 %173, %356
  %358 = zext i1 %357 to i64
  store i64 %358, ptr %71, align 8, !tbaa !8
  br i1 %106, label %359, label %361

359:                                              ; preds = %354
  %360 = call i64 @lze_(ptr noundef %21, ptr noundef %20, ptr noundef nonnull %34)
  br label %365

361:                                              ; preds = %354
  %362 = load i64, ptr %39, align 8
  %363 = call i64 @llvm.abs.i64(i64 %362, i1 true)
  store i64 %363, ptr %27, align 8, !tbaa !8
  %364 = call i64 @lzeres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef %21, ptr noundef %20, ptr noundef nonnull %27, i64 noundef 2, i64 noundef 1)
  br label %365

365:                                              ; preds = %361, %359
  %storemerge338 = phi i64 [ %364, %361 ], [ %360, %359 ]
  store i64 %storemerge338, ptr %72, align 16, !tbaa !8
  %366 = load i64, ptr %39, align 8, !tbaa !8
  %367 = icmp eq i64 %197, %366
  %368 = zext i1 %367 to i64
  store i64 %368, ptr %73, align 8, !tbaa !8
  br label %.lr.ph295.preheader

369:                                              ; preds = %341
  br i1 %58, label %370, label %388

370:                                              ; preds = %369
  %371 = load i64, ptr %31, align 8, !tbaa !8
  %372 = icmp eq i64 %150, %371
  %373 = zext i1 %372 to i64
  store i64 %373, ptr %70, align 16, !tbaa !8
  %374 = call i64 @lze_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %35)
  store i64 %374, ptr %71, align 8, !tbaa !8
  %375 = load i64, ptr %36, align 8, !tbaa !8
  %376 = icmp eq i64 %173, %375
  %377 = zext i1 %376 to i64
  store i64 %377, ptr %72, align 16, !tbaa !8
  br i1 %106, label %378, label %380

378:                                              ; preds = %370
  %379 = call i64 @lze_(ptr noundef %21, ptr noundef %20, ptr noundef nonnull %34)
  br label %384

380:                                              ; preds = %370
  %381 = load i64, ptr %39, align 8
  %382 = call i64 @llvm.abs.i64(i64 %381, i1 true)
  store i64 %382, ptr %27, align 8, !tbaa !8
  %383 = call i64 @lzeres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef %21, ptr noundef %20, ptr noundef nonnull %27, i64 noundef 2, i64 noundef 1)
  br label %384

384:                                              ; preds = %380, %378
  %storemerge337 = phi i64 [ %383, %380 ], [ %379, %378 ]
  store i64 %storemerge337, ptr %73, align 8, !tbaa !8
  %385 = load i64, ptr %39, align 8, !tbaa !8
  %386 = icmp eq i64 %197, %385
  %387 = zext i1 %386 to i64
  store i64 %387, ptr %74, align 16, !tbaa !8
  br label %.lr.ph295.preheader

388:                                              ; preds = %369
  br i1 %59, label %389, label %.lr.ph295.preheader

389:                                              ; preds = %388
  %390 = call i64 @lze_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %35)
  store i64 %390, ptr %70, align 16, !tbaa !8
  br i1 %106, label %391, label %393

391:                                              ; preds = %389
  %392 = call i64 @lze_(ptr noundef %21, ptr noundef %20, ptr noundef nonnull %34)
  br label %397

393:                                              ; preds = %389
  %394 = load i64, ptr %39, align 8
  %395 = call i64 @llvm.abs.i64(i64 %394, i1 true)
  store i64 %395, ptr %27, align 8, !tbaa !8
  %396 = call i64 @lzeres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef %21, ptr noundef %20, ptr noundef nonnull %27, i64 noundef 2, i64 noundef 1)
  br label %397

397:                                              ; preds = %393, %391
  %storemerge = phi i64 [ %396, %393 ], [ %392, %391 ]
  store i64 %storemerge, ptr %71, align 8, !tbaa !8
  %398 = load i64, ptr %39, align 8, !tbaa !8
  %399 = icmp eq i64 %197, %398
  %400 = zext i1 %399 to i64
  store i64 %400, ptr %72, align 16, !tbaa !8
  br label %.lr.ph295.preheader

.lr.ph295.preheader:                              ; preds = %365, %388, %397, %384
  store i64 %.0, ptr %27, align 8, !tbaa !8
  store i64 1, ptr %30, align 8, !tbaa !8
  br label %.lr.ph295

.lr.ph295:                                        ; preds = %.lr.ph295.preheader, %410
  %401 = phi i64 [ %411, %410 ], [ %.0, %.lr.ph295.preheader ]
  %402 = phi i64 [ %413, %410 ], [ 1, %.lr.ph295.preheader ]
  %.0227293 = phi i1 [ %404, %410 ], [ true, %.lr.ph295.preheader ]
  %storemerge266292 = phi i64 [ %412, %410 ], [ 0, %.lr.ph295.preheader ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %41, i64 0, i64 %storemerge266292
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !8
  %403 = icmp ne i64 %.pre, 0
  %404 = and i1 %.0227293, %403
  %.not273 = icmp eq i64 %.pre, 0
  br i1 %.not273, label %405, label %410

405:                                              ; preds = %.lr.ph295
  %406 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %406, ptr getelementptr inbounds (i8, ptr @zchk3_.io___248, i64 8), align 8, !tbaa !19
  %407 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___248) #5
  %408 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %30, i64 noundef 8) #5
  %409 = call i64 @e_wsfe() #5
  %.pre335 = load i64, ptr %30, align 8, !tbaa !8
  %.pre336 = load i64, ptr %27, align 8, !tbaa !8
  br label %410

410:                                              ; preds = %.lr.ph295, %405
  %411 = phi i64 [ %401, %.lr.ph295 ], [ %.pre336, %405 ]
  %412 = phi i64 [ %402, %.lr.ph295 ], [ %.pre335, %405 ]
  %413 = add nsw i64 %412, 1
  store i64 %413, ptr %30, align 8, !tbaa !8
  %.not267.not = icmp slt i64 %412, %411
  br i1 %.not267.not, label %.lr.ph295, label %._crit_edge296, !llvm.loop !25

._crit_edge296:                                   ; preds = %410
  br i1 %404, label %414, label %.loopexit274.sink.split

414:                                              ; preds = %._crit_edge296
  br i1 %106, label %.loopexit, label %415

415:                                              ; preds = %414
  %416 = call i64 @s_cmp(ptr noundef nonnull %65, ptr noundef nonnull @.str.9, i64 noundef 2, i64 noundef 2) #5
  %417 = icmp eq i64 %416, 0
  br i1 %417, label %418, label %420

418:                                              ; preds = %415
  %419 = call i32 @zmvch_(ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull @c_b2, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %19, ptr noundef nonnull %39, ptr noundef nonnull @c_b1, ptr noundef %24, ptr noundef nonnull %39, ptr noundef %22, ptr noundef %23, ptr noundef %20, ptr noundef %1, ptr noundef nonnull %37, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1)
  br label %454

420:                                              ; preds = %415
  %421 = call i64 @s_cmp(ptr noundef nonnull %65, ptr noundef nonnull @.str.10, i64 noundef 2, i64 noundef 2) #5
  %422 = icmp eq i64 %421, 0
  br i1 %422, label %423, label %454

423:                                              ; preds = %420
  %424 = load i64, ptr %32, align 8, !tbaa !8
  store i64 %424, ptr %27, align 8, !tbaa !8
  %.not270298 = icmp slt i64 %424, 1
  br i1 %.not270298, label %452, label %.lr.ph301

.lr.ph301:                                        ; preds = %423
  %425 = load i64, ptr %39, align 8
  %426 = call i64 @llvm.abs.i64(i64 %425, i1 true)
  %427 = add nuw i64 %424, 1
  %xtraiter383 = and i64 %424, 1
  %428 = icmp eq i64 %424, 1
  br i1 %428, label %._crit_edge302.unr-lcssa, label %.lr.ph301.new

.lr.ph301.new:                                    ; preds = %.lr.ph301
  %unroll_iter387 = and i64 %424, 9223372036854775806
  br label %429

429:                                              ; preds = %429, %.lr.ph301.new
  %storemerge269299 = phi i64 [ 1, %.lr.ph301.new ], [ %443, %429 ]
  %niter388 = phi i64 [ 0, %.lr.ph301.new ], [ %niter388.next.1, %429 ]
  %430 = add nsw i64 %storemerge269299, -1
  %431 = mul nsw i64 %426, %430
  %432 = getelementptr %struct.doublecomplex, ptr %20, i64 %431
  %433 = getelementptr inbounds %struct.doublecomplex, ptr %49, i64 %storemerge269299
  %434 = load <2 x double>, ptr %432, align 8, !tbaa !10
  store <2 x double> %434, ptr %433, align 8, !tbaa !10
  %435 = getelementptr inbounds %struct.doublecomplex, ptr %50, i64 %storemerge269299
  %436 = load <2 x double>, ptr %435, align 8, !tbaa !10
  store <2 x double> %436, ptr %432, align 8, !tbaa !10
  %437 = mul nsw i64 %426, %storemerge269299
  %438 = getelementptr %struct.doublecomplex, ptr %20, i64 %437
  %439 = getelementptr %struct.doublecomplex, ptr %24, i64 %storemerge269299
  %440 = load <2 x double>, ptr %438, align 8, !tbaa !10
  store <2 x double> %440, ptr %439, align 8, !tbaa !10
  %441 = getelementptr %struct.doublecomplex, ptr %19, i64 %storemerge269299
  %442 = load <2 x double>, ptr %441, align 8, !tbaa !10
  store <2 x double> %442, ptr %438, align 8, !tbaa !10
  %443 = add nuw i64 %storemerge269299, 2
  %niter388.next.1 = add i64 %niter388, 2
  %niter388.ncmp.1 = icmp eq i64 %niter388.next.1, %unroll_iter387
  br i1 %niter388.ncmp.1, label %._crit_edge302.unr-lcssa, label %429, !llvm.loop !26

._crit_edge302.unr-lcssa:                         ; preds = %429, %.lr.ph301
  %.lcssa367.ph = phi i64 [ poison, %.lr.ph301 ], [ %437, %429 ]
  %storemerge269299.unr = phi i64 [ 1, %.lr.ph301 ], [ %443, %429 ]
  %lcmp.mod385.not = icmp eq i64 %xtraiter383, 0
  br i1 %lcmp.mod385.not, label %._crit_edge302, label %._crit_edge302.epilog-lcssa

._crit_edge302.epilog-lcssa:                      ; preds = %._crit_edge302.unr-lcssa
  %444 = add nsw i64 %storemerge269299.unr, -1
  %445 = mul nsw i64 %426, %444
  %446 = getelementptr %struct.doublecomplex, ptr %20, i64 %445
  %447 = getelementptr inbounds %struct.doublecomplex, ptr %49, i64 %storemerge269299.unr
  %448 = load <2 x double>, ptr %446, align 8, !tbaa !10
  store <2 x double> %448, ptr %447, align 8, !tbaa !10
  %449 = getelementptr inbounds %struct.doublecomplex, ptr %50, i64 %storemerge269299.unr
  %450 = load <2 x double>, ptr %449, align 8, !tbaa !10
  store <2 x double> %450, ptr %446, align 8, !tbaa !10
  br label %._crit_edge302

._crit_edge302:                                   ; preds = %._crit_edge302.unr-lcssa, %._crit_edge302.epilog-lcssa
  %.lcssa367 = phi i64 [ %.lcssa367.ph, %._crit_edge302.unr-lcssa ], [ %445, %._crit_edge302.epilog-lcssa ]
  %451 = add nsw i64 %.lcssa367, 1
  store i64 %451, ptr %28, align 8, !tbaa !8
  br label %452

452:                                              ; preds = %._crit_edge302, %423
  %storemerge269.lcssa = phi i64 [ %427, %._crit_edge302 ], [ 1, %423 ]
  store i64 %storemerge269.lcssa, ptr %30, align 8, !tbaa !8
  %453 = call i32 @zmvch_(ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull @c_b2, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %24, ptr noundef nonnull %39, ptr noundef nonnull @c_b1, ptr noundef %19, ptr noundef nonnull %39, ptr noundef %22, ptr noundef %23, ptr noundef %20, ptr noundef %1, ptr noundef nonnull %37, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_false, i64 noundef 1)
  br label %454

454:                                              ; preds = %420, %452, %418
  %455 = load double, ptr %37, align 8
  %456 = fcmp oge double %126, %455
  %457 = select i1 %456, double %126, double %455
  store double %457, ptr %44, align 8, !tbaa !10
  %458 = load i64, ptr %7, align 8, !tbaa !8
  %.not271 = icmp eq i64 %458, 0
  br i1 %.not271, label %124, label %.loopexit274

._crit_edge308:                                   ; preds = %124, %117
  %459 = phi double [ %118, %117 ], [ %457, %124 ]
  %460 = add nuw nsw i64 %.0230309, 1
  %exitcond330.not = icmp eq i64 %460, 3
  br i1 %exitcond330.not, label %461, label %117, !llvm.loop !27

461:                                              ; preds = %._crit_edge308
  %462 = add nuw nsw i64 %.0229310, 1
  %exitcond331.not = icmp eq i64 %462, 4
  br i1 %exitcond331.not, label %463, label %112, !llvm.loop !28

463:                                              ; preds = %461
  %464 = add nuw nsw i64 %.0228311, 1
  %exitcond332.not = icmp eq i64 %464, 3
  br i1 %exitcond332.not, label %.loopexit275, label %107, !llvm.loop !29

.loopexit275:                                     ; preds = %463, %95
  %465 = phi double [ %81, %95 ], [ %459, %463 ]
  %466 = add nuw i64 %.0234313, 1
  %exitcond333.not = icmp eq i64 %.0234313, %.0232341
  br i1 %exitcond333.not, label %.loopexit, label %.lr.ph315, !llvm.loop !30

.loopexit:                                        ; preds = %.loopexit275, %414, %79
  %467 = phi double [ %76, %79 ], [ %126, %414 ], [ %465, %.loopexit275 ]
  %468 = add nuw i64 %.0233317, 1
  %exitcond334.not = icmp eq i64 %.0233317, %63
  br i1 %exitcond334.not, label %._crit_edge320, label %75, !llvm.loop !31

._crit_edge320:                                   ; preds = %.loopexit, %._crit_edge
  %469 = phi double [ 0.000000e+00, %._crit_edge ], [ %467, %.loopexit ]
  %470 = load double, ptr %2, align 8, !tbaa !10
  %471 = fcmp olt double %469, %470
  %472 = load i64, ptr %3, align 8, !tbaa !8
  br i1 %471, label %473, label %476

473:                                              ; preds = %._crit_edge320
  store i64 %472, ptr getelementptr inbounds (i8, ptr @zchk3_.io___250, i64 8), align 8, !tbaa !19
  %474 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___250) #5
  %475 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  br label %.sink.split

476:                                              ; preds = %._crit_edge320
  store i64 %472, ptr getelementptr inbounds (i8, ptr @zchk3_.io___251, i64 8), align 8, !tbaa !19
  %477 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___251) #5
  %478 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %479 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  br label %.sink.split

.loopexit274.sink.split:                          ; preds = %._crit_edge296, %337
  store i64 1, ptr %7, align 8, !tbaa !8
  br label %.loopexit274

.loopexit274:                                     ; preds = %454, %.loopexit274.sink.split
  %480 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %480, ptr getelementptr inbounds (i8, ptr @zchk3_.io___252, i64 8), align 8, !tbaa !19
  %481 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___252) #5
  %482 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %483 = call i64 @e_wsfe() #5
  br i1 %57, label %484, label %494

484:                                              ; preds = %.loopexit274
  %485 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %485, ptr getelementptr inbounds (i8, ptr @zchk3_.io___253, i64 8), align 8, !tbaa !19
  %486 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___253) #5
  %487 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %488 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %489 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %490 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %491 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %492 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %493 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  br label %.sink.split

494:                                              ; preds = %.loopexit274
  br i1 %58, label %495, label %506

495:                                              ; preds = %494
  %496 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %496, ptr getelementptr inbounds (i8, ptr @zchk3_.io___254, i64 8), align 8, !tbaa !19
  %497 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___254) #5
  %498 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %499 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %500 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %501 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %502 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %503 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %504 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #5
  %505 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  br label %.sink.split

506:                                              ; preds = %494
  br i1 %59, label %507, label %518

507:                                              ; preds = %506
  %508 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %508, ptr getelementptr inbounds (i8, ptr @zchk3_.io___255, i64 8), align 8, !tbaa !19
  %509 = call i64 @s_wsfe(ptr noundef nonnull @zchk3_.io___255) #5
  %510 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %511 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %512 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %513 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %514 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %515 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  br label %.sink.split

.sink.split:                                      ; preds = %476, %473, %495, %507, %484
  %.sink = phi ptr [ %39, %484 ], [ %39, %507 ], [ %39, %495 ], [ %33, %473 ], [ %44, %476 ]
  %516 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %.sink, i64 noundef 8) #5
  %517 = call i64 @e_wsfe() #5
  br label %518

518:                                              ; preds = %.sink.split, %506
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 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
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #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_ztrmv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @f2c_ztbmv(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_ztpmv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare i32 @f2c_ztbsv(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_ztpsv(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 = distinct !{!14, !13}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.unroll.disable"}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !16}
!19 = !{!20, !9, i64 8}
!20 = !{!"", !9, i64 0, !9, i64 8, !9, i64 16, !21, i64 24, !9, i64 32}
!21 = !{!"any pointer", !6, i64 0}
!22 = !{!23, !9, i64 0}
!23 = !{!"", !9, i64 0, !9, i64 8}
!24 = !{!23, !9, i64 8}
!25 = distinct !{!25, !13}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13}


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