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

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

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

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

declare i64 @s_wsfe(ptr noundef) #1

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

declare i64 @e_wsfe() #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

238:                                              ; preds = %233
  br label %1115

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1095:                                             ; preds = %1088
  br label %1147

1096:                                             ; preds = %1088
  br label %1098

1097:                                             ; preds = %952
  br label %1120

1098:                                             ; preds = %1096
  br label %1099

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

1102:                                             ; preds = %299
  br label %1103

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

1106:                                             ; preds = %275
  br label %1107

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

1110:                                             ; preds = %266
  br label %1111

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

1114:                                             ; preds = %257
  br label %1115

1115:                                             ; preds = %1114, %238
  br label %1116

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

1119:                                             ; preds = %202
  br label %1120

1120:                                             ; preds = %1119, %1097
  br label %1121

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

1124:                                             ; preds = %185
  %1125 = load float, ptr %95, align 4, !tbaa !12
  %1126 = load ptr, ptr %29, align 8, !tbaa !5
  %1127 = load float, ptr %1126, align 4, !tbaa !12
  %1128 = fcmp olt float %1125, %1127
  br i1 %1128, label %1129, label %1137

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

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

1146:                                             ; preds = %1137, %1129
  br label %1216

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

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

1173:                                             ; preds = %1147
  %1174 = load i64, ptr %93, align 8, !tbaa !9
  %1175 = icmp ne i64 %1174, 0
  br i1 %1175, label %1176, label %1194

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

1194:                                             ; preds = %1173
  %1195 = load i64, ptr %94, align 8, !tbaa !9
  %1196 = icmp ne i64 %1195, 0
  br i1 %1196, label %1197, label %1213

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

1213:                                             ; preds = %1197, %1194
  br label %1214

1214:                                             ; preds = %1213, %1176
  br label %1215

1215:                                             ; preds = %1214, %1156
  br label %1216

1216:                                             ; preds = %1215, %1146
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #3
  ret i32 0
}

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

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

declare i64 @f_rew(ptr noundef) #1

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

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

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

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

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

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

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

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

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

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


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

%union.anon = type { %struct.anon }
%struct.anon = type { i64, i64, i64, i64 }
%struct.complex = type { float, float }
%struct.cilist = type { i64, i64, i64, ptr, i64 }
%struct.alist = type { i64, i64 }

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

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

declare i64 @s_wsfe(ptr noundef) local_unnamed_addr #1

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

declare i64 @e_wsfe() local_unnamed_addr #1

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

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

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

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

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

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

.lr.ph319:                                        ; preds = %._crit_edge
  %64 = getelementptr inbounds i8, ptr %0, i64 1
  %65 = getelementptr inbounds i8, ptr %0, i64 3
  %66 = getelementptr inbounds i8, ptr %29, i64 8
  %67 = getelementptr inbounds i8, ptr %41, i64 8
  %68 = getelementptr inbounds i8, ptr %41, i64 16
  %69 = getelementptr inbounds i8, ptr %41, i64 24
  %70 = getelementptr inbounds i8, ptr %41, i64 32
  %71 = getelementptr inbounds i8, ptr %41, i64 40
  %72 = getelementptr inbounds i8, ptr %41, i64 48
  %73 = getelementptr inbounds i8, ptr %41, i64 56
  %74 = getelementptr inbounds i8, ptr %41, i64 64
  %scevgep = getelementptr i8, ptr %21, i64 -4
  %scevgep367 = getelementptr i8, ptr %20, i64 -4
  %scevgep369 = getelementptr i8, ptr %21, i64 4
  %scevgep371 = getelementptr i8, ptr %20, i64 4
  %scevgep382 = getelementptr i8, ptr %18, i64 -4
  %scevgep384 = getelementptr i8, ptr %17, i64 -4
  %scevgep386 = getelementptr i8, ptr %18, i64 4
  %scevgep388 = getelementptr i8, ptr %17, i64 4
  br label %75

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

117:                                              ; preds = %112, %._crit_edge308
  %118 = phi float [ %113, %112 ], [ %479, %._crit_edge308 ]
  %.0230309 = phi i64 [ 1, %112 ], [ %480, %._crit_edge308 ]
  %119 = add nsw i64 %.0230309, -1
  %120 = getelementptr inbounds [2 x i8], ptr @cchk3_.ichd, i64 0, i64 %119
  %121 = load i8, ptr %120, align 1, !tbaa !5
  store i8 %121, ptr %38, align 1, !tbaa !5
  store <2 x float> zeroinitializer, ptr %45, align 8, !tbaa !10
  %122 = call i32 @cmake_(ptr noundef nonnull %64, ptr noundef nonnull %40, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %17, ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef nonnull %31, ptr noundef nonnull %42, ptr noundef nonnull %45, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %123 = load i64, ptr %12, align 8, !tbaa !8
  %.not248304 = icmp slt i64 %123, 1
  br i1 %.not248304, label %._crit_edge308, label %.lr.ph307

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

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

136:                                              ; preds = %.lr.ph307
  %137 = lshr i64 %134, 1
  %138 = getelementptr inbounds %struct.complex, ptr %50, i64 %137
  store <2 x float> zeroinitializer, ptr %138, align 4, !tbaa !10
  %139 = load i64, ptr %39, align 8
  %140 = call i64 @llvm.abs.i64(i64 %139, i1 true)
  %141 = add nsw i64 %137, -1
  %142 = mul nsw i64 %140, %141
  %143 = getelementptr %struct.complex, ptr %20, i64 %142
  store <2 x float> zeroinitializer, ptr %143, align 4, !tbaa !10
  br label %144

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

.lr.ph282.preheader:                              ; preds = %144
  %min.iters.check399 = icmp ult i64 %151, 8
  br i1 %min.iters.check399, label %.lr.ph282.preheader419, label %vector.memcheck381

vector.memcheck381:                               ; preds = %.lr.ph282.preheader
  %152 = shl i64 %151, 3
  %scevgep383 = getelementptr i8, ptr %scevgep382, i64 %152
  %scevgep385 = getelementptr i8, ptr %scevgep384, i64 %152
  %scevgep387 = getelementptr i8, ptr %18, i64 %152
  %scevgep389 = getelementptr i8, ptr %17, i64 %152
  %bound0390 = icmp ugt ptr %scevgep385, %18
  %bound1391 = icmp ugt ptr %scevgep383, %17
  %found.conflict392 = and i1 %bound0390, %bound1391
  %bound0393 = icmp ult ptr %scevgep386, %scevgep389
  %bound1394 = icmp ult ptr %scevgep388, %scevgep387
  %found.conflict395 = and i1 %bound0393, %bound1394
  %conflict.rdx396 = or i1 %found.conflict392, %found.conflict395
  br i1 %conflict.rdx396, label %.lr.ph282.preheader419, label %vector.ph400

vector.ph400:                                     ; preds = %vector.memcheck381
  %n.vec402 = and i64 %151, 9223372036854775804
  %ind.end403 = or disjoint i64 %n.vec402, 1
  br label %vector.body405

vector.body405:                                   ; preds = %vector.body405, %vector.ph400
  %index406 = phi i64 [ 0, %vector.ph400 ], [ %index.next416, %vector.body405 ]
  %153 = or disjoint i64 %index406, 3
  %154 = getelementptr %struct.complex, ptr %17, i64 %index406
  %155 = getelementptr inbounds %struct.complex, ptr %52, i64 %153
  %wide.vec408 = load <4 x float>, ptr %154, align 4, !tbaa !10
  %wide.vec409 = load <4 x float>, ptr %155, align 4, !tbaa !10
  %156 = getelementptr %struct.complex, ptr %18, i64 %index406
  %157 = getelementptr inbounds %struct.complex, ptr %51, i64 %153
  store <4 x float> %wide.vec408, ptr %156, align 4, !tbaa !10
  store <4 x float> %wide.vec409, ptr %157, align 4, !tbaa !10
  %index.next416 = add nuw i64 %index406, 4
  %158 = icmp eq i64 %index.next416, %n.vec402
  br i1 %158, label %middle.block397, label %vector.body405, !llvm.loop !14

middle.block397:                                  ; preds = %vector.body405
  %cmp.n417 = icmp eq i64 %151, %n.vec402
  br i1 %cmp.n417, label %._crit_edge283, label %.lr.ph282.preheader419

.lr.ph282.preheader419:                           ; preds = %middle.block397, %vector.memcheck381, %.lr.ph282.preheader
  %storemerge249280.ph = phi i64 [ 1, %vector.memcheck381 ], [ 1, %.lr.ph282.preheader ], [ %ind.end403, %middle.block397 ]
  %159 = add nuw i64 %151, 1
  %160 = sub i64 %159, %storemerge249280.ph
  %161 = sub i64 %151, %storemerge249280.ph
  %xtraiter = and i64 %160, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph282.prol.loopexit, label %.lr.ph282.prol

.lr.ph282.prol:                                   ; preds = %.lr.ph282.preheader419, %.lr.ph282.prol
  %storemerge249280.prol = phi i64 [ %165, %.lr.ph282.prol ], [ %storemerge249280.ph, %.lr.ph282.preheader419 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph282.prol ], [ 0, %.lr.ph282.preheader419 ]
  %162 = getelementptr inbounds %struct.complex, ptr %52, i64 %storemerge249280.prol
  %163 = getelementptr inbounds %struct.complex, ptr %51, i64 %storemerge249280.prol
  %164 = load <2 x float>, ptr %162, align 4, !tbaa !10
  store <2 x float> %164, ptr %163, align 4, !tbaa !10
  %165 = add nuw i64 %storemerge249280.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.lr.ph282.prol.loopexit, label %.lr.ph282.prol, !llvm.loop !17

.lr.ph282.prol.loopexit:                          ; preds = %.lr.ph282.prol, %.lr.ph282.preheader419
  %storemerge249280.unr = phi i64 [ %storemerge249280.ph, %.lr.ph282.preheader419 ], [ %165, %.lr.ph282.prol ]
  %166 = icmp ult i64 %161, 3
  br i1 %166, label %._crit_edge283, label %.lr.ph282

.lr.ph282:                                        ; preds = %.lr.ph282.prol.loopexit, %.lr.ph282
  %storemerge249280 = phi i64 [ %181, %.lr.ph282 ], [ %storemerge249280.unr, %.lr.ph282.prol.loopexit ]
  %167 = getelementptr inbounds %struct.complex, ptr %52, i64 %storemerge249280
  %168 = getelementptr inbounds %struct.complex, ptr %51, i64 %storemerge249280
  %169 = load <2 x float>, ptr %167, align 4, !tbaa !10
  store <2 x float> %169, ptr %168, align 4, !tbaa !10
  %170 = getelementptr %struct.complex, ptr %17, i64 %storemerge249280
  %171 = getelementptr %struct.complex, ptr %18, i64 %storemerge249280
  %172 = load <2 x float>, ptr %170, align 4, !tbaa !10
  store <2 x float> %172, ptr %171, align 4, !tbaa !10
  %173 = add nuw i64 %storemerge249280, 2
  %174 = getelementptr inbounds %struct.complex, ptr %52, i64 %173
  %175 = getelementptr inbounds %struct.complex, ptr %51, i64 %173
  %176 = load <2 x float>, ptr %174, align 4, !tbaa !10
  store <2 x float> %176, ptr %175, align 4, !tbaa !10
  %177 = add nuw i64 %storemerge249280, 3
  %178 = getelementptr inbounds %struct.complex, ptr %52, i64 %177
  %179 = getelementptr inbounds %struct.complex, ptr %51, i64 %177
  %180 = load <2 x float>, ptr %178, align 4, !tbaa !10
  store <2 x float> %180, ptr %179, align 4, !tbaa !10
  %181 = add nuw i64 %storemerge249280, 4
  %exitcond.not.3 = icmp eq i64 %177, %151
  br i1 %exitcond.not.3, label %._crit_edge283, label %.lr.ph282, !llvm.loop !19

._crit_edge283:                                   ; preds = %.lr.ph282.prol.loopexit, %.lr.ph282, %middle.block397
  store i64 %151, ptr %28, align 8, !tbaa !8
  br label %182

182:                                              ; preds = %._crit_edge283, %144
  %183 = load i64, ptr %36, align 8, !tbaa !8
  %184 = load i64, ptr %34, align 8, !tbaa !8
  store i64 %184, ptr %27, align 8, !tbaa !8
  %.not252285 = icmp slt i64 %184, 1
  br i1 %.not252285, label %216, label %.lr.ph288.preheader

.lr.ph288.preheader:                              ; preds = %182
  %185 = add nuw i64 %184, 1
  %min.iters.check = icmp ult i64 %184, 8
  br i1 %min.iters.check, label %.lr.ph288.preheader418, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph288.preheader
  %186 = shl i64 %184, 3
  %scevgep366 = getelementptr i8, ptr %scevgep, i64 %186
  %scevgep368 = getelementptr i8, ptr %scevgep367, i64 %186
  %scevgep370 = getelementptr i8, ptr %21, i64 %186
  %scevgep372 = getelementptr i8, ptr %20, i64 %186
  %bound0 = icmp ugt ptr %scevgep368, %21
  %bound1 = icmp ugt ptr %scevgep366, %20
  %found.conflict = and i1 %bound0, %bound1
  %bound0373 = icmp ult ptr %scevgep369, %scevgep372
  %bound1374 = icmp ult ptr %scevgep371, %scevgep370
  %found.conflict375 = and i1 %bound0373, %bound1374
  %conflict.rdx = or i1 %found.conflict, %found.conflict375
  br i1 %conflict.rdx, label %.lr.ph288.preheader418, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %184, 9223372036854775804
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %187 = or disjoint i64 %index, 3
  %188 = getelementptr %struct.complex, ptr %20, i64 %index
  %189 = getelementptr inbounds %struct.complex, ptr %54, i64 %187
  %wide.vec = load <4 x float>, ptr %188, align 4, !tbaa !10
  %wide.vec376 = load <4 x float>, ptr %189, align 4, !tbaa !10
  %190 = getelementptr %struct.complex, ptr %21, i64 %index
  %191 = getelementptr inbounds %struct.complex, ptr %53, i64 %187
  store <4 x float> %wide.vec, ptr %190, align 4, !tbaa !10
  store <4 x float> %wide.vec376, ptr %191, align 4, !tbaa !10
  %index.next = add nuw i64 %index, 4
  %192 = icmp eq i64 %index.next, %n.vec
  br i1 %192, label %middle.block, label %vector.body, !llvm.loop !20

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %184, %n.vec
  br i1 %cmp.n, label %._crit_edge289, label %.lr.ph288.preheader418

.lr.ph288.preheader418:                           ; preds = %middle.block, %vector.memcheck, %.lr.ph288.preheader
  %storemerge251286.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph288.preheader ], [ %ind.end, %middle.block ]
  %193 = add nuw i64 %184, 1
  %194 = sub i64 %193, %storemerge251286.ph
  %195 = sub i64 %184, %storemerge251286.ph
  %xtraiter432 = and i64 %194, 3
  %lcmp.mod433.not = icmp eq i64 %xtraiter432, 0
  br i1 %lcmp.mod433.not, label %.lr.ph288.prol.loopexit, label %.lr.ph288.prol

.lr.ph288.prol:                                   ; preds = %.lr.ph288.preheader418, %.lr.ph288.prol
  %storemerge251286.prol = phi i64 [ %199, %.lr.ph288.prol ], [ %storemerge251286.ph, %.lr.ph288.preheader418 ]
  %prol.iter434 = phi i64 [ %prol.iter434.next, %.lr.ph288.prol ], [ 0, %.lr.ph288.preheader418 ]
  %196 = getelementptr inbounds %struct.complex, ptr %54, i64 %storemerge251286.prol
  %197 = getelementptr inbounds %struct.complex, ptr %53, i64 %storemerge251286.prol
  %198 = load <2 x float>, ptr %196, align 4, !tbaa !10
  store <2 x float> %198, ptr %197, align 4, !tbaa !10
  %199 = add nuw i64 %storemerge251286.prol, 1
  %prol.iter434.next = add i64 %prol.iter434, 1
  %prol.iter434.cmp.not = icmp eq i64 %prol.iter434.next, %xtraiter432
  br i1 %prol.iter434.cmp.not, label %.lr.ph288.prol.loopexit, label %.lr.ph288.prol, !llvm.loop !21

.lr.ph288.prol.loopexit:                          ; preds = %.lr.ph288.prol, %.lr.ph288.preheader418
  %storemerge251286.unr = phi i64 [ %storemerge251286.ph, %.lr.ph288.preheader418 ], [ %199, %.lr.ph288.prol ]
  %200 = icmp ult i64 %195, 3
  br i1 %200, label %._crit_edge289, label %.lr.ph288

.lr.ph288:                                        ; preds = %.lr.ph288.prol.loopexit, %.lr.ph288
  %storemerge251286 = phi i64 [ %215, %.lr.ph288 ], [ %storemerge251286.unr, %.lr.ph288.prol.loopexit ]
  %201 = getelementptr inbounds %struct.complex, ptr %54, i64 %storemerge251286
  %202 = getelementptr inbounds %struct.complex, ptr %53, i64 %storemerge251286
  %203 = load <2 x float>, ptr %201, align 4, !tbaa !10
  store <2 x float> %203, ptr %202, align 4, !tbaa !10
  %204 = getelementptr %struct.complex, ptr %20, i64 %storemerge251286
  %205 = getelementptr %struct.complex, ptr %21, i64 %storemerge251286
  %206 = load <2 x float>, ptr %204, align 4, !tbaa !10
  store <2 x float> %206, ptr %205, align 4, !tbaa !10
  %207 = add nuw i64 %storemerge251286, 2
  %208 = getelementptr inbounds %struct.complex, ptr %54, i64 %207
  %209 = getelementptr inbounds %struct.complex, ptr %53, i64 %207
  %210 = load <2 x float>, ptr %208, align 4, !tbaa !10
  store <2 x float> %210, ptr %209, align 4, !tbaa !10
  %211 = add nuw i64 %storemerge251286, 3
  %212 = getelementptr inbounds %struct.complex, ptr %54, i64 %211
  %213 = getelementptr inbounds %struct.complex, ptr %53, i64 %211
  %214 = load <2 x float>, ptr %212, align 4, !tbaa !10
  store <2 x float> %214, ptr %213, align 4, !tbaa !10
  %215 = add nuw i64 %storemerge251286, 4
  %exitcond327.not.3 = icmp eq i64 %211, %184
  br i1 %exitcond327.not.3, label %._crit_edge289, label %.lr.ph288, !llvm.loop !22

._crit_edge289:                                   ; preds = %.lr.ph288.prol.loopexit, %.lr.ph288, %middle.block
  store i64 %184, ptr %28, align 8, !tbaa !8
  br label %216

216:                                              ; preds = %._crit_edge289, %182
  %storemerge251.lcssa = phi i64 [ %185, %._crit_edge289 ], [ 1, %182 ]
  store i64 %storemerge251.lcssa, ptr %30, align 8, !tbaa !8
  %217 = load i64, ptr %39, align 8, !tbaa !8
  %218 = call i64 @s_cmp(ptr noundef nonnull %65, ptr noundef nonnull @.str.9, i64 noundef 2, i64 noundef 2) #5
  %219 = icmp eq i64 %218, 0
  br i1 %219, label %220, label %286

220:                                              ; preds = %216
  br i1 %57, label %221, label %242

221:                                              ; preds = %220
  %222 = load i64, ptr %5, align 8, !tbaa !8
  %.not263 = icmp eq i64 %222, 0
  br i1 %.not263, label %235, label %223

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

235:                                              ; preds = %223, %221
  %236 = load i64, ptr %6, align 8, !tbaa !8
  %.not264 = icmp eq i64 %236, 0
  br i1 %.not264, label %240, label %237

237:                                              ; preds = %235
  store i64 0, ptr %29, align 8, !tbaa !26
  %238 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %238, ptr %66, align 8, !tbaa !28
  %239 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %240

240:                                              ; preds = %237, %235
  %241 = call i32 @f2c_ctrmv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef %17, ptr noundef nonnull %36, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %355

242:                                              ; preds = %220
  br i1 %58, label %243, label %265

243:                                              ; preds = %242
  %244 = load i64, ptr %5, align 8, !tbaa !8
  %.not261 = icmp eq i64 %244, 0
  br i1 %.not261, label %258, label %245

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

258:                                              ; preds = %245, %243
  %259 = load i64, ptr %6, align 8, !tbaa !8
  %.not262 = icmp eq i64 %259, 0
  br i1 %.not262, label %263, label %260

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

263:                                              ; preds = %260, %258
  %264 = call i32 @f2c_ctbmv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef %17, ptr noundef nonnull %36, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %355

265:                                              ; preds = %242
  br i1 %59, label %266, label %355

266:                                              ; preds = %265
  %267 = load i64, ptr %5, align 8, !tbaa !8
  %.not259 = icmp eq i64 %267, 0
  br i1 %.not259, label %279, label %268

268:                                              ; preds = %266
  %269 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %269, ptr getelementptr inbounds (i8, ptr @cchk3_.io___241, i64 8), align 8, !tbaa !23
  %270 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___241) #5
  %271 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %272 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %273 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %274 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %275 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %276 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %277 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %278 = call i64 @e_wsfe() #5
  br label %279

279:                                              ; preds = %268, %266
  %280 = load i64, ptr %6, align 8, !tbaa !8
  %.not260 = icmp eq i64 %280, 0
  br i1 %.not260, label %284, label %281

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

284:                                              ; preds = %281, %279
  %285 = call i32 @f2c_ctpmv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef %17, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %355

286:                                              ; preds = %216
  %287 = call i64 @s_cmp(ptr noundef nonnull %65, ptr noundef nonnull @.str.10, i64 noundef 2, i64 noundef 2) #5
  %288 = icmp eq i64 %287, 0
  br i1 %288, label %289, label %355

289:                                              ; preds = %286
  br i1 %57, label %290, label %311

290:                                              ; preds = %289
  %291 = load i64, ptr %5, align 8, !tbaa !8
  %.not257 = icmp eq i64 %291, 0
  br i1 %.not257, label %304, label %292

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

304:                                              ; preds = %292, %290
  %305 = load i64, ptr %6, align 8, !tbaa !8
  %.not258 = icmp eq i64 %305, 0
  br i1 %.not258, label %309, label %306

306:                                              ; preds = %304
  store i64 0, ptr %29, align 8, !tbaa !26
  %307 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %307, ptr %66, align 8, !tbaa !28
  %308 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %309

309:                                              ; preds = %306, %304
  %310 = call i32 @f2c_ctrsv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef %17, ptr noundef nonnull %36, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %355

311:                                              ; preds = %289
  br i1 %58, label %312, label %334

312:                                              ; preds = %311
  %313 = load i64, ptr %5, align 8, !tbaa !8
  %.not255 = icmp eq i64 %313, 0
  br i1 %.not255, label %327, label %314

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

327:                                              ; preds = %314, %312
  %328 = load i64, ptr %6, align 8, !tbaa !8
  %.not256 = icmp eq i64 %328, 0
  br i1 %.not256, label %332, label %329

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

332:                                              ; preds = %329, %327
  %333 = call i32 @f2c_ctbsv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef %17, ptr noundef nonnull %36, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %355

334:                                              ; preds = %311
  br i1 %59, label %335, label %355

335:                                              ; preds = %334
  %336 = load i64, ptr %5, align 8, !tbaa !8
  %.not253 = icmp eq i64 %336, 0
  br i1 %.not253, label %348, label %337

337:                                              ; preds = %335
  %338 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %338, ptr getelementptr inbounds (i8, ptr @cchk3_.io___244, i64 8), align 8, !tbaa !23
  %339 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___244) #5
  %340 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %341 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %342 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %343 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %344 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %345 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %346 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  %347 = call i64 @e_wsfe() #5
  br label %348

348:                                              ; preds = %337, %335
  %349 = load i64, ptr %6, align 8, !tbaa !8
  %.not254 = icmp eq i64 %349, 0
  br i1 %.not254, label %353, label %350

350:                                              ; preds = %348
  store i64 0, ptr %29, align 8, !tbaa !26
  %351 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %351, ptr %66, align 8, !tbaa !28
  %352 = call i64 @f_rew(ptr noundef nonnull %29) #5
  br label %353

353:                                              ; preds = %350, %348
  %354 = call i32 @f2c_ctpsv(ptr noundef nonnull %40, ptr noundef nonnull %43, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef %17, ptr noundef %20, ptr noundef nonnull %39) #5
  br label %355

355:                                              ; preds = %286, %332, %353, %334, %309, %240, %265, %284, %263
  %356 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !5
  %.not265 = icmp eq i64 %356, 0
  br i1 %.not265, label %357, label %361

357:                                              ; preds = %355
  %358 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %358, ptr getelementptr inbounds (i8, ptr @cchk3_.io___245, i64 8), align 8, !tbaa !23
  %359 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___245) #5
  %360 = call i64 @e_wsfe() #5
  br label %.loopexit274.sink.split

361:                                              ; preds = %355
  %362 = load i8, ptr %40, align 1, !tbaa !5
  %363 = icmp eq i8 %362, %147
  %364 = zext i1 %363 to i64
  store i64 %364, ptr %41, align 16, !tbaa !8
  %365 = load i8, ptr %43, align 1, !tbaa !5
  %366 = icmp eq i8 %365, %148
  %367 = zext i1 %366 to i64
  store i64 %367, ptr %67, align 8, !tbaa !8
  %368 = load i8, ptr %38, align 1, !tbaa !5
  %369 = icmp eq i8 %368, %149
  %370 = zext i1 %369 to i64
  store i64 %370, ptr %68, align 16, !tbaa !8
  %371 = load i64, ptr %32, align 8, !tbaa !8
  %372 = icmp eq i64 %134, %371
  %373 = zext i1 %372 to i64
  store i64 %373, ptr %69, align 8, !tbaa !8
  br i1 %57, label %374, label %389

374:                                              ; preds = %361
  %375 = call i64 @lce_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %35)
  store i64 %375, ptr %70, align 16, !tbaa !8
  %376 = load i64, ptr %36, align 8, !tbaa !8
  %377 = icmp eq i64 %183, %376
  %378 = zext i1 %377 to i64
  store i64 %378, ptr %71, align 8, !tbaa !8
  br i1 %106, label %379, label %381

379:                                              ; preds = %374
  %380 = call i64 @lce_(ptr noundef %21, ptr noundef %20, ptr noundef nonnull %34)
  br label %385

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

385:                                              ; preds = %381, %379
  %storemerge338 = phi i64 [ %384, %381 ], [ %380, %379 ]
  store i64 %storemerge338, ptr %72, align 16, !tbaa !8
  %386 = load i64, ptr %39, align 8, !tbaa !8
  %387 = icmp eq i64 %217, %386
  %388 = zext i1 %387 to i64
  store i64 %388, ptr %73, align 8, !tbaa !8
  br label %.lr.ph295.preheader

389:                                              ; preds = %361
  br i1 %58, label %390, label %408

390:                                              ; preds = %389
  %391 = load i64, ptr %31, align 8, !tbaa !8
  %392 = icmp eq i64 %150, %391
  %393 = zext i1 %392 to i64
  store i64 %393, ptr %70, align 16, !tbaa !8
  %394 = call i64 @lce_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %35)
  store i64 %394, ptr %71, align 8, !tbaa !8
  %395 = load i64, ptr %36, align 8, !tbaa !8
  %396 = icmp eq i64 %183, %395
  %397 = zext i1 %396 to i64
  store i64 %397, ptr %72, align 16, !tbaa !8
  br i1 %106, label %398, label %400

398:                                              ; preds = %390
  %399 = call i64 @lce_(ptr noundef %21, ptr noundef %20, ptr noundef nonnull %34)
  br label %404

400:                                              ; preds = %390
  %401 = load i64, ptr %39, align 8
  %402 = call i64 @llvm.abs.i64(i64 %401, i1 true)
  store i64 %402, ptr %27, align 8, !tbaa !8
  %403 = call i64 @lceres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef %21, ptr noundef %20, ptr noundef nonnull %27, i64 noundef 2, i64 noundef 1)
  br label %404

404:                                              ; preds = %400, %398
  %storemerge337 = phi i64 [ %403, %400 ], [ %399, %398 ]
  store i64 %storemerge337, ptr %73, align 8, !tbaa !8
  %405 = load i64, ptr %39, align 8, !tbaa !8
  %406 = icmp eq i64 %217, %405
  %407 = zext i1 %406 to i64
  store i64 %407, ptr %74, align 16, !tbaa !8
  br label %.lr.ph295.preheader

408:                                              ; preds = %389
  br i1 %59, label %409, label %.lr.ph295.preheader

409:                                              ; preds = %408
  %410 = call i64 @lce_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %35)
  store i64 %410, ptr %70, align 16, !tbaa !8
  br i1 %106, label %411, label %413

411:                                              ; preds = %409
  %412 = call i64 @lce_(ptr noundef %21, ptr noundef %20, ptr noundef nonnull %34)
  br label %417

413:                                              ; preds = %409
  %414 = load i64, ptr %39, align 8
  %415 = call i64 @llvm.abs.i64(i64 %414, i1 true)
  store i64 %415, ptr %27, align 8, !tbaa !8
  %416 = call i64 @lceres_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef %21, ptr noundef %20, ptr noundef nonnull %27, i64 noundef 2, i64 noundef 1)
  br label %417

417:                                              ; preds = %413, %411
  %storemerge = phi i64 [ %416, %413 ], [ %412, %411 ]
  store i64 %storemerge, ptr %71, align 8, !tbaa !8
  %418 = load i64, ptr %39, align 8, !tbaa !8
  %419 = icmp eq i64 %217, %418
  %420 = zext i1 %419 to i64
  store i64 %420, ptr %72, align 16, !tbaa !8
  br label %.lr.ph295.preheader

.lr.ph295.preheader:                              ; preds = %385, %408, %417, %404
  store i64 %.0, ptr %27, align 8, !tbaa !8
  store i64 1, ptr %30, align 8, !tbaa !8
  br label %.lr.ph295

.lr.ph295:                                        ; preds = %.lr.ph295.preheader, %430
  %421 = phi i64 [ %431, %430 ], [ %.0, %.lr.ph295.preheader ]
  %422 = phi i64 [ %433, %430 ], [ 1, %.lr.ph295.preheader ]
  %.0227293 = phi i1 [ %424, %430 ], [ true, %.lr.ph295.preheader ]
  %storemerge266292 = phi i64 [ %432, %430 ], [ 0, %.lr.ph295.preheader ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %41, i64 0, i64 %storemerge266292
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !8
  %423 = icmp ne i64 %.pre, 0
  %424 = and i1 %.0227293, %423
  %.not273 = icmp eq i64 %.pre, 0
  br i1 %.not273, label %425, label %430

425:                                              ; preds = %.lr.ph295
  %426 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %426, ptr getelementptr inbounds (i8, ptr @cchk3_.io___248, i64 8), align 8, !tbaa !23
  %427 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___248) #5
  %428 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %30, i64 noundef 8) #5
  %429 = call i64 @e_wsfe() #5
  %.pre335 = load i64, ptr %30, align 8, !tbaa !8
  %.pre336 = load i64, ptr %27, align 8, !tbaa !8
  br label %430

430:                                              ; preds = %.lr.ph295, %425
  %431 = phi i64 [ %421, %.lr.ph295 ], [ %.pre336, %425 ]
  %432 = phi i64 [ %422, %.lr.ph295 ], [ %.pre335, %425 ]
  %433 = add nsw i64 %432, 1
  store i64 %433, ptr %30, align 8, !tbaa !8
  %.not267.not = icmp slt i64 %432, %431
  br i1 %.not267.not, label %.lr.ph295, label %._crit_edge296, !llvm.loop !29

._crit_edge296:                                   ; preds = %430
  br i1 %424, label %434, label %.loopexit274.sink.split

434:                                              ; preds = %._crit_edge296
  br i1 %106, label %.loopexit, label %435

435:                                              ; preds = %434
  %436 = call i64 @s_cmp(ptr noundef nonnull %65, ptr noundef nonnull @.str.9, i64 noundef 2, i64 noundef 2) #5
  %437 = icmp eq i64 %436, 0
  br i1 %437, label %438, label %440

438:                                              ; preds = %435
  %439 = call i32 @cmvch_(ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull @c_b2, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %19, ptr noundef nonnull %39, ptr noundef nonnull @c_b1, ptr noundef %24, ptr noundef nonnull %39, ptr noundef %22, ptr noundef %23, ptr noundef %20, ptr noundef %1, ptr noundef nonnull %37, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1)
  br label %474

440:                                              ; preds = %435
  %441 = call i64 @s_cmp(ptr noundef nonnull %65, ptr noundef nonnull @.str.10, i64 noundef 2, i64 noundef 2) #5
  %442 = icmp eq i64 %441, 0
  br i1 %442, label %443, label %474

443:                                              ; preds = %440
  %444 = load i64, ptr %32, align 8, !tbaa !8
  store i64 %444, ptr %27, align 8, !tbaa !8
  %.not270298 = icmp slt i64 %444, 1
  br i1 %.not270298, label %472, label %.lr.ph301

.lr.ph301:                                        ; preds = %443
  %445 = load i64, ptr %39, align 8
  %446 = call i64 @llvm.abs.i64(i64 %445, i1 true)
  %447 = add nuw i64 %444, 1
  %xtraiter435 = and i64 %444, 1
  %448 = icmp eq i64 %444, 1
  br i1 %448, label %._crit_edge302.unr-lcssa, label %.lr.ph301.new

.lr.ph301.new:                                    ; preds = %.lr.ph301
  %unroll_iter = and i64 %444, 9223372036854775806
  br label %449

449:                                              ; preds = %449, %.lr.ph301.new
  %storemerge269299 = phi i64 [ 1, %.lr.ph301.new ], [ %463, %449 ]
  %niter = phi i64 [ 0, %.lr.ph301.new ], [ %niter.next.1, %449 ]
  %450 = add nsw i64 %storemerge269299, -1
  %451 = mul nsw i64 %446, %450
  %452 = getelementptr %struct.complex, ptr %20, i64 %451
  %453 = getelementptr inbounds %struct.complex, ptr %49, i64 %storemerge269299
  %454 = load <2 x float>, ptr %452, align 4, !tbaa !10
  store <2 x float> %454, ptr %453, align 4, !tbaa !10
  %455 = getelementptr inbounds %struct.complex, ptr %50, i64 %storemerge269299
  %456 = load <2 x float>, ptr %455, align 4, !tbaa !10
  store <2 x float> %456, ptr %452, align 4, !tbaa !10
  %457 = mul nsw i64 %446, %storemerge269299
  %458 = getelementptr %struct.complex, ptr %20, i64 %457
  %459 = getelementptr %struct.complex, ptr %24, i64 %storemerge269299
  %460 = load <2 x float>, ptr %458, align 4, !tbaa !10
  store <2 x float> %460, ptr %459, align 4, !tbaa !10
  %461 = getelementptr %struct.complex, ptr %19, i64 %storemerge269299
  %462 = load <2 x float>, ptr %461, align 4, !tbaa !10
  store <2 x float> %462, ptr %458, align 4, !tbaa !10
  %463 = add nuw i64 %storemerge269299, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge302.unr-lcssa, label %449, !llvm.loop !30

._crit_edge302.unr-lcssa:                         ; preds = %449, %.lr.ph301
  %.lcssa421.ph = phi i64 [ poison, %.lr.ph301 ], [ %457, %449 ]
  %storemerge269299.unr = phi i64 [ 1, %.lr.ph301 ], [ %463, %449 ]
  %lcmp.mod436.not = icmp eq i64 %xtraiter435, 0
  br i1 %lcmp.mod436.not, label %._crit_edge302, label %._crit_edge302.epilog-lcssa

._crit_edge302.epilog-lcssa:                      ; preds = %._crit_edge302.unr-lcssa
  %464 = add nsw i64 %storemerge269299.unr, -1
  %465 = mul nsw i64 %446, %464
  %466 = getelementptr %struct.complex, ptr %20, i64 %465
  %467 = getelementptr inbounds %struct.complex, ptr %49, i64 %storemerge269299.unr
  %468 = load <2 x float>, ptr %466, align 4, !tbaa !10
  store <2 x float> %468, ptr %467, align 4, !tbaa !10
  %469 = getelementptr inbounds %struct.complex, ptr %50, i64 %storemerge269299.unr
  %470 = load <2 x float>, ptr %469, align 4, !tbaa !10
  store <2 x float> %470, ptr %466, align 4, !tbaa !10
  br label %._crit_edge302

._crit_edge302:                                   ; preds = %._crit_edge302.unr-lcssa, %._crit_edge302.epilog-lcssa
  %.lcssa421 = phi i64 [ %.lcssa421.ph, %._crit_edge302.unr-lcssa ], [ %465, %._crit_edge302.epilog-lcssa ]
  %471 = add nsw i64 %.lcssa421, 1
  store i64 %471, ptr %28, align 8, !tbaa !8
  br label %472

472:                                              ; preds = %._crit_edge302, %443
  %storemerge269.lcssa = phi i64 [ %447, %._crit_edge302 ], [ 1, %443 ]
  store i64 %storemerge269.lcssa, ptr %30, align 8, !tbaa !8
  %473 = call i32 @cmvch_(ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull @c_b2, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %24, ptr noundef nonnull %39, ptr noundef nonnull @c_b1, ptr noundef %19, ptr noundef nonnull %39, ptr noundef %22, ptr noundef %23, ptr noundef %20, ptr noundef %1, ptr noundef nonnull %37, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_false, i64 noundef 1)
  br label %474

474:                                              ; preds = %440, %472, %438
  %475 = load float, ptr %37, align 4
  %476 = fcmp oge float %126, %475
  %477 = select i1 %476, float %126, float %475
  store float %477, ptr %44, align 4, !tbaa !10
  %478 = load i64, ptr %7, align 8, !tbaa !8
  %.not271 = icmp eq i64 %478, 0
  br i1 %.not271, label %124, label %.loopexit274

._crit_edge308:                                   ; preds = %124, %117
  %479 = phi float [ %118, %117 ], [ %477, %124 ]
  %480 = add nuw nsw i64 %.0230309, 1
  %exitcond330.not = icmp eq i64 %480, 3
  br i1 %exitcond330.not, label %481, label %117, !llvm.loop !31

481:                                              ; preds = %._crit_edge308
  %482 = add nuw nsw i64 %.0229310, 1
  %exitcond331.not = icmp eq i64 %482, 4
  br i1 %exitcond331.not, label %483, label %112, !llvm.loop !32

483:                                              ; preds = %481
  %484 = add nuw nsw i64 %.0228311, 1
  %exitcond332.not = icmp eq i64 %484, 3
  br i1 %exitcond332.not, label %.loopexit275, label %107, !llvm.loop !33

.loopexit275:                                     ; preds = %483, %95
  %485 = phi float [ %81, %95 ], [ %479, %483 ]
  %486 = add nuw i64 %.0234313, 1
  %exitcond333.not = icmp eq i64 %.0234313, %.0232341
  br i1 %exitcond333.not, label %.loopexit, label %.lr.ph315, !llvm.loop !34

.loopexit:                                        ; preds = %.loopexit275, %434, %79
  %487 = phi float [ %76, %79 ], [ %126, %434 ], [ %485, %.loopexit275 ]
  %488 = add nuw i64 %.0233317, 1
  %exitcond334.not = icmp eq i64 %.0233317, %63
  br i1 %exitcond334.not, label %._crit_edge320, label %75, !llvm.loop !35

._crit_edge320:                                   ; preds = %.loopexit, %._crit_edge
  %489 = phi float [ 0.000000e+00, %._crit_edge ], [ %487, %.loopexit ]
  %490 = load float, ptr %2, align 4, !tbaa !10
  %491 = fcmp olt float %489, %490
  %492 = load i64, ptr %3, align 8, !tbaa !8
  br i1 %491, label %493, label %497

493:                                              ; preds = %._crit_edge320
  store i64 %492, ptr getelementptr inbounds (i8, ptr @cchk3_.io___250, i64 8), align 8, !tbaa !23
  %494 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___250) #5
  %495 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %496 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  br label %.sink.split

497:                                              ; preds = %._crit_edge320
  store i64 %492, ptr getelementptr inbounds (i8, ptr @cchk3_.io___251, i64 8), align 8, !tbaa !23
  %498 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___251) #5
  %499 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %500 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %501 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %44, i64 noundef 4) #5
  br label %.sink.split

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

.loopexit274:                                     ; preds = %474, %.loopexit274.sink.split
  %502 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %502, ptr getelementptr inbounds (i8, ptr @cchk3_.io___252, i64 8), align 8, !tbaa !23
  %503 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___252) #5
  %504 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %505 = call i64 @e_wsfe() #5
  br i1 %57, label %506, label %517

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

517:                                              ; preds = %.loopexit274
  br i1 %58, label %518, label %530

518:                                              ; preds = %517
  %519 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %519, ptr getelementptr inbounds (i8, ptr @cchk3_.io___254, i64 8), align 8, !tbaa !23
  %520 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___254) #5
  %521 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %522 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %523 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %524 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %525 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %526 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %527 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #5
  %528 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %529 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  br label %.sink.split

530:                                              ; preds = %517
  br i1 %59, label %531, label %542

531:                                              ; preds = %530
  %532 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %532, ptr getelementptr inbounds (i8, ptr @cchk3_.io___255, i64 8), align 8, !tbaa !23
  %533 = call i64 @s_wsfe(ptr noundef nonnull @cchk3_.io___255) #5
  %534 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %33, i64 noundef 8) #5
  %535 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %536 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 1) #5
  %537 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #5
  %538 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 1) #5
  %539 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #5
  %540 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %39, i64 noundef 8) #5
  br label %.sink.split

.sink.split:                                      ; preds = %497, %493, %518, %531, %506
  %541 = call i64 @e_wsfe() #5
  br label %542

542:                                              ; preds = %.sink.split, %530
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  ret i32 0
}

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

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

declare i64 @f_rew(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local i64 @lceres_(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_ctrmv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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


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