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

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

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

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local global %union.anon, align 8
@c_b121 = external hidden global double, align 8
@c_b133 = external hidden global double, align 8
@c_true = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@c__0 = external hidden global i64, align 8
@dchk3_.ichu = external hidden global [2 x i8], align 1
@dchk3_.icht = external hidden global [3 x i8], align 1
@dchk3_.ichd = external hidden global [2 x i8], align 1
@dchk3_.io___239 = external hidden global %struct.cilist, align 8
@dchk3_.io___240 = external hidden global %struct.cilist, align 8
@dchk3_.io___241 = external hidden global %struct.cilist, align 8
@dchk3_.io___242 = external hidden global %struct.cilist, align 8
@dchk3_.io___243 = external hidden global %struct.cilist, align 8
@dchk3_.io___244 = external hidden global %struct.cilist, align 8
@dchk3_.io___245 = external hidden global %struct.cilist, align 8
@dchk3_.io___248 = external hidden global %struct.cilist, align 8
@dchk3_.io___250 = external hidden global %struct.cilist, align 8
@dchk3_.io___251 = external hidden global %struct.cilist, align 8
@dchk3_.io___252 = external hidden global %struct.cilist, align 8
@dchk3_.io___253 = external hidden global %struct.cilist, align 8
@dchk3_.io___254 = external hidden global %struct.cilist, align 8
@dchk3_.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 @dmvch_(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 @lde_(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local i32 @dchk3_(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 %struct.alist, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca 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 double, align 8
  %78 = alloca [1 x i8], align 1
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca [1 x i8], align 1
  %85 = alloca [1 x i8], align 1
  %86 = alloca [13 x i64], align 16
  %87 = alloca i64, align 8
  %88 = alloca i64, align 8
  %89 = alloca i64, align 8
  %90 = alloca [1 x i8], align 1
  %91 = alloca [1 x i8], align 1
  %92 = alloca i64, align 8
  %93 = alloca i64, align 8
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = 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 16, ptr %60) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 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 1, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 104, ptr %86) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #3
  %97 = load ptr, ptr %36, align 8, !tbaa !5
  %98 = getelementptr inbounds i64, ptr %97, i32 -1
  store ptr %98, ptr %36, align 8, !tbaa !5
  %99 = load ptr, ptr %38, align 8, !tbaa !5
  %100 = getelementptr inbounds i64, ptr %99, i32 -1
  store ptr %100, ptr %38, align 8, !tbaa !5
  %101 = load ptr, ptr %40, align 8, !tbaa !5
  %102 = getelementptr inbounds i64, ptr %101, i32 -1
  store ptr %102, ptr %40, align 8, !tbaa !5
  %103 = load ptr, ptr %51, align 8, !tbaa !5
  %104 = getelementptr inbounds double, ptr %103, i32 -1
  store ptr %104, ptr %51, align 8, !tbaa !5
  %105 = load ptr, ptr %50, align 8, !tbaa !5
  %106 = getelementptr inbounds double, ptr %105, i32 -1
  store ptr %106, ptr %50, align 8, !tbaa !5
  %107 = load ptr, ptr %49, align 8, !tbaa !5
  %108 = getelementptr inbounds double, ptr %107, i32 -1
  store ptr %108, ptr %49, align 8, !tbaa !5
  %109 = load ptr, ptr %46, align 8, !tbaa !5
  %110 = getelementptr inbounds double, ptr %109, i32 -1
  store ptr %110, ptr %46, align 8, !tbaa !5
  %111 = load ptr, ptr %45, align 8, !tbaa !5
  %112 = getelementptr inbounds double, ptr %111, i32 -1
  store ptr %112, ptr %45, align 8, !tbaa !5
  %113 = load ptr, ptr %44, align 8, !tbaa !5
  %114 = getelementptr inbounds double, ptr %113, i32 -1
  store ptr %114, ptr %44, align 8, !tbaa !5
  %115 = load ptr, ptr %41, align 8, !tbaa !5
  %116 = load i64, ptr %115, align 8, !tbaa !9
  store i64 %116, ptr %53, align 8, !tbaa !9
  %117 = load i64, ptr %53, align 8, !tbaa !9
  %118 = add nsw i64 1, %117
  store i64 %118, ptr %54, align 8, !tbaa !9
  %119 = load i64, ptr %54, align 8, !tbaa !9
  %120 = load ptr, ptr %43, align 8, !tbaa !5
  %121 = sub i64 0, %119
  %122 = getelementptr inbounds double, ptr %120, i64 %121
  store ptr %122, ptr %43, align 8, !tbaa !5
  %123 = load ptr, ptr %48, align 8, !tbaa !5
  %124 = getelementptr inbounds double, ptr %123, i32 -1
  store ptr %124, ptr %48, align 8, !tbaa !5
  %125 = load ptr, ptr %47, align 8, !tbaa !5
  %126 = getelementptr inbounds double, ptr %125, i32 -1
  store ptr %126, ptr %47, align 8, !tbaa !5
  %127 = load ptr, ptr %27, align 8, !tbaa !5
  %128 = getelementptr inbounds i8, ptr %127, i64 2
  %129 = load i8, ptr %128, align 1, !tbaa !11
  %130 = zext i8 %129 to i32
  %131 = icmp eq i32 %130, 82
  %132 = zext i1 %131 to i32
  %133 = sext i32 %132 to i64
  store i64 %133, ptr %82, align 8, !tbaa !9
  %134 = load ptr, ptr %27, align 8, !tbaa !5
  %135 = getelementptr inbounds i8, ptr %134, i64 2
  %136 = load i8, ptr %135, align 1, !tbaa !11
  %137 = zext i8 %136 to i32
  %138 = icmp eq i32 %137, 66
  %139 = zext i1 %138 to i32
  %140 = sext i32 %139 to i64
  store i64 %140, ptr %92, align 8, !tbaa !9
  %141 = load ptr, ptr %27, align 8, !tbaa !5
  %142 = getelementptr inbounds i8, ptr %141, i64 2
  %143 = load i8, ptr %142, align 1, !tbaa !11
  %144 = zext i8 %143 to i32
  %145 = icmp eq i32 %144, 80
  %146 = zext i1 %145 to i32
  %147 = sext i32 %146 to i64
  store i64 %147, ptr %93, align 8, !tbaa !9
  %148 = load i64, ptr %82, align 8, !tbaa !9
  %149 = icmp ne i64 %148, 0
  br i1 %149, label %150, label %151

150:                                              ; preds = %26
  store i64 8, ptr %87, align 8, !tbaa !9
  br label %161

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

154:                                              ; preds = %151
  store i64 9, ptr %87, align 8, !tbaa !9
  br label %160

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

158:                                              ; preds = %155
  store i64 7, ptr %87, align 8, !tbaa !9
  br label %159

159:                                              ; preds = %158, %155
  br label %160

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

161:                                              ; preds = %160, %150
  store i64 0, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %88, align 8, !tbaa !9
  store double 0.000000e+00, ptr %94, align 8, !tbaa !12
  %162 = load ptr, ptr %41, align 8, !tbaa !5
  %163 = load i64, ptr %162, align 8, !tbaa !9
  store i64 %163, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %164

164:                                              ; preds = %172, %161
  %165 = load i64, ptr %61, align 8, !tbaa !9
  %166 = load i64, ptr %55, align 8, !tbaa !9
  %167 = icmp sle i64 %165, %166
  br i1 %167, label %168, label %175

168:                                              ; preds = %164
  %169 = load ptr, ptr %51, align 8, !tbaa !5
  %170 = load i64, ptr %61, align 8, !tbaa !9
  %171 = getelementptr inbounds double, ptr %169, i64 %170
  store double 0.000000e+00, ptr %171, align 8, !tbaa !12
  br label %172

172:                                              ; preds = %168
  %173 = load i64, ptr %61, align 8, !tbaa !9
  %174 = add nsw i64 %173, 1
  store i64 %174, ptr %61, align 8, !tbaa !9
  br label %164, !llvm.loop !14

175:                                              ; preds = %164
  %176 = load ptr, ptr %35, align 8, !tbaa !5
  %177 = load i64, ptr %176, align 8, !tbaa !9
  store i64 %177, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %178

178:                                              ; preds = %1044, %175
  %179 = load i64, ptr %66, align 8, !tbaa !9
  %180 = load i64, ptr %55, align 8, !tbaa !9
  %181 = icmp sle i64 %179, %180
  br i1 %181, label %182, label %1047

182:                                              ; preds = %178
  %183 = load ptr, ptr %36, align 8, !tbaa !5
  %184 = load i64, ptr %66, align 8, !tbaa !9
  %185 = getelementptr inbounds i64, ptr %183, i64 %184
  %186 = load i64, ptr %185, align 8, !tbaa !9
  store i64 %186, ptr %63, align 8, !tbaa !9
  %187 = load i64, ptr %92, align 8, !tbaa !9
  %188 = icmp ne i64 %187, 0
  br i1 %188, label %189, label %192

189:                                              ; preds = %182
  %190 = load ptr, ptr %37, align 8, !tbaa !5
  %191 = load i64, ptr %190, align 8, !tbaa !9
  store i64 %191, ptr %67, align 8, !tbaa !9
  br label %193

192:                                              ; preds = %182
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %193

193:                                              ; preds = %192, %189
  %194 = load i64, ptr %67, align 8, !tbaa !9
  store i64 %194, ptr %56, align 8, !tbaa !9
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %195

195:                                              ; preds = %1039, %193
  %196 = load i64, ptr %65, align 8, !tbaa !9
  %197 = load i64, ptr %56, align 8, !tbaa !9
  %198 = icmp sle i64 %196, %197
  br i1 %198, label %199, label %1042

199:                                              ; preds = %195
  %200 = load i64, ptr %92, align 8, !tbaa !9
  %201 = icmp ne i64 %200, 0
  br i1 %201, label %202, label %207

202:                                              ; preds = %199
  %203 = load ptr, ptr %38, align 8, !tbaa !5
  %204 = load i64, ptr %65, align 8, !tbaa !9
  %205 = getelementptr inbounds i64, ptr %203, i64 %204
  %206 = load i64, ptr %205, align 8, !tbaa !9
  store i64 %206, ptr %62, align 8, !tbaa !9
  br label %210

207:                                              ; preds = %199
  %208 = load i64, ptr %63, align 8, !tbaa !9
  %209 = sub nsw i64 %208, 1
  store i64 %209, ptr %62, align 8, !tbaa !9
  br label %210

210:                                              ; preds = %207, %202
  %211 = load i64, ptr %92, align 8, !tbaa !9
  %212 = icmp ne i64 %211, 0
  br i1 %212, label %213, label %216

213:                                              ; preds = %210
  %214 = load i64, ptr %62, align 8, !tbaa !9
  %215 = add nsw i64 %214, 1
  store i64 %215, ptr %74, align 8, !tbaa !9
  br label %218

216:                                              ; preds = %210
  %217 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %217, ptr %74, align 8, !tbaa !9
  br label %218

218:                                              ; preds = %216, %213
  %219 = load i64, ptr %74, align 8, !tbaa !9
  %220 = load ptr, ptr %41, align 8, !tbaa !5
  %221 = load i64, ptr %220, align 8, !tbaa !9
  %222 = icmp slt i64 %219, %221
  br i1 %222, label %223, label %226

223:                                              ; preds = %218
  %224 = load i64, ptr %74, align 8, !tbaa !9
  %225 = add nsw i64 %224, 1
  store i64 %225, ptr %74, align 8, !tbaa !9
  br label %226

226:                                              ; preds = %223, %218
  %227 = load i64, ptr %74, align 8, !tbaa !9
  %228 = load ptr, ptr %41, align 8, !tbaa !5
  %229 = load i64, ptr %228, align 8, !tbaa !9
  %230 = icmp sgt i64 %227, %229
  br i1 %230, label %231, label %232

231:                                              ; preds = %226
  br label %1038

232:                                              ; preds = %226
  %233 = load i64, ptr %93, align 8, !tbaa !9
  %234 = icmp ne i64 %233, 0
  br i1 %234, label %235, label %241

235:                                              ; preds = %232
  %236 = load i64, ptr %63, align 8, !tbaa !9
  %237 = load i64, ptr %63, align 8, !tbaa !9
  %238 = add nsw i64 %237, 1
  %239 = mul nsw i64 %236, %238
  %240 = sdiv i64 %239, 2
  store i64 %240, ptr %72, align 8, !tbaa !9
  br label %245

241:                                              ; preds = %232
  %242 = load i64, ptr %74, align 8, !tbaa !9
  %243 = load i64, ptr %63, align 8, !tbaa !9
  %244 = mul nsw i64 %242, %243
  store i64 %244, ptr %72, align 8, !tbaa !9
  br label %245

245:                                              ; preds = %241, %235
  %246 = load i64, ptr %63, align 8, !tbaa !9
  %247 = icmp sle i64 %246, 0
  %248 = zext i1 %247 to i32
  %249 = sext i32 %248 to i64
  store i64 %249, ptr %83, align 8, !tbaa !9
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %250

250:                                              ; preds = %1034, %245
  %251 = load i64, ptr %76, align 8, !tbaa !9
  %252 = icmp sle i64 %251, 2
  br i1 %252, label %253, label %1037

253:                                              ; preds = %250
  %254 = load i64, ptr %76, align 8, !tbaa !9
  %255 = sub nsw i64 %254, 1
  %256 = getelementptr inbounds [2 x i8], ptr @dchk3_.ichu, i64 0, i64 %255
  %257 = load i8, ptr %256, align 1, !tbaa !11
  %258 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  store i8 %257, ptr %258, align 1, !tbaa !11
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %259

259:                                              ; preds = %1030, %253
  %260 = load i64, ptr %75, align 8, !tbaa !9
  %261 = icmp sle i64 %260, 3
  br i1 %261, label %262, label %1033

262:                                              ; preds = %259
  %263 = load i64, ptr %75, align 8, !tbaa !9
  %264 = sub nsw i64 %263, 1
  %265 = getelementptr inbounds [3 x i8], ptr @dchk3_.icht, i64 0, i64 %264
  %266 = load i8, ptr %265, align 1, !tbaa !11
  %267 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  store i8 %266, ptr %267, align 1, !tbaa !11
  store i64 1, ptr %73, align 8, !tbaa !9
  br label %268

268:                                              ; preds = %1026, %262
  %269 = load i64, ptr %73, align 8, !tbaa !9
  %270 = icmp sle i64 %269, 2
  br i1 %270, label %271, label %1029

271:                                              ; preds = %268
  %272 = load i64, ptr %73, align 8, !tbaa !9
  %273 = sub nsw i64 %272, 1
  %274 = getelementptr inbounds [2 x i8], ptr @dchk3_.ichd, i64 0, i64 %273
  %275 = load i8, ptr %274, align 1, !tbaa !11
  %276 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  store i8 %275, ptr %276, align 1, !tbaa !11
  store double 0.000000e+00, ptr %95, align 8, !tbaa !12
  %277 = load ptr, ptr %27, align 8, !tbaa !5
  %278 = getelementptr inbounds i8, ptr %277, i64 1
  %279 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %280 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %281 = load ptr, ptr %43, align 8, !tbaa !5
  %282 = load i64, ptr %54, align 8, !tbaa !9
  %283 = getelementptr inbounds double, ptr %281, i64 %282
  %284 = load ptr, ptr %41, align 8, !tbaa !5
  %285 = load ptr, ptr %44, align 8, !tbaa !5
  %286 = getelementptr inbounds double, ptr %285, i64 1
  %287 = call i32 @dmake_(ptr noundef %278, ptr noundef %279, ptr noundef %280, ptr noundef %63, ptr noundef %63, ptr noundef %283, ptr noundef %284, ptr noundef %286, ptr noundef %74, ptr noundef %62, ptr noundef %62, ptr noundef %88, ptr noundef %95, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %288 = load ptr, ptr %39, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  store i64 %289, ptr %57, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %290

290:                                              ; preds = %1022, %271
  %291 = load i64, ptr %69, align 8, !tbaa !9
  %292 = load i64, ptr %57, align 8, !tbaa !9
  %293 = icmp sle i64 %291, %292
  br i1 %293, label %294, label %1025

294:                                              ; preds = %290
  %295 = load ptr, ptr %40, align 8, !tbaa !5
  %296 = load i64, ptr %69, align 8, !tbaa !9
  %297 = getelementptr inbounds i64, ptr %295, i64 %296
  %298 = load i64, ptr %297, align 8, !tbaa !9
  store i64 %298, ptr %81, align 8, !tbaa !9
  %299 = load i64, ptr %81, align 8, !tbaa !9
  %300 = icmp sge i64 %299, 0
  br i1 %300, label %301, label %303

301:                                              ; preds = %294
  %302 = load i64, ptr %81, align 8, !tbaa !9
  br label %306

303:                                              ; preds = %294
  %304 = load i64, ptr %81, align 8, !tbaa !9
  %305 = sub nsw i64 0, %304
  br label %306

306:                                              ; preds = %303, %301
  %307 = phi i64 [ %302, %301 ], [ %305, %303 ]
  %308 = load i64, ptr %63, align 8, !tbaa !9
  %309 = mul nsw i64 %307, %308
  store i64 %309, ptr %71, align 8, !tbaa !9
  store double 5.000000e-01, ptr %95, align 8, !tbaa !12
  %310 = load i64, ptr %81, align 8, !tbaa !9
  %311 = icmp sge i64 %310, 0
  br i1 %311, label %312, label %314

312:                                              ; preds = %306
  %313 = load i64, ptr %81, align 8, !tbaa !9
  br label %317

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

317:                                              ; preds = %314, %312
  %318 = phi i64 [ %313, %312 ], [ %316, %314 ]
  store i64 %318, ptr %58, align 8, !tbaa !9
  %319 = load i64, ptr %63, align 8, !tbaa !9
  %320 = sub nsw i64 %319, 1
  store i64 %320, ptr %59, align 8, !tbaa !9
  %321 = load ptr, ptr %46, align 8, !tbaa !5
  %322 = getelementptr inbounds double, ptr %321, i64 1
  %323 = load ptr, ptr %47, align 8, !tbaa !5
  %324 = getelementptr inbounds double, ptr %323, i64 1
  %325 = call i32 @dmake_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %63, ptr noundef %322, ptr noundef @c__1, ptr noundef %324, ptr noundef %58, ptr noundef @c__0, ptr noundef %59, ptr noundef %88, ptr noundef %95, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %326 = load i64, ptr %63, align 8, !tbaa !9
  %327 = icmp sgt i64 %326, 1
  br i1 %327, label %328, label %349

328:                                              ; preds = %317
  %329 = load ptr, ptr %46, align 8, !tbaa !5
  %330 = load i64, ptr %63, align 8, !tbaa !9
  %331 = sdiv i64 %330, 2
  %332 = getelementptr inbounds double, ptr %329, i64 %331
  store double 0.000000e+00, ptr %332, align 8, !tbaa !12
  %333 = load ptr, ptr %47, align 8, !tbaa !5
  %334 = load i64, ptr %81, align 8, !tbaa !9
  %335 = icmp sge i64 %334, 0
  br i1 %335, label %336, label %338

336:                                              ; preds = %328
  %337 = load i64, ptr %81, align 8, !tbaa !9
  br label %341

338:                                              ; preds = %328
  %339 = load i64, ptr %81, align 8, !tbaa !9
  %340 = sub nsw i64 0, %339
  br label %341

341:                                              ; preds = %338, %336
  %342 = phi i64 [ %337, %336 ], [ %340, %338 ]
  %343 = load i64, ptr %63, align 8, !tbaa !9
  %344 = sdiv i64 %343, 2
  %345 = sub nsw i64 %344, 1
  %346 = mul nsw i64 %342, %345
  %347 = add nsw i64 %346, 1
  %348 = getelementptr inbounds double, ptr %333, i64 %347
  store double 0.000000e+00, ptr %348, align 8, !tbaa !12
  br label %349

349:                                              ; preds = %341, %317
  %350 = load i64, ptr %64, align 8, !tbaa !9
  %351 = add nsw i64 %350, 1
  store i64 %351, ptr %64, align 8, !tbaa !9
  %352 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %353 = load i8, ptr %352, align 1, !tbaa !11
  %354 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  store i8 %353, ptr %354, align 1, !tbaa !11
  %355 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %356 = load i8, ptr %355, align 1, !tbaa !11
  %357 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  store i8 %356, ptr %357, align 1, !tbaa !11
  %358 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %359 = load i8, ptr %358, align 1, !tbaa !11
  %360 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  store i8 %359, ptr %360, align 1, !tbaa !11
  %361 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %361, ptr %70, align 8, !tbaa !9
  %362 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %362, ptr %68, align 8, !tbaa !9
  %363 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %363, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %364

364:                                              ; preds = %376, %349
  %365 = load i64, ptr %61, align 8, !tbaa !9
  %366 = load i64, ptr %58, align 8, !tbaa !9
  %367 = icmp sle i64 %365, %366
  br i1 %367, label %368, label %379

368:                                              ; preds = %364
  %369 = load ptr, ptr %44, align 8, !tbaa !5
  %370 = load i64, ptr %61, align 8, !tbaa !9
  %371 = getelementptr inbounds double, ptr %369, i64 %370
  %372 = load double, ptr %371, align 8, !tbaa !12
  %373 = load ptr, ptr %45, align 8, !tbaa !5
  %374 = load i64, ptr %61, align 8, !tbaa !9
  %375 = getelementptr inbounds double, ptr %373, i64 %374
  store double %372, ptr %375, align 8, !tbaa !12
  br label %376

376:                                              ; preds = %368
  %377 = load i64, ptr %61, align 8, !tbaa !9
  %378 = add nsw i64 %377, 1
  store i64 %378, ptr %61, align 8, !tbaa !9
  br label %364, !llvm.loop !16

379:                                              ; preds = %364
  %380 = load i64, ptr %74, align 8, !tbaa !9
  store i64 %380, ptr %79, align 8, !tbaa !9
  %381 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %381, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %382

382:                                              ; preds = %394, %379
  %383 = load i64, ptr %61, align 8, !tbaa !9
  %384 = load i64, ptr %58, align 8, !tbaa !9
  %385 = icmp sle i64 %383, %384
  br i1 %385, label %386, label %397

386:                                              ; preds = %382
  %387 = load ptr, ptr %47, align 8, !tbaa !5
  %388 = load i64, ptr %61, align 8, !tbaa !9
  %389 = getelementptr inbounds double, ptr %387, i64 %388
  %390 = load double, ptr %389, align 8, !tbaa !12
  %391 = load ptr, ptr %48, align 8, !tbaa !5
  %392 = load i64, ptr %61, align 8, !tbaa !9
  %393 = getelementptr inbounds double, ptr %391, i64 %392
  store double %390, ptr %393, align 8, !tbaa !12
  br label %394

394:                                              ; preds = %386
  %395 = load i64, ptr %61, align 8, !tbaa !9
  %396 = add nsw i64 %395, 1
  store i64 %396, ptr %61, align 8, !tbaa !9
  br label %382, !llvm.loop !17

397:                                              ; preds = %382
  %398 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %398, ptr %89, align 8, !tbaa !9
  %399 = load ptr, ptr %27, align 8, !tbaa !5
  %400 = getelementptr inbounds i8, ptr %399, i64 3
  %401 = call i64 @s_cmp(ptr noundef %400, ptr noundef @.str.9, i64 noundef 2, i64 noundef 2)
  %402 = icmp eq i64 %401, 0
  br i1 %402, label %403, label %535

403:                                              ; preds = %397
  %404 = load i64, ptr %82, align 8, !tbaa !9
  %405 = icmp ne i64 %404, 0
  br i1 %405, label %406, label %446

406:                                              ; preds = %403
  %407 = load ptr, ptr %32, align 8, !tbaa !5
  %408 = load i64, ptr %407, align 8, !tbaa !9
  %409 = icmp ne i64 %408, 0
  br i1 %409, label %410, label %427

410:                                              ; preds = %406
  %411 = load ptr, ptr %31, align 8, !tbaa !5
  %412 = load i64, ptr %411, align 8, !tbaa !9
  store i64 %412, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___239, i32 0, i32 1), align 8, !tbaa !18
  %413 = call i64 @s_wsfe(ptr noundef @dchk3_.io___239)
  %414 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %415 = load ptr, ptr %27, align 8, !tbaa !5
  %416 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %415, i64 noundef 6)
  %417 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %418 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %417, i64 noundef 1)
  %419 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %420 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %419, i64 noundef 1)
  %421 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %422 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %421, i64 noundef 1)
  %423 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %424 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %74, i64 noundef 8)
  %425 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %426 = call i64 @e_wsfe()
  br label %427

427:                                              ; preds = %410, %406
  %428 = load ptr, ptr %33, align 8, !tbaa !5
  %429 = load i64, ptr %428, align 8, !tbaa !9
  %430 = icmp ne i64 %429, 0
  br i1 %430, label %431, label %437

431:                                              ; preds = %427
  %432 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 0
  store i64 0, ptr %432, align 8, !tbaa !20
  %433 = load ptr, ptr %31, align 8, !tbaa !5
  %434 = load i64, ptr %433, align 8, !tbaa !9
  %435 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 1
  store i64 %434, ptr %435, align 8, !tbaa !22
  %436 = call i64 @f_rew(ptr noundef %60)
  br label %437

437:                                              ; preds = %431, %427
  %438 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %439 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %440 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %441 = load ptr, ptr %44, align 8, !tbaa !5
  %442 = getelementptr inbounds double, ptr %441, i64 1
  %443 = load ptr, ptr %47, align 8, !tbaa !5
  %444 = getelementptr inbounds double, ptr %443, i64 1
  %445 = call i32 @f2c_dtrmv(ptr noundef %438, ptr noundef %439, ptr noundef %440, ptr noundef %63, ptr noundef %442, ptr noundef %74, ptr noundef %444, ptr noundef %81)
  br label %534

446:                                              ; preds = %403
  %447 = load i64, ptr %92, align 8, !tbaa !9
  %448 = icmp ne i64 %447, 0
  br i1 %448, label %449, label %490

449:                                              ; preds = %446
  %450 = load ptr, ptr %32, align 8, !tbaa !5
  %451 = load i64, ptr %450, align 8, !tbaa !9
  %452 = icmp ne i64 %451, 0
  br i1 %452, label %453, label %471

453:                                              ; preds = %449
  %454 = load ptr, ptr %31, align 8, !tbaa !5
  %455 = load i64, ptr %454, align 8, !tbaa !9
  store i64 %455, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___240, i32 0, i32 1), align 8, !tbaa !18
  %456 = call i64 @s_wsfe(ptr noundef @dchk3_.io___240)
  %457 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %458 = load ptr, ptr %27, align 8, !tbaa !5
  %459 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %458, i64 noundef 6)
  %460 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %461 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %460, i64 noundef 1)
  %462 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %463 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %462, i64 noundef 1)
  %464 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %465 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %464, i64 noundef 1)
  %466 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %467 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %62, i64 noundef 8)
  %468 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %74, i64 noundef 8)
  %469 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %470 = call i64 @e_wsfe()
  br label %471

471:                                              ; preds = %453, %449
  %472 = load ptr, ptr %33, align 8, !tbaa !5
  %473 = load i64, ptr %472, align 8, !tbaa !9
  %474 = icmp ne i64 %473, 0
  br i1 %474, label %475, label %481

475:                                              ; preds = %471
  %476 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 0
  store i64 0, ptr %476, align 8, !tbaa !20
  %477 = load ptr, ptr %31, align 8, !tbaa !5
  %478 = load i64, ptr %477, align 8, !tbaa !9
  %479 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 1
  store i64 %478, ptr %479, align 8, !tbaa !22
  %480 = call i64 @f_rew(ptr noundef %60)
  br label %481

481:                                              ; preds = %475, %471
  %482 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %483 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %484 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %485 = load ptr, ptr %44, align 8, !tbaa !5
  %486 = getelementptr inbounds double, ptr %485, i64 1
  %487 = load ptr, ptr %47, align 8, !tbaa !5
  %488 = getelementptr inbounds double, ptr %487, i64 1
  %489 = call i32 @f2c_dtbmv(ptr noundef %482, ptr noundef %483, ptr noundef %484, ptr noundef %63, ptr noundef %62, ptr noundef %486, ptr noundef %74, ptr noundef %488, ptr noundef %81)
  br label %533

490:                                              ; preds = %446
  %491 = load i64, ptr %93, align 8, !tbaa !9
  %492 = icmp ne i64 %491, 0
  br i1 %492, label %493, label %532

493:                                              ; preds = %490
  %494 = load ptr, ptr %32, align 8, !tbaa !5
  %495 = load i64, ptr %494, align 8, !tbaa !9
  %496 = icmp ne i64 %495, 0
  br i1 %496, label %497, label %513

497:                                              ; preds = %493
  %498 = load ptr, ptr %31, align 8, !tbaa !5
  %499 = load i64, ptr %498, align 8, !tbaa !9
  store i64 %499, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___241, i32 0, i32 1), align 8, !tbaa !18
  %500 = call i64 @s_wsfe(ptr noundef @dchk3_.io___241)
  %501 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %502 = load ptr, ptr %27, align 8, !tbaa !5
  %503 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %502, i64 noundef 6)
  %504 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %505 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %504, i64 noundef 1)
  %506 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %507 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %506, i64 noundef 1)
  %508 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %509 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %508, i64 noundef 1)
  %510 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %511 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %512 = call i64 @e_wsfe()
  br label %513

513:                                              ; preds = %497, %493
  %514 = load ptr, ptr %33, align 8, !tbaa !5
  %515 = load i64, ptr %514, align 8, !tbaa !9
  %516 = icmp ne i64 %515, 0
  br i1 %516, label %517, label %523

517:                                              ; preds = %513
  %518 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 0
  store i64 0, ptr %518, align 8, !tbaa !20
  %519 = load ptr, ptr %31, align 8, !tbaa !5
  %520 = load i64, ptr %519, align 8, !tbaa !9
  %521 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 1
  store i64 %520, ptr %521, align 8, !tbaa !22
  %522 = call i64 @f_rew(ptr noundef %60)
  br label %523

523:                                              ; preds = %517, %513
  %524 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %525 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %526 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %527 = load ptr, ptr %44, align 8, !tbaa !5
  %528 = getelementptr inbounds double, ptr %527, i64 1
  %529 = load ptr, ptr %47, align 8, !tbaa !5
  %530 = getelementptr inbounds double, ptr %529, i64 1
  %531 = call i32 @f2c_dtpmv(ptr noundef %524, ptr noundef %525, ptr noundef %526, ptr noundef %63, ptr noundef %528, ptr noundef %530, ptr noundef %81)
  br label %532

532:                                              ; preds = %523, %490
  br label %533

533:                                              ; preds = %532, %481
  br label %534

534:                                              ; preds = %533, %437
  br label %673

535:                                              ; preds = %397
  %536 = load ptr, ptr %27, align 8, !tbaa !5
  %537 = getelementptr inbounds i8, ptr %536, i64 3
  %538 = call i64 @s_cmp(ptr noundef %537, ptr noundef @.str.10, i64 noundef 2, i64 noundef 2)
  %539 = icmp eq i64 %538, 0
  br i1 %539, label %540, label %672

540:                                              ; preds = %535
  %541 = load i64, ptr %82, align 8, !tbaa !9
  %542 = icmp ne i64 %541, 0
  br i1 %542, label %543, label %583

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

547:                                              ; preds = %543
  %548 = load ptr, ptr %31, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  store i64 %549, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___242, i32 0, i32 1), align 8, !tbaa !18
  %550 = call i64 @s_wsfe(ptr noundef @dchk3_.io___242)
  %551 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %552 = load ptr, ptr %27, align 8, !tbaa !5
  %553 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %552, i64 noundef 6)
  %554 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %555 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %554, i64 noundef 1)
  %556 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %557 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %556, i64 noundef 1)
  %558 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %559 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %558, i64 noundef 1)
  %560 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %561 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %74, i64 noundef 8)
  %562 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %563 = call i64 @e_wsfe()
  br label %564

564:                                              ; preds = %547, %543
  %565 = load ptr, ptr %33, align 8, !tbaa !5
  %566 = load i64, ptr %565, align 8, !tbaa !9
  %567 = icmp ne i64 %566, 0
  br i1 %567, label %568, label %574

568:                                              ; preds = %564
  %569 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 0
  store i64 0, ptr %569, align 8, !tbaa !20
  %570 = load ptr, ptr %31, align 8, !tbaa !5
  %571 = load i64, ptr %570, align 8, !tbaa !9
  %572 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 1
  store i64 %571, ptr %572, align 8, !tbaa !22
  %573 = call i64 @f_rew(ptr noundef %60)
  br label %574

574:                                              ; preds = %568, %564
  %575 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %576 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %577 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %578 = load ptr, ptr %44, align 8, !tbaa !5
  %579 = getelementptr inbounds double, ptr %578, i64 1
  %580 = load ptr, ptr %47, align 8, !tbaa !5
  %581 = getelementptr inbounds double, ptr %580, i64 1
  %582 = call i32 @f2c_dtrsv(ptr noundef %575, ptr noundef %576, ptr noundef %577, ptr noundef %63, ptr noundef %579, ptr noundef %74, ptr noundef %581, ptr noundef %81)
  br label %671

583:                                              ; preds = %540
  %584 = load i64, ptr %92, align 8, !tbaa !9
  %585 = icmp ne i64 %584, 0
  br i1 %585, label %586, label %627

586:                                              ; preds = %583
  %587 = load ptr, ptr %32, align 8, !tbaa !5
  %588 = load i64, ptr %587, align 8, !tbaa !9
  %589 = icmp ne i64 %588, 0
  br i1 %589, label %590, label %608

590:                                              ; preds = %586
  %591 = load ptr, ptr %31, align 8, !tbaa !5
  %592 = load i64, ptr %591, align 8, !tbaa !9
  store i64 %592, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___243, i32 0, i32 1), align 8, !tbaa !18
  %593 = call i64 @s_wsfe(ptr noundef @dchk3_.io___243)
  %594 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %595 = load ptr, ptr %27, align 8, !tbaa !5
  %596 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %595, i64 noundef 6)
  %597 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %598 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %597, i64 noundef 1)
  %599 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %600 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %599, i64 noundef 1)
  %601 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %602 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %601, i64 noundef 1)
  %603 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %604 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %62, i64 noundef 8)
  %605 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %74, i64 noundef 8)
  %606 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %607 = call i64 @e_wsfe()
  br label %608

608:                                              ; preds = %590, %586
  %609 = load ptr, ptr %33, align 8, !tbaa !5
  %610 = load i64, ptr %609, align 8, !tbaa !9
  %611 = icmp ne i64 %610, 0
  br i1 %611, label %612, label %618

612:                                              ; preds = %608
  %613 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 0
  store i64 0, ptr %613, align 8, !tbaa !20
  %614 = load ptr, ptr %31, align 8, !tbaa !5
  %615 = load i64, ptr %614, align 8, !tbaa !9
  %616 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 1
  store i64 %615, ptr %616, align 8, !tbaa !22
  %617 = call i64 @f_rew(ptr noundef %60)
  br label %618

618:                                              ; preds = %612, %608
  %619 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %620 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %621 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %622 = load ptr, ptr %44, align 8, !tbaa !5
  %623 = getelementptr inbounds double, ptr %622, i64 1
  %624 = load ptr, ptr %47, align 8, !tbaa !5
  %625 = getelementptr inbounds double, ptr %624, i64 1
  %626 = call i32 @f2c_dtbsv(ptr noundef %619, ptr noundef %620, ptr noundef %621, ptr noundef %63, ptr noundef %62, ptr noundef %623, ptr noundef %74, ptr noundef %625, ptr noundef %81)
  br label %670

627:                                              ; preds = %583
  %628 = load i64, ptr %93, align 8, !tbaa !9
  %629 = icmp ne i64 %628, 0
  br i1 %629, label %630, label %669

630:                                              ; preds = %627
  %631 = load ptr, ptr %32, align 8, !tbaa !5
  %632 = load i64, ptr %631, align 8, !tbaa !9
  %633 = icmp ne i64 %632, 0
  br i1 %633, label %634, label %650

634:                                              ; preds = %630
  %635 = load ptr, ptr %31, align 8, !tbaa !5
  %636 = load i64, ptr %635, align 8, !tbaa !9
  store i64 %636, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___244, i32 0, i32 1), align 8, !tbaa !18
  %637 = call i64 @s_wsfe(ptr noundef @dchk3_.io___244)
  %638 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %639 = load ptr, ptr %27, align 8, !tbaa !5
  %640 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %639, i64 noundef 6)
  %641 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %642 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %641, i64 noundef 1)
  %643 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %644 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %643, i64 noundef 1)
  %645 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %646 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %645, i64 noundef 1)
  %647 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %648 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %649 = call i64 @e_wsfe()
  br label %650

650:                                              ; preds = %634, %630
  %651 = load ptr, ptr %33, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = icmp ne i64 %652, 0
  br i1 %653, label %654, label %660

654:                                              ; preds = %650
  %655 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 0
  store i64 0, ptr %655, align 8, !tbaa !20
  %656 = load ptr, ptr %31, align 8, !tbaa !5
  %657 = load i64, ptr %656, align 8, !tbaa !9
  %658 = getelementptr inbounds %struct.alist, ptr %60, i32 0, i32 1
  store i64 %657, ptr %658, align 8, !tbaa !22
  %659 = call i64 @f_rew(ptr noundef %60)
  br label %660

660:                                              ; preds = %654, %650
  %661 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %662 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %663 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %664 = load ptr, ptr %44, align 8, !tbaa !5
  %665 = getelementptr inbounds double, ptr %664, i64 1
  %666 = load ptr, ptr %47, align 8, !tbaa !5
  %667 = getelementptr inbounds double, ptr %666, i64 1
  %668 = call i32 @f2c_dtpsv(ptr noundef %661, ptr noundef %662, ptr noundef %663, ptr noundef %63, ptr noundef %665, ptr noundef %667, ptr noundef %81)
  br label %669

669:                                              ; preds = %660, %627
  br label %670

670:                                              ; preds = %669, %618
  br label %671

671:                                              ; preds = %670, %574
  br label %672

672:                                              ; preds = %671, %535
  br label %673

673:                                              ; preds = %672, %534
  %674 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !11
  %675 = icmp ne i64 %674, 0
  br i1 %675, label %682, label %676

676:                                              ; preds = %673
  %677 = load ptr, ptr %30, align 8, !tbaa !5
  %678 = load i64, ptr %677, align 8, !tbaa !9
  store i64 %678, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___245, i32 0, i32 1), align 8, !tbaa !18
  %679 = call i64 @s_wsfe(ptr noundef @dchk3_.io___245)
  %680 = call i64 @e_wsfe()
  %681 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 1, ptr %681, align 8, !tbaa !9
  br label %1070

682:                                              ; preds = %673
  %683 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %684 = load i8, ptr %683, align 1, !tbaa !11
  %685 = zext i8 %684 to i32
  %686 = getelementptr inbounds [1 x i8], ptr %91, i64 0, i64 0
  %687 = load i8, ptr %686, align 1, !tbaa !11
  %688 = zext i8 %687 to i32
  %689 = icmp eq i32 %685, %688
  %690 = zext i1 %689 to i32
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 0
  store i64 %691, ptr %692, align 16, !tbaa !9
  %693 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %694 = load i8, ptr %693, align 1, !tbaa !11
  %695 = zext i8 %694 to i32
  %696 = getelementptr inbounds [1 x i8], ptr %96, i64 0, i64 0
  %697 = load i8, ptr %696, align 1, !tbaa !11
  %698 = zext i8 %697 to i32
  %699 = icmp eq i32 %695, %698
  %700 = zext i1 %699 to i32
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 1
  store i64 %701, ptr %702, align 8, !tbaa !9
  %703 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %704 = load i8, ptr %703, align 1, !tbaa !11
  %705 = zext i8 %704 to i32
  %706 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %707 = load i8, ptr %706, align 1, !tbaa !11
  %708 = zext i8 %707 to i32
  %709 = icmp eq i32 %705, %708
  %710 = zext i1 %709 to i32
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 2
  store i64 %711, ptr %712, align 16, !tbaa !9
  %713 = load i64, ptr %70, align 8, !tbaa !9
  %714 = load i64, ptr %63, align 8, !tbaa !9
  %715 = icmp eq i64 %713, %714
  %716 = zext i1 %715 to i32
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 3
  store i64 %717, ptr %718, align 8, !tbaa !9
  %719 = load i64, ptr %82, align 8, !tbaa !9
  %720 = icmp ne i64 %719, 0
  br i1 %720, label %721, label %766

721:                                              ; preds = %682
  %722 = load ptr, ptr %45, align 8, !tbaa !5
  %723 = getelementptr inbounds double, ptr %722, i64 1
  %724 = load ptr, ptr %44, align 8, !tbaa !5
  %725 = getelementptr inbounds double, ptr %724, i64 1
  %726 = call i64 @lde_(ptr noundef %723, ptr noundef %725, ptr noundef %72)
  %727 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 4
  store i64 %726, ptr %727, align 16, !tbaa !9
  %728 = load i64, ptr %79, align 8, !tbaa !9
  %729 = load i64, ptr %74, align 8, !tbaa !9
  %730 = icmp eq i64 %728, %729
  %731 = zext i1 %730 to i32
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 5
  store i64 %732, ptr %733, align 8, !tbaa !9
  %734 = load i64, ptr %83, align 8, !tbaa !9
  %735 = icmp ne i64 %734, 0
  br i1 %735, label %736, label %743

736:                                              ; preds = %721
  %737 = load ptr, ptr %48, align 8, !tbaa !5
  %738 = getelementptr inbounds double, ptr %737, i64 1
  %739 = load ptr, ptr %47, align 8, !tbaa !5
  %740 = getelementptr inbounds double, ptr %739, i64 1
  %741 = call i64 @lde_(ptr noundef %738, ptr noundef %740, ptr noundef %71)
  %742 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 6
  store i64 %741, ptr %742, align 16, !tbaa !9
  br label %759

743:                                              ; preds = %721
  %744 = load i64, ptr %81, align 8, !tbaa !9
  %745 = icmp sge i64 %744, 0
  br i1 %745, label %746, label %748

746:                                              ; preds = %743
  %747 = load i64, ptr %81, align 8, !tbaa !9
  br label %751

748:                                              ; preds = %743
  %749 = load i64, ptr %81, align 8, !tbaa !9
  %750 = sub nsw i64 0, %749
  br label %751

751:                                              ; preds = %748, %746
  %752 = phi i64 [ %747, %746 ], [ %750, %748 ]
  store i64 %752, ptr %58, align 8, !tbaa !9
  %753 = load ptr, ptr %48, align 8, !tbaa !5
  %754 = getelementptr inbounds double, ptr %753, i64 1
  %755 = load ptr, ptr %47, align 8, !tbaa !5
  %756 = getelementptr inbounds double, ptr %755, i64 1
  %757 = call i64 @lderes_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %63, ptr noundef %754, ptr noundef %756, ptr noundef %58, i64 noundef 2, i64 noundef 1)
  %758 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 6
  store i64 %757, ptr %758, align 16, !tbaa !9
  br label %759

759:                                              ; preds = %751, %736
  %760 = load i64, ptr %89, align 8, !tbaa !9
  %761 = load i64, ptr %81, align 8, !tbaa !9
  %762 = icmp eq i64 %760, %761
  %763 = zext i1 %762 to i32
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 7
  store i64 %764, ptr %765, align 8, !tbaa !9
  br label %864

766:                                              ; preds = %682
  %767 = load i64, ptr %92, align 8, !tbaa !9
  %768 = icmp ne i64 %767, 0
  br i1 %768, label %769, label %820

769:                                              ; preds = %766
  %770 = load i64, ptr %68, align 8, !tbaa !9
  %771 = load i64, ptr %62, align 8, !tbaa !9
  %772 = icmp eq i64 %770, %771
  %773 = zext i1 %772 to i32
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 4
  store i64 %774, ptr %775, align 16, !tbaa !9
  %776 = load ptr, ptr %45, align 8, !tbaa !5
  %777 = getelementptr inbounds double, ptr %776, i64 1
  %778 = load ptr, ptr %44, align 8, !tbaa !5
  %779 = getelementptr inbounds double, ptr %778, i64 1
  %780 = call i64 @lde_(ptr noundef %777, ptr noundef %779, ptr noundef %72)
  %781 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 5
  store i64 %780, ptr %781, align 8, !tbaa !9
  %782 = load i64, ptr %79, align 8, !tbaa !9
  %783 = load i64, ptr %74, align 8, !tbaa !9
  %784 = icmp eq i64 %782, %783
  %785 = zext i1 %784 to i32
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 6
  store i64 %786, ptr %787, align 16, !tbaa !9
  %788 = load i64, ptr %83, align 8, !tbaa !9
  %789 = icmp ne i64 %788, 0
  br i1 %789, label %790, label %797

790:                                              ; preds = %769
  %791 = load ptr, ptr %48, align 8, !tbaa !5
  %792 = getelementptr inbounds double, ptr %791, i64 1
  %793 = load ptr, ptr %47, align 8, !tbaa !5
  %794 = getelementptr inbounds double, ptr %793, i64 1
  %795 = call i64 @lde_(ptr noundef %792, ptr noundef %794, ptr noundef %71)
  %796 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 7
  store i64 %795, ptr %796, align 8, !tbaa !9
  br label %813

797:                                              ; preds = %769
  %798 = load i64, ptr %81, align 8, !tbaa !9
  %799 = icmp sge i64 %798, 0
  br i1 %799, label %800, label %802

800:                                              ; preds = %797
  %801 = load i64, ptr %81, align 8, !tbaa !9
  br label %805

802:                                              ; preds = %797
  %803 = load i64, ptr %81, align 8, !tbaa !9
  %804 = sub nsw i64 0, %803
  br label %805

805:                                              ; preds = %802, %800
  %806 = phi i64 [ %801, %800 ], [ %804, %802 ]
  store i64 %806, ptr %58, align 8, !tbaa !9
  %807 = load ptr, ptr %48, align 8, !tbaa !5
  %808 = getelementptr inbounds double, ptr %807, i64 1
  %809 = load ptr, ptr %47, align 8, !tbaa !5
  %810 = getelementptr inbounds double, ptr %809, i64 1
  %811 = call i64 @lderes_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %63, ptr noundef %808, ptr noundef %810, ptr noundef %58, i64 noundef 2, i64 noundef 1)
  %812 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 7
  store i64 %811, ptr %812, align 8, !tbaa !9
  br label %813

813:                                              ; preds = %805, %790
  %814 = load i64, ptr %89, align 8, !tbaa !9
  %815 = load i64, ptr %81, align 8, !tbaa !9
  %816 = icmp eq i64 %814, %815
  %817 = zext i1 %816 to i32
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 8
  store i64 %818, ptr %819, align 16, !tbaa !9
  br label %863

820:                                              ; preds = %766
  %821 = load i64, ptr %93, align 8, !tbaa !9
  %822 = icmp ne i64 %821, 0
  br i1 %822, label %823, label %862

823:                                              ; preds = %820
  %824 = load ptr, ptr %45, align 8, !tbaa !5
  %825 = getelementptr inbounds double, ptr %824, i64 1
  %826 = load ptr, ptr %44, align 8, !tbaa !5
  %827 = getelementptr inbounds double, ptr %826, i64 1
  %828 = call i64 @lde_(ptr noundef %825, ptr noundef %827, ptr noundef %72)
  %829 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 4
  store i64 %828, ptr %829, align 16, !tbaa !9
  %830 = load i64, ptr %83, align 8, !tbaa !9
  %831 = icmp ne i64 %830, 0
  br i1 %831, label %832, label %839

832:                                              ; preds = %823
  %833 = load ptr, ptr %48, align 8, !tbaa !5
  %834 = getelementptr inbounds double, ptr %833, i64 1
  %835 = load ptr, ptr %47, align 8, !tbaa !5
  %836 = getelementptr inbounds double, ptr %835, i64 1
  %837 = call i64 @lde_(ptr noundef %834, ptr noundef %836, ptr noundef %71)
  %838 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 5
  store i64 %837, ptr %838, align 8, !tbaa !9
  br label %855

839:                                              ; preds = %823
  %840 = load i64, ptr %81, align 8, !tbaa !9
  %841 = icmp sge i64 %840, 0
  br i1 %841, label %842, label %844

842:                                              ; preds = %839
  %843 = load i64, ptr %81, align 8, !tbaa !9
  br label %847

844:                                              ; preds = %839
  %845 = load i64, ptr %81, align 8, !tbaa !9
  %846 = sub nsw i64 0, %845
  br label %847

847:                                              ; preds = %844, %842
  %848 = phi i64 [ %843, %842 ], [ %846, %844 ]
  store i64 %848, ptr %58, align 8, !tbaa !9
  %849 = load ptr, ptr %48, align 8, !tbaa !5
  %850 = getelementptr inbounds double, ptr %849, i64 1
  %851 = load ptr, ptr %47, align 8, !tbaa !5
  %852 = getelementptr inbounds double, ptr %851, i64 1
  %853 = call i64 @lderes_(ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef @c__1, ptr noundef %63, ptr noundef %850, ptr noundef %852, ptr noundef %58, i64 noundef 2, i64 noundef 1)
  %854 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 5
  store i64 %853, ptr %854, align 8, !tbaa !9
  br label %855

855:                                              ; preds = %847, %832
  %856 = load i64, ptr %89, align 8, !tbaa !9
  %857 = load i64, ptr %81, align 8, !tbaa !9
  %858 = icmp eq i64 %856, %857
  %859 = zext i1 %858 to i32
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 6
  store i64 %860, ptr %861, align 16, !tbaa !9
  br label %862

862:                                              ; preds = %855, %820
  br label %863

863:                                              ; preds = %862, %813
  br label %864

864:                                              ; preds = %863, %759
  store i64 1, ptr %80, align 8, !tbaa !9
  %865 = load i64, ptr %87, align 8, !tbaa !9
  store i64 %865, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %866

866:                                              ; preds = %895, %864
  %867 = load i64, ptr %61, align 8, !tbaa !9
  %868 = load i64, ptr %58, align 8, !tbaa !9
  %869 = icmp sle i64 %867, %868
  br i1 %869, label %870, label %898

870:                                              ; preds = %866
  %871 = load i64, ptr %80, align 8, !tbaa !9
  %872 = icmp ne i64 %871, 0
  br i1 %872, label %873, label %879

873:                                              ; preds = %870
  %874 = load i64, ptr %61, align 8, !tbaa !9
  %875 = sub nsw i64 %874, 1
  %876 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 %875
  %877 = load i64, ptr %876, align 8, !tbaa !9
  %878 = icmp ne i64 %877, 0
  br label %879

879:                                              ; preds = %873, %870
  %880 = phi i1 [ false, %870 ], [ %878, %873 ]
  %881 = zext i1 %880 to i32
  %882 = sext i32 %881 to i64
  store i64 %882, ptr %80, align 8, !tbaa !9
  %883 = load i64, ptr %61, align 8, !tbaa !9
  %884 = sub nsw i64 %883, 1
  %885 = getelementptr inbounds [13 x i64], ptr %86, i64 0, i64 %884
  %886 = load i64, ptr %885, align 8, !tbaa !9
  %887 = icmp ne i64 %886, 0
  br i1 %887, label %894, label %888

888:                                              ; preds = %879
  %889 = load ptr, ptr %30, align 8, !tbaa !5
  %890 = load i64, ptr %889, align 8, !tbaa !9
  store i64 %890, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___248, i32 0, i32 1), align 8, !tbaa !18
  %891 = call i64 @s_wsfe(ptr noundef @dchk3_.io___248)
  %892 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %61, i64 noundef 8)
  %893 = call i64 @e_wsfe()
  br label %894

894:                                              ; preds = %888, %879
  br label %895

895:                                              ; preds = %894
  %896 = load i64, ptr %61, align 8, !tbaa !9
  %897 = add nsw i64 %896, 1
  store i64 %897, ptr %61, align 8, !tbaa !9
  br label %866, !llvm.loop !23

898:                                              ; preds = %866
  %899 = load i64, ptr %80, align 8, !tbaa !9
  %900 = icmp ne i64 %899, 0
  br i1 %900, label %903, label %901

901:                                              ; preds = %898
  %902 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 1, ptr %902, align 8, !tbaa !9
  br label %1070

903:                                              ; preds = %898
  %904 = load i64, ptr %83, align 8, !tbaa !9
  %905 = icmp ne i64 %904, 0
  br i1 %905, label %1020, label %906

906:                                              ; preds = %903
  %907 = load ptr, ptr %27, align 8, !tbaa !5
  %908 = getelementptr inbounds i8, ptr %907, i64 3
  %909 = call i64 @s_cmp(ptr noundef %908, ptr noundef @.str.9, i64 noundef 2, i64 noundef 2)
  %910 = icmp eq i64 %909, 0
  br i1 %910, label %911, label %931

911:                                              ; preds = %906
  %912 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %913 = load ptr, ptr %43, align 8, !tbaa !5
  %914 = load i64, ptr %54, align 8, !tbaa !9
  %915 = getelementptr inbounds double, ptr %913, i64 %914
  %916 = load ptr, ptr %41, align 8, !tbaa !5
  %917 = load ptr, ptr %46, align 8, !tbaa !5
  %918 = getelementptr inbounds double, ptr %917, i64 1
  %919 = load ptr, ptr %51, align 8, !tbaa !5
  %920 = getelementptr inbounds double, ptr %919, i64 1
  %921 = load ptr, ptr %49, align 8, !tbaa !5
  %922 = getelementptr inbounds double, ptr %921, i64 1
  %923 = load ptr, ptr %50, align 8, !tbaa !5
  %924 = getelementptr inbounds double, ptr %923, i64 1
  %925 = load ptr, ptr %47, align 8, !tbaa !5
  %926 = getelementptr inbounds double, ptr %925, i64 1
  %927 = load ptr, ptr %28, align 8, !tbaa !5
  %928 = load ptr, ptr %34, align 8, !tbaa !5
  %929 = load ptr, ptr %30, align 8, !tbaa !5
  %930 = call i32 @dmvch_(ptr noundef %912, ptr noundef %63, ptr noundef %63, ptr noundef @c_b121, ptr noundef %915, ptr noundef %916, ptr noundef %918, ptr noundef %81, ptr noundef @c_b133, ptr noundef %920, ptr noundef %81, ptr noundef %922, ptr noundef %924, ptr noundef %926, ptr noundef %927, ptr noundef %77, ptr noundef %928, ptr noundef %929, ptr noundef @c_true, i64 noundef 1)
  br label %1005

931:                                              ; preds = %906
  %932 = load ptr, ptr %27, align 8, !tbaa !5
  %933 = getelementptr inbounds i8, ptr %932, i64 3
  %934 = call i64 @s_cmp(ptr noundef %933, ptr noundef @.str.10, i64 noundef 2, i64 noundef 2)
  %935 = icmp eq i64 %934, 0
  br i1 %935, label %936, label %1004

936:                                              ; preds = %931
  %937 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %937, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %938

938:                                              ; preds = %981, %936
  %939 = load i64, ptr %61, align 8, !tbaa !9
  %940 = load i64, ptr %58, align 8, !tbaa !9
  %941 = icmp sle i64 %939, %940
  br i1 %941, label %942, label %984

942:                                              ; preds = %938
  %943 = load ptr, ptr %47, align 8, !tbaa !5
  %944 = load i64, ptr %61, align 8, !tbaa !9
  %945 = sub nsw i64 %944, 1
  %946 = load i64, ptr %81, align 8, !tbaa !9
  %947 = icmp sge i64 %946, 0
  br i1 %947, label %948, label %950

948:                                              ; preds = %942
  %949 = load i64, ptr %81, align 8, !tbaa !9
  br label %953

950:                                              ; preds = %942
  %951 = load i64, ptr %81, align 8, !tbaa !9
  %952 = sub nsw i64 0, %951
  br label %953

953:                                              ; preds = %950, %948
  %954 = phi i64 [ %949, %948 ], [ %952, %950 ]
  %955 = mul nsw i64 %945, %954
  %956 = add nsw i64 %955, 1
  %957 = getelementptr inbounds double, ptr %943, i64 %956
  %958 = load double, ptr %957, align 8, !tbaa !12
  %959 = load ptr, ptr %51, align 8, !tbaa !5
  %960 = load i64, ptr %61, align 8, !tbaa !9
  %961 = getelementptr inbounds double, ptr %959, i64 %960
  store double %958, ptr %961, align 8, !tbaa !12
  %962 = load ptr, ptr %46, align 8, !tbaa !5
  %963 = load i64, ptr %61, align 8, !tbaa !9
  %964 = getelementptr inbounds double, ptr %962, i64 %963
  %965 = load double, ptr %964, align 8, !tbaa !12
  %966 = load ptr, ptr %47, align 8, !tbaa !5
  %967 = load i64, ptr %61, align 8, !tbaa !9
  %968 = sub nsw i64 %967, 1
  %969 = load i64, ptr %81, align 8, !tbaa !9
  %970 = icmp sge i64 %969, 0
  br i1 %970, label %971, label %973

971:                                              ; preds = %953
  %972 = load i64, ptr %81, align 8, !tbaa !9
  br label %976

973:                                              ; preds = %953
  %974 = load i64, ptr %81, align 8, !tbaa !9
  %975 = sub nsw i64 0, %974
  br label %976

976:                                              ; preds = %973, %971
  %977 = phi i64 [ %972, %971 ], [ %975, %973 ]
  %978 = mul nsw i64 %968, %977
  %979 = add nsw i64 %978, 1
  %980 = getelementptr inbounds double, ptr %966, i64 %979
  store double %965, ptr %980, align 8, !tbaa !12
  br label %981

981:                                              ; preds = %976
  %982 = load i64, ptr %61, align 8, !tbaa !9
  %983 = add nsw i64 %982, 1
  store i64 %983, ptr %61, align 8, !tbaa !9
  br label %938, !llvm.loop !24

984:                                              ; preds = %938
  %985 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %986 = load ptr, ptr %43, align 8, !tbaa !5
  %987 = load i64, ptr %54, align 8, !tbaa !9
  %988 = getelementptr inbounds double, ptr %986, i64 %987
  %989 = load ptr, ptr %41, align 8, !tbaa !5
  %990 = load ptr, ptr %51, align 8, !tbaa !5
  %991 = getelementptr inbounds double, ptr %990, i64 1
  %992 = load ptr, ptr %46, align 8, !tbaa !5
  %993 = getelementptr inbounds double, ptr %992, i64 1
  %994 = load ptr, ptr %49, align 8, !tbaa !5
  %995 = getelementptr inbounds double, ptr %994, i64 1
  %996 = load ptr, ptr %50, align 8, !tbaa !5
  %997 = getelementptr inbounds double, ptr %996, i64 1
  %998 = load ptr, ptr %47, align 8, !tbaa !5
  %999 = getelementptr inbounds double, ptr %998, i64 1
  %1000 = load ptr, ptr %28, align 8, !tbaa !5
  %1001 = load ptr, ptr %34, align 8, !tbaa !5
  %1002 = load ptr, ptr %30, align 8, !tbaa !5
  %1003 = call i32 @dmvch_(ptr noundef %985, ptr noundef %63, ptr noundef %63, ptr noundef @c_b121, ptr noundef %988, ptr noundef %989, ptr noundef %991, ptr noundef %81, ptr noundef @c_b133, ptr noundef %993, ptr noundef %81, ptr noundef %995, ptr noundef %997, ptr noundef %999, ptr noundef %1000, ptr noundef %77, ptr noundef %1001, ptr noundef %1002, ptr noundef @c_false, i64 noundef 1)
  br label %1004

1004:                                             ; preds = %984, %931
  br label %1005

1005:                                             ; preds = %1004, %911
  %1006 = load double, ptr %94, align 8, !tbaa !12
  %1007 = load double, ptr %77, align 8, !tbaa !12
  %1008 = fcmp oge double %1006, %1007
  br i1 %1008, label %1009, label %1011

1009:                                             ; preds = %1005
  %1010 = load double, ptr %94, align 8, !tbaa !12
  br label %1013

1011:                                             ; preds = %1005
  %1012 = load double, ptr %77, align 8, !tbaa !12
  br label %1013

1013:                                             ; preds = %1011, %1009
  %1014 = phi double [ %1010, %1009 ], [ %1012, %1011 ]
  store double %1014, ptr %94, align 8, !tbaa !12
  %1015 = load ptr, ptr %34, align 8, !tbaa !5
  %1016 = load i64, ptr %1015, align 8, !tbaa !9
  %1017 = icmp ne i64 %1016, 0
  br i1 %1017, label %1018, label %1019

1018:                                             ; preds = %1013
  br label %1070

1019:                                             ; preds = %1013
  br label %1021

1020:                                             ; preds = %903
  br label %1043

1021:                                             ; preds = %1019
  br label %1022

1022:                                             ; preds = %1021
  %1023 = load i64, ptr %69, align 8, !tbaa !9
  %1024 = add nsw i64 %1023, 1
  store i64 %1024, ptr %69, align 8, !tbaa !9
  br label %290, !llvm.loop !25

1025:                                             ; preds = %290
  br label %1026

1026:                                             ; preds = %1025
  %1027 = load i64, ptr %73, align 8, !tbaa !9
  %1028 = add nsw i64 %1027, 1
  store i64 %1028, ptr %73, align 8, !tbaa !9
  br label %268, !llvm.loop !26

1029:                                             ; preds = %268
  br label %1030

1030:                                             ; preds = %1029
  %1031 = load i64, ptr %75, align 8, !tbaa !9
  %1032 = add nsw i64 %1031, 1
  store i64 %1032, ptr %75, align 8, !tbaa !9
  br label %259, !llvm.loop !27

1033:                                             ; preds = %259
  br label %1034

1034:                                             ; preds = %1033
  %1035 = load i64, ptr %76, align 8, !tbaa !9
  %1036 = add nsw i64 %1035, 1
  store i64 %1036, ptr %76, align 8, !tbaa !9
  br label %250, !llvm.loop !28

1037:                                             ; preds = %250
  br label %1038

1038:                                             ; preds = %1037, %231
  br label %1039

1039:                                             ; preds = %1038
  %1040 = load i64, ptr %65, align 8, !tbaa !9
  %1041 = add nsw i64 %1040, 1
  store i64 %1041, ptr %65, align 8, !tbaa !9
  br label %195, !llvm.loop !29

1042:                                             ; preds = %195
  br label %1043

1043:                                             ; preds = %1042, %1020
  br label %1044

1044:                                             ; preds = %1043
  %1045 = load i64, ptr %66, align 8, !tbaa !9
  %1046 = add nsw i64 %1045, 1
  store i64 %1046, ptr %66, align 8, !tbaa !9
  br label %178, !llvm.loop !30

1047:                                             ; preds = %178
  %1048 = load double, ptr %94, align 8, !tbaa !12
  %1049 = load ptr, ptr %29, align 8, !tbaa !5
  %1050 = load double, ptr %1049, align 8, !tbaa !12
  %1051 = fcmp olt double %1048, %1050
  br i1 %1051, label %1052, label %1060

1052:                                             ; preds = %1047
  %1053 = load ptr, ptr %30, align 8, !tbaa !5
  %1054 = load i64, ptr %1053, align 8, !tbaa !9
  store i64 %1054, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___250, i32 0, i32 1), align 8, !tbaa !18
  %1055 = call i64 @s_wsfe(ptr noundef @dchk3_.io___250)
  %1056 = load ptr, ptr %27, align 8, !tbaa !5
  %1057 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1056, i64 noundef 6)
  %1058 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %1059 = call i64 @e_wsfe()
  br label %1069

1060:                                             ; preds = %1047
  %1061 = load ptr, ptr %30, align 8, !tbaa !5
  %1062 = load i64, ptr %1061, align 8, !tbaa !9
  store i64 %1062, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___251, i32 0, i32 1), align 8, !tbaa !18
  %1063 = call i64 @s_wsfe(ptr noundef @dchk3_.io___251)
  %1064 = load ptr, ptr %27, align 8, !tbaa !5
  %1065 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1064, i64 noundef 6)
  %1066 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %1067 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %94, i64 noundef 8)
  %1068 = call i64 @e_wsfe()
  br label %1069

1069:                                             ; preds = %1060, %1052
  br label %1139

1070:                                             ; preds = %1018, %901, %676
  %1071 = load ptr, ptr %30, align 8, !tbaa !5
  %1072 = load i64, ptr %1071, align 8, !tbaa !9
  store i64 %1072, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___252, i32 0, i32 1), align 8, !tbaa !18
  %1073 = call i64 @s_wsfe(ptr noundef @dchk3_.io___252)
  %1074 = load ptr, ptr %27, align 8, !tbaa !5
  %1075 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1074, i64 noundef 6)
  %1076 = call i64 @e_wsfe()
  %1077 = load i64, ptr %82, align 8, !tbaa !9
  %1078 = icmp ne i64 %1077, 0
  br i1 %1078, label %1079, label %1096

1079:                                             ; preds = %1070
  %1080 = load ptr, ptr %30, align 8, !tbaa !5
  %1081 = load i64, ptr %1080, align 8, !tbaa !9
  store i64 %1081, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___253, i32 0, i32 1), align 8, !tbaa !18
  %1082 = call i64 @s_wsfe(ptr noundef @dchk3_.io___253)
  %1083 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %1084 = load ptr, ptr %27, align 8, !tbaa !5
  %1085 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1084, i64 noundef 6)
  %1086 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %1087 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1086, i64 noundef 1)
  %1088 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %1089 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1088, i64 noundef 1)
  %1090 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %1091 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1090, i64 noundef 1)
  %1092 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %1093 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %74, i64 noundef 8)
  %1094 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %1095 = call i64 @e_wsfe()
  br label %1138

1096:                                             ; preds = %1070
  %1097 = load i64, ptr %92, align 8, !tbaa !9
  %1098 = icmp ne i64 %1097, 0
  br i1 %1098, label %1099, label %1117

1099:                                             ; preds = %1096
  %1100 = load ptr, ptr %30, align 8, !tbaa !5
  %1101 = load i64, ptr %1100, align 8, !tbaa !9
  store i64 %1101, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___254, i32 0, i32 1), align 8, !tbaa !18
  %1102 = call i64 @s_wsfe(ptr noundef @dchk3_.io___254)
  %1103 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %1104 = load ptr, ptr %27, align 8, !tbaa !5
  %1105 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1104, i64 noundef 6)
  %1106 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %1107 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1106, i64 noundef 1)
  %1108 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %1109 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1108, i64 noundef 1)
  %1110 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %1111 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1110, i64 noundef 1)
  %1112 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %1113 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %62, i64 noundef 8)
  %1114 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %74, i64 noundef 8)
  %1115 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %1116 = call i64 @e_wsfe()
  br label %1137

1117:                                             ; preds = %1096
  %1118 = load i64, ptr %93, align 8, !tbaa !9
  %1119 = icmp ne i64 %1118, 0
  br i1 %1119, label %1120, label %1136

1120:                                             ; preds = %1117
  %1121 = load ptr, ptr %30, align 8, !tbaa !5
  %1122 = load i64, ptr %1121, align 8, !tbaa !9
  store i64 %1122, ptr getelementptr inbounds (%struct.cilist, ptr @dchk3_.io___255, i32 0, i32 1), align 8, !tbaa !18
  %1123 = call i64 @s_wsfe(ptr noundef @dchk3_.io___255)
  %1124 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %64, i64 noundef 8)
  %1125 = load ptr, ptr %27, align 8, !tbaa !5
  %1126 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1125, i64 noundef 6)
  %1127 = getelementptr inbounds [1 x i8], ptr %84, i64 0, i64 0
  %1128 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1127, i64 noundef 1)
  %1129 = getelementptr inbounds [1 x i8], ptr %90, i64 0, i64 0
  %1130 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1129, i64 noundef 1)
  %1131 = getelementptr inbounds [1 x i8], ptr %78, i64 0, i64 0
  %1132 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %1131, i64 noundef 1)
  %1133 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %63, i64 noundef 8)
  %1134 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %81, i64 noundef 8)
  %1135 = call i64 @e_wsfe()
  br label %1136

1136:                                             ; preds = %1120, %1117
  br label %1137

1137:                                             ; preds = %1136, %1099
  br label %1138

1138:                                             ; preds = %1137, %1079
  br label %1139

1139:                                             ; preds = %1138, %1069
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 16, 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 @dmake_(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 @lderes_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef) #2

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

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

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

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

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

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

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

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

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


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

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

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local local_unnamed_addr global %union.anon, align 8
@c_b121 = external hidden global double, align 8
@c_b133 = external hidden global double, align 8
@c_true = external hidden global i64, align 8
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@c__0 = external hidden global i64, align 8
@dchk3_.ichu = external hidden local_unnamed_addr global [2 x i8], align 1
@dchk3_.icht = external hidden local_unnamed_addr global [3 x i8], align 1
@dchk3_.ichd = external hidden local_unnamed_addr global [2 x i8], align 1
@dchk3_.io___239 = external hidden global %struct.cilist, align 8
@dchk3_.io___240 = external hidden global %struct.cilist, align 8
@dchk3_.io___241 = external hidden global %struct.cilist, align 8
@dchk3_.io___242 = external hidden global %struct.cilist, align 8
@dchk3_.io___243 = external hidden global %struct.cilist, align 8
@dchk3_.io___244 = external hidden global %struct.cilist, align 8
@dchk3_.io___245 = external hidden global %struct.cilist, align 8
@dchk3_.io___248 = external hidden global %struct.cilist, align 8
@dchk3_.io___250 = external hidden global %struct.cilist, align 8
@dchk3_.io___251 = external hidden global %struct.cilist, align 8
@dchk3_.io___252 = external hidden global %struct.cilist, align 8
@dchk3_.io___253 = external hidden global %struct.cilist, align 8
@dchk3_.io___254 = external hidden global %struct.cilist, align 8
@dchk3_.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 @dmvch_(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 @lde_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dchk3_(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 = ptrtoint ptr %17 to i64
  %28 = ptrtoint ptr %18 to i64
  %29 = ptrtoint ptr %20 to i64
  %30 = ptrtoint ptr %21 to i64
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca %struct.alist, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca double, align 8
  %42 = alloca [1 x i8], align 1
  %43 = alloca i64, align 8
  %44 = alloca [1 x i8], align 1
  %45 = alloca [13 x i64], align 16
  %46 = alloca i64, align 8
  %47 = alloca [1 x i8], align 1
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  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 16, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #5
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %45) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #5
  %50 = getelementptr inbounds i8, ptr %9, i64 -8
  %51 = getelementptr inbounds i8, ptr %11, i64 -8
  %52 = getelementptr inbounds i8, ptr %13, i64 -8
  %53 = getelementptr inbounds i8, ptr %24, i64 -8
  %54 = getelementptr inbounds i8, ptr %19, i64 -8
  %55 = getelementptr inbounds i8, ptr %18, i64 -8
  %56 = getelementptr inbounds i8, ptr %17, i64 -8
  %57 = getelementptr inbounds i8, ptr %21, i64 -8
  %58 = getelementptr inbounds i8, ptr %20, i64 -8
  %59 = getelementptr inbounds i8, ptr %0, i64 2
  %60 = load i8, ptr %59, align 1, !tbaa !5
  %61 = icmp eq i8 %60, 82
  %62 = icmp eq i8 %60, 66
  %63 = icmp eq i8 %60, 80
  %.mux = select i1 %62, i64 9, i64 7
  %.0 = select i1 %61, i64 8, i64 %.mux
  store i64 0, ptr %37, align 8, !tbaa !8
  store i64 1, ptr %46, align 8, !tbaa !8
  store double 0.000000e+00, ptr %48, align 8, !tbaa !10
  %64 = load i64, ptr %14, align 8, !tbaa !8
  %.not256 = icmp slt i64 %64, 1
  br i1 %.not256, label %._crit_edge, label %.lr.ph.preheader

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

._crit_edge:                                      ; preds = %.lr.ph.preheader, %26
  %storemerge.lcssa = phi i64 [ 1, %26 ], [ %66, %.lr.ph.preheader ]
  store i64 %storemerge.lcssa, ptr %34, align 8, !tbaa !8
  %67 = load i64, ptr %8, align 8, !tbaa !8
  %.not222295 = icmp slt i64 %67, 1
  br i1 %.not222295, label %._crit_edge299, label %.lr.ph298

.lr.ph298:                                        ; preds = %._crit_edge
  %68 = getelementptr inbounds i8, ptr %0, i64 1
  %69 = getelementptr inbounds i8, ptr %0, i64 3
  %70 = getelementptr inbounds i8, ptr %33, i64 8
  %71 = getelementptr inbounds i8, ptr %45, i64 8
  %72 = getelementptr inbounds i8, ptr %45, i64 16
  %73 = getelementptr inbounds i8, ptr %45, i64 24
  %74 = getelementptr inbounds i8, ptr %45, i64 32
  %75 = getelementptr inbounds i8, ptr %45, i64 40
  %76 = getelementptr inbounds i8, ptr %45, i64 48
  %77 = getelementptr inbounds i8, ptr %45, i64 56
  %78 = getelementptr inbounds i8, ptr %45, i64 64
  %79 = sub i64 %30, %29
  %80 = sub i64 %28, %27
  %diff.check344 = icmp ult i64 %80, 32
  %diff.check = icmp ult i64 %79, 32
  br label %81

81:                                               ; preds = %.lr.ph298, %.loopexit
  %82 = phi double [ 0.000000e+00, %.lr.ph298 ], [ %485, %.loopexit ]
  %.0212296 = phi i64 [ 1, %.lr.ph298 ], [ %486, %.loopexit ]
  %83 = getelementptr inbounds i64, ptr %50, i64 %.0212296
  %84 = load i64, ptr %83, align 8, !tbaa !8
  store i64 %84, ptr %36, align 8, !tbaa !8
  br i1 %62, label %85, label %.lr.ph294.preheader

85:                                               ; preds = %81
  %86 = load i64, ptr %10, align 8, !tbaa !8
  %.not223291 = icmp slt i64 %86, 1
  br i1 %.not223291, label %.loopexit, label %.lr.ph294.preheader

.lr.ph294.preheader:                              ; preds = %81, %85
  %.0211319 = phi i64 [ %86, %85 ], [ 1, %81 ]
  br label %.lr.ph294

.lr.ph294:                                        ; preds = %.lr.ph294.preheader, %.loopexit254
  %87 = phi double [ %483, %.loopexit254 ], [ %82, %.lr.ph294.preheader ]
  %.0213292 = phi i64 [ %484, %.loopexit254 ], [ 1, %.lr.ph294.preheader ]
  br i1 %62, label %88, label %91

88:                                               ; preds = %.lr.ph294
  %89 = getelementptr inbounds i64, ptr %51, i64 %.0213292
  %90 = load i64, ptr %89, align 8, !tbaa !8
  %.pr = load i64, ptr %36, align 8
  br label %94

91:                                               ; preds = %.lr.ph294
  %92 = load i64, ptr %36, align 8
  %93 = add nsw i64 %92, -1
  br label %94

94:                                               ; preds = %91, %88
  %95 = phi i64 [ %92, %91 ], [ %.pr, %88 ]
  %storemerge224 = phi i64 [ %93, %91 ], [ %90, %88 ]
  store i64 %storemerge224, ptr %35, align 8, !tbaa !8
  %96 = add nsw i64 %storemerge224, 1
  %storemerge225 = select i1 %62, i64 %96, i64 %95
  store i64 %storemerge225, ptr %40, align 8, !tbaa !8
  %97 = load i64, ptr %14, align 8, !tbaa !8
  %98 = icmp slt i64 %storemerge225, %97
  br i1 %98, label %99, label %101

99:                                               ; preds = %94
  %100 = add nsw i64 %storemerge225, 1
  store i64 %100, ptr %40, align 8, !tbaa !8
  br label %101

101:                                              ; preds = %99, %94
  %102 = phi i64 [ %100, %99 ], [ %storemerge225, %94 ]
  %103 = icmp sgt i64 %102, %97
  br i1 %103, label %.loopexit254, label %104

104:                                              ; preds = %101
  br i1 %63, label %105, label %109

105:                                              ; preds = %104
  %106 = add nsw i64 %95, 1
  %107 = mul nsw i64 %106, %95
  %108 = sdiv i64 %107, 2
  br label %111

109:                                              ; preds = %104
  %110 = mul nsw i64 %102, %95
  br label %111

111:                                              ; preds = %109, %105
  %storemerge226 = phi i64 [ %110, %109 ], [ %108, %105 ]
  store i64 %storemerge226, ptr %39, align 8, !tbaa !8
  %112 = icmp slt i64 %95, 1
  br label %113

113:                                              ; preds = %111, %481
  %114 = phi double [ %87, %111 ], [ %477, %481 ]
  %.0207290 = phi i64 [ 1, %111 ], [ %482, %481 ]
  %115 = add nsw i64 %.0207290, -1
  %116 = getelementptr inbounds [2 x i8], ptr @dchk3_.ichu, i64 0, i64 %115
  %117 = load i8, ptr %116, align 1, !tbaa !5
  store i8 %117, ptr %44, align 1, !tbaa !5
  br label %118

118:                                              ; preds = %113, %479
  %119 = phi double [ %114, %113 ], [ %477, %479 ]
  %.0208289 = phi i64 [ 1, %113 ], [ %480, %479 ]
  %120 = add nsw i64 %.0208289, -1
  %121 = getelementptr inbounds [3 x i8], ptr @dchk3_.icht, i64 0, i64 %120
  %122 = load i8, ptr %121, align 1, !tbaa !5
  store i8 %122, ptr %47, align 1, !tbaa !5
  br label %123

123:                                              ; preds = %118, %._crit_edge287
  %124 = phi double [ %119, %118 ], [ %477, %._crit_edge287 ]
  %.0209288 = phi i64 [ 1, %118 ], [ %478, %._crit_edge287 ]
  %125 = add nsw i64 %.0209288, -1
  %126 = getelementptr inbounds [2 x i8], ptr @dchk3_.ichd, i64 0, i64 %125
  %127 = load i8, ptr %126, align 1, !tbaa !5
  store i8 %127, ptr %42, align 1, !tbaa !5
  store double 0.000000e+00, ptr %49, align 8, !tbaa !10
  %128 = call i32 @dmake_(ptr noundef nonnull %68, ptr noundef nonnull %44, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %17, ptr noundef nonnull %40, ptr noundef nonnull %35, ptr noundef nonnull %35, ptr noundef nonnull %46, ptr noundef nonnull %49, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %129 = load i64, ptr %12, align 8, !tbaa !8
  %.not227283 = icmp slt i64 %129, 1
  br i1 %.not227283, label %._crit_edge287, label %.lr.ph286

130:                                              ; preds = %472
  %131 = add nuw i64 %.0210284, 1
  %exitcond307.not = icmp eq i64 %.0210284, %129
  br i1 %exitcond307.not, label %._crit_edge287, label %.lr.ph286, !llvm.loop !12

.lr.ph286:                                        ; preds = %123, %130
  %132 = phi double [ %475, %130 ], [ %124, %123 ]
  %.0210284 = phi i64 [ %131, %130 ], [ 1, %123 ]
  %133 = getelementptr inbounds i64, ptr %52, i64 %.0210284
  %134 = load i64, ptr %133, align 8, !tbaa !8
  store i64 %134, ptr %43, align 8, !tbaa !8
  %135 = call i64 @llvm.abs.i64(i64 %134, i1 true)
  %136 = load i64, ptr %36, align 8, !tbaa !8
  %137 = mul nsw i64 %136, %135
  store i64 %137, ptr %38, align 8, !tbaa !8
  store double 5.000000e-01, ptr %49, align 8, !tbaa !10
  store i64 %135, ptr %31, align 8, !tbaa !8
  %138 = add nsw i64 %136, -1
  store i64 %138, ptr %32, align 8, !tbaa !8
  %139 = call i32 @dmake_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.7, ptr noundef nonnull @c__1, ptr noundef nonnull %36, ptr noundef %19, ptr noundef nonnull @c__1, ptr noundef %20, ptr noundef nonnull %31, ptr noundef nonnull @c__0, ptr noundef nonnull %32, ptr noundef nonnull %46, ptr noundef nonnull %49, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %140 = load i64, ptr %36, align 8, !tbaa !8
  %141 = icmp sgt i64 %140, 1
  br i1 %141, label %142, label %150

142:                                              ; preds = %.lr.ph286
  %143 = lshr i64 %140, 1
  %144 = getelementptr inbounds double, ptr %54, i64 %143
  store double 0.000000e+00, ptr %144, align 8, !tbaa !10
  %145 = load i64, ptr %43, align 8
  %146 = call i64 @llvm.abs.i64(i64 %145, i1 true)
  %147 = add nsw i64 %143, -1
  %148 = mul nsw i64 %146, %147
  %149 = getelementptr double, ptr %20, i64 %148
  store double 0.000000e+00, ptr %149, align 8, !tbaa !10
  br label %150

150:                                              ; preds = %142, %.lr.ph286
  %151 = load i64, ptr %37, align 8, !tbaa !8
  %152 = add nsw i64 %151, 1
  store i64 %152, ptr %37, align 8, !tbaa !8
  %153 = load i8, ptr %44, align 1, !tbaa !5
  %154 = load i8, ptr %47, align 1, !tbaa !5
  %155 = load i8, ptr %42, align 1, !tbaa !5
  %156 = load i64, ptr %35, align 8, !tbaa !8
  %157 = load i64, ptr %39, align 8, !tbaa !8
  %.not229258 = icmp slt i64 %157, 1
  br i1 %.not229258, label %._crit_edge262, label %.lr.ph261.preheader

.lr.ph261.preheader:                              ; preds = %150
  %min.iters.check347 = icmp ult i64 %157, 4
  %or.cond = or i1 %min.iters.check347, %diff.check344
  br i1 %or.cond, label %.lr.ph261.preheader362, label %vector.ph348

vector.ph348:                                     ; preds = %.lr.ph261.preheader
  %n.vec350 = and i64 %157, 9223372036854775804
  %ind.end351 = or disjoint i64 %n.vec350, 1
  br label %vector.body353

vector.body353:                                   ; preds = %vector.body353, %vector.ph348
  %index354 = phi i64 [ 0, %vector.ph348 ], [ %index.next358, %vector.body353 ]
  %158 = getelementptr double, ptr %17, i64 %index354
  %159 = getelementptr inbounds i8, ptr %158, i64 16
  %wide.load356 = load <2 x double>, ptr %158, align 8, !tbaa !10
  %wide.load357 = load <2 x double>, ptr %159, align 8, !tbaa !10
  %160 = getelementptr double, ptr %18, i64 %index354
  %161 = getelementptr inbounds i8, ptr %160, i64 16
  store <2 x double> %wide.load356, ptr %160, align 8, !tbaa !10
  store <2 x double> %wide.load357, ptr %161, align 8, !tbaa !10
  %index.next358 = add nuw i64 %index354, 4
  %162 = icmp eq i64 %index.next358, %n.vec350
  br i1 %162, label %middle.block345, label %vector.body353, !llvm.loop !14

middle.block345:                                  ; preds = %vector.body353
  %cmp.n359 = icmp eq i64 %157, %n.vec350
  br i1 %cmp.n359, label %._crit_edge262, label %.lr.ph261.preheader362

.lr.ph261.preheader362:                           ; preds = %middle.block345, %.lr.ph261.preheader
  %storemerge228259.ph = phi i64 [ 1, %.lr.ph261.preheader ], [ %ind.end351, %middle.block345 ]
  %163 = add nuw i64 %157, 1
  %164 = sub i64 %163, %storemerge228259.ph
  %165 = sub i64 %157, %storemerge228259.ph
  %xtraiter = and i64 %164, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph261.prol.loopexit, label %.lr.ph261.prol

.lr.ph261.prol:                                   ; preds = %.lr.ph261.preheader362, %.lr.ph261.prol
  %storemerge228259.prol = phi i64 [ %169, %.lr.ph261.prol ], [ %storemerge228259.ph, %.lr.ph261.preheader362 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph261.prol ], [ 0, %.lr.ph261.preheader362 ]
  %166 = getelementptr inbounds double, ptr %56, i64 %storemerge228259.prol
  %167 = load double, ptr %166, align 8, !tbaa !10
  %168 = getelementptr inbounds double, ptr %55, i64 %storemerge228259.prol
  store double %167, ptr %168, align 8, !tbaa !10
  %169 = add nuw i64 %storemerge228259.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.ph261.prol.loopexit, label %.lr.ph261.prol, !llvm.loop !17

.lr.ph261.prol.loopexit:                          ; preds = %.lr.ph261.prol, %.lr.ph261.preheader362
  %storemerge228259.unr = phi i64 [ %storemerge228259.ph, %.lr.ph261.preheader362 ], [ %169, %.lr.ph261.prol ]
  %170 = icmp ult i64 %165, 3
  br i1 %170, label %._crit_edge262, label %.lr.ph261

.lr.ph261:                                        ; preds = %.lr.ph261.prol.loopexit, %.lr.ph261
  %storemerge228259 = phi i64 [ %185, %.lr.ph261 ], [ %storemerge228259.unr, %.lr.ph261.prol.loopexit ]
  %171 = getelementptr inbounds double, ptr %56, i64 %storemerge228259
  %172 = load double, ptr %171, align 8, !tbaa !10
  %173 = getelementptr inbounds double, ptr %55, i64 %storemerge228259
  store double %172, ptr %173, align 8, !tbaa !10
  %174 = getelementptr double, ptr %17, i64 %storemerge228259
  %175 = load double, ptr %174, align 8, !tbaa !10
  %176 = getelementptr double, ptr %18, i64 %storemerge228259
  store double %175, ptr %176, align 8, !tbaa !10
  %177 = add nuw i64 %storemerge228259, 2
  %178 = getelementptr inbounds double, ptr %56, i64 %177
  %179 = load double, ptr %178, align 8, !tbaa !10
  %180 = getelementptr inbounds double, ptr %55, i64 %177
  store double %179, ptr %180, align 8, !tbaa !10
  %181 = add nuw i64 %storemerge228259, 3
  %182 = getelementptr inbounds double, ptr %56, i64 %181
  %183 = load double, ptr %182, align 8, !tbaa !10
  %184 = getelementptr inbounds double, ptr %55, i64 %181
  store double %183, ptr %184, align 8, !tbaa !10
  %185 = add nuw i64 %storemerge228259, 4
  %exitcond.not.3 = icmp eq i64 %181, %157
  br i1 %exitcond.not.3, label %._crit_edge262, label %.lr.ph261, !llvm.loop !19

._crit_edge262:                                   ; preds = %.lr.ph261.prol.loopexit, %.lr.ph261, %middle.block345, %150
  %186 = load i64, ptr %40, align 8, !tbaa !8
  %187 = load i64, ptr %38, align 8, !tbaa !8
  store i64 %187, ptr %31, align 8, !tbaa !8
  %.not231264 = icmp slt i64 %187, 1
  br i1 %.not231264, label %._crit_edge268, label %.lr.ph267.preheader

.lr.ph267.preheader:                              ; preds = %._crit_edge262
  %188 = add nuw i64 %187, 1
  %min.iters.check = icmp ult i64 %187, 4
  %or.cond360 = or i1 %min.iters.check, %diff.check
  br i1 %or.cond360, label %.lr.ph267.preheader361, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph267.preheader
  %n.vec = and i64 %187, 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 ]
  %189 = getelementptr double, ptr %20, i64 %index
  %190 = getelementptr inbounds i8, ptr %189, i64 16
  %wide.load = load <2 x double>, ptr %189, align 8, !tbaa !10
  %wide.load342 = load <2 x double>, ptr %190, align 8, !tbaa !10
  %191 = getelementptr double, ptr %21, i64 %index
  %192 = getelementptr inbounds i8, ptr %191, i64 16
  store <2 x double> %wide.load, ptr %191, align 8, !tbaa !10
  store <2 x double> %wide.load342, ptr %192, align 8, !tbaa !10
  %index.next = add nuw i64 %index, 4
  %193 = icmp eq i64 %index.next, %n.vec
  br i1 %193, label %middle.block, label %vector.body, !llvm.loop !20

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %187, %n.vec
  br i1 %cmp.n, label %._crit_edge268, label %.lr.ph267.preheader361

.lr.ph267.preheader361:                           ; preds = %middle.block, %.lr.ph267.preheader
  %storemerge230265.ph = phi i64 [ 1, %.lr.ph267.preheader ], [ %ind.end, %middle.block ]
  %194 = add nuw i64 %187, 1
  %195 = sub i64 %194, %storemerge230265.ph
  %196 = sub i64 %187, %storemerge230265.ph
  %xtraiter374 = and i64 %195, 3
  %lcmp.mod375.not = icmp eq i64 %xtraiter374, 0
  br i1 %lcmp.mod375.not, label %.lr.ph267.prol.loopexit, label %.lr.ph267.prol

.lr.ph267.prol:                                   ; preds = %.lr.ph267.preheader361, %.lr.ph267.prol
  %storemerge230265.prol = phi i64 [ %200, %.lr.ph267.prol ], [ %storemerge230265.ph, %.lr.ph267.preheader361 ]
  %prol.iter376 = phi i64 [ %prol.iter376.next, %.lr.ph267.prol ], [ 0, %.lr.ph267.preheader361 ]
  %197 = getelementptr inbounds double, ptr %58, i64 %storemerge230265.prol
  %198 = load double, ptr %197, align 8, !tbaa !10
  %199 = getelementptr inbounds double, ptr %57, i64 %storemerge230265.prol
  store double %198, ptr %199, align 8, !tbaa !10
  %200 = add nuw i64 %storemerge230265.prol, 1
  %prol.iter376.next = add i64 %prol.iter376, 1
  %prol.iter376.cmp.not = icmp eq i64 %prol.iter376.next, %xtraiter374
  br i1 %prol.iter376.cmp.not, label %.lr.ph267.prol.loopexit, label %.lr.ph267.prol, !llvm.loop !21

.lr.ph267.prol.loopexit:                          ; preds = %.lr.ph267.prol, %.lr.ph267.preheader361
  %storemerge230265.unr = phi i64 [ %storemerge230265.ph, %.lr.ph267.preheader361 ], [ %200, %.lr.ph267.prol ]
  %201 = icmp ult i64 %196, 3
  br i1 %201, label %._crit_edge268, label %.lr.ph267

.lr.ph267:                                        ; preds = %.lr.ph267.prol.loopexit, %.lr.ph267
  %storemerge230265 = phi i64 [ %216, %.lr.ph267 ], [ %storemerge230265.unr, %.lr.ph267.prol.loopexit ]
  %202 = getelementptr inbounds double, ptr %58, i64 %storemerge230265
  %203 = load double, ptr %202, align 8, !tbaa !10
  %204 = getelementptr inbounds double, ptr %57, i64 %storemerge230265
  store double %203, ptr %204, align 8, !tbaa !10
  %205 = getelementptr double, ptr %20, i64 %storemerge230265
  %206 = load double, ptr %205, align 8, !tbaa !10
  %207 = getelementptr double, ptr %21, i64 %storemerge230265
  store double %206, ptr %207, align 8, !tbaa !10
  %208 = add nuw i64 %storemerge230265, 2
  %209 = getelementptr inbounds double, ptr %58, i64 %208
  %210 = load double, ptr %209, align 8, !tbaa !10
  %211 = getelementptr inbounds double, ptr %57, i64 %208
  store double %210, ptr %211, align 8, !tbaa !10
  %212 = add nuw i64 %storemerge230265, 3
  %213 = getelementptr inbounds double, ptr %58, i64 %212
  %214 = load double, ptr %213, align 8, !tbaa !10
  %215 = getelementptr inbounds double, ptr %57, i64 %212
  store double %214, ptr %215, align 8, !tbaa !10
  %216 = add nuw i64 %storemerge230265, 4
  %exitcond305.not.3 = icmp eq i64 %212, %187
  br i1 %exitcond305.not.3, label %._crit_edge268, label %.lr.ph267, !llvm.loop !22

._crit_edge268:                                   ; preds = %.lr.ph267.prol.loopexit, %.lr.ph267, %middle.block, %._crit_edge262
  %storemerge230.lcssa = phi i64 [ 1, %._crit_edge262 ], [ %188, %middle.block ], [ %188, %.lr.ph267 ], [ %188, %.lr.ph267.prol.loopexit ]
  store i64 %storemerge230.lcssa, ptr %34, align 8, !tbaa !8
  %217 = load i64, ptr %43, align 8, !tbaa !8
  %218 = call i64 @s_cmp(ptr noundef nonnull %69, 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 = %._crit_edge268
  br i1 %61, label %221, label %242

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

223:                                              ; preds = %221
  %224 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %224, ptr getelementptr inbounds (i8, ptr @dchk3_.io___239, i64 8), align 8, !tbaa !23
  %225 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___239) #5
  %226 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, 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 %44, i64 noundef 1) #5
  %229 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %230 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %231 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %232 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %233 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, 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
  %.not243 = icmp eq i64 %236, 0
  br i1 %.not243, label %240, label %237

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

240:                                              ; preds = %237, %235
  %241 = call i32 @f2c_dtrmv(ptr noundef nonnull %44, ptr noundef nonnull %47, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef %17, ptr noundef nonnull %40, ptr noundef %20, ptr noundef nonnull %43) #5
  br label %355

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

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

245:                                              ; preds = %243
  %246 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %246, ptr getelementptr inbounds (i8, ptr @dchk3_.io___240, i64 8), align 8, !tbaa !23
  %247 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___240) #5
  %248 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, 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 %44, i64 noundef 1) #5
  %251 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %252 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %253 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %254 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #5
  %255 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %256 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, 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
  %.not241 = icmp eq i64 %259, 0
  br i1 %.not241, label %263, label %260

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

263:                                              ; preds = %260, %258
  %264 = call i32 @f2c_dtbmv(ptr noundef nonnull %44, ptr noundef nonnull %47, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef nonnull %35, ptr noundef %17, ptr noundef nonnull %40, ptr noundef %20, ptr noundef nonnull %43) #5
  br label %355

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

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

268:                                              ; preds = %266
  %269 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %269, ptr getelementptr inbounds (i8, ptr @dchk3_.io___241, i64 8), align 8, !tbaa !23
  %270 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___241) #5
  %271 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, 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 %44, i64 noundef 1) #5
  %274 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %275 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %276 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %277 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, 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
  %.not239 = icmp eq i64 %280, 0
  br i1 %.not239, label %284, label %281

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

284:                                              ; preds = %281, %279
  %285 = call i32 @f2c_dtpmv(ptr noundef nonnull %44, ptr noundef nonnull %47, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef %17, ptr noundef %20, ptr noundef nonnull %43) #5
  br label %355

286:                                              ; preds = %._crit_edge268
  %287 = call i64 @s_cmp(ptr noundef nonnull %69, 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 %61, label %290, label %311

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

292:                                              ; preds = %290
  %293 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %293, ptr getelementptr inbounds (i8, ptr @dchk3_.io___242, i64 8), align 8, !tbaa !23
  %294 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___242) #5
  %295 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, 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 %44, i64 noundef 1) #5
  %298 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %299 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %300 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %301 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %302 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, 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
  %.not237 = icmp eq i64 %305, 0
  br i1 %.not237, label %309, label %306

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

309:                                              ; preds = %306, %304
  %310 = call i32 @f2c_dtrsv(ptr noundef nonnull %44, ptr noundef nonnull %47, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef %17, ptr noundef nonnull %40, ptr noundef %20, ptr noundef nonnull %43) #5
  br label %355

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

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

314:                                              ; preds = %312
  %315 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %315, ptr getelementptr inbounds (i8, ptr @dchk3_.io___243, i64 8), align 8, !tbaa !23
  %316 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___243) #5
  %317 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, 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 %44, i64 noundef 1) #5
  %320 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %321 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %322 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %323 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #5
  %324 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  %325 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, 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
  %.not235 = icmp eq i64 %328, 0
  br i1 %.not235, label %332, label %329

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

332:                                              ; preds = %329, %327
  %333 = call i32 @f2c_dtbsv(ptr noundef nonnull %44, ptr noundef nonnull %47, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef nonnull %35, ptr noundef %17, ptr noundef nonnull %40, ptr noundef %20, ptr noundef nonnull %43) #5
  br label %355

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

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

337:                                              ; preds = %335
  %338 = load i64, ptr %4, align 8, !tbaa !8
  store i64 %338, ptr getelementptr inbounds (i8, ptr @dchk3_.io___244, i64 8), align 8, !tbaa !23
  %339 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___244) #5
  %340 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, 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 %44, i64 noundef 1) #5
  %343 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %344 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %345 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %346 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, 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
  %.not233 = icmp eq i64 %349, 0
  br i1 %.not233, label %353, label %350

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

353:                                              ; preds = %350, %348
  %354 = call i32 @f2c_dtpsv(ptr noundef nonnull %44, ptr noundef nonnull %47, ptr noundef nonnull %42, ptr noundef nonnull %36, ptr noundef %17, ptr noundef %20, ptr noundef nonnull %43) #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
  %.not244 = icmp eq i64 %356, 0
  br i1 %.not244, label %357, label %361

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

361:                                              ; preds = %355
  %362 = load i8, ptr %44, align 1, !tbaa !5
  %363 = icmp eq i8 %362, %153
  %364 = zext i1 %363 to i64
  store i64 %364, ptr %45, align 16, !tbaa !8
  %365 = load i8, ptr %47, align 1, !tbaa !5
  %366 = icmp eq i8 %365, %154
  %367 = zext i1 %366 to i64
  store i64 %367, ptr %71, align 8, !tbaa !8
  %368 = load i8, ptr %42, align 1, !tbaa !5
  %369 = icmp eq i8 %368, %155
  %370 = zext i1 %369 to i64
  store i64 %370, ptr %72, align 16, !tbaa !8
  %371 = load i64, ptr %36, align 8, !tbaa !8
  %372 = icmp eq i64 %140, %371
  %373 = zext i1 %372 to i64
  store i64 %373, ptr %73, align 8, !tbaa !8
  br i1 %61, label %374, label %389

374:                                              ; preds = %361
  %375 = call i64 @lde_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %39)
  store i64 %375, ptr %74, align 16, !tbaa !8
  %376 = load i64, ptr %40, align 8, !tbaa !8
  %377 = icmp eq i64 %186, %376
  %378 = zext i1 %377 to i64
  store i64 %378, ptr %75, align 8, !tbaa !8
  br i1 %112, label %379, label %381

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

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

385:                                              ; preds = %381, %379
  %storemerge316 = phi i64 [ %384, %381 ], [ %380, %379 ]
  store i64 %storemerge316, ptr %76, align 16, !tbaa !8
  %386 = load i64, ptr %43, align 8, !tbaa !8
  %387 = icmp eq i64 %217, %386
  %388 = zext i1 %387 to i64
  store i64 %388, ptr %77, align 8, !tbaa !8
  br label %.lr.ph274.preheader

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

390:                                              ; preds = %389
  %391 = load i64, ptr %35, align 8, !tbaa !8
  %392 = icmp eq i64 %156, %391
  %393 = zext i1 %392 to i64
  store i64 %393, ptr %74, align 16, !tbaa !8
  %394 = call i64 @lde_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %39)
  store i64 %394, ptr %75, align 8, !tbaa !8
  %395 = load i64, ptr %40, align 8, !tbaa !8
  %396 = icmp eq i64 %186, %395
  %397 = zext i1 %396 to i64
  store i64 %397, ptr %76, align 16, !tbaa !8
  br i1 %112, label %398, label %400

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

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

404:                                              ; preds = %400, %398
  %storemerge315 = phi i64 [ %403, %400 ], [ %399, %398 ]
  store i64 %storemerge315, ptr %77, align 8, !tbaa !8
  %405 = load i64, ptr %43, align 8, !tbaa !8
  %406 = icmp eq i64 %217, %405
  %407 = zext i1 %406 to i64
  store i64 %407, ptr %78, align 16, !tbaa !8
  br label %.lr.ph274.preheader

408:                                              ; preds = %389
  br i1 %63, label %409, label %.lr.ph274.preheader

409:                                              ; preds = %408
  %410 = call i64 @lde_(ptr noundef %18, ptr noundef %17, ptr noundef nonnull %39)
  store i64 %410, ptr %74, align 16, !tbaa !8
  br i1 %112, label %411, label %413

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

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

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

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

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

425:                                              ; preds = %.lr.ph274
  %426 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %426, ptr getelementptr inbounds (i8, ptr @dchk3_.io___248, i64 8), align 8, !tbaa !23
  %427 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___248) #5
  %428 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %34, i64 noundef 8) #5
  %429 = call i64 @e_wsfe() #5
  %.pre313 = load i64, ptr %34, align 8, !tbaa !8
  %.pre314 = load i64, ptr %31, align 8, !tbaa !8
  br label %430

430:                                              ; preds = %.lr.ph274, %425
  %431 = phi i64 [ %421, %.lr.ph274 ], [ %.pre314, %425 ]
  %432 = phi i64 [ %422, %.lr.ph274 ], [ %.pre313, %425 ]
  %433 = add nsw i64 %432, 1
  store i64 %433, ptr %34, align 8, !tbaa !8
  %.not246.not = icmp slt i64 %432, %431
  br i1 %.not246.not, label %.lr.ph274, label %._crit_edge275, !llvm.loop !29

._crit_edge275:                                   ; preds = %430
  br i1 %424, label %434, label %.loopexit253.sink.split

434:                                              ; preds = %._crit_edge275
  br i1 %112, label %.loopexit, label %435

435:                                              ; preds = %434
  %436 = call i64 @s_cmp(ptr noundef nonnull %69, 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 @dmvch_(ptr noundef nonnull %47, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull @c_b121, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %19, ptr noundef nonnull %43, ptr noundef nonnull @c_b133, ptr noundef %24, ptr noundef nonnull %43, ptr noundef %22, ptr noundef %23, ptr noundef %20, ptr noundef %1, ptr noundef nonnull %41, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1)
  br label %472

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

443:                                              ; preds = %440
  %444 = load i64, ptr %36, align 8, !tbaa !8
  store i64 %444, ptr %31, align 8, !tbaa !8
  %.not249277 = icmp slt i64 %444, 1
  br i1 %.not249277, label %._crit_edge281, label %.lr.ph280

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

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

449:                                              ; preds = %449, %.lr.ph280.new
  %storemerge248278 = phi i64 [ 1, %.lr.ph280.new ], [ %463, %449 ]
  %niter = phi i64 [ 0, %.lr.ph280.new ], [ %niter.next.1, %449 ]
  %450 = add nsw i64 %storemerge248278, -1
  %451 = mul nsw i64 %446, %450
  %452 = getelementptr double, ptr %20, i64 %451
  %453 = load double, ptr %452, align 8, !tbaa !10
  %454 = getelementptr inbounds double, ptr %53, i64 %storemerge248278
  store double %453, ptr %454, align 8, !tbaa !10
  %455 = getelementptr inbounds double, ptr %54, i64 %storemerge248278
  %456 = load double, ptr %455, align 8, !tbaa !10
  store double %456, ptr %452, align 8, !tbaa !10
  %457 = mul nsw i64 %446, %storemerge248278
  %458 = getelementptr double, ptr %20, i64 %457
  %459 = load double, ptr %458, align 8, !tbaa !10
  %460 = getelementptr double, ptr %24, i64 %storemerge248278
  store double %459, ptr %460, align 8, !tbaa !10
  %461 = getelementptr double, ptr %19, i64 %storemerge248278
  %462 = load double, ptr %461, align 8, !tbaa !10
  store double %462, ptr %458, align 8, !tbaa !10
  %463 = add nuw i64 %storemerge248278, 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_edge281.loopexit.unr-lcssa, label %449, !llvm.loop !30

._crit_edge281.loopexit.unr-lcssa:                ; preds = %449, %.lr.ph280
  %storemerge248278.unr = phi i64 [ 1, %.lr.ph280 ], [ %463, %449 ]
  %lcmp.mod378.not = icmp eq i64 %xtraiter377, 0
  br i1 %lcmp.mod378.not, label %._crit_edge281, label %._crit_edge281.loopexit.epilog-lcssa

._crit_edge281.loopexit.epilog-lcssa:             ; preds = %._crit_edge281.loopexit.unr-lcssa
  %464 = add nsw i64 %storemerge248278.unr, -1
  %465 = mul nsw i64 %446, %464
  %466 = getelementptr double, ptr %20, i64 %465
  %467 = load double, ptr %466, align 8, !tbaa !10
  %468 = getelementptr inbounds double, ptr %53, i64 %storemerge248278.unr
  store double %467, ptr %468, align 8, !tbaa !10
  %469 = getelementptr inbounds double, ptr %54, i64 %storemerge248278.unr
  %470 = load double, ptr %469, align 8, !tbaa !10
  store double %470, ptr %466, align 8, !tbaa !10
  br label %._crit_edge281

._crit_edge281:                                   ; preds = %._crit_edge281.loopexit.epilog-lcssa, %._crit_edge281.loopexit.unr-lcssa, %443
  %storemerge248.lcssa = phi i64 [ 1, %443 ], [ %447, %._crit_edge281.loopexit.unr-lcssa ], [ %447, %._crit_edge281.loopexit.epilog-lcssa ]
  store i64 %storemerge248.lcssa, ptr %34, align 8, !tbaa !8
  %471 = call i32 @dmvch_(ptr noundef nonnull %47, ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef nonnull @c_b121, ptr noundef %16, ptr noundef nonnull %14, ptr noundef %24, ptr noundef nonnull %43, ptr noundef nonnull @c_b133, ptr noundef %19, ptr noundef nonnull %43, ptr noundef %22, ptr noundef %23, ptr noundef %20, ptr noundef %1, ptr noundef nonnull %41, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_false, i64 noundef 1)
  br label %472

472:                                              ; preds = %440, %._crit_edge281, %438
  %473 = load double, ptr %41, align 8
  %474 = fcmp oge double %132, %473
  %475 = select i1 %474, double %132, double %473
  store double %475, ptr %48, align 8, !tbaa !10
  %476 = load i64, ptr %7, align 8, !tbaa !8
  %.not250 = icmp eq i64 %476, 0
  br i1 %.not250, label %130, label %.loopexit253

._crit_edge287:                                   ; preds = %130, %123
  %477 = phi double [ %124, %123 ], [ %475, %130 ]
  %478 = add nuw nsw i64 %.0209288, 1
  %exitcond308.not = icmp eq i64 %478, 3
  br i1 %exitcond308.not, label %479, label %123, !llvm.loop !31

479:                                              ; preds = %._crit_edge287
  %480 = add nuw nsw i64 %.0208289, 1
  %exitcond309.not = icmp eq i64 %480, 4
  br i1 %exitcond309.not, label %481, label %118, !llvm.loop !32

481:                                              ; preds = %479
  %482 = add nuw nsw i64 %.0207290, 1
  %exitcond310.not = icmp eq i64 %482, 3
  br i1 %exitcond310.not, label %.loopexit254, label %113, !llvm.loop !33

.loopexit254:                                     ; preds = %481, %101
  %483 = phi double [ %87, %101 ], [ %477, %481 ]
  %484 = add nuw i64 %.0213292, 1
  %exitcond311.not = icmp eq i64 %.0213292, %.0211319
  br i1 %exitcond311.not, label %.loopexit, label %.lr.ph294, !llvm.loop !34

.loopexit:                                        ; preds = %.loopexit254, %434, %85
  %485 = phi double [ %82, %85 ], [ %132, %434 ], [ %483, %.loopexit254 ]
  %486 = add nuw i64 %.0212296, 1
  %exitcond312.not = icmp eq i64 %.0212296, %67
  br i1 %exitcond312.not, label %._crit_edge299, label %81, !llvm.loop !35

._crit_edge299:                                   ; preds = %.loopexit, %._crit_edge
  %487 = phi double [ 0.000000e+00, %._crit_edge ], [ %485, %.loopexit ]
  %488 = load double, ptr %2, align 8, !tbaa !10
  %489 = fcmp olt double %487, %488
  %490 = load i64, ptr %3, align 8, !tbaa !8
  br i1 %489, label %491, label %494

491:                                              ; preds = %._crit_edge299
  store i64 %490, ptr getelementptr inbounds (i8, ptr @dchk3_.io___250, i64 8), align 8, !tbaa !23
  %492 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___250) #5
  %493 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  br label %.sink.split

494:                                              ; preds = %._crit_edge299
  store i64 %490, ptr getelementptr inbounds (i8, ptr @dchk3_.io___251, i64 8), align 8, !tbaa !23
  %495 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___251) #5
  %496 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %497 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #5
  br label %.sink.split

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

.loopexit253:                                     ; preds = %472, %.loopexit253.sink.split
  %498 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %498, ptr getelementptr inbounds (i8, ptr @dchk3_.io___252, i64 8), align 8, !tbaa !23
  %499 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___252) #5
  %500 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %501 = call i64 @e_wsfe() #5
  br i1 %61, label %502, label %512

502:                                              ; preds = %.loopexit253
  %503 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %503, ptr getelementptr inbounds (i8, ptr @dchk3_.io___253, i64 8), align 8, !tbaa !23
  %504 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___253) #5
  %505 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #5
  %506 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %507 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %44, i64 noundef 1) #5
  %508 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %509 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %510 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %511 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  br label %.sink.split

512:                                              ; preds = %.loopexit253
  br i1 %62, label %513, label %524

513:                                              ; preds = %512
  %514 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %514, ptr getelementptr inbounds (i8, ptr @dchk3_.io___254, i64 8), align 8, !tbaa !23
  %515 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___254) #5
  %516 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #5
  %517 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %518 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %44, i64 noundef 1) #5
  %519 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %520 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %521 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  %522 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #5
  %523 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #5
  br label %.sink.split

524:                                              ; preds = %512
  br i1 %63, label %525, label %536

525:                                              ; preds = %524
  %526 = load i64, ptr %3, align 8, !tbaa !8
  store i64 %526, ptr getelementptr inbounds (i8, ptr @dchk3_.io___255, i64 8), align 8, !tbaa !23
  %527 = call i64 @s_wsfe(ptr noundef nonnull @dchk3_.io___255) #5
  %528 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #5
  %529 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #5
  %530 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %44, i64 noundef 1) #5
  %531 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #5
  %532 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 1) #5
  %533 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #5
  br label %.sink.split

.sink.split:                                      ; preds = %494, %491, %513, %525, %502
  %.sink = phi ptr [ %43, %502 ], [ %43, %525 ], [ %43, %513 ], [ %37, %491 ], [ %48, %494 ]
  %534 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %.sink, i64 noundef 8) #5
  %535 = call i64 @e_wsfe() #5
  br label %536

536:                                              ; preds = %.sink.split, %524
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 16, 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
  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 @dmake_(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 @lderes_(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_dtrmv(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"long", !6, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"double", !6, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13, !15, !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,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass