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

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

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

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local global %union.anon, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i64, align 8
@c_b2 = external hidden global %struct.doublecomplex, align 8
@c_b1 = external hidden global %struct.doublecomplex, align 8
@c_true = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@zchk5_.icht = external hidden global [2 x i8], align 1
@zchk5_.ichu = external hidden global [2 x i8], align 1
@zchk5_.io___334 = external hidden global %struct.cilist, align 8
@zchk5_.io___335 = external hidden global %struct.cilist, align 8
@zchk5_.io___336 = external hidden global %struct.cilist, align 8
@zchk5_.io___339 = external hidden global %struct.cilist, align 8
@zchk5_.io___347 = external hidden global %struct.cilist, align 8
@zchk5_.io___348 = external hidden global %struct.cilist, align 8
@zchk5_.io___349 = external hidden global %struct.cilist, align 8
@zchk5_.io___350 = external hidden global %struct.cilist, align 8
@zchk5_.io___351 = external hidden global %struct.cilist, align 8
@zchk5_.io___352 = external hidden global %struct.cilist, align 8

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

declare i64 @s_wsfe(ptr noundef) #1

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

declare i64 @e_wsfe() #1

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

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

159:                                              ; preds = %1364, %27
  %160 = load i64, ptr %79, align 8, !tbaa !9
  %161 = load i64, ptr %57, align 8, !tbaa !9
  %162 = icmp sle i64 %160, %161
  br i1 %162, label %163, label %1367

163:                                              ; preds = %159
  %164 = load ptr, ptr %37, align 8, !tbaa !5
  %165 = load i64, ptr %79, align 8, !tbaa !9
  %166 = getelementptr inbounds i64, ptr %164, i64 %165
  %167 = load i64, ptr %166, align 8, !tbaa !9
  store i64 %167, ptr %71, align 8, !tbaa !9
  %168 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %168, ptr %89, align 8, !tbaa !9
  %169 = load i64, ptr %89, align 8, !tbaa !9
  %170 = load ptr, ptr %42, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = icmp slt i64 %169, %171
  br i1 %172, label %173, label %176

173:                                              ; preds = %163
  %174 = load i64, ptr %89, align 8, !tbaa !9
  %175 = add nsw i64 %174, 1
  store i64 %175, ptr %89, align 8, !tbaa !9
  br label %176

176:                                              ; preds = %173, %163
  %177 = load i64, ptr %89, align 8, !tbaa !9
  %178 = load ptr, ptr %42, align 8, !tbaa !5
  %179 = load i64, ptr %178, align 8, !tbaa !9
  %180 = icmp sgt i64 %177, %179
  br i1 %180, label %181, label %182

181:                                              ; preds = %176
  br label %1363

182:                                              ; preds = %176
  %183 = load i64, ptr %89, align 8, !tbaa !9
  %184 = load i64, ptr %71, align 8, !tbaa !9
  %185 = mul nsw i64 %183, %184
  store i64 %185, ptr %87, align 8, !tbaa !9
  %186 = load ptr, ptr %36, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  store i64 %187, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %188

188:                                              ; preds = %1359, %182
  %189 = load i64, ptr %78, align 8, !tbaa !9
  %190 = load i64, ptr %58, align 8, !tbaa !9
  %191 = icmp sle i64 %189, %190
  br i1 %191, label %192, label %1362

192:                                              ; preds = %188
  %193 = load ptr, ptr %37, align 8, !tbaa !5
  %194 = load i64, ptr %78, align 8, !tbaa !9
  %195 = getelementptr inbounds i64, ptr %193, i64 %194
  %196 = load i64, ptr %195, align 8, !tbaa !9
  store i64 %196, ptr %70, align 8, !tbaa !9
  store i64 1, ptr %91, align 8, !tbaa !9
  br label %197

197:                                              ; preds = %1355, %192
  %198 = load i64, ptr %91, align 8, !tbaa !9
  %199 = icmp sle i64 %198, 2
  br i1 %199, label %200, label %1358

200:                                              ; preds = %197
  %201 = load i64, ptr %91, align 8, !tbaa !9
  %202 = sub nsw i64 %201, 1
  %203 = getelementptr inbounds [2 x i8], ptr @zchk5_.icht, i64 0, i64 %202
  %204 = load i8, ptr %203, align 1, !tbaa !13
  %205 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  store i8 %204, ptr %205, align 1, !tbaa !13
  %206 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %207 = load i8, ptr %206, align 1, !tbaa !13
  %208 = zext i8 %207 to i32
  %209 = icmp eq i32 %208, 67
  %210 = zext i1 %209 to i32
  %211 = sext i32 %210 to i64
  store i64 %211, ptr %102, align 8, !tbaa !9
  %212 = load i64, ptr %102, align 8, !tbaa !9
  %213 = icmp ne i64 %212, 0
  br i1 %213, label %214, label %219

214:                                              ; preds = %200
  %215 = load i64, ptr %100, align 8, !tbaa !9
  %216 = icmp ne i64 %215, 0
  br i1 %216, label %219, label %217

217:                                              ; preds = %214
  %218 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  store i8 84, ptr %218, align 1, !tbaa !13
  br label %219

219:                                              ; preds = %217, %214, %200
  %220 = load i64, ptr %102, align 8, !tbaa !9
  %221 = icmp ne i64 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %219
  %223 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %223, ptr %75, align 8, !tbaa !9
  %224 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %224, ptr %76, align 8, !tbaa !9
  br label %228

225:                                              ; preds = %219
  %226 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %226, ptr %75, align 8, !tbaa !9
  %227 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %227, ptr %76, align 8, !tbaa !9
  br label %228

228:                                              ; preds = %225, %222
  %229 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %229, ptr %86, align 8, !tbaa !9
  %230 = load i64, ptr %86, align 8, !tbaa !9
  %231 = load ptr, ptr %42, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = icmp slt i64 %230, %232
  br i1 %233, label %234, label %237

234:                                              ; preds = %228
  %235 = load i64, ptr %86, align 8, !tbaa !9
  %236 = add nsw i64 %235, 1
  store i64 %236, ptr %86, align 8, !tbaa !9
  br label %237

237:                                              ; preds = %234, %228
  %238 = load i64, ptr %86, align 8, !tbaa !9
  %239 = load ptr, ptr %42, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = icmp sgt i64 %238, %240
  br i1 %241, label %242, label %243

242:                                              ; preds = %237
  br label %1354

243:                                              ; preds = %237
  %244 = load i64, ptr %86, align 8, !tbaa !9
  %245 = load i64, ptr %76, align 8, !tbaa !9
  %246 = mul nsw i64 %244, %245
  store i64 %246, ptr %84, align 8, !tbaa !9
  %247 = load i64, ptr %102, align 8, !tbaa !9
  %248 = icmp ne i64 %247, 0
  br i1 %248, label %249, label %258

249:                                              ; preds = %243
  %250 = load ptr, ptr %42, align 8, !tbaa !5
  %251 = load i64, ptr %250, align 8, !tbaa !9
  %252 = shl i64 %251, 1
  store i64 %252, ptr %59, align 8, !tbaa !9
  %253 = load ptr, ptr %43, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.doublecomplex, ptr %253, i64 1
  %255 = load ptr, ptr %44, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.doublecomplex, ptr %255, i64 1
  %257 = call i32 @zmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %75, ptr noundef %76, ptr noundef %254, ptr noundef %59, ptr noundef %256, ptr noundef %86, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %265

258:                                              ; preds = %243
  %259 = load ptr, ptr %43, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.doublecomplex, ptr %259, i64 1
  %261 = load ptr, ptr %42, align 8, !tbaa !5
  %262 = load ptr, ptr %44, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.doublecomplex, ptr %262, i64 1
  %264 = call i32 @zmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %75, ptr noundef %76, ptr noundef %260, ptr noundef %261, ptr noundef %263, ptr noundef %86, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %265

265:                                              ; preds = %258, %249
  %266 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %266, ptr %88, align 8, !tbaa !9
  %267 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %267, ptr %85, align 8, !tbaa !9
  %268 = load i64, ptr %102, align 8, !tbaa !9
  %269 = icmp ne i64 %268, 0
  br i1 %269, label %270, label %281

270:                                              ; preds = %265
  %271 = load ptr, ptr %42, align 8, !tbaa !5
  %272 = load i64, ptr %271, align 8, !tbaa !9
  %273 = shl i64 %272, 1
  store i64 %273, ptr %59, align 8, !tbaa !9
  %274 = load ptr, ptr %43, align 8, !tbaa !5
  %275 = load i64, ptr %70, align 8, !tbaa !9
  %276 = add nsw i64 %275, 1
  %277 = getelementptr inbounds %struct.doublecomplex, ptr %274, i64 %276
  %278 = load ptr, ptr %46, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.doublecomplex, ptr %278, i64 1
  %280 = call i32 @zmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %75, ptr noundef %76, ptr noundef %277, ptr noundef %59, ptr noundef %279, ptr noundef %88, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %293

281:                                              ; preds = %265
  %282 = load ptr, ptr %43, align 8, !tbaa !5
  %283 = load i64, ptr %70, align 8, !tbaa !9
  %284 = load ptr, ptr %42, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = mul nsw i64 %283, %285
  %287 = add nsw i64 %286, 1
  %288 = getelementptr inbounds %struct.doublecomplex, ptr %282, i64 %287
  %289 = load ptr, ptr %42, align 8, !tbaa !5
  %290 = load ptr, ptr %46, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.doublecomplex, ptr %290, i64 1
  %292 = call i32 @zmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %75, ptr noundef %76, ptr noundef %288, ptr noundef %289, ptr noundef %291, ptr noundef %88, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %293

293:                                              ; preds = %281, %270
  store i64 1, ptr %92, align 8, !tbaa !9
  br label %294

294:                                              ; preds = %1350, %293
  %295 = load i64, ptr %92, align 8, !tbaa !9
  %296 = icmp sle i64 %295, 2
  br i1 %296, label %297, label %1353

297:                                              ; preds = %294
  %298 = load i64, ptr %92, align 8, !tbaa !9
  %299 = sub nsw i64 %298, 1
  %300 = getelementptr inbounds [2 x i8], ptr @zchk5_.ichu, i64 0, i64 %299
  %301 = load i8, ptr %300, align 1, !tbaa !13
  %302 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  store i8 %301, ptr %302, align 1, !tbaa !13
  %303 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %304 = load i8, ptr %303, align 1, !tbaa !13
  %305 = zext i8 %304 to i32
  %306 = icmp eq i32 %305, 85
  %307 = zext i1 %306 to i32
  %308 = sext i32 %307 to i64
  store i64 %308, ptr %112, align 8, !tbaa !9
  %309 = load ptr, ptr %38, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  store i64 %310, ptr %59, align 8, !tbaa !9
  store i64 1, ptr %72, align 8, !tbaa !9
  br label %311

311:                                              ; preds = %1346, %297
  %312 = load i64, ptr %72, align 8, !tbaa !9
  %313 = load i64, ptr %59, align 8, !tbaa !9
  %314 = icmp sle i64 %312, %313
  br i1 %314, label %315, label %1349

315:                                              ; preds = %311
  %316 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %316, ptr %60, align 8, !tbaa !9
  %317 = load ptr, ptr %39, align 8, !tbaa !5
  %318 = load i64, ptr %60, align 8, !tbaa !9
  %319 = getelementptr inbounds %struct.doublecomplex, ptr %317, i64 %318
  %320 = getelementptr inbounds %struct.doublecomplex, ptr %319, i32 0, i32 0
  %321 = load double, ptr %320, align 8, !tbaa !14
  %322 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  store double %321, ptr %322, align 8, !tbaa !14
  %323 = load ptr, ptr %39, align 8, !tbaa !5
  %324 = load i64, ptr %60, align 8, !tbaa !9
  %325 = getelementptr inbounds %struct.doublecomplex, ptr %323, i64 %324
  %326 = getelementptr inbounds %struct.doublecomplex, ptr %325, i32 0, i32 1
  %327 = load double, ptr %326, align 8, !tbaa !16
  %328 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  store double %327, ptr %328, align 8, !tbaa !16
  %329 = load ptr, ptr %40, align 8, !tbaa !5
  %330 = load i64, ptr %329, align 8, !tbaa !9
  store i64 %330, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %73, align 8, !tbaa !9
  br label %331

331:                                              ; preds = %1342, %315
  %332 = load i64, ptr %73, align 8, !tbaa !9
  %333 = load i64, ptr %60, align 8, !tbaa !9
  %334 = icmp sle i64 %332, %333
  br i1 %334, label %335, label %1345

335:                                              ; preds = %331
  %336 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %336, ptr %61, align 8, !tbaa !9
  %337 = load ptr, ptr %41, align 8, !tbaa !5
  %338 = load i64, ptr %61, align 8, !tbaa !9
  %339 = getelementptr inbounds %struct.doublecomplex, ptr %337, i64 %338
  %340 = getelementptr inbounds %struct.doublecomplex, ptr %339, i32 0, i32 0
  %341 = load double, ptr %340, align 8, !tbaa !14
  %342 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  store double %341, ptr %342, align 8, !tbaa !14
  %343 = load ptr, ptr %41, align 8, !tbaa !5
  %344 = load i64, ptr %61, align 8, !tbaa !9
  %345 = getelementptr inbounds %struct.doublecomplex, ptr %343, i64 %344
  %346 = getelementptr inbounds %struct.doublecomplex, ptr %345, i32 0, i32 1
  %347 = load double, ptr %346, align 8, !tbaa !16
  %348 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 1
  store double %347, ptr %348, align 8, !tbaa !16
  %349 = load i64, ptr %100, align 8, !tbaa !9
  %350 = icmp ne i64 %349, 0
  br i1 %350, label %351, label %363

351:                                              ; preds = %335
  %352 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  %353 = load double, ptr %352, align 8, !tbaa !14
  store double %353, ptr %106, align 8, !tbaa !11
  %354 = load double, ptr %106, align 8, !tbaa !11
  %355 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %354, ptr %355, align 8, !tbaa !14
  %356 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double 0.000000e+00, ptr %356, align 8, !tbaa !16
  %357 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %358 = load double, ptr %357, align 8, !tbaa !14
  %359 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  store double %358, ptr %359, align 8, !tbaa !14
  %360 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %361 = load double, ptr %360, align 8, !tbaa !16
  %362 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 1
  store double %361, ptr %362, align 8, !tbaa !16
  br label %363

363:                                              ; preds = %351, %335
  %364 = load i64, ptr %71, align 8, !tbaa !9
  %365 = icmp sle i64 %364, 0
  %366 = zext i1 %365 to i32
  %367 = sext i32 %366 to i64
  store i64 %367, ptr %103, align 8, !tbaa !9
  %368 = load i64, ptr %100, align 8, !tbaa !9
  %369 = icmp ne i64 %368, 0
  br i1 %369, label %370, label %393

370:                                              ; preds = %363
  %371 = load i64, ptr %103, align 8, !tbaa !9
  %372 = icmp ne i64 %371, 0
  br i1 %372, label %389, label %373

373:                                              ; preds = %370
  %374 = load i64, ptr %70, align 8, !tbaa !9
  %375 = icmp sle i64 %374, 0
  br i1 %375, label %384, label %376

376:                                              ; preds = %373
  %377 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %378 = load double, ptr %377, align 8, !tbaa !14
  %379 = fcmp oeq double %378, 0.000000e+00
  br i1 %379, label %380, label %387

380:                                              ; preds = %376
  %381 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %382 = load double, ptr %381, align 8, !tbaa !16
  %383 = fcmp oeq double %382, 0.000000e+00
  br i1 %383, label %384, label %387

384:                                              ; preds = %380, %373
  %385 = load double, ptr %106, align 8, !tbaa !11
  %386 = fcmp oeq double %385, 1.000000e+00
  br label %387

387:                                              ; preds = %384, %380, %376
  %388 = phi i1 [ false, %380 ], [ false, %376 ], [ %386, %384 ]
  br label %389

389:                                              ; preds = %387, %370
  %390 = phi i1 [ true, %370 ], [ %388, %387 ]
  %391 = zext i1 %390 to i32
  %392 = sext i32 %391 to i64
  store i64 %392, ptr %103, align 8, !tbaa !9
  br label %393

393:                                              ; preds = %389, %363
  %394 = load ptr, ptr %28, align 8, !tbaa !5
  %395 = getelementptr inbounds i8, ptr %394, i64 1
  %396 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %397 = load ptr, ptr %48, align 8, !tbaa !5
  %398 = load i64, ptr %56, align 8, !tbaa !9
  %399 = getelementptr inbounds %struct.doublecomplex, ptr %397, i64 %398
  %400 = load ptr, ptr %42, align 8, !tbaa !5
  %401 = load ptr, ptr %49, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.doublecomplex, ptr %401, i64 1
  %403 = call i32 @zmake_(ptr noundef %395, ptr noundef %396, ptr noundef @.str.6, ptr noundef %71, ptr noundef %71, ptr noundef %399, ptr noundef %400, ptr noundef %402, ptr noundef %89, ptr noundef %110, ptr noundef @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %404 = load i64, ptr %77, align 8, !tbaa !9
  %405 = add nsw i64 %404, 1
  store i64 %405, ptr %77, align 8, !tbaa !9
  %406 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %407 = load i8, ptr %406, align 1, !tbaa !13
  %408 = getelementptr inbounds [1 x i8], ptr %113, i64 0, i64 0
  store i8 %407, ptr %408, align 1, !tbaa !13
  %409 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %410 = load i8, ptr %409, align 1, !tbaa !13
  %411 = getelementptr inbounds [1 x i8], ptr %115, i64 0, i64 0
  store i8 %410, ptr %411, align 1, !tbaa !13
  %412 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %412, ptr %83, align 8, !tbaa !9
  %413 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %413, ptr %82, align 8, !tbaa !9
  %414 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %415 = load double, ptr %414, align 8, !tbaa !14
  %416 = getelementptr inbounds %struct.doublecomplex, ptr %90, i32 0, i32 0
  store double %415, ptr %416, align 8, !tbaa !14
  %417 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %418 = load double, ptr %417, align 8, !tbaa !16
  %419 = getelementptr inbounds %struct.doublecomplex, ptr %90, i32 0, i32 1
  store double %418, ptr %419, align 8, !tbaa !16
  %420 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %420, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %421

421:                                              ; preds = %446, %393
  %422 = load i64, ptr %68, align 8, !tbaa !9
  %423 = load i64, ptr %61, align 8, !tbaa !9
  %424 = icmp sle i64 %422, %423
  br i1 %424, label %425, label %449

425:                                              ; preds = %421
  %426 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %426, ptr %62, align 8, !tbaa !9
  %427 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %427, ptr %63, align 8, !tbaa !9
  %428 = load ptr, ptr %44, align 8, !tbaa !5
  %429 = load i64, ptr %63, align 8, !tbaa !9
  %430 = getelementptr inbounds %struct.doublecomplex, ptr %428, i64 %429
  %431 = getelementptr inbounds %struct.doublecomplex, ptr %430, i32 0, i32 0
  %432 = load double, ptr %431, align 8, !tbaa !14
  %433 = load ptr, ptr %45, align 8, !tbaa !5
  %434 = load i64, ptr %62, align 8, !tbaa !9
  %435 = getelementptr inbounds %struct.doublecomplex, ptr %433, i64 %434
  %436 = getelementptr inbounds %struct.doublecomplex, ptr %435, i32 0, i32 0
  store double %432, ptr %436, align 8, !tbaa !14
  %437 = load ptr, ptr %44, align 8, !tbaa !5
  %438 = load i64, ptr %63, align 8, !tbaa !9
  %439 = getelementptr inbounds %struct.doublecomplex, ptr %437, i64 %438
  %440 = getelementptr inbounds %struct.doublecomplex, ptr %439, i32 0, i32 1
  %441 = load double, ptr %440, align 8, !tbaa !16
  %442 = load ptr, ptr %45, align 8, !tbaa !5
  %443 = load i64, ptr %62, align 8, !tbaa !9
  %444 = getelementptr inbounds %struct.doublecomplex, ptr %442, i64 %443
  %445 = getelementptr inbounds %struct.doublecomplex, ptr %444, i32 0, i32 1
  store double %441, ptr %445, align 8, !tbaa !16
  br label %446

446:                                              ; preds = %425
  %447 = load i64, ptr %68, align 8, !tbaa !9
  %448 = add nsw i64 %447, 1
  store i64 %448, ptr %68, align 8, !tbaa !9
  br label %421, !llvm.loop !17

449:                                              ; preds = %421
  %450 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %450, ptr %96, align 8, !tbaa !9
  %451 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %451, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %452

452:                                              ; preds = %477, %449
  %453 = load i64, ptr %68, align 8, !tbaa !9
  %454 = load i64, ptr %61, align 8, !tbaa !9
  %455 = icmp sle i64 %453, %454
  br i1 %455, label %456, label %480

456:                                              ; preds = %452
  %457 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %457, ptr %62, align 8, !tbaa !9
  %458 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %458, ptr %63, align 8, !tbaa !9
  %459 = load ptr, ptr %46, align 8, !tbaa !5
  %460 = load i64, ptr %63, align 8, !tbaa !9
  %461 = getelementptr inbounds %struct.doublecomplex, ptr %459, i64 %460
  %462 = getelementptr inbounds %struct.doublecomplex, ptr %461, i32 0, i32 0
  %463 = load double, ptr %462, align 8, !tbaa !14
  %464 = load ptr, ptr %47, align 8, !tbaa !5
  %465 = load i64, ptr %62, align 8, !tbaa !9
  %466 = getelementptr inbounds %struct.doublecomplex, ptr %464, i64 %465
  %467 = getelementptr inbounds %struct.doublecomplex, ptr %466, i32 0, i32 0
  store double %463, ptr %467, align 8, !tbaa !14
  %468 = load ptr, ptr %46, align 8, !tbaa !5
  %469 = load i64, ptr %63, align 8, !tbaa !9
  %470 = getelementptr inbounds %struct.doublecomplex, ptr %468, i64 %469
  %471 = getelementptr inbounds %struct.doublecomplex, ptr %470, i32 0, i32 1
  %472 = load double, ptr %471, align 8, !tbaa !16
  %473 = load ptr, ptr %47, align 8, !tbaa !5
  %474 = load i64, ptr %62, align 8, !tbaa !9
  %475 = getelementptr inbounds %struct.doublecomplex, ptr %473, i64 %474
  %476 = getelementptr inbounds %struct.doublecomplex, ptr %475, i32 0, i32 1
  store double %472, ptr %476, align 8, !tbaa !16
  br label %477

477:                                              ; preds = %456
  %478 = load i64, ptr %68, align 8, !tbaa !9
  %479 = add nsw i64 %478, 1
  store i64 %479, ptr %68, align 8, !tbaa !9
  br label %452, !llvm.loop !19

480:                                              ; preds = %452
  %481 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %481, ptr %97, align 8, !tbaa !9
  %482 = load i64, ptr %100, align 8, !tbaa !9
  %483 = icmp ne i64 %482, 0
  br i1 %483, label %484, label %486

484:                                              ; preds = %480
  %485 = load double, ptr %106, align 8, !tbaa !11
  store double %485, ptr %109, align 8, !tbaa !11
  br label %493

486:                                              ; preds = %480
  %487 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  %488 = load double, ptr %487, align 8, !tbaa !14
  %489 = getelementptr inbounds %struct.doublecomplex, ptr %101, i32 0, i32 0
  store double %488, ptr %489, align 8, !tbaa !14
  %490 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 1
  %491 = load double, ptr %490, align 8, !tbaa !16
  %492 = getelementptr inbounds %struct.doublecomplex, ptr %101, i32 0, i32 1
  store double %491, ptr %492, align 8, !tbaa !16
  br label %493

493:                                              ; preds = %486, %484
  %494 = load i64, ptr %87, align 8, !tbaa !9
  store i64 %494, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %495

495:                                              ; preds = %520, %493
  %496 = load i64, ptr %68, align 8, !tbaa !9
  %497 = load i64, ptr %61, align 8, !tbaa !9
  %498 = icmp sle i64 %496, %497
  br i1 %498, label %499, label %523

499:                                              ; preds = %495
  %500 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %500, ptr %62, align 8, !tbaa !9
  %501 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %501, ptr %63, align 8, !tbaa !9
  %502 = load ptr, ptr %49, align 8, !tbaa !5
  %503 = load i64, ptr %63, align 8, !tbaa !9
  %504 = getelementptr inbounds %struct.doublecomplex, ptr %502, i64 %503
  %505 = getelementptr inbounds %struct.doublecomplex, ptr %504, i32 0, i32 0
  %506 = load double, ptr %505, align 8, !tbaa !14
  %507 = load ptr, ptr %50, align 8, !tbaa !5
  %508 = load i64, ptr %62, align 8, !tbaa !9
  %509 = getelementptr inbounds %struct.doublecomplex, ptr %507, i64 %508
  %510 = getelementptr inbounds %struct.doublecomplex, ptr %509, i32 0, i32 0
  store double %506, ptr %510, align 8, !tbaa !14
  %511 = load ptr, ptr %49, align 8, !tbaa !5
  %512 = load i64, ptr %63, align 8, !tbaa !9
  %513 = getelementptr inbounds %struct.doublecomplex, ptr %511, i64 %512
  %514 = getelementptr inbounds %struct.doublecomplex, ptr %513, i32 0, i32 1
  %515 = load double, ptr %514, align 8, !tbaa !16
  %516 = load ptr, ptr %50, align 8, !tbaa !5
  %517 = load i64, ptr %62, align 8, !tbaa !9
  %518 = getelementptr inbounds %struct.doublecomplex, ptr %516, i64 %517
  %519 = getelementptr inbounds %struct.doublecomplex, ptr %518, i32 0, i32 1
  store double %515, ptr %519, align 8, !tbaa !16
  br label %520

520:                                              ; preds = %499
  %521 = load i64, ptr %68, align 8, !tbaa !9
  %522 = add nsw i64 %521, 1
  store i64 %522, ptr %68, align 8, !tbaa !9
  br label %495, !llvm.loop !20

523:                                              ; preds = %495
  %524 = load i64, ptr %89, align 8, !tbaa !9
  store i64 %524, ptr %98, align 8, !tbaa !9
  %525 = load i64, ptr %100, align 8, !tbaa !9
  %526 = icmp ne i64 %525, 0
  br i1 %526, label %527, label %570

527:                                              ; preds = %523
  %528 = load ptr, ptr %33, align 8, !tbaa !5
  %529 = load i64, ptr %528, align 8, !tbaa !9
  %530 = icmp ne i64 %529, 0
  br i1 %530, label %531, label %550

531:                                              ; preds = %527
  %532 = load ptr, ptr %32, align 8, !tbaa !5
  %533 = load i64, ptr %532, align 8, !tbaa !9
  store i64 %533, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___334, i32 0, i32 1), align 8, !tbaa !21
  %534 = call i64 @s_wsfe(ptr noundef @zchk5_.io___334)
  %535 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %536 = load ptr, ptr %28, align 8, !tbaa !5
  %537 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %536, i64 noundef 6)
  %538 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %539 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %538, i64 noundef 1)
  %540 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %541 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %540, i64 noundef 1)
  %542 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %543 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %544 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %105, i64 noundef 8)
  %545 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %546 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %88, i64 noundef 8)
  %547 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %106, i64 noundef 8)
  %548 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %549 = call i64 @e_wsfe()
  br label %550

550:                                              ; preds = %531, %527
  %551 = load ptr, ptr %34, align 8, !tbaa !5
  %552 = load i64, ptr %551, align 8, !tbaa !9
  %553 = icmp ne i64 %552, 0
  br i1 %553, label %554, label %560

554:                                              ; preds = %550
  %555 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 0
  store i64 0, ptr %555, align 8, !tbaa !23
  %556 = load ptr, ptr %32, align 8, !tbaa !5
  %557 = load i64, ptr %556, align 8, !tbaa !9
  %558 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 1
  store i64 %557, ptr %558, align 8, !tbaa !25
  %559 = call i64 @f_rew(ptr noundef %67)
  br label %560

560:                                              ; preds = %554, %550
  %561 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %562 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %563 = load ptr, ptr %44, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.doublecomplex, ptr %563, i64 1
  %565 = load ptr, ptr %46, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.doublecomplex, ptr %565, i64 1
  %567 = load ptr, ptr %49, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.doublecomplex, ptr %567, i64 1
  %569 = call i32 @f2c_zher2k(ptr noundef %561, ptr noundef %562, ptr noundef %71, ptr noundef %70, ptr noundef %105, ptr noundef %564, ptr noundef %86, ptr noundef %566, ptr noundef %88, ptr noundef %106, ptr noundef %568, ptr noundef %89)
  br label %613

570:                                              ; preds = %523
  %571 = load ptr, ptr %33, align 8, !tbaa !5
  %572 = load i64, ptr %571, align 8, !tbaa !9
  %573 = icmp ne i64 %572, 0
  br i1 %573, label %574, label %593

574:                                              ; preds = %570
  %575 = load ptr, ptr %32, align 8, !tbaa !5
  %576 = load i64, ptr %575, align 8, !tbaa !9
  store i64 %576, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___335, i32 0, i32 1), align 8, !tbaa !21
  %577 = call i64 @s_wsfe(ptr noundef @zchk5_.io___335)
  %578 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %579 = load ptr, ptr %28, align 8, !tbaa !5
  %580 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %579, i64 noundef 6)
  %581 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %582 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %581, i64 noundef 1)
  %583 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %584 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %583, i64 noundef 1)
  %585 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %586 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %587 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %105, i64 noundef 8)
  %588 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %589 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %88, i64 noundef 8)
  %590 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %95, i64 noundef 8)
  %591 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %592 = call i64 @e_wsfe()
  br label %593

593:                                              ; preds = %574, %570
  %594 = load ptr, ptr %34, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  %596 = icmp ne i64 %595, 0
  br i1 %596, label %597, label %603

597:                                              ; preds = %593
  %598 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 0
  store i64 0, ptr %598, align 8, !tbaa !23
  %599 = load ptr, ptr %32, align 8, !tbaa !5
  %600 = load i64, ptr %599, align 8, !tbaa !9
  %601 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 1
  store i64 %600, ptr %601, align 8, !tbaa !25
  %602 = call i64 @f_rew(ptr noundef %67)
  br label %603

603:                                              ; preds = %597, %593
  %604 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %605 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %606 = load ptr, ptr %44, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.doublecomplex, ptr %606, i64 1
  %608 = load ptr, ptr %46, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.doublecomplex, ptr %608, i64 1
  %610 = load ptr, ptr %49, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.doublecomplex, ptr %610, i64 1
  %612 = call i32 @f2c_zsyr2k(ptr noundef %604, ptr noundef %605, ptr noundef %71, ptr noundef %70, ptr noundef %105, ptr noundef %607, ptr noundef %86, ptr noundef %609, ptr noundef %88, ptr noundef %95, ptr noundef %611, ptr noundef %89)
  br label %613

613:                                              ; preds = %603, %560
  %614 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !13
  %615 = icmp ne i64 %614, 0
  br i1 %615, label %622, label %616

616:                                              ; preds = %613
  %617 = load ptr, ptr %31, align 8, !tbaa !5
  %618 = load i64, ptr %617, align 8, !tbaa !9
  store i64 %618, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___336, i32 0, i32 1), align 8, !tbaa !21
  %619 = call i64 @s_wsfe(ptr noundef @zchk5_.io___336)
  %620 = call i64 @e_wsfe()
  %621 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %621, align 8, !tbaa !9
  br label %1400

622:                                              ; preds = %613
  %623 = getelementptr inbounds [1 x i8], ptr %113, i64 0, i64 0
  %624 = load i8, ptr %623, align 1, !tbaa !13
  %625 = zext i8 %624 to i32
  %626 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %627 = load i8, ptr %626, align 1, !tbaa !13
  %628 = zext i8 %627 to i32
  %629 = icmp eq i32 %625, %628
  %630 = zext i1 %629 to i32
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 0
  store i64 %631, ptr %632, align 16, !tbaa !9
  %633 = getelementptr inbounds [1 x i8], ptr %115, i64 0, i64 0
  %634 = load i8, ptr %633, align 1, !tbaa !13
  %635 = zext i8 %634 to i32
  %636 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %637 = load i8, ptr %636, align 1, !tbaa !13
  %638 = zext i8 %637 to i32
  %639 = icmp eq i32 %635, %638
  %640 = zext i1 %639 to i32
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 1
  store i64 %641, ptr %642, align 8, !tbaa !9
  %643 = load i64, ptr %83, align 8, !tbaa !9
  %644 = load i64, ptr %71, align 8, !tbaa !9
  %645 = icmp eq i64 %643, %644
  %646 = zext i1 %645 to i32
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 2
  store i64 %647, ptr %648, align 16, !tbaa !9
  %649 = load i64, ptr %82, align 8, !tbaa !9
  %650 = load i64, ptr %70, align 8, !tbaa !9
  %651 = icmp eq i64 %649, %650
  %652 = zext i1 %651 to i32
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 3
  store i64 %653, ptr %654, align 8, !tbaa !9
  %655 = getelementptr inbounds %struct.doublecomplex, ptr %90, i32 0, i32 0
  %656 = load double, ptr %655, align 8, !tbaa !14
  %657 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %658 = load double, ptr %657, align 8, !tbaa !14
  %659 = fcmp oeq double %656, %658
  br i1 %659, label %660, label %666

660:                                              ; preds = %622
  %661 = getelementptr inbounds %struct.doublecomplex, ptr %90, i32 0, i32 1
  %662 = load double, ptr %661, align 8, !tbaa !16
  %663 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %664 = load double, ptr %663, align 8, !tbaa !16
  %665 = fcmp oeq double %662, %664
  br label %666

666:                                              ; preds = %660, %622
  %667 = phi i1 [ false, %622 ], [ %665, %660 ]
  %668 = zext i1 %667 to i32
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 4
  store i64 %669, ptr %670, align 16, !tbaa !9
  %671 = load ptr, ptr %45, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.doublecomplex, ptr %671, i64 1
  %673 = load ptr, ptr %44, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.doublecomplex, ptr %673, i64 1
  %675 = call i64 @lze_(ptr noundef %672, ptr noundef %674, ptr noundef %84)
  %676 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 5
  store i64 %675, ptr %676, align 8, !tbaa !9
  %677 = load i64, ptr %96, align 8, !tbaa !9
  %678 = load i64, ptr %86, align 8, !tbaa !9
  %679 = icmp eq i64 %677, %678
  %680 = zext i1 %679 to i32
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 6
  store i64 %681, ptr %682, align 16, !tbaa !9
  %683 = load ptr, ptr %47, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.doublecomplex, ptr %683, i64 1
  %685 = load ptr, ptr %46, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.doublecomplex, ptr %685, i64 1
  %687 = call i64 @lze_(ptr noundef %684, ptr noundef %686, ptr noundef %85)
  %688 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 7
  store i64 %687, ptr %688, align 8, !tbaa !9
  %689 = load i64, ptr %97, align 8, !tbaa !9
  %690 = load i64, ptr %88, align 8, !tbaa !9
  %691 = icmp eq i64 %689, %690
  %692 = zext i1 %691 to i32
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 8
  store i64 %693, ptr %694, align 16, !tbaa !9
  %695 = load i64, ptr %100, align 8, !tbaa !9
  %696 = icmp ne i64 %695, 0
  br i1 %696, label %697, label %704

697:                                              ; preds = %666
  %698 = load double, ptr %109, align 8, !tbaa !11
  %699 = load double, ptr %106, align 8, !tbaa !11
  %700 = fcmp oeq double %698, %699
  %701 = zext i1 %700 to i32
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 9
  store i64 %702, ptr %703, align 8, !tbaa !9
  br label %721

704:                                              ; preds = %666
  %705 = getelementptr inbounds %struct.doublecomplex, ptr %101, i32 0, i32 0
  %706 = load double, ptr %705, align 8, !tbaa !14
  %707 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 0
  %708 = load double, ptr %707, align 8, !tbaa !14
  %709 = fcmp oeq double %706, %708
  br i1 %709, label %710, label %716

710:                                              ; preds = %704
  %711 = getelementptr inbounds %struct.doublecomplex, ptr %101, i32 0, i32 1
  %712 = load double, ptr %711, align 8, !tbaa !16
  %713 = getelementptr inbounds %struct.doublecomplex, ptr %95, i32 0, i32 1
  %714 = load double, ptr %713, align 8, !tbaa !16
  %715 = fcmp oeq double %712, %714
  br label %716

716:                                              ; preds = %710, %704
  %717 = phi i1 [ false, %704 ], [ %715, %710 ]
  %718 = zext i1 %717 to i32
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 9
  store i64 %719, ptr %720, align 8, !tbaa !9
  br label %721

721:                                              ; preds = %716, %697
  %722 = load i64, ptr %103, align 8, !tbaa !9
  %723 = icmp ne i64 %722, 0
  br i1 %723, label %724, label %731

724:                                              ; preds = %721
  %725 = load ptr, ptr %50, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.doublecomplex, ptr %725, i64 1
  %727 = load ptr, ptr %49, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.doublecomplex, ptr %727, i64 1
  %729 = call i64 @lze_(ptr noundef %726, ptr noundef %728, ptr noundef %87)
  %730 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 10
  store i64 %729, ptr %730, align 16, !tbaa !9
  br label %739

731:                                              ; preds = %721
  %732 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %733 = load ptr, ptr %50, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.doublecomplex, ptr %733, i64 1
  %735 = load ptr, ptr %49, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.doublecomplex, ptr %735, i64 1
  %737 = call i64 @lzeres_(ptr noundef @.str.7, ptr noundef %732, ptr noundef %71, ptr noundef %71, ptr noundef %734, ptr noundef %736, ptr noundef %89, i64 noundef 2, i64 noundef 1)
  %738 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 10
  store i64 %737, ptr %738, align 16, !tbaa !9
  br label %739

739:                                              ; preds = %731, %724
  %740 = load i64, ptr %98, align 8, !tbaa !9
  %741 = load i64, ptr %89, align 8, !tbaa !9
  %742 = icmp eq i64 %740, %741
  %743 = zext i1 %742 to i32
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 11
  store i64 %744, ptr %745, align 8, !tbaa !9
  store i64 1, ptr %99, align 8, !tbaa !9
  %746 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %746, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %747

747:                                              ; preds = %776, %739
  %748 = load i64, ptr %68, align 8, !tbaa !9
  %749 = load i64, ptr %61, align 8, !tbaa !9
  %750 = icmp sle i64 %748, %749
  br i1 %750, label %751, label %779

751:                                              ; preds = %747
  %752 = load i64, ptr %99, align 8, !tbaa !9
  %753 = icmp ne i64 %752, 0
  br i1 %753, label %754, label %760

754:                                              ; preds = %751
  %755 = load i64, ptr %68, align 8, !tbaa !9
  %756 = sub nsw i64 %755, 1
  %757 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 %756
  %758 = load i64, ptr %757, align 8, !tbaa !9
  %759 = icmp ne i64 %758, 0
  br label %760

760:                                              ; preds = %754, %751
  %761 = phi i1 [ false, %751 ], [ %759, %754 ]
  %762 = zext i1 %761 to i32
  %763 = sext i32 %762 to i64
  store i64 %763, ptr %99, align 8, !tbaa !9
  %764 = load i64, ptr %68, align 8, !tbaa !9
  %765 = sub nsw i64 %764, 1
  %766 = getelementptr inbounds [13 x i64], ptr %107, i64 0, i64 %765
  %767 = load i64, ptr %766, align 8, !tbaa !9
  %768 = icmp ne i64 %767, 0
  br i1 %768, label %775, label %769

769:                                              ; preds = %760
  %770 = load ptr, ptr %31, align 8, !tbaa !5
  %771 = load i64, ptr %770, align 8, !tbaa !9
  store i64 %771, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___339, i32 0, i32 1), align 8, !tbaa !21
  %772 = call i64 @s_wsfe(ptr noundef @zchk5_.io___339)
  %773 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %68, i64 noundef 8)
  %774 = call i64 @e_wsfe()
  br label %775

775:                                              ; preds = %769, %760
  br label %776

776:                                              ; preds = %775
  %777 = load i64, ptr %68, align 8, !tbaa !9
  %778 = add nsw i64 %777, 1
  store i64 %778, ptr %68, align 8, !tbaa !9
  br label %747, !llvm.loop !26

779:                                              ; preds = %747
  %780 = load i64, ptr %99, align 8, !tbaa !9
  %781 = icmp ne i64 %780, 0
  br i1 %781, label %784, label %782

782:                                              ; preds = %779
  %783 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %783, align 8, !tbaa !9
  br label %1400

784:                                              ; preds = %779
  %785 = load i64, ptr %103, align 8, !tbaa !9
  %786 = icmp ne i64 %785, 0
  br i1 %786, label %1341, label %787

787:                                              ; preds = %784
  %788 = load i64, ptr %100, align 8, !tbaa !9
  %789 = icmp ne i64 %788, 0
  br i1 %789, label %790, label %792

790:                                              ; preds = %787
  %791 = getelementptr inbounds [1 x i8], ptr %116, i64 0, i64 0
  store i8 67, ptr %791, align 1, !tbaa !13
  br label %794

792:                                              ; preds = %787
  %793 = getelementptr inbounds [1 x i8], ptr %116, i64 0, i64 0
  store i8 84, ptr %793, align 1, !tbaa !13
  br label %794

794:                                              ; preds = %792, %790
  store i64 1, ptr %94, align 8, !tbaa !9
  store i64 1, ptr %74, align 8, !tbaa !9
  %795 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %795, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %796

796:                                              ; preds = %1337, %794
  %797 = load i64, ptr %69, align 8, !tbaa !9
  %798 = load i64, ptr %61, align 8, !tbaa !9
  %799 = icmp sle i64 %797, %798
  br i1 %799, label %800, label %1340

800:                                              ; preds = %796
  %801 = load i64, ptr %112, align 8, !tbaa !9
  %802 = icmp ne i64 %801, 0
  br i1 %802, label %803, label %805

803:                                              ; preds = %800
  store i64 1, ptr %80, align 8, !tbaa !9
  %804 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %804, ptr %81, align 8, !tbaa !9
  br label %811

805:                                              ; preds = %800
  %806 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %806, ptr %80, align 8, !tbaa !9
  %807 = load i64, ptr %71, align 8, !tbaa !9
  %808 = load i64, ptr %69, align 8, !tbaa !9
  %809 = sub nsw i64 %807, %808
  %810 = add nsw i64 %809, 1
  store i64 %810, ptr %81, align 8, !tbaa !9
  br label %811

811:                                              ; preds = %805, %803
  %812 = load i64, ptr %102, align 8, !tbaa !9
  %813 = icmp ne i64 %812, 0
  br i1 %813, label %814, label %1037

814:                                              ; preds = %811
  %815 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %815, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %816

816:                                              ; preds = %1000, %814
  %817 = load i64, ptr %68, align 8, !tbaa !9
  %818 = load i64, ptr %62, align 8, !tbaa !9
  %819 = icmp sle i64 %817, %818
  br i1 %819, label %820, label %1003

820:                                              ; preds = %816
  %821 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %821, ptr %63, align 8, !tbaa !9
  %822 = load i64, ptr %69, align 8, !tbaa !9
  %823 = sub nsw i64 %822, 1
  %824 = shl i64 %823, 1
  %825 = load ptr, ptr %42, align 8, !tbaa !5
  %826 = load i64, ptr %825, align 8, !tbaa !9
  %827 = mul nsw i64 %824, %826
  %828 = load i64, ptr %70, align 8, !tbaa !9
  %829 = add nsw i64 %827, %828
  %830 = load i64, ptr %68, align 8, !tbaa !9
  %831 = add nsw i64 %829, %830
  store i64 %831, ptr %64, align 8, !tbaa !9
  %832 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %833 = load double, ptr %832, align 8, !tbaa !14
  %834 = load ptr, ptr %43, align 8, !tbaa !5
  %835 = load i64, ptr %64, align 8, !tbaa !9
  %836 = getelementptr inbounds %struct.doublecomplex, ptr %834, i64 %835
  %837 = getelementptr inbounds %struct.doublecomplex, ptr %836, i32 0, i32 0
  %838 = load double, ptr %837, align 8, !tbaa !14
  %839 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %840 = load double, ptr %839, align 8, !tbaa !16
  %841 = load ptr, ptr %43, align 8, !tbaa !5
  %842 = load i64, ptr %64, align 8, !tbaa !9
  %843 = getelementptr inbounds %struct.doublecomplex, ptr %841, i64 %842
  %844 = getelementptr inbounds %struct.doublecomplex, ptr %843, i32 0, i32 1
  %845 = load double, ptr %844, align 8, !tbaa !16
  %846 = fmul double %840, %845
  %847 = fneg double %846
  %848 = call double @llvm.fmuladd.f64(double %833, double %838, double %847)
  %849 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %848, ptr %849, align 8, !tbaa !14
  %850 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %851 = load double, ptr %850, align 8, !tbaa !14
  %852 = load ptr, ptr %43, align 8, !tbaa !5
  %853 = load i64, ptr %64, align 8, !tbaa !9
  %854 = getelementptr inbounds %struct.doublecomplex, ptr %852, i64 %853
  %855 = getelementptr inbounds %struct.doublecomplex, ptr %854, i32 0, i32 1
  %856 = load double, ptr %855, align 8, !tbaa !16
  %857 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %858 = load double, ptr %857, align 8, !tbaa !16
  %859 = load ptr, ptr %43, align 8, !tbaa !5
  %860 = load i64, ptr %64, align 8, !tbaa !9
  %861 = getelementptr inbounds %struct.doublecomplex, ptr %859, i64 %860
  %862 = getelementptr inbounds %struct.doublecomplex, ptr %861, i32 0, i32 0
  %863 = load double, ptr %862, align 8, !tbaa !14
  %864 = fmul double %858, %863
  %865 = call double @llvm.fmuladd.f64(double %851, double %856, double %864)
  %866 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double %865, ptr %866, align 8, !tbaa !16
  %867 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %868 = load double, ptr %867, align 8, !tbaa !14
  %869 = load ptr, ptr %53, align 8, !tbaa !5
  %870 = load i64, ptr %63, align 8, !tbaa !9
  %871 = getelementptr inbounds %struct.doublecomplex, ptr %869, i64 %870
  %872 = getelementptr inbounds %struct.doublecomplex, ptr %871, i32 0, i32 0
  store double %868, ptr %872, align 8, !tbaa !14
  %873 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %874 = load double, ptr %873, align 8, !tbaa !16
  %875 = load ptr, ptr %53, align 8, !tbaa !5
  %876 = load i64, ptr %63, align 8, !tbaa !9
  %877 = getelementptr inbounds %struct.doublecomplex, ptr %875, i64 %876
  %878 = getelementptr inbounds %struct.doublecomplex, ptr %877, i32 0, i32 1
  store double %874, ptr %878, align 8, !tbaa !16
  %879 = load i64, ptr %100, align 8, !tbaa !9
  %880 = icmp ne i64 %879, 0
  br i1 %880, label %881, label %940

881:                                              ; preds = %820
  %882 = load i64, ptr %70, align 8, !tbaa !9
  %883 = load i64, ptr %68, align 8, !tbaa !9
  %884 = add nsw i64 %882, %883
  store i64 %884, ptr %63, align 8, !tbaa !9
  call void @d_cnjg(ptr noundef %66, ptr noundef %105)
  %885 = load i64, ptr %69, align 8, !tbaa !9
  %886 = sub nsw i64 %885, 1
  %887 = shl i64 %886, 1
  %888 = load ptr, ptr %42, align 8, !tbaa !5
  %889 = load i64, ptr %888, align 8, !tbaa !9
  %890 = mul nsw i64 %887, %889
  %891 = load i64, ptr %68, align 8, !tbaa !9
  %892 = add nsw i64 %890, %891
  store i64 %892, ptr %64, align 8, !tbaa !9
  %893 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 0
  %894 = load double, ptr %893, align 8, !tbaa !14
  %895 = load ptr, ptr %43, align 8, !tbaa !5
  %896 = load i64, ptr %64, align 8, !tbaa !9
  %897 = getelementptr inbounds %struct.doublecomplex, ptr %895, i64 %896
  %898 = getelementptr inbounds %struct.doublecomplex, ptr %897, i32 0, i32 0
  %899 = load double, ptr %898, align 8, !tbaa !14
  %900 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 1
  %901 = load double, ptr %900, align 8, !tbaa !16
  %902 = load ptr, ptr %43, align 8, !tbaa !5
  %903 = load i64, ptr %64, align 8, !tbaa !9
  %904 = getelementptr inbounds %struct.doublecomplex, ptr %902, i64 %903
  %905 = getelementptr inbounds %struct.doublecomplex, ptr %904, i32 0, i32 1
  %906 = load double, ptr %905, align 8, !tbaa !16
  %907 = fmul double %901, %906
  %908 = fneg double %907
  %909 = call double @llvm.fmuladd.f64(double %894, double %899, double %908)
  %910 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %909, ptr %910, align 8, !tbaa !14
  %911 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 0
  %912 = load double, ptr %911, align 8, !tbaa !14
  %913 = load ptr, ptr %43, align 8, !tbaa !5
  %914 = load i64, ptr %64, align 8, !tbaa !9
  %915 = getelementptr inbounds %struct.doublecomplex, ptr %913, i64 %914
  %916 = getelementptr inbounds %struct.doublecomplex, ptr %915, i32 0, i32 1
  %917 = load double, ptr %916, align 8, !tbaa !16
  %918 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 1
  %919 = load double, ptr %918, align 8, !tbaa !16
  %920 = load ptr, ptr %43, align 8, !tbaa !5
  %921 = load i64, ptr %64, align 8, !tbaa !9
  %922 = getelementptr inbounds %struct.doublecomplex, ptr %920, i64 %921
  %923 = getelementptr inbounds %struct.doublecomplex, ptr %922, i32 0, i32 0
  %924 = load double, ptr %923, align 8, !tbaa !14
  %925 = fmul double %919, %924
  %926 = call double @llvm.fmuladd.f64(double %912, double %917, double %925)
  %927 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double %926, ptr %927, align 8, !tbaa !16
  %928 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %929 = load double, ptr %928, align 8, !tbaa !14
  %930 = load ptr, ptr %53, align 8, !tbaa !5
  %931 = load i64, ptr %63, align 8, !tbaa !9
  %932 = getelementptr inbounds %struct.doublecomplex, ptr %930, i64 %931
  %933 = getelementptr inbounds %struct.doublecomplex, ptr %932, i32 0, i32 0
  store double %929, ptr %933, align 8, !tbaa !14
  %934 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %935 = load double, ptr %934, align 8, !tbaa !16
  %936 = load ptr, ptr %53, align 8, !tbaa !5
  %937 = load i64, ptr %63, align 8, !tbaa !9
  %938 = getelementptr inbounds %struct.doublecomplex, ptr %936, i64 %937
  %939 = getelementptr inbounds %struct.doublecomplex, ptr %938, i32 0, i32 1
  store double %935, ptr %939, align 8, !tbaa !16
  br label %999

940:                                              ; preds = %820
  %941 = load i64, ptr %70, align 8, !tbaa !9
  %942 = load i64, ptr %68, align 8, !tbaa !9
  %943 = add nsw i64 %941, %942
  store i64 %943, ptr %63, align 8, !tbaa !9
  %944 = load i64, ptr %69, align 8, !tbaa !9
  %945 = sub nsw i64 %944, 1
  %946 = shl i64 %945, 1
  %947 = load ptr, ptr %42, align 8, !tbaa !5
  %948 = load i64, ptr %947, align 8, !tbaa !9
  %949 = mul nsw i64 %946, %948
  %950 = load i64, ptr %68, align 8, !tbaa !9
  %951 = add nsw i64 %949, %950
  store i64 %951, ptr %64, align 8, !tbaa !9
  %952 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %953 = load double, ptr %952, align 8, !tbaa !14
  %954 = load ptr, ptr %43, align 8, !tbaa !5
  %955 = load i64, ptr %64, align 8, !tbaa !9
  %956 = getelementptr inbounds %struct.doublecomplex, ptr %954, i64 %955
  %957 = getelementptr inbounds %struct.doublecomplex, ptr %956, i32 0, i32 0
  %958 = load double, ptr %957, align 8, !tbaa !14
  %959 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %960 = load double, ptr %959, align 8, !tbaa !16
  %961 = load ptr, ptr %43, align 8, !tbaa !5
  %962 = load i64, ptr %64, align 8, !tbaa !9
  %963 = getelementptr inbounds %struct.doublecomplex, ptr %961, i64 %962
  %964 = getelementptr inbounds %struct.doublecomplex, ptr %963, i32 0, i32 1
  %965 = load double, ptr %964, align 8, !tbaa !16
  %966 = fmul double %960, %965
  %967 = fneg double %966
  %968 = call double @llvm.fmuladd.f64(double %953, double %958, double %967)
  %969 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %968, ptr %969, align 8, !tbaa !14
  %970 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %971 = load double, ptr %970, align 8, !tbaa !14
  %972 = load ptr, ptr %43, align 8, !tbaa !5
  %973 = load i64, ptr %64, align 8, !tbaa !9
  %974 = getelementptr inbounds %struct.doublecomplex, ptr %972, i64 %973
  %975 = getelementptr inbounds %struct.doublecomplex, ptr %974, i32 0, i32 1
  %976 = load double, ptr %975, align 8, !tbaa !16
  %977 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %978 = load double, ptr %977, align 8, !tbaa !16
  %979 = load ptr, ptr %43, align 8, !tbaa !5
  %980 = load i64, ptr %64, align 8, !tbaa !9
  %981 = getelementptr inbounds %struct.doublecomplex, ptr %979, i64 %980
  %982 = getelementptr inbounds %struct.doublecomplex, ptr %981, i32 0, i32 0
  %983 = load double, ptr %982, align 8, !tbaa !14
  %984 = fmul double %978, %983
  %985 = call double @llvm.fmuladd.f64(double %971, double %976, double %984)
  %986 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double %985, ptr %986, align 8, !tbaa !16
  %987 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %988 = load double, ptr %987, align 8, !tbaa !14
  %989 = load ptr, ptr %53, align 8, !tbaa !5
  %990 = load i64, ptr %63, align 8, !tbaa !9
  %991 = getelementptr inbounds %struct.doublecomplex, ptr %989, i64 %990
  %992 = getelementptr inbounds %struct.doublecomplex, ptr %991, i32 0, i32 0
  store double %988, ptr %992, align 8, !tbaa !14
  %993 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %994 = load double, ptr %993, align 8, !tbaa !16
  %995 = load ptr, ptr %53, align 8, !tbaa !5
  %996 = load i64, ptr %63, align 8, !tbaa !9
  %997 = getelementptr inbounds %struct.doublecomplex, ptr %995, i64 %996
  %998 = getelementptr inbounds %struct.doublecomplex, ptr %997, i32 0, i32 1
  store double %994, ptr %998, align 8, !tbaa !16
  br label %999

999:                                              ; preds = %940, %881
  br label %1000

1000:                                             ; preds = %999
  %1001 = load i64, ptr %68, align 8, !tbaa !9
  %1002 = add nsw i64 %1001, 1
  store i64 %1002, ptr %68, align 8, !tbaa !9
  br label %816, !llvm.loop !27

1003:                                             ; preds = %816
  %1004 = load i64, ptr %70, align 8, !tbaa !9
  %1005 = shl i64 %1004, 1
  store i64 %1005, ptr %62, align 8, !tbaa !9
  %1006 = load ptr, ptr %42, align 8, !tbaa !5
  %1007 = load i64, ptr %1006, align 8, !tbaa !9
  %1008 = shl i64 %1007, 1
  store i64 %1008, ptr %63, align 8, !tbaa !9
  %1009 = load ptr, ptr %42, align 8, !tbaa !5
  %1010 = load i64, ptr %1009, align 8, !tbaa !9
  %1011 = shl i64 %1010, 1
  store i64 %1011, ptr %64, align 8, !tbaa !9
  %1012 = getelementptr inbounds [1 x i8], ptr %116, i64 0, i64 0
  %1013 = load ptr, ptr %43, align 8, !tbaa !5
  %1014 = load i64, ptr %94, align 8, !tbaa !9
  %1015 = getelementptr inbounds %struct.doublecomplex, ptr %1013, i64 %1014
  %1016 = load ptr, ptr %53, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.doublecomplex, ptr %1016, i64 1
  %1018 = load ptr, ptr %48, align 8, !tbaa !5
  %1019 = load i64, ptr %80, align 8, !tbaa !9
  %1020 = load i64, ptr %69, align 8, !tbaa !9
  %1021 = load i64, ptr %55, align 8, !tbaa !9
  %1022 = mul nsw i64 %1020, %1021
  %1023 = add nsw i64 %1019, %1022
  %1024 = getelementptr inbounds %struct.doublecomplex, ptr %1018, i64 %1023
  %1025 = load ptr, ptr %42, align 8, !tbaa !5
  %1026 = load ptr, ptr %51, align 8, !tbaa !5
  %1027 = getelementptr inbounds %struct.doublecomplex, ptr %1026, i64 1
  %1028 = load ptr, ptr %52, align 8, !tbaa !5
  %1029 = getelementptr inbounds double, ptr %1028, i64 1
  %1030 = load ptr, ptr %49, align 8, !tbaa !5
  %1031 = load i64, ptr %74, align 8, !tbaa !9
  %1032 = getelementptr inbounds %struct.doublecomplex, ptr %1030, i64 %1031
  %1033 = load ptr, ptr %29, align 8, !tbaa !5
  %1034 = load ptr, ptr %35, align 8, !tbaa !5
  %1035 = load ptr, ptr %31, align 8, !tbaa !5
  %1036 = call i32 @zmmch_(ptr noundef %1012, ptr noundef @.str.1, ptr noundef %81, ptr noundef @c__1, ptr noundef %62, ptr noundef @c_b2, ptr noundef %1015, ptr noundef %63, ptr noundef %1017, ptr noundef %64, ptr noundef %95, ptr noundef %1024, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, ptr noundef %1032, ptr noundef %89, ptr noundef %1033, ptr noundef %93, ptr noundef %1034, ptr noundef %1035, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %1301

1037:                                             ; preds = %811
  %1038 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %1038, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %1039

1039:                                             ; preds = %1267, %1037
  %1040 = load i64, ptr %68, align 8, !tbaa !9
  %1041 = load i64, ptr %62, align 8, !tbaa !9
  %1042 = icmp sle i64 %1040, %1041
  br i1 %1042, label %1043, label %1270

1043:                                             ; preds = %1039
  %1044 = load i64, ptr %100, align 8, !tbaa !9
  %1045 = icmp ne i64 %1044, 0
  br i1 %1045, label %1046, label %1151

1046:                                             ; preds = %1043
  %1047 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %1047, ptr %63, align 8, !tbaa !9
  %1048 = load ptr, ptr %43, align 8, !tbaa !5
  %1049 = load i64, ptr %70, align 8, !tbaa !9
  %1050 = load i64, ptr %68, align 8, !tbaa !9
  %1051 = add nsw i64 %1049, %1050
  %1052 = sub nsw i64 %1051, 1
  %1053 = load ptr, ptr %42, align 8, !tbaa !5
  %1054 = load i64, ptr %1053, align 8, !tbaa !9
  %1055 = mul nsw i64 %1052, %1054
  %1056 = load i64, ptr %69, align 8, !tbaa !9
  %1057 = add nsw i64 %1055, %1056
  %1058 = getelementptr inbounds %struct.doublecomplex, ptr %1048, i64 %1057
  call void @d_cnjg(ptr noundef %66, ptr noundef %1058)
  %1059 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %1060 = load double, ptr %1059, align 8, !tbaa !14
  %1061 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 0
  %1062 = load double, ptr %1061, align 8, !tbaa !14
  %1063 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %1064 = load double, ptr %1063, align 8, !tbaa !16
  %1065 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 1
  %1066 = load double, ptr %1065, align 8, !tbaa !16
  %1067 = fmul double %1064, %1066
  %1068 = fneg double %1067
  %1069 = call double @llvm.fmuladd.f64(double %1060, double %1062, double %1068)
  %1070 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %1069, ptr %1070, align 8, !tbaa !14
  %1071 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %1072 = load double, ptr %1071, align 8, !tbaa !14
  %1073 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 1
  %1074 = load double, ptr %1073, align 8, !tbaa !16
  %1075 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %1076 = load double, ptr %1075, align 8, !tbaa !16
  %1077 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 0
  %1078 = load double, ptr %1077, align 8, !tbaa !14
  %1079 = fmul double %1076, %1078
  %1080 = call double @llvm.fmuladd.f64(double %1072, double %1074, double %1079)
  %1081 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double %1080, ptr %1081, align 8, !tbaa !16
  %1082 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1083 = load double, ptr %1082, align 8, !tbaa !14
  %1084 = load ptr, ptr %53, align 8, !tbaa !5
  %1085 = load i64, ptr %63, align 8, !tbaa !9
  %1086 = getelementptr inbounds %struct.doublecomplex, ptr %1084, i64 %1085
  %1087 = getelementptr inbounds %struct.doublecomplex, ptr %1086, i32 0, i32 0
  store double %1083, ptr %1087, align 8, !tbaa !14
  %1088 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1089 = load double, ptr %1088, align 8, !tbaa !16
  %1090 = load ptr, ptr %53, align 8, !tbaa !5
  %1091 = load i64, ptr %63, align 8, !tbaa !9
  %1092 = getelementptr inbounds %struct.doublecomplex, ptr %1090, i64 %1091
  %1093 = getelementptr inbounds %struct.doublecomplex, ptr %1092, i32 0, i32 1
  store double %1089, ptr %1093, align 8, !tbaa !16
  %1094 = load i64, ptr %70, align 8, !tbaa !9
  %1095 = load i64, ptr %68, align 8, !tbaa !9
  %1096 = add nsw i64 %1094, %1095
  store i64 %1096, ptr %63, align 8, !tbaa !9
  %1097 = load i64, ptr %68, align 8, !tbaa !9
  %1098 = sub nsw i64 %1097, 1
  %1099 = load ptr, ptr %42, align 8, !tbaa !5
  %1100 = load i64, ptr %1099, align 8, !tbaa !9
  %1101 = mul nsw i64 %1098, %1100
  %1102 = load i64, ptr %69, align 8, !tbaa !9
  %1103 = add nsw i64 %1101, %1102
  store i64 %1103, ptr %64, align 8, !tbaa !9
  %1104 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %1105 = load double, ptr %1104, align 8, !tbaa !14
  %1106 = load ptr, ptr %43, align 8, !tbaa !5
  %1107 = load i64, ptr %64, align 8, !tbaa !9
  %1108 = getelementptr inbounds %struct.doublecomplex, ptr %1106, i64 %1107
  %1109 = getelementptr inbounds %struct.doublecomplex, ptr %1108, i32 0, i32 0
  %1110 = load double, ptr %1109, align 8, !tbaa !14
  %1111 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %1112 = load double, ptr %1111, align 8, !tbaa !16
  %1113 = load ptr, ptr %43, align 8, !tbaa !5
  %1114 = load i64, ptr %64, align 8, !tbaa !9
  %1115 = getelementptr inbounds %struct.doublecomplex, ptr %1113, i64 %1114
  %1116 = getelementptr inbounds %struct.doublecomplex, ptr %1115, i32 0, i32 1
  %1117 = load double, ptr %1116, align 8, !tbaa !16
  %1118 = fmul double %1112, %1117
  %1119 = fneg double %1118
  %1120 = call double @llvm.fmuladd.f64(double %1105, double %1110, double %1119)
  %1121 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 0
  store double %1120, ptr %1121, align 8, !tbaa !14
  %1122 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %1123 = load double, ptr %1122, align 8, !tbaa !14
  %1124 = load ptr, ptr %43, align 8, !tbaa !5
  %1125 = load i64, ptr %64, align 8, !tbaa !9
  %1126 = getelementptr inbounds %struct.doublecomplex, ptr %1124, i64 %1125
  %1127 = getelementptr inbounds %struct.doublecomplex, ptr %1126, i32 0, i32 1
  %1128 = load double, ptr %1127, align 8, !tbaa !16
  %1129 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %1130 = load double, ptr %1129, align 8, !tbaa !16
  %1131 = load ptr, ptr %43, align 8, !tbaa !5
  %1132 = load i64, ptr %64, align 8, !tbaa !9
  %1133 = getelementptr inbounds %struct.doublecomplex, ptr %1131, i64 %1132
  %1134 = getelementptr inbounds %struct.doublecomplex, ptr %1133, i32 0, i32 0
  %1135 = load double, ptr %1134, align 8, !tbaa !14
  %1136 = fmul double %1130, %1135
  %1137 = call double @llvm.fmuladd.f64(double %1123, double %1128, double %1136)
  %1138 = getelementptr inbounds %struct.doublecomplex, ptr %66, i32 0, i32 1
  store double %1137, ptr %1138, align 8, !tbaa !16
  call void @d_cnjg(ptr noundef %65, ptr noundef %66)
  %1139 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1140 = load double, ptr %1139, align 8, !tbaa !14
  %1141 = load ptr, ptr %53, align 8, !tbaa !5
  %1142 = load i64, ptr %63, align 8, !tbaa !9
  %1143 = getelementptr inbounds %struct.doublecomplex, ptr %1141, i64 %1142
  %1144 = getelementptr inbounds %struct.doublecomplex, ptr %1143, i32 0, i32 0
  store double %1140, ptr %1144, align 8, !tbaa !14
  %1145 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1146 = load double, ptr %1145, align 8, !tbaa !16
  %1147 = load ptr, ptr %53, align 8, !tbaa !5
  %1148 = load i64, ptr %63, align 8, !tbaa !9
  %1149 = getelementptr inbounds %struct.doublecomplex, ptr %1147, i64 %1148
  %1150 = getelementptr inbounds %struct.doublecomplex, ptr %1149, i32 0, i32 1
  store double %1146, ptr %1150, align 8, !tbaa !16
  br label %1266

1151:                                             ; preds = %1043
  %1152 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %1152, ptr %63, align 8, !tbaa !9
  %1153 = load i64, ptr %70, align 8, !tbaa !9
  %1154 = load i64, ptr %68, align 8, !tbaa !9
  %1155 = add nsw i64 %1153, %1154
  %1156 = sub nsw i64 %1155, 1
  %1157 = load ptr, ptr %42, align 8, !tbaa !5
  %1158 = load i64, ptr %1157, align 8, !tbaa !9
  %1159 = mul nsw i64 %1156, %1158
  %1160 = load i64, ptr %69, align 8, !tbaa !9
  %1161 = add nsw i64 %1159, %1160
  store i64 %1161, ptr %64, align 8, !tbaa !9
  %1162 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %1163 = load double, ptr %1162, align 8, !tbaa !14
  %1164 = load ptr, ptr %43, align 8, !tbaa !5
  %1165 = load i64, ptr %64, align 8, !tbaa !9
  %1166 = getelementptr inbounds %struct.doublecomplex, ptr %1164, i64 %1165
  %1167 = getelementptr inbounds %struct.doublecomplex, ptr %1166, i32 0, i32 0
  %1168 = load double, ptr %1167, align 8, !tbaa !14
  %1169 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %1170 = load double, ptr %1169, align 8, !tbaa !16
  %1171 = load ptr, ptr %43, align 8, !tbaa !5
  %1172 = load i64, ptr %64, align 8, !tbaa !9
  %1173 = getelementptr inbounds %struct.doublecomplex, ptr %1171, i64 %1172
  %1174 = getelementptr inbounds %struct.doublecomplex, ptr %1173, i32 0, i32 1
  %1175 = load double, ptr %1174, align 8, !tbaa !16
  %1176 = fmul double %1170, %1175
  %1177 = fneg double %1176
  %1178 = call double @llvm.fmuladd.f64(double %1163, double %1168, double %1177)
  %1179 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %1178, ptr %1179, align 8, !tbaa !14
  %1180 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %1181 = load double, ptr %1180, align 8, !tbaa !14
  %1182 = load ptr, ptr %43, align 8, !tbaa !5
  %1183 = load i64, ptr %64, align 8, !tbaa !9
  %1184 = getelementptr inbounds %struct.doublecomplex, ptr %1182, i64 %1183
  %1185 = getelementptr inbounds %struct.doublecomplex, ptr %1184, i32 0, i32 1
  %1186 = load double, ptr %1185, align 8, !tbaa !16
  %1187 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %1188 = load double, ptr %1187, align 8, !tbaa !16
  %1189 = load ptr, ptr %43, align 8, !tbaa !5
  %1190 = load i64, ptr %64, align 8, !tbaa !9
  %1191 = getelementptr inbounds %struct.doublecomplex, ptr %1189, i64 %1190
  %1192 = getelementptr inbounds %struct.doublecomplex, ptr %1191, i32 0, i32 0
  %1193 = load double, ptr %1192, align 8, !tbaa !14
  %1194 = fmul double %1188, %1193
  %1195 = call double @llvm.fmuladd.f64(double %1181, double %1186, double %1194)
  %1196 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double %1195, ptr %1196, align 8, !tbaa !16
  %1197 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1198 = load double, ptr %1197, align 8, !tbaa !14
  %1199 = load ptr, ptr %53, align 8, !tbaa !5
  %1200 = load i64, ptr %63, align 8, !tbaa !9
  %1201 = getelementptr inbounds %struct.doublecomplex, ptr %1199, i64 %1200
  %1202 = getelementptr inbounds %struct.doublecomplex, ptr %1201, i32 0, i32 0
  store double %1198, ptr %1202, align 8, !tbaa !14
  %1203 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1204 = load double, ptr %1203, align 8, !tbaa !16
  %1205 = load ptr, ptr %53, align 8, !tbaa !5
  %1206 = load i64, ptr %63, align 8, !tbaa !9
  %1207 = getelementptr inbounds %struct.doublecomplex, ptr %1205, i64 %1206
  %1208 = getelementptr inbounds %struct.doublecomplex, ptr %1207, i32 0, i32 1
  store double %1204, ptr %1208, align 8, !tbaa !16
  %1209 = load i64, ptr %70, align 8, !tbaa !9
  %1210 = load i64, ptr %68, align 8, !tbaa !9
  %1211 = add nsw i64 %1209, %1210
  store i64 %1211, ptr %63, align 8, !tbaa !9
  %1212 = load i64, ptr %68, align 8, !tbaa !9
  %1213 = sub nsw i64 %1212, 1
  %1214 = load ptr, ptr %42, align 8, !tbaa !5
  %1215 = load i64, ptr %1214, align 8, !tbaa !9
  %1216 = mul nsw i64 %1213, %1215
  %1217 = load i64, ptr %69, align 8, !tbaa !9
  %1218 = add nsw i64 %1216, %1217
  store i64 %1218, ptr %64, align 8, !tbaa !9
  %1219 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %1220 = load double, ptr %1219, align 8, !tbaa !14
  %1221 = load ptr, ptr %43, align 8, !tbaa !5
  %1222 = load i64, ptr %64, align 8, !tbaa !9
  %1223 = getelementptr inbounds %struct.doublecomplex, ptr %1221, i64 %1222
  %1224 = getelementptr inbounds %struct.doublecomplex, ptr %1223, i32 0, i32 0
  %1225 = load double, ptr %1224, align 8, !tbaa !14
  %1226 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %1227 = load double, ptr %1226, align 8, !tbaa !16
  %1228 = load ptr, ptr %43, align 8, !tbaa !5
  %1229 = load i64, ptr %64, align 8, !tbaa !9
  %1230 = getelementptr inbounds %struct.doublecomplex, ptr %1228, i64 %1229
  %1231 = getelementptr inbounds %struct.doublecomplex, ptr %1230, i32 0, i32 1
  %1232 = load double, ptr %1231, align 8, !tbaa !16
  %1233 = fmul double %1227, %1232
  %1234 = fneg double %1233
  %1235 = call double @llvm.fmuladd.f64(double %1220, double %1225, double %1234)
  %1236 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %1235, ptr %1236, align 8, !tbaa !14
  %1237 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 0
  %1238 = load double, ptr %1237, align 8, !tbaa !14
  %1239 = load ptr, ptr %43, align 8, !tbaa !5
  %1240 = load i64, ptr %64, align 8, !tbaa !9
  %1241 = getelementptr inbounds %struct.doublecomplex, ptr %1239, i64 %1240
  %1242 = getelementptr inbounds %struct.doublecomplex, ptr %1241, i32 0, i32 1
  %1243 = load double, ptr %1242, align 8, !tbaa !16
  %1244 = getelementptr inbounds %struct.doublecomplex, ptr %105, i32 0, i32 1
  %1245 = load double, ptr %1244, align 8, !tbaa !16
  %1246 = load ptr, ptr %43, align 8, !tbaa !5
  %1247 = load i64, ptr %64, align 8, !tbaa !9
  %1248 = getelementptr inbounds %struct.doublecomplex, ptr %1246, i64 %1247
  %1249 = getelementptr inbounds %struct.doublecomplex, ptr %1248, i32 0, i32 0
  %1250 = load double, ptr %1249, align 8, !tbaa !14
  %1251 = fmul double %1245, %1250
  %1252 = call double @llvm.fmuladd.f64(double %1238, double %1243, double %1251)
  %1253 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double %1252, ptr %1253, align 8, !tbaa !16
  %1254 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1255 = load double, ptr %1254, align 8, !tbaa !14
  %1256 = load ptr, ptr %53, align 8, !tbaa !5
  %1257 = load i64, ptr %63, align 8, !tbaa !9
  %1258 = getelementptr inbounds %struct.doublecomplex, ptr %1256, i64 %1257
  %1259 = getelementptr inbounds %struct.doublecomplex, ptr %1258, i32 0, i32 0
  store double %1255, ptr %1259, align 8, !tbaa !14
  %1260 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1261 = load double, ptr %1260, align 8, !tbaa !16
  %1262 = load ptr, ptr %53, align 8, !tbaa !5
  %1263 = load i64, ptr %63, align 8, !tbaa !9
  %1264 = getelementptr inbounds %struct.doublecomplex, ptr %1262, i64 %1263
  %1265 = getelementptr inbounds %struct.doublecomplex, ptr %1264, i32 0, i32 1
  store double %1261, ptr %1265, align 8, !tbaa !16
  br label %1266

1266:                                             ; preds = %1151, %1046
  br label %1267

1267:                                             ; preds = %1266
  %1268 = load i64, ptr %68, align 8, !tbaa !9
  %1269 = add nsw i64 %1268, 1
  store i64 %1269, ptr %68, align 8, !tbaa !9
  br label %1039, !llvm.loop !28

1270:                                             ; preds = %1039
  %1271 = load i64, ptr %70, align 8, !tbaa !9
  %1272 = shl i64 %1271, 1
  store i64 %1272, ptr %62, align 8, !tbaa !9
  %1273 = load ptr, ptr %42, align 8, !tbaa !5
  %1274 = load i64, ptr %1273, align 8, !tbaa !9
  %1275 = shl i64 %1274, 1
  store i64 %1275, ptr %63, align 8, !tbaa !9
  %1276 = load ptr, ptr %43, align 8, !tbaa !5
  %1277 = load i64, ptr %80, align 8, !tbaa !9
  %1278 = getelementptr inbounds %struct.doublecomplex, ptr %1276, i64 %1277
  %1279 = load ptr, ptr %42, align 8, !tbaa !5
  %1280 = load ptr, ptr %53, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.doublecomplex, ptr %1280, i64 1
  %1282 = load ptr, ptr %48, align 8, !tbaa !5
  %1283 = load i64, ptr %80, align 8, !tbaa !9
  %1284 = load i64, ptr %69, align 8, !tbaa !9
  %1285 = load i64, ptr %55, align 8, !tbaa !9
  %1286 = mul nsw i64 %1284, %1285
  %1287 = add nsw i64 %1283, %1286
  %1288 = getelementptr inbounds %struct.doublecomplex, ptr %1282, i64 %1287
  %1289 = load ptr, ptr %42, align 8, !tbaa !5
  %1290 = load ptr, ptr %51, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.doublecomplex, ptr %1290, i64 1
  %1292 = load ptr, ptr %52, align 8, !tbaa !5
  %1293 = getelementptr inbounds double, ptr %1292, i64 1
  %1294 = load ptr, ptr %49, align 8, !tbaa !5
  %1295 = load i64, ptr %74, align 8, !tbaa !9
  %1296 = getelementptr inbounds %struct.doublecomplex, ptr %1294, i64 %1295
  %1297 = load ptr, ptr %29, align 8, !tbaa !5
  %1298 = load ptr, ptr %35, align 8, !tbaa !5
  %1299 = load ptr, ptr %31, align 8, !tbaa !5
  %1300 = call i32 @zmmch_(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %81, ptr noundef @c__1, ptr noundef %62, ptr noundef @c_b2, ptr noundef %1278, ptr noundef %1279, ptr noundef %1281, ptr noundef %63, ptr noundef %95, ptr noundef %1288, ptr noundef %1289, ptr noundef %1291, ptr noundef %1293, ptr noundef %1296, ptr noundef %89, ptr noundef %1297, ptr noundef %93, ptr noundef %1298, ptr noundef %1299, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %1301

1301:                                             ; preds = %1270, %1003
  %1302 = load i64, ptr %112, align 8, !tbaa !9
  %1303 = icmp ne i64 %1302, 0
  br i1 %1303, label %1304, label %1308

1304:                                             ; preds = %1301
  %1305 = load i64, ptr %89, align 8, !tbaa !9
  %1306 = load i64, ptr %74, align 8, !tbaa !9
  %1307 = add nsw i64 %1306, %1305
  store i64 %1307, ptr %74, align 8, !tbaa !9
  br label %1322

1308:                                             ; preds = %1301
  %1309 = load i64, ptr %74, align 8, !tbaa !9
  %1310 = load i64, ptr %89, align 8, !tbaa !9
  %1311 = add nsw i64 %1309, %1310
  %1312 = add nsw i64 %1311, 1
  store i64 %1312, ptr %74, align 8, !tbaa !9
  %1313 = load i64, ptr %102, align 8, !tbaa !9
  %1314 = icmp ne i64 %1313, 0
  br i1 %1314, label %1315, label %1321

1315:                                             ; preds = %1308
  %1316 = load ptr, ptr %42, align 8, !tbaa !5
  %1317 = load i64, ptr %1316, align 8, !tbaa !9
  %1318 = shl i64 %1317, 1
  %1319 = load i64, ptr %94, align 8, !tbaa !9
  %1320 = add nsw i64 %1319, %1318
  store i64 %1320, ptr %94, align 8, !tbaa !9
  br label %1321

1321:                                             ; preds = %1315, %1308
  br label %1322

1322:                                             ; preds = %1321, %1304
  %1323 = load double, ptr %114, align 8, !tbaa !11
  %1324 = load double, ptr %93, align 8, !tbaa !11
  %1325 = fcmp oge double %1323, %1324
  br i1 %1325, label %1326, label %1328

1326:                                             ; preds = %1322
  %1327 = load double, ptr %114, align 8, !tbaa !11
  br label %1330

1328:                                             ; preds = %1322
  %1329 = load double, ptr %93, align 8, !tbaa !11
  br label %1330

1330:                                             ; preds = %1328, %1326
  %1331 = phi double [ %1327, %1326 ], [ %1329, %1328 ]
  store double %1331, ptr %114, align 8, !tbaa !11
  %1332 = load ptr, ptr %35, align 8, !tbaa !5
  %1333 = load i64, ptr %1332, align 8, !tbaa !9
  %1334 = icmp ne i64 %1333, 0
  br i1 %1334, label %1335, label %1336

1335:                                             ; preds = %1330
  br label %1390

1336:                                             ; preds = %1330
  br label %1337

1337:                                             ; preds = %1336
  %1338 = load i64, ptr %69, align 8, !tbaa !9
  %1339 = add nsw i64 %1338, 1
  store i64 %1339, ptr %69, align 8, !tbaa !9
  br label %796, !llvm.loop !29

1340:                                             ; preds = %796
  br label %1341

1341:                                             ; preds = %1340, %784
  br label %1342

1342:                                             ; preds = %1341
  %1343 = load i64, ptr %73, align 8, !tbaa !9
  %1344 = add nsw i64 %1343, 1
  store i64 %1344, ptr %73, align 8, !tbaa !9
  br label %331, !llvm.loop !30

1345:                                             ; preds = %331
  br label %1346

1346:                                             ; preds = %1345
  %1347 = load i64, ptr %72, align 8, !tbaa !9
  %1348 = add nsw i64 %1347, 1
  store i64 %1348, ptr %72, align 8, !tbaa !9
  br label %311, !llvm.loop !31

1349:                                             ; preds = %311
  br label %1350

1350:                                             ; preds = %1349
  %1351 = load i64, ptr %92, align 8, !tbaa !9
  %1352 = add nsw i64 %1351, 1
  store i64 %1352, ptr %92, align 8, !tbaa !9
  br label %294, !llvm.loop !32

1353:                                             ; preds = %294
  br label %1354

1354:                                             ; preds = %1353, %242
  br label %1355

1355:                                             ; preds = %1354
  %1356 = load i64, ptr %91, align 8, !tbaa !9
  %1357 = add nsw i64 %1356, 1
  store i64 %1357, ptr %91, align 8, !tbaa !9
  br label %197, !llvm.loop !33

1358:                                             ; preds = %197
  br label %1359

1359:                                             ; preds = %1358
  %1360 = load i64, ptr %78, align 8, !tbaa !9
  %1361 = add nsw i64 %1360, 1
  store i64 %1361, ptr %78, align 8, !tbaa !9
  br label %188, !llvm.loop !34

1362:                                             ; preds = %188
  br label %1363

1363:                                             ; preds = %1362, %181
  br label %1364

1364:                                             ; preds = %1363
  %1365 = load i64, ptr %79, align 8, !tbaa !9
  %1366 = add nsw i64 %1365, 1
  store i64 %1366, ptr %79, align 8, !tbaa !9
  br label %159, !llvm.loop !35

1367:                                             ; preds = %159
  %1368 = load double, ptr %114, align 8, !tbaa !11
  %1369 = load ptr, ptr %30, align 8, !tbaa !5
  %1370 = load double, ptr %1369, align 8, !tbaa !11
  %1371 = fcmp olt double %1368, %1370
  br i1 %1371, label %1372, label %1380

1372:                                             ; preds = %1367
  %1373 = load ptr, ptr %31, align 8, !tbaa !5
  %1374 = load i64, ptr %1373, align 8, !tbaa !9
  store i64 %1374, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___347, i32 0, i32 1), align 8, !tbaa !21
  %1375 = call i64 @s_wsfe(ptr noundef @zchk5_.io___347)
  %1376 = load ptr, ptr %28, align 8, !tbaa !5
  %1377 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1376, i64 noundef 6)
  %1378 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1379 = call i64 @e_wsfe()
  br label %1389

1380:                                             ; preds = %1367
  %1381 = load ptr, ptr %31, align 8, !tbaa !5
  %1382 = load i64, ptr %1381, align 8, !tbaa !9
  store i64 %1382, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___348, i32 0, i32 1), align 8, !tbaa !21
  %1383 = call i64 @s_wsfe(ptr noundef @zchk5_.io___348)
  %1384 = load ptr, ptr %28, align 8, !tbaa !5
  %1385 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1384, i64 noundef 6)
  %1386 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1387 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %114, i64 noundef 8)
  %1388 = call i64 @e_wsfe()
  br label %1389

1389:                                             ; preds = %1380, %1372
  br label %1448

1390:                                             ; preds = %1335
  %1391 = load i64, ptr %71, align 8, !tbaa !9
  %1392 = icmp sgt i64 %1391, 1
  br i1 %1392, label %1393, label %1399

1393:                                             ; preds = %1390
  %1394 = load ptr, ptr %31, align 8, !tbaa !5
  %1395 = load i64, ptr %1394, align 8, !tbaa !9
  store i64 %1395, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___349, i32 0, i32 1), align 8, !tbaa !21
  %1396 = call i64 @s_wsfe(ptr noundef @zchk5_.io___349)
  %1397 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %1398 = call i64 @e_wsfe()
  br label %1399

1399:                                             ; preds = %1393, %1390
  br label %1400

1400:                                             ; preds = %1399, %782, %616
  %1401 = load ptr, ptr %31, align 8, !tbaa !5
  %1402 = load i64, ptr %1401, align 8, !tbaa !9
  store i64 %1402, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___350, i32 0, i32 1), align 8, !tbaa !21
  %1403 = call i64 @s_wsfe(ptr noundef @zchk5_.io___350)
  %1404 = load ptr, ptr %28, align 8, !tbaa !5
  %1405 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1404, i64 noundef 6)
  %1406 = call i64 @e_wsfe()
  %1407 = load i64, ptr %100, align 8, !tbaa !9
  %1408 = icmp ne i64 %1407, 0
  br i1 %1408, label %1409, label %1428

1409:                                             ; preds = %1400
  %1410 = load ptr, ptr %31, align 8, !tbaa !5
  %1411 = load i64, ptr %1410, align 8, !tbaa !9
  store i64 %1411, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___351, i32 0, i32 1), align 8, !tbaa !21
  %1412 = call i64 @s_wsfe(ptr noundef @zchk5_.io___351)
  %1413 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1414 = load ptr, ptr %28, align 8, !tbaa !5
  %1415 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1414, i64 noundef 6)
  %1416 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %1417 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1416, i64 noundef 1)
  %1418 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %1419 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1418, i64 noundef 1)
  %1420 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %1421 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %1422 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %105, i64 noundef 8)
  %1423 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %1424 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %88, i64 noundef 8)
  %1425 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %106, i64 noundef 8)
  %1426 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %1427 = call i64 @e_wsfe()
  br label %1447

1428:                                             ; preds = %1400
  %1429 = load ptr, ptr %31, align 8, !tbaa !5
  %1430 = load i64, ptr %1429, align 8, !tbaa !9
  store i64 %1430, ptr getelementptr inbounds (%struct.cilist, ptr @zchk5_.io___352, i32 0, i32 1), align 8, !tbaa !21
  %1431 = call i64 @s_wsfe(ptr noundef @zchk5_.io___352)
  %1432 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %77, i64 noundef 8)
  %1433 = load ptr, ptr %28, align 8, !tbaa !5
  %1434 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1433, i64 noundef 6)
  %1435 = getelementptr inbounds [1 x i8], ptr %104, i64 0, i64 0
  %1436 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1435, i64 noundef 1)
  %1437 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %1438 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1437, i64 noundef 1)
  %1439 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %1440 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %1441 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %105, i64 noundef 8)
  %1442 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %1443 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %88, i64 noundef 8)
  %1444 = call i64 @do_fio(ptr noundef @c__2, ptr noundef %95, i64 noundef 8)
  %1445 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %1446 = call i64 @e_wsfe()
  br label %1447

1447:                                             ; preds = %1428, %1409
  br label %1448

1448:                                             ; preds = %1447, %1389
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 104, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  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, 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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !12, i64 0}
!15 = !{!"", !12, i64 0, !12, i64 8}
!16 = !{!15, !12, i64 8}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = !{!22, !10, i64 8}
!22 = !{!"", !10, i64 0, !10, i64 8, !10, i64 16, !6, i64 24, !10, i64 32}
!23 = !{!24, !10, i64 0}
!24 = !{!"", !10, i64 0, !10, i64 8}
!25 = !{!24, !10, i64 8}
!26 = distinct !{!26, !18}
!27 = distinct !{!27, !18}
!28 = distinct !{!28, !18}
!29 = distinct !{!29, !18}
!30 = distinct !{!30, !18}
!31 = distinct !{!31, !18}
!32 = distinct !{!32, !18}
!33 = distinct !{!33, !18}
!34 = distinct !{!34, !18}
!35 = distinct !{!35, !18}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local local_unnamed_addr global %union.anon, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i64, align 8
@c_b2 = external hidden global %struct.doublecomplex, align 8
@c_b1 = external hidden global %struct.doublecomplex, align 8
@c_true = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@zchk5_.icht = external hidden local_unnamed_addr global [2 x i8], align 1
@zchk5_.ichu = external hidden local_unnamed_addr global [2 x i8], align 1
@zchk5_.io___334 = external hidden global %struct.cilist, align 8
@zchk5_.io___335 = external hidden global %struct.cilist, align 8
@zchk5_.io___336 = external hidden global %struct.cilist, align 8
@zchk5_.io___339 = external hidden global %struct.cilist, align 8
@zchk5_.io___347 = external hidden global %struct.cilist, align 8
@zchk5_.io___348 = external hidden global %struct.cilist, align 8
@zchk5_.io___349 = external hidden global %struct.cilist, align 8
@zchk5_.io___350 = external hidden global %struct.cilist, align 8
@zchk5_.io___351 = external hidden global %struct.cilist, align 8
@zchk5_.io___352 = external hidden global %struct.cilist, align 8

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

declare i64 @s_wsfe(ptr noundef) local_unnamed_addr #1

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

declare i64 @e_wsfe() local_unnamed_addr #1

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @zmmch_(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, ptr noundef, ptr noundef, ptr noundef, i64 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 @zchk5_(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 noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, i64 noundef %26) local_unnamed_addr #2 {
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca %struct.doublecomplex, align 16
  %33 = alloca %struct.doublecomplex, align 16
  %34 = alloca %struct.alist, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca double, align 8
  %50 = alloca %struct.doublecomplex, align 16
  %51 = alloca [1 x i8], align 1
  %52 = alloca %struct.doublecomplex, align 16
  %53 = alloca double, align 8
  %54 = alloca [13 x i64], align 16
  %55 = alloca i64, align 8
  %56 = alloca [1 x i8], align 1
  %57 = alloca double, align 8
  %58 = alloca [1 x i8], align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #4
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %54) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #4
  %59 = getelementptr inbounds i8, ptr %9, i64 -8
  %60 = getelementptr inbounds i8, ptr %11, i64 -16
  %61 = getelementptr inbounds i8, ptr %13, i64 -16
  %62 = getelementptr inbounds i8, ptr %25, i64 -16
  %63 = getelementptr inbounds i8, ptr %22, i64 -16
  %64 = getelementptr inbounds i8, ptr %21, i64 -16
  %65 = load i64, ptr %14, align 8, !tbaa !5
  %66 = xor i64 %65, -1
  %67 = getelementptr inbounds %struct.doublecomplex, ptr %20, i64 %66
  %68 = getelementptr inbounds i8, ptr %19, i64 -16
  %69 = getelementptr inbounds i8, ptr %18, i64 -16
  %70 = getelementptr inbounds i8, ptr %17, i64 -16
  %71 = getelementptr inbounds i8, ptr %16, i64 -16
  %72 = getelementptr inbounds i8, ptr %15, i64 -16
  %73 = getelementptr inbounds i8, ptr %0, i64 1
  %74 = tail call i64 @s_cmp(ptr noundef nonnull %73, ptr noundef nonnull @.str.7, i64 noundef 2, i64 noundef 2) #4
  %75 = icmp eq i64 %74, 0
  store i64 0, ptr %41, align 8, !tbaa !5
  store i64 1, ptr %55, align 8, !tbaa !5
  store double 0.000000e+00, ptr %57, align 8, !tbaa !9
  %76 = load i64, ptr %8, align 8, !tbaa !5
  %.not446 = icmp slt i64 %76, 1
  br i1 %.not446, label %._crit_edge453, label %.lr.ph452

.lr.ph452:                                        ; preds = %27
  %77 = getelementptr inbounds i8, ptr %52, i64 8
  %78 = getelementptr inbounds i8, ptr %50, i64 8
  %79 = getelementptr inbounds i8, ptr %32, i64 8
  %80 = getelementptr inbounds i8, ptr %34, i64 8
  %81 = getelementptr inbounds i8, ptr %54, i64 8
  %82 = getelementptr inbounds i8, ptr %54, i64 16
  %83 = getelementptr inbounds i8, ptr %54, i64 24
  %84 = getelementptr inbounds i8, ptr %54, i64 32
  %85 = getelementptr inbounds i8, ptr %54, i64 40
  %86 = getelementptr inbounds i8, ptr %54, i64 48
  %87 = getelementptr inbounds i8, ptr %54, i64 56
  %88 = getelementptr inbounds i8, ptr %54, i64 64
  %89 = getelementptr inbounds i8, ptr %54, i64 72
  %90 = getelementptr inbounds i8, ptr %54, i64 80
  %91 = getelementptr inbounds i8, ptr %54, i64 88
  %. = select i1 %75, i8 67, i8 84
  %92 = getelementptr inbounds i8, ptr %33, i64 8
  %scevgep519 = getelementptr i8, ptr %25, i64 8
  %scevgep525 = getelementptr i8, ptr %25, i64 -8
  %scevgep532 = getelementptr i8, ptr %25, i64 -8
  %scevgep534 = getelementptr i8, ptr %25, i64 8
  %invariant.gep619 = getelementptr i8, ptr %15, i64 -8
  br label %93

93:                                               ; preds = %.lr.ph452, %.loopexit314
  %94 = phi double [ 0.000000e+00, %.lr.ph452 ], [ %577, %.loopexit314 ]
  %.0259447 = phi i64 [ 1, %.lr.ph452 ], [ %578, %.loopexit314 ]
  %95 = getelementptr inbounds i64, ptr %59, i64 %.0259447
  %96 = load i64, ptr %95, align 8, !tbaa !5
  store i64 %96, ptr %38, align 8, !tbaa !5
  store i64 %96, ptr %48, align 8, !tbaa !5
  %97 = load i64, ptr %14, align 8, !tbaa !5
  %98 = icmp slt i64 %96, %97
  br i1 %98, label %99, label %101

99:                                               ; preds = %93
  %100 = add nsw i64 %96, 1
  store i64 %100, ptr %48, align 8, !tbaa !5
  br label %101

101:                                              ; preds = %99, %93
  %102 = phi i64 [ %100, %99 ], [ %96, %93 ]
  %103 = icmp sgt i64 %102, %97
  br i1 %103, label %.loopexit314, label %104

104:                                              ; preds = %101
  %105 = mul nsw i64 %102, %96
  store i64 %105, ptr %46, align 8, !tbaa !5
  %106 = load i64, ptr %8, align 8, !tbaa !5
  %.not276436 = icmp slt i64 %106, 1
  br i1 %.not276436, label %.loopexit314, label %.lr.ph442

.lr.ph442:                                        ; preds = %104, %575
  %107 = phi double [ %573, %575 ], [ %94, %104 ]
  %.0260437 = phi i64 [ %576, %575 ], [ 1, %104 ]
  %108 = getelementptr inbounds i64, ptr %59, i64 %.0260437
  %109 = load i64, ptr %108, align 8, !tbaa !5
  store i64 %109, ptr %37, align 8, !tbaa !5
  br label %110

110:                                              ; preds = %.lr.ph442, %.loopexit313
  %111 = phi double [ %107, %.lr.ph442 ], [ %573, %.loopexit313 ]
  %.0257432 = phi i64 [ 1, %.lr.ph442 ], [ %574, %.loopexit313 ]
  %112 = add nsw i64 %.0257432, -1
  %113 = getelementptr inbounds [2 x i8], ptr @zchk5_.icht, i64 0, i64 %112
  %114 = load i8, ptr %113, align 1, !tbaa !11
  %115 = icmp ne i8 %114, 67
  %or.cond = select i1 %115, i1 true, i1 %75
  %spec.select = select i1 %or.cond, i8 %114, i8 84
  store i8 %spec.select, ptr %56, align 1, !tbaa !11
  %.val = load i64, ptr %38, align 8
  %.val310 = load i64, ptr %37, align 8
  %storemerge278 = select i1 %115, i64 %.val, i64 %.val310
  store i64 %storemerge278, ptr %39, align 8, !tbaa !5
  %storemerge277 = select i1 %115, i64 %.val310, i64 %.val
  store i64 %storemerge277, ptr %40, align 8, !tbaa !5
  store i64 %storemerge278, ptr %45, align 8, !tbaa !5
  %116 = load i64, ptr %14, align 8, !tbaa !5
  %117 = icmp slt i64 %storemerge278, %116
  br i1 %117, label %118, label %120

118:                                              ; preds = %110
  %119 = add nsw i64 %storemerge278, 1
  store i64 %119, ptr %45, align 8, !tbaa !5
  br label %120

120:                                              ; preds = %118, %110
  %121 = phi i64 [ %119, %118 ], [ %storemerge278, %110 ]
  %122 = icmp sgt i64 %121, %116
  br i1 %122, label %.loopexit313, label %123

123:                                              ; preds = %120
  %124 = mul nsw i64 %121, %storemerge277
  store i64 %124, ptr %43, align 8, !tbaa !5
  br i1 %115, label %133, label %125

125:                                              ; preds = %123
  %126 = shl i64 %116, 1
  store i64 %126, ptr %28, align 8, !tbaa !5
  %127 = call i32 @zmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %15, ptr noundef nonnull %28, ptr noundef %16, ptr noundef nonnull %45, ptr noundef nonnull %55, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %128 = load i64, ptr %45, align 8, !tbaa !5
  store i64 %128, ptr %47, align 8, !tbaa !5
  %129 = load i64, ptr %43, align 8, !tbaa !5
  store i64 %129, ptr %44, align 8, !tbaa !5
  %130 = load i64, ptr %14, align 8, !tbaa !5
  %131 = shl i64 %130, 1
  store i64 %131, ptr %28, align 8, !tbaa !5
  %132 = load i64, ptr %37, align 8, !tbaa !5
  br label %140

133:                                              ; preds = %123
  %134 = call i32 @zmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %15, ptr noundef nonnull %14, ptr noundef %16, ptr noundef nonnull %45, ptr noundef nonnull %55, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %135 = load i64, ptr %45, align 8, !tbaa !5
  store i64 %135, ptr %47, align 8, !tbaa !5
  %136 = load i64, ptr %43, align 8, !tbaa !5
  store i64 %136, ptr %44, align 8, !tbaa !5
  %137 = load i64, ptr %37, align 8, !tbaa !5
  %138 = load i64, ptr %14, align 8, !tbaa !5
  %139 = mul nsw i64 %138, %137
  br label %140

140:                                              ; preds = %133, %125
  %.sink505 = phi i64 [ %139, %133 ], [ %132, %125 ]
  %.sink504 = phi ptr [ %14, %133 ], [ %28, %125 ]
  %141 = getelementptr %struct.doublecomplex, ptr %15, i64 %.sink505
  %142 = call i32 @zmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %141, ptr noundef nonnull %.sink504, ptr noundef %18, ptr noundef nonnull %47, ptr noundef nonnull %55, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %143

143:                                              ; preds = %140, %._crit_edge417
  %144 = phi double [ %111, %140 ], [ %571, %._crit_edge417 ]
  %.0256428 = phi i64 [ 1, %140 ], [ %572, %._crit_edge417 ]
  %145 = add nsw i64 %.0256428, -1
  %146 = getelementptr inbounds [2 x i8], ptr @zchk5_.ichu, i64 0, i64 %145
  %147 = load i8, ptr %146, align 1, !tbaa !11
  store i8 %147, ptr %51, align 1, !tbaa !11
  %148 = icmp eq i8 %147, 85
  %149 = load i64, ptr %10, align 8, !tbaa !5
  store i64 %149, ptr %28, align 8, !tbaa !5
  %.not279410 = icmp slt i64 %149, 1
  br i1 %.not279410, label %._crit_edge417, label %.lr.ph416

.lr.ph416:                                        ; preds = %143
  %150 = load i64, ptr %12, align 8, !tbaa !5
  %151 = icmp slt i64 %150, 1
  br i1 %151, label %.lr.ph416.split.us, label %.lr.ph416.split

.lr.ph416.split.us:                               ; preds = %.lr.ph416
  %152 = getelementptr inbounds %struct.doublecomplex, ptr %60, i64 %149
  %153 = load <2 x double>, ptr %152, align 8, !tbaa !9
  store <2 x double> %153, ptr %52, align 16, !tbaa !9
  br label %._crit_edge417

.lr.ph416.split:                                  ; preds = %.lr.ph416, %._crit_edge406
  %154 = phi i64 [ %568, %._crit_edge406 ], [ %149, %.lr.ph416 ]
  %155 = phi double [ %569, %._crit_edge406 ], [ %144, %.lr.ph416 ]
  %.0264411 = phi i64 [ %570, %._crit_edge406 ], [ 1, %.lr.ph416 ]
  %156 = getelementptr inbounds %struct.doublecomplex, ptr %60, i64 %.0264411
  %157 = load <2 x double>, ptr %156, align 8, !tbaa !9
  store <2 x double> %157, ptr %52, align 16, !tbaa !9
  %158 = load i64, ptr %12, align 8, !tbaa !5
  %.not280399 = icmp slt i64 %158, 1
  br i1 %.not280399, label %._crit_edge406, label %.lr.ph405

.lr.ph405:                                        ; preds = %.lr.ph416.split, %.loopexit
  %159 = phi double [ %566, %.loopexit ], [ %155, %.lr.ph416.split ]
  %.0263400 = phi i64 [ %567, %.loopexit ], [ 1, %.lr.ph416.split ]
  %160 = getelementptr inbounds %struct.doublecomplex, ptr %61, i64 %.0263400
  %161 = load <2 x double>, ptr %160, align 8, !tbaa !9
  store <2 x double> %161, ptr %50, align 16, !tbaa !9
  br i1 %75, label %164, label %.thread306

.thread306:                                       ; preds = %.lr.ph405
  %162 = load i64, ptr %38, align 8, !tbaa !5
  %163 = icmp slt i64 %162, 1
  br label %178

164:                                              ; preds = %.lr.ph405
  %165 = extractelement <2 x double> %161, i64 0
  store double %165, ptr %53, align 8, !tbaa !9
  store double %165, ptr %32, align 16, !tbaa !12
  store double 0.000000e+00, ptr %79, align 8, !tbaa !14
  store double 0.000000e+00, ptr %78, align 8, !tbaa !14
  %166 = load i64, ptr %38, align 8, !tbaa !5
  %167 = icmp slt i64 %166, 1
  br i1 %167, label %178, label %168

168:                                              ; preds = %164
  %169 = load i64, ptr %37, align 8, !tbaa !5
  %170 = icmp slt i64 %169, 1
  br i1 %170, label %176, label %171

171:                                              ; preds = %168
  %172 = load double, ptr %52, align 16, !tbaa !12
  %173 = fcmp oeq double %172, 0.000000e+00
  %174 = load double, ptr %77, align 8
  %175 = fcmp oeq double %174, 0.000000e+00
  %or.cond4 = select i1 %173, i1 %175, i1 false
  br i1 %or.cond4, label %176, label %178

176:                                              ; preds = %171, %168
  %177 = fcmp oeq double %165, 1.000000e+00
  br label %178

178:                                              ; preds = %.thread306, %164, %176, %171
  %.0252.in = phi i1 [ true, %164 ], [ false, %171 ], [ %177, %176 ], [ %163, %.thread306 ]
  %179 = call i32 @zmake_(ptr noundef nonnull %73, ptr noundef nonnull %51, ptr noundef nonnull @.str.6, ptr noundef nonnull %38, ptr noundef nonnull %38, ptr noundef %20, ptr noundef nonnull %14, ptr noundef %21, ptr noundef nonnull %48, ptr noundef nonnull %55, ptr noundef nonnull @c_b1, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %180 = load i64, ptr %41, align 8, !tbaa !5
  %181 = add nsw i64 %180, 1
  store i64 %181, ptr %41, align 8, !tbaa !5
  %182 = load i8, ptr %51, align 1, !tbaa !11
  %183 = load i8, ptr %56, align 1, !tbaa !11
  %184 = load i64, ptr %38, align 8, !tbaa !5
  %185 = load i64, ptr %37, align 8, !tbaa !5
  %186 = load double, ptr %52, align 16, !tbaa !12
  %187 = load double, ptr %77, align 8, !tbaa !14
  %188 = load i64, ptr %43, align 8, !tbaa !5
  %.not282360 = icmp slt i64 %188, 1
  br i1 %.not282360, label %209, label %.lr.ph.preheader

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

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

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %storemerge281361 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %204, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.3, %.lr.ph ]
  %190 = getelementptr inbounds %struct.doublecomplex, ptr %71, i64 %storemerge281361
  %191 = getelementptr inbounds %struct.doublecomplex, ptr %70, i64 %storemerge281361
  %192 = load <2 x double>, ptr %190, align 8, !tbaa !9
  store <2 x double> %192, ptr %191, align 8, !tbaa !9
  %193 = getelementptr %struct.doublecomplex, ptr %16, i64 %storemerge281361
  %194 = getelementptr %struct.doublecomplex, ptr %17, i64 %storemerge281361
  %195 = load <2 x double>, ptr %193, align 8, !tbaa !9
  store <2 x double> %195, ptr %194, align 8, !tbaa !9
  %196 = add nuw nsw i64 %storemerge281361, 2
  %197 = getelementptr inbounds %struct.doublecomplex, ptr %71, i64 %196
  %198 = getelementptr inbounds %struct.doublecomplex, ptr %70, i64 %196
  %199 = load <2 x double>, ptr %197, align 8, !tbaa !9
  store <2 x double> %199, ptr %198, align 8, !tbaa !9
  %200 = add nuw i64 %storemerge281361, 3
  %201 = getelementptr inbounds %struct.doublecomplex, ptr %71, i64 %200
  %202 = getelementptr inbounds %struct.doublecomplex, ptr %70, i64 %200
  %203 = load <2 x double>, ptr %201, align 8, !tbaa !9
  store <2 x double> %203, ptr %202, align 8, !tbaa !9
  %204 = add nuw i64 %storemerge281361, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge.unr-lcssa, label %.lr.ph, !llvm.loop !15

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

.lr.ph.epil:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph.epil
  %storemerge281361.epil = phi i64 [ %208, %.lr.ph.epil ], [ %storemerge281361.unr, %._crit_edge.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph.epil ], [ 0, %._crit_edge.unr-lcssa ]
  %205 = getelementptr inbounds %struct.doublecomplex, ptr %71, i64 %storemerge281361.epil
  %206 = getelementptr inbounds %struct.doublecomplex, ptr %70, i64 %storemerge281361.epil
  %207 = load <2 x double>, ptr %205, align 8, !tbaa !9
  store <2 x double> %207, ptr %206, align 8, !tbaa !9
  %208 = add nuw i64 %storemerge281361.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.lr.ph.epil, !llvm.loop !17

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.unr-lcssa
  store i64 %188, ptr %29, align 8, !tbaa !5
  store i64 %188, ptr %30, align 8, !tbaa !5
  br label %209

209:                                              ; preds = %._crit_edge, %178
  %210 = load i64, ptr %45, align 8, !tbaa !5
  %211 = load i64, ptr %44, align 8, !tbaa !5
  %.not284363 = icmp slt i64 %211, 1
  br i1 %.not284363, label %232, label %.lr.ph366.preheader

.lr.ph366.preheader:                              ; preds = %209
  %xtraiter589 = and i64 %211, 3
  %212 = icmp ult i64 %211, 4
  br i1 %212, label %._crit_edge367.unr-lcssa, label %.lr.ph366.preheader.new

.lr.ph366.preheader.new:                          ; preds = %.lr.ph366.preheader
  %unroll_iter592 = and i64 %211, 9223372036854775804
  br label %.lr.ph366

.lr.ph366:                                        ; preds = %.lr.ph366, %.lr.ph366.preheader.new
  %storemerge283364 = phi i64 [ 1, %.lr.ph366.preheader.new ], [ %227, %.lr.ph366 ]
  %niter593 = phi i64 [ 0, %.lr.ph366.preheader.new ], [ %niter593.next.3, %.lr.ph366 ]
  %213 = getelementptr inbounds %struct.doublecomplex, ptr %69, i64 %storemerge283364
  %214 = getelementptr inbounds %struct.doublecomplex, ptr %68, i64 %storemerge283364
  %215 = load <2 x double>, ptr %213, align 8, !tbaa !9
  store <2 x double> %215, ptr %214, align 8, !tbaa !9
  %216 = getelementptr %struct.doublecomplex, ptr %18, i64 %storemerge283364
  %217 = getelementptr %struct.doublecomplex, ptr %19, i64 %storemerge283364
  %218 = load <2 x double>, ptr %216, align 8, !tbaa !9
  store <2 x double> %218, ptr %217, align 8, !tbaa !9
  %219 = add nuw nsw i64 %storemerge283364, 2
  %220 = getelementptr inbounds %struct.doublecomplex, ptr %69, i64 %219
  %221 = getelementptr inbounds %struct.doublecomplex, ptr %68, i64 %219
  %222 = load <2 x double>, ptr %220, align 8, !tbaa !9
  store <2 x double> %222, ptr %221, align 8, !tbaa !9
  %223 = add nuw i64 %storemerge283364, 3
  %224 = getelementptr inbounds %struct.doublecomplex, ptr %69, i64 %223
  %225 = getelementptr inbounds %struct.doublecomplex, ptr %68, i64 %223
  %226 = load <2 x double>, ptr %224, align 8, !tbaa !9
  store <2 x double> %226, ptr %225, align 8, !tbaa !9
  %227 = add nuw i64 %storemerge283364, 4
  %niter593.next.3 = add i64 %niter593, 4
  %niter593.ncmp.3 = icmp eq i64 %niter593.next.3, %unroll_iter592
  br i1 %niter593.ncmp.3, label %._crit_edge367.unr-lcssa, label %.lr.ph366, !llvm.loop !19

._crit_edge367.unr-lcssa:                         ; preds = %.lr.ph366, %.lr.ph366.preheader
  %storemerge283364.unr = phi i64 [ 1, %.lr.ph366.preheader ], [ %227, %.lr.ph366 ]
  %lcmp.mod591.not = icmp eq i64 %xtraiter589, 0
  br i1 %lcmp.mod591.not, label %._crit_edge367, label %.lr.ph366.epil

.lr.ph366.epil:                                   ; preds = %._crit_edge367.unr-lcssa, %.lr.ph366.epil
  %storemerge283364.epil = phi i64 [ %231, %.lr.ph366.epil ], [ %storemerge283364.unr, %._crit_edge367.unr-lcssa ]
  %epil.iter590 = phi i64 [ %epil.iter590.next, %.lr.ph366.epil ], [ 0, %._crit_edge367.unr-lcssa ]
  %228 = getelementptr inbounds %struct.doublecomplex, ptr %69, i64 %storemerge283364.epil
  %229 = getelementptr inbounds %struct.doublecomplex, ptr %68, i64 %storemerge283364.epil
  %230 = load <2 x double>, ptr %228, align 8, !tbaa !9
  store <2 x double> %230, ptr %229, align 8, !tbaa !9
  %231 = add nuw i64 %storemerge283364.epil, 1
  %epil.iter590.next = add i64 %epil.iter590, 1
  %epil.iter590.cmp.not = icmp eq i64 %epil.iter590.next, %xtraiter589
  br i1 %epil.iter590.cmp.not, label %._crit_edge367, label %.lr.ph366.epil, !llvm.loop !20

._crit_edge367:                                   ; preds = %.lr.ph366.epil, %._crit_edge367.unr-lcssa
  store i64 %211, ptr %29, align 8, !tbaa !5
  store i64 %211, ptr %30, align 8, !tbaa !5
  br label %232

232:                                              ; preds = %._crit_edge367, %209
  %233 = load i64, ptr %47, align 8, !tbaa !5
  %234 = load double, ptr %53, align 8
  %235 = load double, ptr %50, align 16
  %236 = load double, ptr %78, align 8
  %237 = load i64, ptr %46, align 8, !tbaa !5
  %.not286370 = icmp slt i64 %237, 1
  br i1 %.not286370, label %259, label %.lr.ph373.preheader

.lr.ph373.preheader:                              ; preds = %232
  %238 = add nuw i64 %237, 1
  %xtraiter594 = and i64 %237, 3
  %239 = icmp ult i64 %237, 4
  br i1 %239, label %._crit_edge374.unr-lcssa, label %.lr.ph373.preheader.new

.lr.ph373.preheader.new:                          ; preds = %.lr.ph373.preheader
  %unroll_iter597 = and i64 %237, 9223372036854775804
  br label %.lr.ph373

.lr.ph373:                                        ; preds = %.lr.ph373, %.lr.ph373.preheader.new
  %storemerge285371 = phi i64 [ 1, %.lr.ph373.preheader.new ], [ %254, %.lr.ph373 ]
  %niter598 = phi i64 [ 0, %.lr.ph373.preheader.new ], [ %niter598.next.3, %.lr.ph373 ]
  %240 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %storemerge285371
  %241 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %storemerge285371
  %242 = load <2 x double>, ptr %240, align 8, !tbaa !9
  store <2 x double> %242, ptr %241, align 8, !tbaa !9
  %243 = getelementptr %struct.doublecomplex, ptr %21, i64 %storemerge285371
  %244 = getelementptr %struct.doublecomplex, ptr %22, i64 %storemerge285371
  %245 = load <2 x double>, ptr %243, align 8, !tbaa !9
  store <2 x double> %245, ptr %244, align 8, !tbaa !9
  %246 = add nuw nsw i64 %storemerge285371, 2
  %247 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %246
  %248 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %246
  %249 = load <2 x double>, ptr %247, align 8, !tbaa !9
  store <2 x double> %249, ptr %248, align 8, !tbaa !9
  %250 = add nuw i64 %storemerge285371, 3
  %251 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %250
  %252 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %250
  %253 = load <2 x double>, ptr %251, align 8, !tbaa !9
  store <2 x double> %253, ptr %252, align 8, !tbaa !9
  %254 = add nuw i64 %storemerge285371, 4
  %niter598.next.3 = add i64 %niter598, 4
  %niter598.ncmp.3 = icmp eq i64 %niter598.next.3, %unroll_iter597
  br i1 %niter598.ncmp.3, label %._crit_edge374.unr-lcssa, label %.lr.ph373, !llvm.loop !21

._crit_edge374.unr-lcssa:                         ; preds = %.lr.ph373, %.lr.ph373.preheader
  %storemerge285371.unr = phi i64 [ 1, %.lr.ph373.preheader ], [ %254, %.lr.ph373 ]
  %lcmp.mod596.not = icmp eq i64 %xtraiter594, 0
  br i1 %lcmp.mod596.not, label %._crit_edge374, label %.lr.ph373.epil

.lr.ph373.epil:                                   ; preds = %._crit_edge374.unr-lcssa, %.lr.ph373.epil
  %storemerge285371.epil = phi i64 [ %258, %.lr.ph373.epil ], [ %storemerge285371.unr, %._crit_edge374.unr-lcssa ]
  %epil.iter595 = phi i64 [ %epil.iter595.next, %.lr.ph373.epil ], [ 0, %._crit_edge374.unr-lcssa ]
  %255 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %storemerge285371.epil
  %256 = getelementptr inbounds %struct.doublecomplex, ptr %63, i64 %storemerge285371.epil
  %257 = load <2 x double>, ptr %255, align 8, !tbaa !9
  store <2 x double> %257, ptr %256, align 8, !tbaa !9
  %258 = add nuw i64 %storemerge285371.epil, 1
  %epil.iter595.next = add i64 %epil.iter595, 1
  %epil.iter595.cmp.not = icmp eq i64 %epil.iter595.next, %xtraiter594
  br i1 %epil.iter595.cmp.not, label %._crit_edge374, label %.lr.ph373.epil, !llvm.loop !22

._crit_edge374:                                   ; preds = %.lr.ph373.epil, %._crit_edge374.unr-lcssa
  store i64 %237, ptr %29, align 8, !tbaa !5
  store i64 %237, ptr %30, align 8, !tbaa !5
  br label %259

259:                                              ; preds = %._crit_edge374, %232
  %storemerge285.lcssa = phi i64 [ %238, %._crit_edge374 ], [ 1, %232 ]
  store i64 %storemerge285.lcssa, ptr %35, align 8, !tbaa !5
  %260 = load i64, ptr %48, align 8, !tbaa !5
  %261 = load i64, ptr %5, align 8, !tbaa !5
  %.not289 = icmp eq i64 %261, 0
  br i1 %75, label %262, label %285

262:                                              ; preds = %259
  br i1 %.not289, label %278, label %263

263:                                              ; preds = %262
  %264 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %264, ptr getelementptr inbounds (i8, ptr @zchk5_.io___334, i64 8), align 8, !tbaa !23
  %265 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___334) #4
  %266 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %267 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %268 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #4
  %269 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %56, i64 noundef 1) #4
  %270 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %271 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %272 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %52, i64 noundef 8) #4
  %273 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %274 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %275 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %53, i64 noundef 8) #4
  %276 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #4
  %277 = call i64 @e_wsfe() #4
  br label %278

278:                                              ; preds = %263, %262
  %279 = load i64, ptr %6, align 8, !tbaa !5
  %.not290 = icmp eq i64 %279, 0
  br i1 %.not290, label %283, label %280

280:                                              ; preds = %278
  store i64 0, ptr %34, align 8, !tbaa !26
  %281 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %281, ptr %80, align 8, !tbaa !28
  %282 = call i64 @f_rew(ptr noundef nonnull %34) #4
  br label %283

283:                                              ; preds = %280, %278
  %284 = call i32 @f2c_zher2k(ptr noundef nonnull %51, ptr noundef nonnull %56, ptr noundef nonnull %38, ptr noundef nonnull %37, ptr noundef nonnull %52, ptr noundef %16, ptr noundef nonnull %45, ptr noundef %18, ptr noundef nonnull %47, ptr noundef nonnull %53, ptr noundef %21, ptr noundef nonnull %48) #4
  br label %308

285:                                              ; preds = %259
  br i1 %.not289, label %301, label %286

286:                                              ; preds = %285
  %287 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %287, ptr getelementptr inbounds (i8, ptr @zchk5_.io___335, i64 8), align 8, !tbaa !23
  %288 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___335) #4
  %289 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %290 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %291 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #4
  %292 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %56, i64 noundef 1) #4
  %293 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %294 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %295 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %52, i64 noundef 8) #4
  %296 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %297 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %298 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %50, i64 noundef 8) #4
  %299 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #4
  %300 = call i64 @e_wsfe() #4
  br label %301

301:                                              ; preds = %286, %285
  %302 = load i64, ptr %6, align 8, !tbaa !5
  %.not288 = icmp eq i64 %302, 0
  br i1 %.not288, label %306, label %303

303:                                              ; preds = %301
  store i64 0, ptr %34, align 8, !tbaa !26
  %304 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %304, ptr %80, align 8, !tbaa !28
  %305 = call i64 @f_rew(ptr noundef nonnull %34) #4
  br label %306

306:                                              ; preds = %303, %301
  %307 = call i32 @f2c_zsyr2k(ptr noundef nonnull %51, ptr noundef nonnull %56, ptr noundef nonnull %38, ptr noundef nonnull %37, ptr noundef nonnull %52, ptr noundef %16, ptr noundef nonnull %45, ptr noundef %18, ptr noundef nonnull %47, ptr noundef nonnull %50, ptr noundef %21, ptr noundef nonnull %48) #4
  br label %308

308:                                              ; preds = %306, %283
  %309 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !11
  %.not291 = icmp eq i64 %309, 0
  br i1 %.not291, label %310, label %314

310:                                              ; preds = %308
  %311 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %311, ptr getelementptr inbounds (i8, ptr @zchk5_.io___336, i64 8), align 8, !tbaa !23
  %312 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___336) #4
  %313 = call i64 @e_wsfe() #4
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %598

314:                                              ; preds = %308
  %315 = load i8, ptr %51, align 1, !tbaa !11
  %316 = icmp eq i8 %182, %315
  %317 = zext i1 %316 to i64
  store i64 %317, ptr %54, align 16, !tbaa !5
  %318 = load i8, ptr %56, align 1, !tbaa !11
  %319 = icmp eq i8 %183, %318
  %320 = zext i1 %319 to i64
  store i64 %320, ptr %81, align 8, !tbaa !5
  %321 = load i64, ptr %38, align 8, !tbaa !5
  %322 = icmp eq i64 %184, %321
  %323 = zext i1 %322 to i64
  store i64 %323, ptr %82, align 16, !tbaa !5
  %324 = load i64, ptr %37, align 8, !tbaa !5
  %325 = icmp eq i64 %185, %324
  %326 = zext i1 %325 to i64
  store i64 %326, ptr %83, align 8, !tbaa !5
  %327 = load double, ptr %52, align 16, !tbaa !12
  %328 = fcmp oeq double %186, %327
  %329 = load double, ptr %77, align 8
  %330 = fcmp oeq double %187, %329
  %331 = select i1 %328, i1 %330, i1 false
  %332 = zext i1 %331 to i64
  store i64 %332, ptr %84, align 16, !tbaa !5
  %333 = call i64 @lze_(ptr noundef %17, ptr noundef %16, ptr noundef nonnull %43)
  store i64 %333, ptr %85, align 8, !tbaa !5
  %334 = load i64, ptr %45, align 8, !tbaa !5
  %335 = icmp eq i64 %210, %334
  %336 = zext i1 %335 to i64
  store i64 %336, ptr %86, align 16, !tbaa !5
  %337 = call i64 @lze_(ptr noundef %19, ptr noundef %18, ptr noundef nonnull %44)
  store i64 %337, ptr %87, align 8, !tbaa !5
  %338 = load i64, ptr %47, align 8, !tbaa !5
  %339 = icmp eq i64 %233, %338
  %340 = zext i1 %339 to i64
  store i64 %340, ptr %88, align 16, !tbaa !5
  br i1 %75, label %341, label %344

341:                                              ; preds = %314
  %342 = load double, ptr %53, align 8, !tbaa !9
  %343 = fcmp oeq double %234, %342
  br label %350

344:                                              ; preds = %314
  %345 = load double, ptr %50, align 16, !tbaa !12
  %346 = fcmp oeq double %235, %345
  %347 = load double, ptr %78, align 8
  %348 = fcmp oeq double %236, %347
  %349 = select i1 %346, i1 %348, i1 false
  br label %350

350:                                              ; preds = %344, %341
  %storemerge.in = phi i1 [ %349, %344 ], [ %343, %341 ]
  %storemerge = zext i1 %storemerge.in to i64
  store i64 %storemerge, ptr %89, align 8, !tbaa !5
  br i1 %.0252.in, label %351, label %353

351:                                              ; preds = %350
  %352 = call i64 @lze_(ptr noundef %22, ptr noundef %21, ptr noundef nonnull %46)
  br label %355

353:                                              ; preds = %350
  %354 = call i64 @lzeres_(ptr noundef nonnull @.str.7, ptr noundef nonnull %51, ptr noundef nonnull %38, ptr noundef nonnull %38, ptr noundef %22, ptr noundef %21, ptr noundef nonnull %48, i64 noundef 2, i64 noundef 1)
  br label %355

355:                                              ; preds = %353, %351
  %storemerge488 = phi i64 [ %354, %353 ], [ %352, %351 ]
  store i64 %storemerge488, ptr %90, align 16, !tbaa !5
  %356 = load i64, ptr %48, align 8, !tbaa !5
  %357 = icmp eq i64 %260, %356
  %358 = zext i1 %357 to i64
  store i64 %358, ptr %91, align 8, !tbaa !5
  store i64 1, ptr %35, align 8, !tbaa !5
  br label %._crit_edge480

._crit_edge480:                                   ; preds = %355, %367
  %359 = phi i64 [ 1, %355 ], [ %369, %367 ]
  %.0253378 = phi i1 [ true, %355 ], [ %361, %367 ]
  %storemerge292377 = phi i64 [ 0, %355 ], [ %368, %367 ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %54, i64 0, i64 %storemerge292377
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %360 = icmp ne i64 %.pre, 0
  %361 = and i1 %.0253378, %360
  %.not304 = icmp eq i64 %.pre, 0
  br i1 %.not304, label %362, label %367

362:                                              ; preds = %._crit_edge480
  %363 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %363, ptr getelementptr inbounds (i8, ptr @zchk5_.io___339, i64 8), align 8, !tbaa !23
  %364 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___339) #4
  %365 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #4
  %366 = call i64 @e_wsfe() #4
  %.pre481 = load i64, ptr %35, align 8, !tbaa !5
  br label %367

367:                                              ; preds = %._crit_edge480, %362
  %368 = phi i64 [ %359, %._crit_edge480 ], [ %.pre481, %362 ]
  %369 = add nsw i64 %368, 1
  store i64 %369, ptr %35, align 8, !tbaa !5
  %370 = icmp slt i64 %368, 12
  br i1 %370, label %._crit_edge480, label %371, !llvm.loop !29

371:                                              ; preds = %367
  br i1 %361, label %373, label %372

372:                                              ; preds = %371
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %598

373:                                              ; preds = %371
  br i1 %.0252.in, label %.loopexit, label %374

374:                                              ; preds = %373
  store i8 %., ptr %58, align 1, !tbaa !11
  %375 = load i64, ptr %38, align 8, !tbaa !5
  store i64 1, ptr %36, align 8, !tbaa !5
  %.not296393 = icmp slt i64 %375, 1
  br i1 %.not296393, label %.loopexit, label %.lr.ph398

.lr.ph398:                                        ; preds = %374, %564
  %indvar = phi i64 [ %indvar.next, %564 ], [ 0, %374 ]
  %376 = phi double [ %562, %564 ], [ %159, %374 ]
  %.0254396 = phi i64 [ %.1255, %564 ], [ 1, %374 ]
  %.0261395 = phi i64 [ %.1262, %564 ], [ 1, %374 ]
  %377 = phi i64 [ %565, %564 ], [ 1, %374 ]
  %378 = shl i64 %indvar, 4
  %scevgep527 = getelementptr i8, ptr %15, i64 %378
  %gep620 = getelementptr i8, ptr %invariant.gep619, i64 %378
  %379 = or disjoint i64 %378, 8
  %scevgep537 = getelementptr i8, ptr %15, i64 %379
  %380 = load i64, ptr %38, align 8
  %reass.sub = sub i64 %380, %377
  %381 = add i64 %reass.sub, 1
  %storemerge297 = select i1 %148, i64 %377, i64 %381
  %.0258 = select i1 %148, i64 1, i64 %377
  store i64 %storemerge297, ptr %42, align 8, !tbaa !5
  %382 = load i64, ptr %37, align 8, !tbaa !5
  store i64 %382, ptr %29, align 8, !tbaa !5
  store i64 1, ptr %35, align 8, !tbaa !5
  %.not299384 = icmp slt i64 %382, 1
  br i1 %115, label %448, label %383

383:                                              ; preds = %.lr.ph398
  %.pre485 = load i64, ptr %14, align 8, !tbaa !5
  br i1 %.not299384, label %._crit_edge383, label %.lr.ph382.preheader

.lr.ph382.preheader:                              ; preds = %383
  %384 = shl nuw i64 %377, 1
  %385 = add i64 %384, -2
  %386 = shl nuw i64 %377, 1
  %387 = add i64 %386, -2
  br label %.lr.ph382

.lr.ph382:                                        ; preds = %.lr.ph382.preheader, %432
  %388 = phi i64 [ %433, %432 ], [ %382, %.lr.ph382.preheader ]
  %389 = phi i64 [ %435, %432 ], [ %.pre485, %.lr.ph382.preheader ]
  %storemerge300380 = phi i64 [ %437, %432 ], [ 1, %.lr.ph382.preheader ]
  %390 = mul nsw i64 %385, %389
  %391 = load i64, ptr %37, align 8, !tbaa !5
  %392 = add i64 %391, %storemerge300380
  %393 = add i64 %392, %390
  store i64 %393, ptr %31, align 8, !tbaa !5
  %394 = load <2 x double>, ptr %52, align 16
  %395 = getelementptr inbounds %struct.doublecomplex, ptr %72, i64 %393
  %396 = load double, ptr %77, align 8, !tbaa !14
  %397 = fneg double %396
  %398 = load <2 x double>, ptr %395, align 8, !tbaa !9
  %399 = insertelement <2 x double> poison, double %396, i64 0
  %400 = insertelement <2 x double> %399, double %397, i64 1
  %401 = fmul <2 x double> %398, %400
  %402 = shufflevector <2 x double> %401, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %403 = shufflevector <2 x double> %394, <2 x double> poison, <2 x i32> zeroinitializer
  %404 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %403, <2 x double> %398, <2 x double> %402)
  store <2 x double> %404, ptr %32, align 16, !tbaa !9
  %405 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %storemerge300380
  store <2 x double> %404, ptr %405, align 8, !tbaa !9
  store i64 %392, ptr %30, align 8, !tbaa !5
  br i1 %75, label %406, label %424

406:                                              ; preds = %.lr.ph382
  call void @d_cnjg(ptr noundef nonnull %33, ptr noundef nonnull %52) #4
  %407 = load i64, ptr %14, align 8, !tbaa !5
  %408 = mul nsw i64 %387, %407
  %409 = load i64, ptr %35, align 8, !tbaa !5
  %410 = add nsw i64 %408, %409
  %411 = load <2 x double>, ptr %33, align 16
  %412 = getelementptr inbounds %struct.doublecomplex, ptr %72, i64 %410
  %413 = load double, ptr %92, align 8, !tbaa !14
  %414 = fneg double %413
  %415 = load <2 x double>, ptr %412, align 8, !tbaa !9
  %416 = insertelement <2 x double> poison, double %413, i64 0
  %417 = insertelement <2 x double> %416, double %414, i64 1
  %418 = fmul <2 x double> %415, %417
  %419 = shufflevector <2 x double> %418, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %420 = shufflevector <2 x double> %411, <2 x double> poison, <2 x i32> zeroinitializer
  %421 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %420, <2 x double> %415, <2 x double> %419)
  %422 = load i64, ptr %30, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %422
  store <2 x double> %421, ptr %423, align 8, !tbaa !9
  %.pre483 = load i64, ptr %29, align 8, !tbaa !5
  br label %432

424:                                              ; preds = %.lr.ph382
  %425 = add nsw i64 %390, %storemerge300380
  %426 = getelementptr inbounds %struct.doublecomplex, ptr %72, i64 %425
  %427 = load <2 x double>, ptr %426, align 8, !tbaa !9
  %428 = fmul <2 x double> %427, %400
  %429 = shufflevector <2 x double> %428, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %430 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %403, <2 x double> %427, <2 x double> %429)
  %431 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %392
  store <2 x double> %430, ptr %431, align 8, !tbaa !9
  br label %432

432:                                              ; preds = %406, %424
  %433 = phi i64 [ %.pre483, %406 ], [ %388, %424 ]
  %434 = phi i64 [ %409, %406 ], [ %storemerge300380, %424 ]
  %435 = phi i64 [ %407, %406 ], [ %389, %424 ]
  %.sink479 = phi i64 [ %410, %406 ], [ %425, %424 ]
  %436 = phi <2 x double> [ %421, %406 ], [ %430, %424 ]
  store i64 %.sink479, ptr %31, align 8
  store <2 x double> %436, ptr %32, align 16
  %437 = add nsw i64 %434, 1
  store i64 %437, ptr %35, align 8, !tbaa !5
  %.not301.not = icmp slt i64 %434, %433
  br i1 %.not301.not, label %.lr.ph382, label %._crit_edge383.loopexit, !llvm.loop !30

._crit_edge383.loopexit:                          ; preds = %432
  %.pre484 = load i64, ptr %37, align 8, !tbaa !5
  br label %._crit_edge383

._crit_edge383:                                   ; preds = %._crit_edge383.loopexit, %383
  %438 = phi i64 [ %435, %._crit_edge383.loopexit ], [ %.pre485, %383 ]
  %439 = phi i64 [ %.pre484, %._crit_edge383.loopexit ], [ %382, %383 ]
  %440 = shl i64 %439, 1
  store i64 %440, ptr %29, align 8, !tbaa !5
  %441 = shl i64 %438, 1
  store i64 %441, ptr %30, align 8, !tbaa !5
  store i64 %441, ptr %31, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.doublecomplex, ptr %72, i64 %.0254396
  %443 = mul nsw i64 %377, %65
  %444 = getelementptr %struct.doublecomplex, ptr %67, i64 %.0258
  %445 = getelementptr %struct.doublecomplex, ptr %444, i64 %443
  %446 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %.0261395
  %447 = call i32 @zmmch_(ptr noundef nonnull %58, ptr noundef nonnull @.str.1, ptr noundef nonnull %42, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c_b2, ptr noundef nonnull %442, ptr noundef nonnull %30, ptr noundef %25, ptr noundef nonnull %31, ptr noundef nonnull %50, ptr noundef %445, ptr noundef nonnull %14, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %446, ptr noundef nonnull %48, ptr noundef %1, ptr noundef nonnull %49, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %548

448:                                              ; preds = %.lr.ph398
  br i1 %.not299384, label %._crit_edge388, label %.lr.ph387

.lr.ph387:                                        ; preds = %448
  br i1 %75, label %.lr.ph387.split.us.preheader, label %.lr.ph387.split

.lr.ph387.split.us.preheader:                     ; preds = %.lr.ph387
  %invariant.gep501 = getelementptr %struct.doublecomplex, ptr %72, i64 %377
  br label %.lr.ph387.split.us

.lr.ph387.split.us:                               ; preds = %.lr.ph387.split.us.preheader, %.lr.ph387.split.us
  %storemerge298385.us = phi i64 [ %482, %.lr.ph387.split.us ], [ 1, %.lr.ph387.split.us.preheader ]
  store i64 %storemerge298385.us, ptr %30, align 8, !tbaa !5
  %449 = load i64, ptr %37, align 8, !tbaa !5
  %450 = add nsw i64 %storemerge298385.us, -1
  %451 = add i64 %450, %449
  %452 = load i64, ptr %14, align 8, !tbaa !5
  %453 = mul nsw i64 %451, %452
  %gep502 = getelementptr %struct.doublecomplex, ptr %invariant.gep501, i64 %453
  call void @d_cnjg(ptr noundef nonnull %33, ptr noundef %gep502) #4
  %454 = load <2 x double>, ptr %52, align 16
  %455 = load double, ptr %77, align 8, !tbaa !14
  %456 = fneg double %455
  %457 = load <2 x double>, ptr %33, align 16, !tbaa !9
  %458 = insertelement <2 x double> poison, double %455, i64 0
  %459 = insertelement <2 x double> %458, double %456, i64 1
  %460 = fmul <2 x double> %457, %459
  %461 = shufflevector <2 x double> %460, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %462 = shufflevector <2 x double> %454, <2 x double> poison, <2 x i32> zeroinitializer
  %463 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %462, <2 x double> %457, <2 x double> %461)
  store <2 x double> %463, ptr %32, align 16, !tbaa !9
  %464 = load i64, ptr %30, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %464
  store <2 x double> %463, ptr %465, align 8, !tbaa !9
  %466 = load i64, ptr %37, align 8, !tbaa !5
  %467 = load i64, ptr %35, align 8, !tbaa !5
  %468 = add nsw i64 %467, %466
  store i64 %468, ptr %30, align 8, !tbaa !5
  %469 = add nsw i64 %467, -1
  %470 = load i64, ptr %14, align 8, !tbaa !5
  %471 = mul nsw i64 %470, %469
  %472 = add nsw i64 %471, %377
  store i64 %472, ptr %31, align 8, !tbaa !5
  %473 = getelementptr inbounds %struct.doublecomplex, ptr %72, i64 %472
  %474 = load <2 x double>, ptr %473, align 8, !tbaa !9
  %475 = fmul <2 x double> %474, %459
  %476 = shufflevector <2 x double> %475, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %477 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %462, <2 x double> %474, <2 x double> %476)
  store <2 x double> %477, ptr %33, align 16, !tbaa !9
  call void @d_cnjg(ptr noundef nonnull %32, ptr noundef nonnull %33) #4
  %478 = load i64, ptr %30, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %478
  %480 = load <2 x double>, ptr %32, align 16, !tbaa !9
  store <2 x double> %480, ptr %479, align 8, !tbaa !9
  %481 = load i64, ptr %35, align 8, !tbaa !5
  %482 = add nsw i64 %481, 1
  store i64 %482, ptr %35, align 8, !tbaa !5
  %483 = load i64, ptr %29, align 8, !tbaa !5
  %.not299.us.not = icmp slt i64 %481, %483
  br i1 %.not299.us.not, label %.lr.ph387.split.us, label %._crit_edge388.loopexit, !llvm.loop !31

.lr.ph387.split:                                  ; preds = %.lr.ph387
  %484 = load i64, ptr %14, align 8, !tbaa !5
  %485 = load double, ptr %52, align 16, !tbaa !12
  %486 = load double, ptr %77, align 8, !tbaa !14
  %487 = fneg double %486
  %invariant.gep = getelementptr %struct.doublecomplex, ptr %72, i64 %377
  %min.iters.check = icmp ult i64 %382, 10
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph387.split
  %ident.check = icmp ne i64 %484, 1
  %488 = add nsw i64 %382, -1
  %489 = shl i64 %382, 4
  %scevgep = getelementptr i8, ptr %25, i64 %489
  %mul.result = shl i64 %488, 4
  %mul.overflow = icmp ugt i64 %488, 1152921504606846975
  %490 = getelementptr i8, ptr %scevgep, i64 %mul.result
  %491 = icmp ult ptr %490, %scevgep
  %492 = or i1 %491, %mul.overflow
  %scevgep520 = getelementptr i8, ptr %scevgep519, i64 %489
  %mul.result522 = shl i64 %488, 4
  %493 = getelementptr i8, ptr %scevgep520, i64 %mul.result522
  %494 = icmp ult ptr %493, %scevgep520
  %495 = or i1 %ident.check, %492
  %496 = or i1 %494, %495
  br i1 %496, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %497 = shl i64 %382, 4
  %scevgep524 = getelementptr i8, ptr %25, i64 %497
  %498 = shl i64 %382, 5
  %scevgep526 = getelementptr i8, ptr %scevgep525, i64 %498
  %scevgep529 = getelementptr i8, ptr %gep620, i64 %497
  %scevgep530 = getelementptr i8, ptr %scevgep527, i64 %497
  %scevgep531 = getelementptr i8, ptr %gep620, i64 %498
  %scevgep533 = getelementptr i8, ptr %scevgep532, i64 %497
  %scevgep535 = getelementptr i8, ptr %scevgep534, i64 %497
  %scevgep536 = getelementptr i8, ptr %25, i64 %498
  %scevgep538 = getelementptr i8, ptr %scevgep537, i64 %497
  %scevgep539 = getelementptr i8, ptr %scevgep527, i64 %498
  %bound0 = icmp ugt ptr %gep620, %25
  %bound1 = icmp ult ptr %scevgep527, %scevgep526
  %found.conflict = and i1 %bound0, %bound1
  %bound0540 = icmp ult ptr %scevgep524, %scevgep531
  %bound1541 = icmp ult ptr %scevgep530, %scevgep526
  %found.conflict542 = and i1 %bound0540, %bound1541
  %conflict.rdx = or i1 %found.conflict, %found.conflict542
  %bound0543 = icmp ugt ptr %scevgep529, %25
  %bound1544 = icmp ult ptr %scevgep527, %scevgep533
  %found.conflict545 = and i1 %bound0543, %bound1544
  %conflict.rdx546 = or i1 %conflict.rdx, %found.conflict545
  %bound0547 = icmp ugt ptr %scevgep531, %25
  %bound1548 = icmp ult ptr %scevgep527, %scevgep532
  %found.conflict549 = and i1 %bound0547, %bound1548
  %conflict.rdx550 = or i1 %conflict.rdx546, %found.conflict549
  %bound0551 = icmp ult ptr %scevgep534, %scevgep527
  %bound1552 = icmp ult ptr %scevgep537, %scevgep536
  %found.conflict553 = and i1 %bound0551, %bound1552
  %conflict.rdx554 = or i1 %conflict.rdx550, %found.conflict553
  %bound0555 = icmp ult ptr %scevgep535, %scevgep539
  %bound1556 = icmp ult ptr %scevgep538, %scevgep536
  %found.conflict557 = and i1 %bound0555, %bound1556
  %conflict.rdx558 = or i1 %conflict.rdx554, %found.conflict557
  %bound0559 = icmp ult ptr %scevgep534, %scevgep530
  %bound1560 = icmp ult ptr %scevgep537, %scevgep524
  %found.conflict561 = and i1 %bound0559, %bound1560
  %conflict.rdx562 = or i1 %conflict.rdx558, %found.conflict561
  %bound0563 = icmp ult ptr %scevgep534, %scevgep539
  %bound1564 = icmp ult ptr %scevgep537, %25
  %found.conflict565 = and i1 %bound0563, %bound1564
  %conflict.rdx566 = or i1 %conflict.rdx562, %found.conflict565
  br i1 %conflict.rdx566, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %382, 2305843009213693950
  %ind.end = or i64 %382, 1
  %broadcast.splatinsert = insertelement <2 x double> poison, double %487, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert568 = insertelement <2 x double> poison, double %485, i64 0
  %broadcast.splat569 = shufflevector <2 x double> %broadcast.splatinsert568, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert570 = insertelement <2 x double> poison, double %486, i64 0
  %broadcast.splat571 = shufflevector <2 x double> %broadcast.splatinsert570, <2 x double> poison, <2 x i32> zeroinitializer
  %invariant.gep615 = getelementptr i8, ptr %invariant.gep, i64 -16
  %invariant.gep617 = getelementptr %struct.doublecomplex, ptr %72, i64 %377
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %499 = add nuw nsw i64 %382, %offset.idx
  %gep616 = getelementptr %struct.doublecomplex, ptr %invariant.gep615, i64 %499
  %wide.vec = load <4 x double>, ptr %gep616, align 8, !tbaa !9
  %strided.vec = shufflevector <4 x double> %wide.vec, <4 x double> poison, <2 x i32> <i32 0, i32 2>
  %strided.vec567 = shufflevector <4 x double> %wide.vec, <4 x double> poison, <2 x i32> <i32 1, i32 3>
  %500 = fmul <2 x double> %strided.vec567, %broadcast.splat
  %501 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat569, <2 x double> %strided.vec, <2 x double> %500)
  %502 = fmul <2 x double> %strided.vec, %broadcast.splat571
  %503 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat569, <2 x double> %strided.vec567, <2 x double> %502)
  %504 = getelementptr %struct.doublecomplex, ptr %25, i64 %index
  %interleaved.vec = shufflevector <2 x double> %501, <2 x double> %503, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x double> %interleaved.vec, ptr %504, align 8, !tbaa !9
  %gep618 = getelementptr %struct.doublecomplex, ptr %invariant.gep617, i64 %index
  %wide.vec572 = load <4 x double>, ptr %gep618, align 8, !tbaa !9
  %strided.vec573 = shufflevector <4 x double> %wide.vec572, <4 x double> poison, <2 x i32> <i32 0, i32 2>
  %strided.vec574 = shufflevector <4 x double> %wide.vec572, <4 x double> poison, <2 x i32> <i32 1, i32 3>
  %505 = fmul <2 x double> %strided.vec574, %broadcast.splat
  %506 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat569, <2 x double> %strided.vec573, <2 x double> %505)
  %507 = fmul <2 x double> %broadcast.splat571, %strided.vec573
  %508 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat569, <2 x double> %strided.vec574, <2 x double> %507)
  %509 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %499
  %interleaved.vec575 = shufflevector <2 x double> %506, <2 x double> %508, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x double> %interleaved.vec575, ptr %509, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 2
  %510 = icmp eq i64 %index.next, %n.vec
  br i1 %510, label %middle.block, label %vector.body, !llvm.loop !32

middle.block:                                     ; preds = %vector.body
  %511 = or disjoint i64 %index, 1
  %512 = add nsw i64 %511, %377
  %cmp.n = icmp eq i64 %382, %n.vec
  %513 = shufflevector <2 x double> %506, <2 x double> %508, <2 x i32> <i32 1, i32 3>
  br i1 %cmp.n, label %._crit_edge388.split, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %vector.scevcheck, %.lr.ph387.split
  %.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %vector.scevcheck ], [ 1, %.lr.ph387.split ], [ %ind.end, %middle.block ]
  %514 = insertelement <2 x double> poison, double %486, i64 0
  %515 = insertelement <2 x double> %514, double %487, i64 1
  %516 = insertelement <2 x double> poison, double %485, i64 0
  %517 = shufflevector <2 x double> %516, <2 x double> poison, <2 x i32> zeroinitializer
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %518 = phi i64 [ %536, %scalar.ph ], [ %.ph, %scalar.ph.preheader ]
  %519 = add nuw nsw i64 %382, %518
  %520 = add nsw i64 %519, -1
  %521 = mul nsw i64 %520, %484
  %gep = getelementptr %struct.doublecomplex, ptr %invariant.gep, i64 %521
  %522 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %518
  %523 = load <2 x double>, ptr %gep, align 8, !tbaa !9
  %524 = fmul <2 x double> %523, %515
  %525 = shufflevector <2 x double> %524, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %526 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %517, <2 x double> %523, <2 x double> %525)
  store <2 x double> %526, ptr %522, align 8, !tbaa !9
  %527 = add nsw i64 %518, -1
  %528 = mul nsw i64 %484, %527
  %529 = add nsw i64 %528, %377
  %530 = getelementptr inbounds %struct.doublecomplex, ptr %72, i64 %529
  %531 = load <2 x double>, ptr %530, align 8, !tbaa !9
  %532 = fmul <2 x double> %531, %515
  %533 = shufflevector <2 x double> %532, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %534 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %517, <2 x double> %531, <2 x double> %533)
  %535 = getelementptr inbounds %struct.doublecomplex, ptr %62, i64 %519
  store <2 x double> %534, ptr %535, align 8, !tbaa !9
  %536 = add nuw nsw i64 %518, 1
  %.not299.not = icmp slt i64 %518, %382
  br i1 %.not299.not, label %scalar.ph, label %._crit_edge388.split, !llvm.loop !35

._crit_edge388.split:                             ; preds = %scalar.ph, %middle.block
  %.lcssa511 = phi i64 [ %512, %middle.block ], [ %529, %scalar.ph ]
  %.lcssa508 = phi i64 [ %ind.end, %middle.block ], [ %536, %scalar.ph ]
  %537 = phi <2 x double> [ %513, %middle.block ], [ %534, %scalar.ph ]
  store i64 %.lcssa511, ptr %31, align 8, !tbaa !5
  store <2 x double> %537, ptr %32, align 16, !tbaa !9
  store i64 %.lcssa508, ptr %35, align 8, !tbaa !5
  br label %._crit_edge388

._crit_edge388.loopexit:                          ; preds = %.lr.ph387.split.us
  %.pre486 = load i64, ptr %37, align 8, !tbaa !5
  br label %._crit_edge388

._crit_edge388:                                   ; preds = %._crit_edge388.loopexit, %._crit_edge388.split, %448
  %538 = phi i64 [ %.pre486, %._crit_edge388.loopexit ], [ %382, %._crit_edge388.split ], [ %382, %448 ]
  %539 = shl i64 %538, 1
  store i64 %539, ptr %29, align 8, !tbaa !5
  %540 = load i64, ptr %14, align 8, !tbaa !5
  %541 = shl i64 %540, 1
  store i64 %541, ptr %30, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.doublecomplex, ptr %72, i64 %.0258
  %543 = mul nsw i64 %377, %65
  %544 = getelementptr %struct.doublecomplex, ptr %67, i64 %.0258
  %545 = getelementptr %struct.doublecomplex, ptr %544, i64 %543
  %546 = getelementptr inbounds %struct.doublecomplex, ptr %64, i64 %.0261395
  %547 = call i32 @zmmch_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.1, ptr noundef nonnull %42, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull @c_b2, ptr noundef nonnull %542, ptr noundef nonnull %14, ptr noundef %25, ptr noundef nonnull %30, ptr noundef nonnull %50, ptr noundef %545, ptr noundef nonnull %14, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %546, ptr noundef nonnull %48, ptr noundef %1, ptr noundef nonnull %49, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %548

548:                                              ; preds = %._crit_edge388, %._crit_edge383
  %549 = load i64, ptr %48, align 8, !tbaa !5
  br i1 %148, label %550, label %552

550:                                              ; preds = %548
  %551 = add nsw i64 %549, %.0261395
  br label %559

552:                                              ; preds = %548
  %553 = add i64 %.0261395, 1
  %554 = add i64 %553, %549
  br i1 %115, label %559, label %555

555:                                              ; preds = %552
  %556 = load i64, ptr %14, align 8, !tbaa !5
  %557 = shl i64 %556, 1
  %558 = add nsw i64 %557, %.0254396
  br label %559

559:                                              ; preds = %552, %555, %550
  %.1262 = phi i64 [ %551, %550 ], [ %554, %555 ], [ %554, %552 ]
  %.1255 = phi i64 [ %.0254396, %550 ], [ %558, %555 ], [ %.0254396, %552 ]
  %560 = load double, ptr %49, align 8
  %561 = fcmp oge double %376, %560
  %562 = select i1 %561, double %376, double %560
  store double %562, ptr %57, align 8, !tbaa !9
  %563 = load i64, ptr %7, align 8, !tbaa !5
  %.not302 = icmp eq i64 %563, 0
  br i1 %.not302, label %564, label %590

564:                                              ; preds = %559
  %565 = add nuw nsw i64 %377, 1
  store i64 %565, ptr %36, align 8, !tbaa !5
  %.not296.not = icmp slt i64 %377, %375
  %indvar.next = add i64 %indvar, 1
  br i1 %.not296.not, label %.lr.ph398, label %.loopexit, !llvm.loop !36

.loopexit:                                        ; preds = %564, %374, %373
  %566 = phi double [ %159, %374 ], [ %159, %373 ], [ %562, %564 ]
  %567 = add nuw i64 %.0263400, 1
  %exitcond473.not = icmp eq i64 %.0263400, %158
  br i1 %exitcond473.not, label %._crit_edge406.loopexit, label %.lr.ph405, !llvm.loop !37

._crit_edge406.loopexit:                          ; preds = %.loopexit
  %.pre487 = load i64, ptr %28, align 8, !tbaa !5
  br label %._crit_edge406

._crit_edge406:                                   ; preds = %._crit_edge406.loopexit, %.lr.ph416.split
  %568 = phi i64 [ %154, %.lr.ph416.split ], [ %.pre487, %._crit_edge406.loopexit ]
  %569 = phi double [ %155, %.lr.ph416.split ], [ %566, %._crit_edge406.loopexit ]
  %570 = add nuw nsw i64 %.0264411, 1
  %.not279.not = icmp slt i64 %.0264411, %568
  br i1 %.not279.not, label %.lr.ph416.split, label %._crit_edge417, !llvm.loop !38

._crit_edge417:                                   ; preds = %._crit_edge406, %.lr.ph416.split.us, %143
  %571 = phi double [ %144, %143 ], [ %144, %.lr.ph416.split.us ], [ %569, %._crit_edge406 ]
  %572 = add nuw nsw i64 %.0256428, 1
  %exitcond474.not = icmp eq i64 %572, 3
  br i1 %exitcond474.not, label %.loopexit313, label %143, !llvm.loop !40

.loopexit313:                                     ; preds = %._crit_edge417, %120
  %573 = phi double [ %111, %120 ], [ %571, %._crit_edge417 ]
  %574 = add nuw nsw i64 %.0257432, 1
  %exitcond475.not = icmp eq i64 %574, 3
  br i1 %exitcond475.not, label %575, label %110, !llvm.loop !41

575:                                              ; preds = %.loopexit313
  %576 = add nuw i64 %.0260437, 1
  %exitcond476.not = icmp eq i64 %.0260437, %106
  br i1 %exitcond476.not, label %.loopexit314, label %.lr.ph442, !llvm.loop !42

.loopexit314:                                     ; preds = %575, %104, %101
  %577 = phi double [ %94, %101 ], [ %94, %104 ], [ %573, %575 ]
  %578 = add nuw i64 %.0259447, 1
  %exitcond477.not = icmp eq i64 %.0259447, %76
  br i1 %exitcond477.not, label %._crit_edge453, label %93, !llvm.loop !43

._crit_edge453:                                   ; preds = %.loopexit314, %27
  %579 = phi double [ 0.000000e+00, %27 ], [ %577, %.loopexit314 ]
  %580 = load double, ptr %2, align 8, !tbaa !9
  %581 = fcmp olt double %579, %580
  %582 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %581, label %583, label %586

583:                                              ; preds = %._crit_edge453
  store i64 %582, ptr getelementptr inbounds (i8, ptr @zchk5_.io___347, i64 8), align 8, !tbaa !23
  %584 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___347) #4
  %585 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  br label %628

586:                                              ; preds = %._crit_edge453
  store i64 %582, ptr getelementptr inbounds (i8, ptr @zchk5_.io___348, i64 8), align 8, !tbaa !23
  %587 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___348) #4
  %588 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %589 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  br label %628

590:                                              ; preds = %559
  %591 = load i64, ptr %38, align 8, !tbaa !5
  %592 = icmp sgt i64 %591, 1
  br i1 %592, label %593, label %598

593:                                              ; preds = %590
  %594 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %594, ptr getelementptr inbounds (i8, ptr @zchk5_.io___349, i64 8), align 8, !tbaa !23
  %595 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___349) #4
  %596 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #4
  %597 = call i64 @e_wsfe() #4
  br label %598

598:                                              ; preds = %590, %593, %372, %310
  %599 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %599, ptr getelementptr inbounds (i8, ptr @zchk5_.io___350, i64 8), align 8, !tbaa !23
  %600 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___350) #4
  %601 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %602 = call i64 @e_wsfe() #4
  %603 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %75, label %604, label %616

604:                                              ; preds = %598
  store i64 %603, ptr getelementptr inbounds (i8, ptr @zchk5_.io___351, i64 8), align 8, !tbaa !23
  %605 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___351) #4
  %606 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %607 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %608 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #4
  %609 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %56, i64 noundef 1) #4
  %610 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %611 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %612 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %52, i64 noundef 8) #4
  %613 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %614 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %615 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %53, i64 noundef 8) #4
  br label %628

616:                                              ; preds = %598
  store i64 %603, ptr getelementptr inbounds (i8, ptr @zchk5_.io___352, i64 8), align 8, !tbaa !23
  %617 = call i64 @s_wsfe(ptr noundef nonnull @zchk5_.io___352) #4
  %618 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #4
  %619 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #4
  %620 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #4
  %621 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %56, i64 noundef 1) #4
  %622 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #4
  %623 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #4
  %624 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %52, i64 noundef 8) #4
  %625 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #4
  %626 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #4
  %627 = call i64 @do_fio(ptr noundef nonnull @c__2, ptr noundef nonnull %50, i64 noundef 8) #4
  br label %628

628:                                              ; preds = %604, %616, %583, %586
  %.sink506 = phi ptr [ %48, %604 ], [ %48, %616 ], [ %41, %583 ], [ %57, %586 ]
  %629 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %.sink506, i64 noundef 8) #4
  %630 = call i64 @e_wsfe() #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #4
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #4
  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, 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_zher2k(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #3

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 = { nounwind }

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

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


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