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

; 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
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b101 = external hidden global double, align 8
@c_true = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@dchk5_.icht = external hidden global [3 x i8], align 1
@dchk5_.ichu = external hidden global [2 x i8], align 1
@dchk5_.io___322 = external hidden global %struct.cilist, align 8
@dchk5_.io___323 = external hidden global %struct.cilist, align 8
@dchk5_.io___326 = external hidden global %struct.cilist, align 8
@dchk5_.io___333 = external hidden global %struct.cilist, align 8
@dchk5_.io___334 = external hidden global %struct.cilist, align 8
@dchk5_.io___335 = external hidden global %struct.cilist, align 8
@dchk5_.io___336 = external hidden global %struct.cilist, align 8
@dchk5_.io___337 = external hidden global %struct.cilist, align 8

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

declare i64 @s_wsfe(ptr noundef) #1

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

declare i64 @e_wsfe() #1

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

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

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

147:                                              ; preds = %809, %27
  %148 = load i64, ptr %77, align 8, !tbaa !9
  %149 = load i64, ptr %57, align 8, !tbaa !9
  %150 = icmp sle i64 %148, %149
  br i1 %150, label %151, label %812

151:                                              ; preds = %147
  %152 = load ptr, ptr %37, align 8, !tbaa !5
  %153 = load i64, ptr %77, align 8, !tbaa !9
  %154 = getelementptr inbounds i64, ptr %152, i64 %153
  %155 = load i64, ptr %154, align 8, !tbaa !9
  store i64 %155, ptr %69, align 8, !tbaa !9
  %156 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %156, ptr %87, align 8, !tbaa !9
  %157 = load i64, ptr %87, align 8, !tbaa !9
  %158 = load ptr, ptr %42, align 8, !tbaa !5
  %159 = load i64, ptr %158, align 8, !tbaa !9
  %160 = icmp slt i64 %157, %159
  br i1 %160, label %161, label %164

161:                                              ; preds = %151
  %162 = load i64, ptr %87, align 8, !tbaa !9
  %163 = add nsw i64 %162, 1
  store i64 %163, ptr %87, align 8, !tbaa !9
  br label %164

164:                                              ; preds = %161, %151
  %165 = load i64, ptr %87, align 8, !tbaa !9
  %166 = load ptr, ptr %42, align 8, !tbaa !5
  %167 = load i64, ptr %166, align 8, !tbaa !9
  %168 = icmp sgt i64 %165, %167
  br i1 %168, label %169, label %170

169:                                              ; preds = %164
  br label %808

170:                                              ; preds = %164
  %171 = load i64, ptr %87, align 8, !tbaa !9
  %172 = load i64, ptr %69, align 8, !tbaa !9
  %173 = mul nsw i64 %171, %172
  store i64 %173, ptr %85, align 8, !tbaa !9
  %174 = load i64, ptr %69, align 8, !tbaa !9
  %175 = icmp sle i64 %174, 0
  %176 = zext i1 %175 to i32
  %177 = sext i32 %176 to i64
  store i64 %177, ptr %100, align 8, !tbaa !9
  %178 = load ptr, ptr %36, align 8, !tbaa !5
  %179 = load i64, ptr %178, align 8, !tbaa !9
  store i64 %179, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %180

180:                                              ; preds = %804, %170
  %181 = load i64, ptr %76, align 8, !tbaa !9
  %182 = load i64, ptr %58, align 8, !tbaa !9
  %183 = icmp sle i64 %181, %182
  br i1 %183, label %184, label %807

184:                                              ; preds = %180
  %185 = load ptr, ptr %37, align 8, !tbaa !5
  %186 = load i64, ptr %76, align 8, !tbaa !9
  %187 = getelementptr inbounds i64, ptr %185, i64 %186
  %188 = load i64, ptr %187, align 8, !tbaa !9
  store i64 %188, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %89, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %800, %184
  %190 = load i64, ptr %89, align 8, !tbaa !9
  %191 = icmp sle i64 %190, 3
  br i1 %191, label %192, label %803

192:                                              ; preds = %189
  %193 = load i64, ptr %89, align 8, !tbaa !9
  %194 = sub nsw i64 %193, 1
  %195 = getelementptr inbounds [3 x i8], ptr @dchk5_.icht, i64 0, i64 %194
  %196 = load i8, ptr %195, align 1, !tbaa !13
  %197 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  store i8 %196, ptr %197, align 1, !tbaa !13
  %198 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  %199 = load i8, ptr %198, align 1, !tbaa !13
  %200 = zext i8 %199 to i32
  %201 = icmp eq i32 %200, 84
  br i1 %201, label %207, label %202

202:                                              ; preds = %192
  %203 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  %204 = load i8, ptr %203, align 1, !tbaa !13
  %205 = zext i8 %204 to i32
  %206 = icmp eq i32 %205, 67
  br label %207

207:                                              ; preds = %202, %192
  %208 = phi i1 [ true, %192 ], [ %206, %202 ]
  %209 = zext i1 %208 to i32
  %210 = sext i32 %209 to i64
  store i64 %210, ptr %99, align 8, !tbaa !9
  %211 = load i64, ptr %99, align 8, !tbaa !9
  %212 = icmp ne i64 %211, 0
  br i1 %212, label %213, label %216

213:                                              ; preds = %207
  %214 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %214, ptr %73, align 8, !tbaa !9
  %215 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %215, ptr %74, align 8, !tbaa !9
  br label %219

216:                                              ; preds = %207
  %217 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %217, ptr %73, align 8, !tbaa !9
  %218 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %218, ptr %74, align 8, !tbaa !9
  br label %219

219:                                              ; preds = %216, %213
  %220 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %220, ptr %84, align 8, !tbaa !9
  %221 = load i64, ptr %84, align 8, !tbaa !9
  %222 = load ptr, ptr %42, align 8, !tbaa !5
  %223 = load i64, ptr %222, align 8, !tbaa !9
  %224 = icmp slt i64 %221, %223
  br i1 %224, label %225, label %228

225:                                              ; preds = %219
  %226 = load i64, ptr %84, align 8, !tbaa !9
  %227 = add nsw i64 %226, 1
  store i64 %227, ptr %84, align 8, !tbaa !9
  br label %228

228:                                              ; preds = %225, %219
  %229 = load i64, ptr %84, align 8, !tbaa !9
  %230 = load ptr, ptr %42, align 8, !tbaa !5
  %231 = load i64, ptr %230, align 8, !tbaa !9
  %232 = icmp sgt i64 %229, %231
  br i1 %232, label %233, label %234

233:                                              ; preds = %228
  br label %799

234:                                              ; preds = %228
  %235 = load i64, ptr %84, align 8, !tbaa !9
  %236 = load i64, ptr %74, align 8, !tbaa !9
  %237 = mul nsw i64 %235, %236
  store i64 %237, ptr %82, align 8, !tbaa !9
  %238 = load i64, ptr %99, align 8, !tbaa !9
  %239 = icmp ne i64 %238, 0
  br i1 %239, label %240, label %249

240:                                              ; preds = %234
  %241 = load ptr, ptr %42, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  %243 = shl i64 %242, 1
  store i64 %243, ptr %59, align 8, !tbaa !9
  %244 = load ptr, ptr %43, align 8, !tbaa !5
  %245 = getelementptr inbounds double, ptr %244, i64 1
  %246 = load ptr, ptr %44, align 8, !tbaa !5
  %247 = getelementptr inbounds double, ptr %246, i64 1
  %248 = call i32 @dmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %73, ptr noundef %74, ptr noundef %245, ptr noundef %59, ptr noundef %247, ptr noundef %84, ptr noundef %105, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %256

249:                                              ; preds = %234
  %250 = load ptr, ptr %43, align 8, !tbaa !5
  %251 = getelementptr inbounds double, ptr %250, i64 1
  %252 = load ptr, ptr %42, align 8, !tbaa !5
  %253 = load ptr, ptr %44, align 8, !tbaa !5
  %254 = getelementptr inbounds double, ptr %253, i64 1
  %255 = call i32 @dmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %73, ptr noundef %74, ptr noundef %251, ptr noundef %252, ptr noundef %254, ptr noundef %84, ptr noundef %105, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %256

256:                                              ; preds = %249, %240
  %257 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %257, ptr %86, align 8, !tbaa !9
  %258 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %258, ptr %83, align 8, !tbaa !9
  %259 = load i64, ptr %99, align 8, !tbaa !9
  %260 = icmp ne i64 %259, 0
  br i1 %260, label %261, label %272

261:                                              ; preds = %256
  %262 = load ptr, ptr %42, align 8, !tbaa !5
  %263 = load i64, ptr %262, align 8, !tbaa !9
  %264 = shl i64 %263, 1
  store i64 %264, ptr %59, align 8, !tbaa !9
  %265 = load ptr, ptr %43, align 8, !tbaa !5
  %266 = load i64, ptr %68, align 8, !tbaa !9
  %267 = add nsw i64 %266, 1
  %268 = getelementptr inbounds double, ptr %265, i64 %267
  %269 = load ptr, ptr %46, align 8, !tbaa !5
  %270 = getelementptr inbounds double, ptr %269, i64 1
  %271 = call i32 @dmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %73, ptr noundef %74, ptr noundef %268, ptr noundef %59, ptr noundef %270, ptr noundef %86, ptr noundef %105, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %284

272:                                              ; preds = %256
  %273 = load ptr, ptr %43, align 8, !tbaa !5
  %274 = load i64, ptr %68, align 8, !tbaa !9
  %275 = load ptr, ptr %42, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  %277 = mul nsw i64 %274, %276
  %278 = add nsw i64 %277, 1
  %279 = getelementptr inbounds double, ptr %273, i64 %278
  %280 = load ptr, ptr %42, align 8, !tbaa !5
  %281 = load ptr, ptr %46, align 8, !tbaa !5
  %282 = getelementptr inbounds double, ptr %281, i64 1
  %283 = call i32 @dmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %73, ptr noundef %74, ptr noundef %279, ptr noundef %280, ptr noundef %282, ptr noundef %86, ptr noundef %105, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %284

284:                                              ; preds = %272, %261
  store i64 1, ptr %90, align 8, !tbaa !9
  br label %285

285:                                              ; preds = %795, %284
  %286 = load i64, ptr %90, align 8, !tbaa !9
  %287 = icmp sle i64 %286, 2
  br i1 %287, label %288, label %798

288:                                              ; preds = %285
  %289 = load i64, ptr %90, align 8, !tbaa !9
  %290 = sub nsw i64 %289, 1
  %291 = getelementptr inbounds [2 x i8], ptr @dchk5_.ichu, i64 0, i64 %290
  %292 = load i8, ptr %291, align 1, !tbaa !13
  %293 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  store i8 %292, ptr %293, align 1, !tbaa !13
  %294 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  %295 = load i8, ptr %294, align 1, !tbaa !13
  %296 = zext i8 %295 to i32
  %297 = icmp eq i32 %296, 85
  %298 = zext i1 %297 to i32
  %299 = sext i32 %298 to i64
  store i64 %299, ptr %107, align 8, !tbaa !9
  %300 = load ptr, ptr %38, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  store i64 %301, ptr %59, align 8, !tbaa !9
  store i64 1, ptr %70, align 8, !tbaa !9
  br label %302

302:                                              ; preds = %791, %288
  %303 = load i64, ptr %70, align 8, !tbaa !9
  %304 = load i64, ptr %59, align 8, !tbaa !9
  %305 = icmp sle i64 %303, %304
  br i1 %305, label %306, label %794

306:                                              ; preds = %302
  %307 = load ptr, ptr %39, align 8, !tbaa !5
  %308 = load i64, ptr %70, align 8, !tbaa !9
  %309 = getelementptr inbounds double, ptr %307, i64 %308
  %310 = load double, ptr %309, align 8, !tbaa !11
  store double %310, ptr %102, align 8, !tbaa !11
  %311 = load ptr, ptr %40, align 8, !tbaa !5
  %312 = load i64, ptr %311, align 8, !tbaa !9
  store i64 %312, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %313

313:                                              ; preds = %787, %306
  %314 = load i64, ptr %71, align 8, !tbaa !9
  %315 = load i64, ptr %60, align 8, !tbaa !9
  %316 = icmp sle i64 %314, %315
  br i1 %316, label %317, label %790

317:                                              ; preds = %313
  %318 = load ptr, ptr %41, align 8, !tbaa !5
  %319 = load i64, ptr %71, align 8, !tbaa !9
  %320 = getelementptr inbounds double, ptr %318, i64 %319
  %321 = load double, ptr %320, align 8, !tbaa !11
  store double %321, ptr %93, align 8, !tbaa !11
  %322 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  %323 = load ptr, ptr %48, align 8, !tbaa !5
  %324 = load i64, ptr %56, align 8, !tbaa !9
  %325 = getelementptr inbounds double, ptr %323, i64 %324
  %326 = load ptr, ptr %42, align 8, !tbaa !5
  %327 = load ptr, ptr %49, align 8, !tbaa !5
  %328 = getelementptr inbounds double, ptr %327, i64 1
  %329 = call i32 @dmake_(ptr noundef @.str.7, ptr noundef %322, ptr noundef @.str.6, ptr noundef %69, ptr noundef %69, ptr noundef %325, ptr noundef %326, ptr noundef %328, ptr noundef %87, ptr noundef %105, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %330 = load i64, ptr %75, align 8, !tbaa !9
  %331 = add nsw i64 %330, 1
  store i64 %331, ptr %75, align 8, !tbaa !9
  %332 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  %333 = load i8, ptr %332, align 1, !tbaa !13
  %334 = getelementptr inbounds [1 x i8], ptr %108, i64 0, i64 0
  store i8 %333, ptr %334, align 1, !tbaa !13
  %335 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  %336 = load i8, ptr %335, align 1, !tbaa !13
  %337 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  store i8 %336, ptr %337, align 1, !tbaa !13
  %338 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %338, ptr %81, align 8, !tbaa !9
  %339 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %339, ptr %80, align 8, !tbaa !9
  %340 = load double, ptr %102, align 8, !tbaa !11
  store double %340, ptr %88, align 8, !tbaa !11
  %341 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %341, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %342

342:                                              ; preds = %354, %317
  %343 = load i64, ptr %66, align 8, !tbaa !9
  %344 = load i64, ptr %61, align 8, !tbaa !9
  %345 = icmp sle i64 %343, %344
  br i1 %345, label %346, label %357

346:                                              ; preds = %342
  %347 = load ptr, ptr %44, align 8, !tbaa !5
  %348 = load i64, ptr %66, align 8, !tbaa !9
  %349 = getelementptr inbounds double, ptr %347, i64 %348
  %350 = load double, ptr %349, align 8, !tbaa !11
  %351 = load ptr, ptr %45, align 8, !tbaa !5
  %352 = load i64, ptr %66, align 8, !tbaa !9
  %353 = getelementptr inbounds double, ptr %351, i64 %352
  store double %350, ptr %353, align 8, !tbaa !11
  br label %354

354:                                              ; preds = %346
  %355 = load i64, ptr %66, align 8, !tbaa !9
  %356 = add nsw i64 %355, 1
  store i64 %356, ptr %66, align 8, !tbaa !9
  br label %342, !llvm.loop !14

357:                                              ; preds = %342
  %358 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %358, ptr %94, align 8, !tbaa !9
  %359 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %359, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %360

360:                                              ; preds = %372, %357
  %361 = load i64, ptr %66, align 8, !tbaa !9
  %362 = load i64, ptr %61, align 8, !tbaa !9
  %363 = icmp sle i64 %361, %362
  br i1 %363, label %364, label %375

364:                                              ; preds = %360
  %365 = load ptr, ptr %46, align 8, !tbaa !5
  %366 = load i64, ptr %66, align 8, !tbaa !9
  %367 = getelementptr inbounds double, ptr %365, i64 %366
  %368 = load double, ptr %367, align 8, !tbaa !11
  %369 = load ptr, ptr %47, align 8, !tbaa !5
  %370 = load i64, ptr %66, align 8, !tbaa !9
  %371 = getelementptr inbounds double, ptr %369, i64 %370
  store double %368, ptr %371, align 8, !tbaa !11
  br label %372

372:                                              ; preds = %364
  %373 = load i64, ptr %66, align 8, !tbaa !9
  %374 = add nsw i64 %373, 1
  store i64 %374, ptr %66, align 8, !tbaa !9
  br label %360, !llvm.loop !16

375:                                              ; preds = %360
  %376 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %376, ptr %95, align 8, !tbaa !9
  %377 = load double, ptr %93, align 8, !tbaa !11
  store double %377, ptr %98, align 8, !tbaa !11
  %378 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %378, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %379

379:                                              ; preds = %391, %375
  %380 = load i64, ptr %66, align 8, !tbaa !9
  %381 = load i64, ptr %61, align 8, !tbaa !9
  %382 = icmp sle i64 %380, %381
  br i1 %382, label %383, label %394

383:                                              ; preds = %379
  %384 = load ptr, ptr %49, align 8, !tbaa !5
  %385 = load i64, ptr %66, align 8, !tbaa !9
  %386 = getelementptr inbounds double, ptr %384, i64 %385
  %387 = load double, ptr %386, align 8, !tbaa !11
  %388 = load ptr, ptr %50, align 8, !tbaa !5
  %389 = load i64, ptr %66, align 8, !tbaa !9
  %390 = getelementptr inbounds double, ptr %388, i64 %389
  store double %387, ptr %390, align 8, !tbaa !11
  br label %391

391:                                              ; preds = %383
  %392 = load i64, ptr %66, align 8, !tbaa !9
  %393 = add nsw i64 %392, 1
  store i64 %393, ptr %66, align 8, !tbaa !9
  br label %379, !llvm.loop !17

394:                                              ; preds = %379
  %395 = load i64, ptr %87, align 8, !tbaa !9
  store i64 %395, ptr %96, align 8, !tbaa !9
  %396 = load ptr, ptr %33, align 8, !tbaa !5
  %397 = load i64, ptr %396, align 8, !tbaa !9
  %398 = icmp ne i64 %397, 0
  br i1 %398, label %399, label %418

399:                                              ; preds = %394
  %400 = load ptr, ptr %32, align 8, !tbaa !5
  %401 = load i64, ptr %400, align 8, !tbaa !9
  store i64 %401, ptr getelementptr inbounds (%struct.cilist, ptr @dchk5_.io___322, i32 0, i32 1), align 8, !tbaa !18
  %402 = call i64 @s_wsfe(ptr noundef @dchk5_.io___322)
  %403 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %404 = load ptr, ptr %28, align 8, !tbaa !5
  %405 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %404, i64 noundef 6)
  %406 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  %407 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %406, i64 noundef 1)
  %408 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  %409 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %408, i64 noundef 1)
  %410 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %411 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %68, i64 noundef 8)
  %412 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %413 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %84, i64 noundef 8)
  %414 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %415 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %93, i64 noundef 8)
  %416 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %87, i64 noundef 8)
  %417 = call i64 @e_wsfe()
  br label %418

418:                                              ; preds = %399, %394
  %419 = load ptr, ptr %34, align 8, !tbaa !5
  %420 = load i64, ptr %419, align 8, !tbaa !9
  %421 = icmp ne i64 %420, 0
  br i1 %421, label %422, label %428

422:                                              ; preds = %418
  %423 = getelementptr inbounds %struct.alist, ptr %65, i32 0, i32 0
  store i64 0, ptr %423, align 8, !tbaa !20
  %424 = load ptr, ptr %32, align 8, !tbaa !5
  %425 = load i64, ptr %424, align 8, !tbaa !9
  %426 = getelementptr inbounds %struct.alist, ptr %65, i32 0, i32 1
  store i64 %425, ptr %426, align 8, !tbaa !22
  %427 = call i64 @f_rew(ptr noundef %65)
  br label %428

428:                                              ; preds = %422, %418
  %429 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  %430 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  %431 = load ptr, ptr %44, align 8, !tbaa !5
  %432 = getelementptr inbounds double, ptr %431, i64 1
  %433 = load ptr, ptr %46, align 8, !tbaa !5
  %434 = getelementptr inbounds double, ptr %433, i64 1
  %435 = load ptr, ptr %49, align 8, !tbaa !5
  %436 = getelementptr inbounds double, ptr %435, i64 1
  %437 = call i32 @f2c_dsyr2k(ptr noundef %429, ptr noundef %430, ptr noundef %69, ptr noundef %68, ptr noundef %102, ptr noundef %432, ptr noundef %84, ptr noundef %434, ptr noundef %86, ptr noundef %93, ptr noundef %436, ptr noundef %87)
  %438 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !13
  %439 = icmp ne i64 %438, 0
  br i1 %439, label %446, label %440

440:                                              ; preds = %428
  %441 = load ptr, ptr %31, align 8, !tbaa !5
  %442 = load i64, ptr %441, align 8, !tbaa !9
  store i64 %442, ptr getelementptr inbounds (%struct.cilist, ptr @dchk5_.io___323, i32 0, i32 1), align 8, !tbaa !18
  %443 = call i64 @s_wsfe(ptr noundef @dchk5_.io___323)
  %444 = call i64 @e_wsfe()
  %445 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %445, align 8, !tbaa !9
  br label %845

446:                                              ; preds = %428
  %447 = getelementptr inbounds [1 x i8], ptr %108, i64 0, i64 0
  %448 = load i8, ptr %447, align 1, !tbaa !13
  %449 = zext i8 %448 to i32
  %450 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  %451 = load i8, ptr %450, align 1, !tbaa !13
  %452 = zext i8 %451 to i32
  %453 = icmp eq i32 %449, %452
  %454 = zext i1 %453 to i32
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 0
  store i64 %455, ptr %456, align 16, !tbaa !9
  %457 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %458 = load i8, ptr %457, align 1, !tbaa !13
  %459 = zext i8 %458 to i32
  %460 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  %461 = load i8, ptr %460, align 1, !tbaa !13
  %462 = zext i8 %461 to i32
  %463 = icmp eq i32 %459, %462
  %464 = zext i1 %463 to i32
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 1
  store i64 %465, ptr %466, align 8, !tbaa !9
  %467 = load i64, ptr %81, align 8, !tbaa !9
  %468 = load i64, ptr %69, align 8, !tbaa !9
  %469 = icmp eq i64 %467, %468
  %470 = zext i1 %469 to i32
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 2
  store i64 %471, ptr %472, align 16, !tbaa !9
  %473 = load i64, ptr %80, align 8, !tbaa !9
  %474 = load i64, ptr %68, align 8, !tbaa !9
  %475 = icmp eq i64 %473, %474
  %476 = zext i1 %475 to i32
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 3
  store i64 %477, ptr %478, align 8, !tbaa !9
  %479 = load double, ptr %88, align 8, !tbaa !11
  %480 = load double, ptr %102, align 8, !tbaa !11
  %481 = fcmp oeq double %479, %480
  %482 = zext i1 %481 to i32
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 4
  store i64 %483, ptr %484, align 16, !tbaa !9
  %485 = load ptr, ptr %45, align 8, !tbaa !5
  %486 = getelementptr inbounds double, ptr %485, i64 1
  %487 = load ptr, ptr %44, align 8, !tbaa !5
  %488 = getelementptr inbounds double, ptr %487, i64 1
  %489 = call i64 @lde_(ptr noundef %486, ptr noundef %488, ptr noundef %82)
  %490 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 5
  store i64 %489, ptr %490, align 8, !tbaa !9
  %491 = load i64, ptr %94, align 8, !tbaa !9
  %492 = load i64, ptr %84, align 8, !tbaa !9
  %493 = icmp eq i64 %491, %492
  %494 = zext i1 %493 to i32
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 6
  store i64 %495, ptr %496, align 16, !tbaa !9
  %497 = load ptr, ptr %47, align 8, !tbaa !5
  %498 = getelementptr inbounds double, ptr %497, i64 1
  %499 = load ptr, ptr %46, align 8, !tbaa !5
  %500 = getelementptr inbounds double, ptr %499, i64 1
  %501 = call i64 @lde_(ptr noundef %498, ptr noundef %500, ptr noundef %83)
  %502 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 7
  store i64 %501, ptr %502, align 8, !tbaa !9
  %503 = load i64, ptr %95, align 8, !tbaa !9
  %504 = load i64, ptr %86, align 8, !tbaa !9
  %505 = icmp eq i64 %503, %504
  %506 = zext i1 %505 to i32
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 8
  store i64 %507, ptr %508, align 16, !tbaa !9
  %509 = load double, ptr %98, align 8, !tbaa !11
  %510 = load double, ptr %93, align 8, !tbaa !11
  %511 = fcmp oeq double %509, %510
  %512 = zext i1 %511 to i32
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 9
  store i64 %513, ptr %514, align 8, !tbaa !9
  %515 = load i64, ptr %100, align 8, !tbaa !9
  %516 = icmp ne i64 %515, 0
  br i1 %516, label %517, label %524

517:                                              ; preds = %446
  %518 = load ptr, ptr %50, align 8, !tbaa !5
  %519 = getelementptr inbounds double, ptr %518, i64 1
  %520 = load ptr, ptr %49, align 8, !tbaa !5
  %521 = getelementptr inbounds double, ptr %520, i64 1
  %522 = call i64 @lde_(ptr noundef %519, ptr noundef %521, ptr noundef %85)
  %523 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 10
  store i64 %522, ptr %523, align 16, !tbaa !9
  br label %532

524:                                              ; preds = %446
  %525 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  %526 = load ptr, ptr %50, align 8, !tbaa !5
  %527 = getelementptr inbounds double, ptr %526, i64 1
  %528 = load ptr, ptr %49, align 8, !tbaa !5
  %529 = getelementptr inbounds double, ptr %528, i64 1
  %530 = call i64 @lderes_(ptr noundef @.str.7, ptr noundef %525, ptr noundef %69, ptr noundef %69, ptr noundef %527, ptr noundef %529, ptr noundef %87, i64 noundef 2, i64 noundef 1)
  %531 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 10
  store i64 %530, ptr %531, align 16, !tbaa !9
  br label %532

532:                                              ; preds = %524, %517
  %533 = load i64, ptr %96, align 8, !tbaa !9
  %534 = load i64, ptr %87, align 8, !tbaa !9
  %535 = icmp eq i64 %533, %534
  %536 = zext i1 %535 to i32
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 11
  store i64 %537, ptr %538, align 8, !tbaa !9
  store i64 1, ptr %97, align 8, !tbaa !9
  %539 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %539, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %540

540:                                              ; preds = %569, %532
  %541 = load i64, ptr %66, align 8, !tbaa !9
  %542 = load i64, ptr %61, align 8, !tbaa !9
  %543 = icmp sle i64 %541, %542
  br i1 %543, label %544, label %572

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

547:                                              ; preds = %544
  %548 = load i64, ptr %66, align 8, !tbaa !9
  %549 = sub nsw i64 %548, 1
  %550 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 %549
  %551 = load i64, ptr %550, align 8, !tbaa !9
  %552 = icmp ne i64 %551, 0
  br label %553

553:                                              ; preds = %547, %544
  %554 = phi i1 [ false, %544 ], [ %552, %547 ]
  %555 = zext i1 %554 to i32
  %556 = sext i32 %555 to i64
  store i64 %556, ptr %97, align 8, !tbaa !9
  %557 = load i64, ptr %66, align 8, !tbaa !9
  %558 = sub nsw i64 %557, 1
  %559 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 %558
  %560 = load i64, ptr %559, align 8, !tbaa !9
  %561 = icmp ne i64 %560, 0
  br i1 %561, label %568, label %562

562:                                              ; preds = %553
  %563 = load ptr, ptr %31, align 8, !tbaa !5
  %564 = load i64, ptr %563, align 8, !tbaa !9
  store i64 %564, ptr getelementptr inbounds (%struct.cilist, ptr @dchk5_.io___326, i32 0, i32 1), align 8, !tbaa !18
  %565 = call i64 @s_wsfe(ptr noundef @dchk5_.io___326)
  %566 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %66, i64 noundef 8)
  %567 = call i64 @e_wsfe()
  br label %568

568:                                              ; preds = %562, %553
  br label %569

569:                                              ; preds = %568
  %570 = load i64, ptr %66, align 8, !tbaa !9
  %571 = add nsw i64 %570, 1
  store i64 %571, ptr %66, align 8, !tbaa !9
  br label %540, !llvm.loop !23

572:                                              ; preds = %540
  %573 = load i64, ptr %97, align 8, !tbaa !9
  %574 = icmp ne i64 %573, 0
  br i1 %574, label %577, label %575

575:                                              ; preds = %572
  %576 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %576, align 8, !tbaa !9
  br label %845

577:                                              ; preds = %572
  %578 = load i64, ptr %100, align 8, !tbaa !9
  %579 = icmp ne i64 %578, 0
  br i1 %579, label %786, label %580

580:                                              ; preds = %577
  store i64 1, ptr %92, align 8, !tbaa !9
  store i64 1, ptr %72, align 8, !tbaa !9
  %581 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %581, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %582

582:                                              ; preds = %782, %580
  %583 = load i64, ptr %67, align 8, !tbaa !9
  %584 = load i64, ptr %61, align 8, !tbaa !9
  %585 = icmp sle i64 %583, %584
  br i1 %585, label %586, label %785

586:                                              ; preds = %582
  %587 = load i64, ptr %107, align 8, !tbaa !9
  %588 = icmp ne i64 %587, 0
  br i1 %588, label %589, label %591

589:                                              ; preds = %586
  store i64 1, ptr %78, align 8, !tbaa !9
  %590 = load i64, ptr %67, align 8, !tbaa !9
  store i64 %590, ptr %79, align 8, !tbaa !9
  br label %597

591:                                              ; preds = %586
  %592 = load i64, ptr %67, align 8, !tbaa !9
  store i64 %592, ptr %78, align 8, !tbaa !9
  %593 = load i64, ptr %69, align 8, !tbaa !9
  %594 = load i64, ptr %67, align 8, !tbaa !9
  %595 = sub nsw i64 %593, %594
  %596 = add nsw i64 %595, 1
  store i64 %596, ptr %79, align 8, !tbaa !9
  br label %597

597:                                              ; preds = %591, %589
  %598 = load i64, ptr %99, align 8, !tbaa !9
  %599 = icmp ne i64 %598, 0
  br i1 %599, label %600, label %675

600:                                              ; preds = %597
  %601 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %601, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %602

602:                                              ; preds = %639, %600
  %603 = load i64, ptr %66, align 8, !tbaa !9
  %604 = load i64, ptr %62, align 8, !tbaa !9
  %605 = icmp sle i64 %603, %604
  br i1 %605, label %606, label %642

606:                                              ; preds = %602
  %607 = load ptr, ptr %43, align 8, !tbaa !5
  %608 = load i64, ptr %67, align 8, !tbaa !9
  %609 = sub nsw i64 %608, 1
  %610 = shl i64 %609, 1
  %611 = load ptr, ptr %42, align 8, !tbaa !5
  %612 = load i64, ptr %611, align 8, !tbaa !9
  %613 = mul nsw i64 %610, %612
  %614 = load i64, ptr %68, align 8, !tbaa !9
  %615 = add nsw i64 %613, %614
  %616 = load i64, ptr %66, align 8, !tbaa !9
  %617 = add nsw i64 %615, %616
  %618 = getelementptr inbounds double, ptr %607, i64 %617
  %619 = load double, ptr %618, align 8, !tbaa !11
  %620 = load ptr, ptr %53, align 8, !tbaa !5
  %621 = load i64, ptr %66, align 8, !tbaa !9
  %622 = getelementptr inbounds double, ptr %620, i64 %621
  store double %619, ptr %622, align 8, !tbaa !11
  %623 = load ptr, ptr %43, align 8, !tbaa !5
  %624 = load i64, ptr %67, align 8, !tbaa !9
  %625 = sub nsw i64 %624, 1
  %626 = shl i64 %625, 1
  %627 = load ptr, ptr %42, align 8, !tbaa !5
  %628 = load i64, ptr %627, align 8, !tbaa !9
  %629 = mul nsw i64 %626, %628
  %630 = load i64, ptr %66, align 8, !tbaa !9
  %631 = add nsw i64 %629, %630
  %632 = getelementptr inbounds double, ptr %623, i64 %631
  %633 = load double, ptr %632, align 8, !tbaa !11
  %634 = load ptr, ptr %53, align 8, !tbaa !5
  %635 = load i64, ptr %68, align 8, !tbaa !9
  %636 = load i64, ptr %66, align 8, !tbaa !9
  %637 = add nsw i64 %635, %636
  %638 = getelementptr inbounds double, ptr %634, i64 %637
  store double %633, ptr %638, align 8, !tbaa !11
  br label %639

639:                                              ; preds = %606
  %640 = load i64, ptr %66, align 8, !tbaa !9
  %641 = add nsw i64 %640, 1
  store i64 %641, ptr %66, align 8, !tbaa !9
  br label %602, !llvm.loop !24

642:                                              ; preds = %602
  %643 = load i64, ptr %68, align 8, !tbaa !9
  %644 = shl i64 %643, 1
  store i64 %644, ptr %62, align 8, !tbaa !9
  %645 = load ptr, ptr %42, align 8, !tbaa !5
  %646 = load i64, ptr %645, align 8, !tbaa !9
  %647 = shl i64 %646, 1
  store i64 %647, ptr %63, align 8, !tbaa !9
  %648 = load ptr, ptr %42, align 8, !tbaa !5
  %649 = load i64, ptr %648, align 8, !tbaa !9
  %650 = shl i64 %649, 1
  store i64 %650, ptr %64, align 8, !tbaa !9
  %651 = load ptr, ptr %43, align 8, !tbaa !5
  %652 = load i64, ptr %92, align 8, !tbaa !9
  %653 = getelementptr inbounds double, ptr %651, i64 %652
  %654 = load ptr, ptr %53, align 8, !tbaa !5
  %655 = getelementptr inbounds double, ptr %654, i64 1
  %656 = load ptr, ptr %48, align 8, !tbaa !5
  %657 = load i64, ptr %78, align 8, !tbaa !9
  %658 = load i64, ptr %67, align 8, !tbaa !9
  %659 = load i64, ptr %55, align 8, !tbaa !9
  %660 = mul nsw i64 %658, %659
  %661 = add nsw i64 %657, %660
  %662 = getelementptr inbounds double, ptr %656, i64 %661
  %663 = load ptr, ptr %42, align 8, !tbaa !5
  %664 = load ptr, ptr %51, align 8, !tbaa !5
  %665 = getelementptr inbounds double, ptr %664, i64 1
  %666 = load ptr, ptr %52, align 8, !tbaa !5
  %667 = getelementptr inbounds double, ptr %666, i64 1
  %668 = load ptr, ptr %49, align 8, !tbaa !5
  %669 = load i64, ptr %72, align 8, !tbaa !9
  %670 = getelementptr inbounds double, ptr %668, i64 %669
  %671 = load ptr, ptr %29, align 8, !tbaa !5
  %672 = load ptr, ptr %35, align 8, !tbaa !5
  %673 = load ptr, ptr %31, align 8, !tbaa !5
  %674 = call i32 @dmmch_(ptr noundef @.str.11, ptr noundef @.str.1, ptr noundef %79, ptr noundef @c__1, ptr noundef %62, ptr noundef %102, ptr noundef %653, ptr noundef %63, ptr noundef %655, ptr noundef %64, ptr noundef %93, ptr noundef %662, ptr noundef %663, ptr noundef %665, ptr noundef %667, ptr noundef %670, ptr noundef %87, ptr noundef %671, ptr noundef %91, ptr noundef %672, ptr noundef %673, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %746

675:                                              ; preds = %597
  %676 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %676, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %677

677:                                              ; preds = %712, %675
  %678 = load i64, ptr %66, align 8, !tbaa !9
  %679 = load i64, ptr %62, align 8, !tbaa !9
  %680 = icmp sle i64 %678, %679
  br i1 %680, label %681, label %715

681:                                              ; preds = %677
  %682 = load ptr, ptr %43, align 8, !tbaa !5
  %683 = load i64, ptr %68, align 8, !tbaa !9
  %684 = load i64, ptr %66, align 8, !tbaa !9
  %685 = add nsw i64 %683, %684
  %686 = sub nsw i64 %685, 1
  %687 = load ptr, ptr %42, align 8, !tbaa !5
  %688 = load i64, ptr %687, align 8, !tbaa !9
  %689 = mul nsw i64 %686, %688
  %690 = load i64, ptr %67, align 8, !tbaa !9
  %691 = add nsw i64 %689, %690
  %692 = getelementptr inbounds double, ptr %682, i64 %691
  %693 = load double, ptr %692, align 8, !tbaa !11
  %694 = load ptr, ptr %53, align 8, !tbaa !5
  %695 = load i64, ptr %66, align 8, !tbaa !9
  %696 = getelementptr inbounds double, ptr %694, i64 %695
  store double %693, ptr %696, align 8, !tbaa !11
  %697 = load ptr, ptr %43, align 8, !tbaa !5
  %698 = load i64, ptr %66, align 8, !tbaa !9
  %699 = sub nsw i64 %698, 1
  %700 = load ptr, ptr %42, align 8, !tbaa !5
  %701 = load i64, ptr %700, align 8, !tbaa !9
  %702 = mul nsw i64 %699, %701
  %703 = load i64, ptr %67, align 8, !tbaa !9
  %704 = add nsw i64 %702, %703
  %705 = getelementptr inbounds double, ptr %697, i64 %704
  %706 = load double, ptr %705, align 8, !tbaa !11
  %707 = load ptr, ptr %53, align 8, !tbaa !5
  %708 = load i64, ptr %68, align 8, !tbaa !9
  %709 = load i64, ptr %66, align 8, !tbaa !9
  %710 = add nsw i64 %708, %709
  %711 = getelementptr inbounds double, ptr %707, i64 %710
  store double %706, ptr %711, align 8, !tbaa !11
  br label %712

712:                                              ; preds = %681
  %713 = load i64, ptr %66, align 8, !tbaa !9
  %714 = add nsw i64 %713, 1
  store i64 %714, ptr %66, align 8, !tbaa !9
  br label %677, !llvm.loop !25

715:                                              ; preds = %677
  %716 = load i64, ptr %68, align 8, !tbaa !9
  %717 = shl i64 %716, 1
  store i64 %717, ptr %62, align 8, !tbaa !9
  %718 = load ptr, ptr %42, align 8, !tbaa !5
  %719 = load i64, ptr %718, align 8, !tbaa !9
  %720 = shl i64 %719, 1
  store i64 %720, ptr %63, align 8, !tbaa !9
  %721 = load ptr, ptr %43, align 8, !tbaa !5
  %722 = load i64, ptr %78, align 8, !tbaa !9
  %723 = getelementptr inbounds double, ptr %721, i64 %722
  %724 = load ptr, ptr %42, align 8, !tbaa !5
  %725 = load ptr, ptr %53, align 8, !tbaa !5
  %726 = getelementptr inbounds double, ptr %725, i64 1
  %727 = load ptr, ptr %48, align 8, !tbaa !5
  %728 = load i64, ptr %78, align 8, !tbaa !9
  %729 = load i64, ptr %67, align 8, !tbaa !9
  %730 = load i64, ptr %55, align 8, !tbaa !9
  %731 = mul nsw i64 %729, %730
  %732 = add nsw i64 %728, %731
  %733 = getelementptr inbounds double, ptr %727, i64 %732
  %734 = load ptr, ptr %42, align 8, !tbaa !5
  %735 = load ptr, ptr %51, align 8, !tbaa !5
  %736 = getelementptr inbounds double, ptr %735, i64 1
  %737 = load ptr, ptr %52, align 8, !tbaa !5
  %738 = getelementptr inbounds double, ptr %737, i64 1
  %739 = load ptr, ptr %49, align 8, !tbaa !5
  %740 = load i64, ptr %72, align 8, !tbaa !9
  %741 = getelementptr inbounds double, ptr %739, i64 %740
  %742 = load ptr, ptr %29, align 8, !tbaa !5
  %743 = load ptr, ptr %35, align 8, !tbaa !5
  %744 = load ptr, ptr %31, align 8, !tbaa !5
  %745 = call i32 @dmmch_(ptr noundef @.str.1, ptr noundef @.str.1, ptr noundef %79, ptr noundef @c__1, ptr noundef %62, ptr noundef %102, ptr noundef %723, ptr noundef %724, ptr noundef %726, ptr noundef %63, ptr noundef %93, ptr noundef %733, ptr noundef %734, ptr noundef %736, ptr noundef %738, ptr noundef %741, ptr noundef %87, ptr noundef %742, ptr noundef %91, ptr noundef %743, ptr noundef %744, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %746

746:                                              ; preds = %715, %642
  %747 = load i64, ptr %107, align 8, !tbaa !9
  %748 = icmp ne i64 %747, 0
  br i1 %748, label %749, label %753

749:                                              ; preds = %746
  %750 = load i64, ptr %87, align 8, !tbaa !9
  %751 = load i64, ptr %72, align 8, !tbaa !9
  %752 = add nsw i64 %751, %750
  store i64 %752, ptr %72, align 8, !tbaa !9
  br label %767

753:                                              ; preds = %746
  %754 = load i64, ptr %72, align 8, !tbaa !9
  %755 = load i64, ptr %87, align 8, !tbaa !9
  %756 = add nsw i64 %754, %755
  %757 = add nsw i64 %756, 1
  store i64 %757, ptr %72, align 8, !tbaa !9
  %758 = load i64, ptr %99, align 8, !tbaa !9
  %759 = icmp ne i64 %758, 0
  br i1 %759, label %760, label %766

760:                                              ; preds = %753
  %761 = load ptr, ptr %42, align 8, !tbaa !5
  %762 = load i64, ptr %761, align 8, !tbaa !9
  %763 = shl i64 %762, 1
  %764 = load i64, ptr %92, align 8, !tbaa !9
  %765 = add nsw i64 %764, %763
  store i64 %765, ptr %92, align 8, !tbaa !9
  br label %766

766:                                              ; preds = %760, %753
  br label %767

767:                                              ; preds = %766, %749
  %768 = load double, ptr %109, align 8, !tbaa !11
  %769 = load double, ptr %91, align 8, !tbaa !11
  %770 = fcmp oge double %768, %769
  br i1 %770, label %771, label %773

771:                                              ; preds = %767
  %772 = load double, ptr %109, align 8, !tbaa !11
  br label %775

773:                                              ; preds = %767
  %774 = load double, ptr %91, align 8, !tbaa !11
  br label %775

775:                                              ; preds = %773, %771
  %776 = phi double [ %772, %771 ], [ %774, %773 ]
  store double %776, ptr %109, align 8, !tbaa !11
  %777 = load ptr, ptr %35, align 8, !tbaa !5
  %778 = load i64, ptr %777, align 8, !tbaa !9
  %779 = icmp ne i64 %778, 0
  br i1 %779, label %780, label %781

780:                                              ; preds = %775
  br label %835

781:                                              ; preds = %775
  br label %782

782:                                              ; preds = %781
  %783 = load i64, ptr %67, align 8, !tbaa !9
  %784 = add nsw i64 %783, 1
  store i64 %784, ptr %67, align 8, !tbaa !9
  br label %582, !llvm.loop !26

785:                                              ; preds = %582
  br label %786

786:                                              ; preds = %785, %577
  br label %787

787:                                              ; preds = %786
  %788 = load i64, ptr %71, align 8, !tbaa !9
  %789 = add nsw i64 %788, 1
  store i64 %789, ptr %71, align 8, !tbaa !9
  br label %313, !llvm.loop !27

790:                                              ; preds = %313
  br label %791

791:                                              ; preds = %790
  %792 = load i64, ptr %70, align 8, !tbaa !9
  %793 = add nsw i64 %792, 1
  store i64 %793, ptr %70, align 8, !tbaa !9
  br label %302, !llvm.loop !28

794:                                              ; preds = %302
  br label %795

795:                                              ; preds = %794
  %796 = load i64, ptr %90, align 8, !tbaa !9
  %797 = add nsw i64 %796, 1
  store i64 %797, ptr %90, align 8, !tbaa !9
  br label %285, !llvm.loop !29

798:                                              ; preds = %285
  br label %799

799:                                              ; preds = %798, %233
  br label %800

800:                                              ; preds = %799
  %801 = load i64, ptr %89, align 8, !tbaa !9
  %802 = add nsw i64 %801, 1
  store i64 %802, ptr %89, align 8, !tbaa !9
  br label %189, !llvm.loop !30

803:                                              ; preds = %189
  br label %804

804:                                              ; preds = %803
  %805 = load i64, ptr %76, align 8, !tbaa !9
  %806 = add nsw i64 %805, 1
  store i64 %806, ptr %76, align 8, !tbaa !9
  br label %180, !llvm.loop !31

807:                                              ; preds = %180
  br label %808

808:                                              ; preds = %807, %169
  br label %809

809:                                              ; preds = %808
  %810 = load i64, ptr %77, align 8, !tbaa !9
  %811 = add nsw i64 %810, 1
  store i64 %811, ptr %77, align 8, !tbaa !9
  br label %147, !llvm.loop !32

812:                                              ; preds = %147
  %813 = load double, ptr %109, align 8, !tbaa !11
  %814 = load ptr, ptr %30, align 8, !tbaa !5
  %815 = load double, ptr %814, align 8, !tbaa !11
  %816 = fcmp olt double %813, %815
  br i1 %816, label %817, label %825

817:                                              ; preds = %812
  %818 = load ptr, ptr %31, align 8, !tbaa !5
  %819 = load i64, ptr %818, align 8, !tbaa !9
  store i64 %819, ptr getelementptr inbounds (%struct.cilist, ptr @dchk5_.io___333, i32 0, i32 1), align 8, !tbaa !18
  %820 = call i64 @s_wsfe(ptr noundef @dchk5_.io___333)
  %821 = load ptr, ptr %28, align 8, !tbaa !5
  %822 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %821, i64 noundef 6)
  %823 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %824 = call i64 @e_wsfe()
  br label %834

825:                                              ; preds = %812
  %826 = load ptr, ptr %31, align 8, !tbaa !5
  %827 = load i64, ptr %826, align 8, !tbaa !9
  store i64 %827, ptr getelementptr inbounds (%struct.cilist, ptr @dchk5_.io___334, i32 0, i32 1), align 8, !tbaa !18
  %828 = call i64 @s_wsfe(ptr noundef @dchk5_.io___334)
  %829 = load ptr, ptr %28, align 8, !tbaa !5
  %830 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %829, i64 noundef 6)
  %831 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %832 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %109, i64 noundef 8)
  %833 = call i64 @e_wsfe()
  br label %834

834:                                              ; preds = %825, %817
  br label %870

835:                                              ; preds = %780
  %836 = load i64, ptr %69, align 8, !tbaa !9
  %837 = icmp sgt i64 %836, 1
  br i1 %837, label %838, label %844

838:                                              ; preds = %835
  %839 = load ptr, ptr %31, align 8, !tbaa !5
  %840 = load i64, ptr %839, align 8, !tbaa !9
  store i64 %840, ptr getelementptr inbounds (%struct.cilist, ptr @dchk5_.io___335, i32 0, i32 1), align 8, !tbaa !18
  %841 = call i64 @s_wsfe(ptr noundef @dchk5_.io___335)
  %842 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %67, i64 noundef 8)
  %843 = call i64 @e_wsfe()
  br label %844

844:                                              ; preds = %838, %835
  br label %845

845:                                              ; preds = %844, %575, %440
  %846 = load ptr, ptr %31, align 8, !tbaa !5
  %847 = load i64, ptr %846, align 8, !tbaa !9
  store i64 %847, ptr getelementptr inbounds (%struct.cilist, ptr @dchk5_.io___336, i32 0, i32 1), align 8, !tbaa !18
  %848 = call i64 @s_wsfe(ptr noundef @dchk5_.io___336)
  %849 = load ptr, ptr %28, align 8, !tbaa !5
  %850 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %849, i64 noundef 6)
  %851 = call i64 @e_wsfe()
  %852 = load ptr, ptr %31, align 8, !tbaa !5
  %853 = load i64, ptr %852, align 8, !tbaa !9
  store i64 %853, ptr getelementptr inbounds (%struct.cilist, ptr @dchk5_.io___337, i32 0, i32 1), align 8, !tbaa !18
  %854 = call i64 @s_wsfe(ptr noundef @dchk5_.io___337)
  %855 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %75, i64 noundef 8)
  %856 = load ptr, ptr %28, align 8, !tbaa !5
  %857 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %856, i64 noundef 6)
  %858 = getelementptr inbounds [1 x i8], ptr %101, i64 0, i64 0
  %859 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %858, i64 noundef 1)
  %860 = getelementptr inbounds [1 x i8], ptr %106, i64 0, i64 0
  %861 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %860, i64 noundef 1)
  %862 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %863 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %68, i64 noundef 8)
  %864 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %865 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %84, i64 noundef 8)
  %866 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %867 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %93, i64 noundef 8)
  %868 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %87, i64 noundef 8)
  %869 = call i64 @e_wsfe()
  br label %870

870:                                              ; preds = %845, %834
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 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 16, 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 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  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, 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_dsyr2k(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!7, !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}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !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
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b101 = external hidden global double, align 8
@c_true = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@dchk5_.icht = external hidden local_unnamed_addr global [3 x i8], align 1
@dchk5_.ichu = external hidden local_unnamed_addr global [2 x i8], align 1
@dchk5_.io___322 = external hidden global %struct.cilist, align 8
@dchk5_.io___323 = external hidden global %struct.cilist, align 8
@dchk5_.io___326 = external hidden global %struct.cilist, align 8
@dchk5_.io___333 = external hidden global %struct.cilist, align 8
@dchk5_.io___334 = external hidden global %struct.cilist, align 8
@dchk5_.io___335 = external hidden global %struct.cilist, align 8
@dchk5_.io___336 = external hidden global %struct.cilist, align 8
@dchk5_.io___337 = external hidden global %struct.cilist, align 8

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

declare i64 @s_wsfe(ptr noundef) local_unnamed_addr #1

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

declare i64 @e_wsfe() local_unnamed_addr #1

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dchk5_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture noundef readonly %11, ptr nocapture noundef readonly %12, ptr nocapture noundef readonly %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, i64 noundef %26) local_unnamed_addr #2 {
  %28 = ptrtoint ptr %15 to i64
  %29 = ptrtoint ptr %25 to i64
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca %struct.alist, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca [1 x i8], align 1
  %52 = alloca double, align 8
  %53 = alloca [13 x i64], align 16
  %54 = alloca i64, align 8
  %55 = alloca [1 x i8], align 1
  %56 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #3
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %53) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %55) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #3
  %57 = getelementptr inbounds i8, ptr %9, i64 -8
  %58 = getelementptr inbounds i8, ptr %11, i64 -8
  %59 = getelementptr inbounds i8, ptr %13, i64 -8
  %60 = getelementptr inbounds i8, ptr %25, i64 -8
  %61 = getelementptr inbounds i8, ptr %22, i64 -8
  %62 = getelementptr inbounds i8, ptr %21, i64 -8
  %63 = load i64, ptr %14, align 8, !tbaa !5
  %64 = xor i64 %63, -1
  %65 = getelementptr inbounds double, ptr %20, i64 %64
  %66 = getelementptr inbounds i8, ptr %19, i64 -8
  %67 = getelementptr inbounds i8, ptr %18, i64 -8
  %68 = getelementptr inbounds i8, ptr %17, i64 -8
  %69 = getelementptr inbounds i8, ptr %16, i64 -8
  %70 = getelementptr inbounds i8, ptr %15, i64 -8
  store i64 0, ptr %41, align 8, !tbaa !5
  store i64 1, ptr %54, align 8, !tbaa !5
  store double 0.000000e+00, ptr %56, align 8, !tbaa !9
  %71 = load i64, ptr %8, align 8, !tbaa !5
  %.not277 = icmp slt i64 %71, 1
  br i1 %.not277, label %._crit_edge281, label %.lr.ph280

.lr.ph280:                                        ; preds = %27
  %72 = ptrtoint ptr %25 to i64
  %73 = ptrtoint ptr %15 to i64
  %74 = ptrtoint ptr %22 to i64
  %75 = ptrtoint ptr %21 to i64
  %76 = ptrtoint ptr %19 to i64
  %77 = ptrtoint ptr %18 to i64
  %78 = ptrtoint ptr %17 to i64
  %79 = ptrtoint ptr %16 to i64
  %80 = getelementptr inbounds i8, ptr %34, i64 8
  %81 = getelementptr inbounds i8, ptr %53, i64 8
  %82 = getelementptr inbounds i8, ptr %53, i64 16
  %83 = getelementptr inbounds i8, ptr %53, i64 24
  %84 = getelementptr inbounds i8, ptr %53, i64 32
  %85 = getelementptr inbounds i8, ptr %53, i64 40
  %86 = getelementptr inbounds i8, ptr %53, i64 48
  %87 = getelementptr inbounds i8, ptr %53, i64 56
  %88 = getelementptr inbounds i8, ptr %53, i64 64
  %89 = getelementptr inbounds i8, ptr %53, i64 72
  %90 = getelementptr inbounds i8, ptr %53, i64 80
  %91 = getelementptr inbounds i8, ptr %53, i64 88
  %92 = sub i64 %73, %72
  %93 = sub i64 %28, %29
  %94 = sub i64 %74, %75
  %95 = sub i64 %76, %77
  %96 = sub i64 %78, %79
  %diff.check388 = icmp ult i64 %96, 32
  %diff.check371 = icmp ult i64 %95, 32
  %diff.check354 = icmp ult i64 %94, 32
  br label %97

97:                                               ; preds = %.lr.ph280, %.loopexit223
  %98 = phi double [ 0.000000e+00, %.lr.ph280 ], [ %497, %.loopexit223 ]
  %.0180278 = phi i64 [ 1, %.lr.ph280 ], [ %498, %.loopexit223 ]
  %99 = getelementptr inbounds i64, ptr %57, i64 %.0180278
  %100 = load i64, ptr %99, align 8, !tbaa !5
  store i64 %100, ptr %38, align 8, !tbaa !5
  store i64 %100, ptr %48, align 8, !tbaa !5
  %101 = load i64, ptr %14, align 8, !tbaa !5
  %102 = icmp slt i64 %100, %101
  br i1 %102, label %103, label %105

103:                                              ; preds = %97
  %104 = add nsw i64 %100, 1
  store i64 %104, ptr %48, align 8, !tbaa !5
  br label %105

105:                                              ; preds = %103, %97
  %106 = phi i64 [ %104, %103 ], [ %100, %97 ]
  %107 = icmp sgt i64 %106, %101
  br i1 %107, label %.loopexit223, label %108

108:                                              ; preds = %105
  %109 = mul nsw i64 %106, %100
  store i64 %109, ptr %46, align 8, !tbaa !5
  %110 = icmp slt i64 %100, 1
  %111 = load i64, ptr %8, align 8, !tbaa !5
  %.not197273 = icmp slt i64 %111, 1
  br i1 %.not197273, label %.loopexit223, label %.lr.ph276

.lr.ph276:                                        ; preds = %108, %495
  %112 = phi double [ %493, %495 ], [ %98, %108 ]
  %.0181274 = phi i64 [ %496, %495 ], [ 1, %108 ]
  %113 = getelementptr inbounds i64, ptr %57, i64 %.0181274
  %114 = load i64, ptr %113, align 8, !tbaa !5
  store i64 %114, ptr %37, align 8, !tbaa !5
  br label %115

115:                                              ; preds = %.lr.ph276, %.loopexit222
  %116 = phi double [ %112, %.lr.ph276 ], [ %493, %.loopexit222 ]
  %.0178272 = phi i64 [ 1, %.lr.ph276 ], [ %494, %.loopexit222 ]
  %117 = add nsw i64 %.0178272, -1
  %118 = getelementptr inbounds [3 x i8], ptr @dchk5_.icht, i64 0, i64 %117
  %119 = load i8, ptr %118, align 1, !tbaa !11
  store i8 %119, ptr %55, align 1, !tbaa !11
  switch i8 %119, label %120 [
    i8 84, label %121
    i8 67, label %121
  ]

120:                                              ; preds = %115
  br label %121

121:                                              ; preds = %115, %115, %120
  %storemerge198.in = phi ptr [ %38, %120 ], [ %37, %115 ], [ %37, %115 ]
  %storemerge.in = phi ptr [ %37, %120 ], [ %38, %115 ], [ %38, %115 ]
  %storemerge198 = load i64, ptr %storemerge198.in, align 8, !tbaa !5
  store i64 %storemerge198, ptr %39, align 8, !tbaa !5
  %storemerge = load i64, ptr %storemerge.in, align 8, !tbaa !5
  store i64 %storemerge, ptr %40, align 8, !tbaa !5
  store i64 %storemerge198, ptr %45, align 8, !tbaa !5
  %122 = load i64, ptr %14, align 8, !tbaa !5
  %123 = icmp slt i64 %storemerge198, %122
  br i1 %123, label %124, label %126

124:                                              ; preds = %121
  %125 = add nsw i64 %storemerge198, 1
  store i64 %125, ptr %45, align 8, !tbaa !5
  br label %126

126:                                              ; preds = %124, %121
  %127 = phi i64 [ %125, %124 ], [ %storemerge198, %121 ]
  %128 = icmp sgt i64 %127, %122
  br i1 %128, label %.loopexit222, label %129

129:                                              ; preds = %126
  %130 = mul nsw i64 %127, %storemerge
  store i64 %130, ptr %43, align 8, !tbaa !5
  switch i8 %119, label %133 [
    i8 84, label %131
    i8 67, label %131
  ]

131:                                              ; preds = %129, %129
  %132 = shl i64 %122, 1
  store i64 %132, ptr %30, align 8, !tbaa !5
  br label %133

133:                                              ; preds = %129, %131
  %.sink = phi ptr [ %30, %131 ], [ %14, %129 ]
  %134 = call i32 @dmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %15, ptr noundef nonnull %.sink, ptr noundef %16, ptr noundef nonnull %45, ptr noundef nonnull %54, ptr noundef nonnull @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %135 = load i64, ptr %45, align 8, !tbaa !5
  store i64 %135, ptr %47, align 8, !tbaa !5
  %136 = load i64, ptr %43, align 8, !tbaa !5
  store i64 %136, ptr %44, align 8, !tbaa !5
  switch i8 %119, label %141 [
    i8 84, label %137
    i8 67, label %137
  ]

137:                                              ; preds = %133, %133
  %138 = load i64, ptr %14, align 8, !tbaa !5
  %139 = shl i64 %138, 1
  store i64 %139, ptr %30, align 8, !tbaa !5
  %140 = load i64, ptr %37, align 8, !tbaa !5
  br label %145

141:                                              ; preds = %133
  %142 = load i64, ptr %37, align 8, !tbaa !5
  %143 = load i64, ptr %14, align 8, !tbaa !5
  %144 = mul nsw i64 %143, %142
  br label %145

145:                                              ; preds = %141, %137
  %.sink311 = phi i64 [ %144, %141 ], [ %140, %137 ]
  %.sink310 = phi ptr [ %14, %141 ], [ %30, %137 ]
  %146 = getelementptr double, ptr %15, i64 %.sink311
  %147 = call i32 @dmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef %146, ptr noundef nonnull %.sink310, ptr noundef %18, ptr noundef nonnull %47, ptr noundef nonnull %54, ptr noundef nonnull @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %148

148:                                              ; preds = %145, %._crit_edge269
  %149 = phi double [ %116, %145 ], [ %491, %._crit_edge269 ]
  %.0177271 = phi i64 [ 1, %145 ], [ %492, %._crit_edge269 ]
  %150 = add nsw i64 %.0177271, -1
  %151 = getelementptr inbounds [2 x i8], ptr @dchk5_.ichu, i64 0, i64 %150
  %152 = load i8, ptr %151, align 1, !tbaa !11
  store i8 %152, ptr %51, align 1, !tbaa !11
  %153 = icmp eq i8 %152, 85
  %154 = load i64, ptr %10, align 8, !tbaa !5
  store i64 %154, ptr %30, align 8, !tbaa !5
  %.not199265 = icmp slt i64 %154, 1
  br i1 %.not199265, label %._crit_edge269, label %.lr.ph268

.lr.ph268:                                        ; preds = %148
  %155 = load i64, ptr %12, align 8, !tbaa !5
  %156 = icmp slt i64 %155, 1
  br i1 %156, label %.lr.ph268.split.us, label %.lr.ph268.split

.lr.ph268.split.us:                               ; preds = %.lr.ph268
  %157 = getelementptr inbounds double, ptr %58, i64 %154
  %158 = load double, ptr %157, align 8, !tbaa !9
  store double %158, ptr %52, align 8, !tbaa !9
  br label %._crit_edge269

.lr.ph268.splitthread-pre-split:                  ; preds = %._crit_edge264
  %159 = add nuw nsw i64 %.0185266, 1
  %.pr = load i64, ptr %12, align 8, !tbaa !5
  br label %.lr.ph268.split

.lr.ph268.split:                                  ; preds = %.lr.ph268, %.lr.ph268.splitthread-pre-split
  %160 = phi i64 [ %.pr, %.lr.ph268.splitthread-pre-split ], [ %155, %.lr.ph268 ]
  %161 = phi i64 [ %489, %.lr.ph268.splitthread-pre-split ], [ %154, %.lr.ph268 ]
  %162 = phi double [ %490, %.lr.ph268.splitthread-pre-split ], [ %149, %.lr.ph268 ]
  %.0185266 = phi i64 [ %159, %.lr.ph268.splitthread-pre-split ], [ 1, %.lr.ph268 ]
  %163 = getelementptr inbounds double, ptr %58, i64 %.0185266
  %164 = load double, ptr %163, align 8, !tbaa !9
  store double %164, ptr %52, align 8, !tbaa !9
  %.not200260 = icmp slt i64 %160, 1
  br i1 %.not200260, label %._crit_edge264, label %.lr.ph263

.lr.ph263:                                        ; preds = %.lr.ph268.split, %.loopexit
  %165 = phi double [ %487, %.loopexit ], [ %162, %.lr.ph268.split ]
  %.0184261 = phi i64 [ %488, %.loopexit ], [ 1, %.lr.ph268.split ]
  %166 = getelementptr inbounds double, ptr %59, i64 %.0184261
  %167 = load double, ptr %166, align 8, !tbaa !9
  store double %167, ptr %50, align 8, !tbaa !9
  %168 = call i32 @dmake_(ptr noundef nonnull @.str.7, ptr noundef nonnull %51, ptr noundef nonnull @.str.6, ptr noundef nonnull %38, ptr noundef nonnull %38, ptr noundef %20, ptr noundef nonnull %14, ptr noundef %21, ptr noundef nonnull %48, ptr noundef nonnull %54, ptr noundef nonnull @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %169 = load i64, ptr %41, align 8, !tbaa !5
  %170 = add nsw i64 %169, 1
  store i64 %170, ptr %41, align 8, !tbaa !5
  %171 = load i8, ptr %51, align 1, !tbaa !11
  %172 = load i8, ptr %55, align 1, !tbaa !11
  %173 = load i64, ptr %38, align 8, !tbaa !5
  %174 = load i64, ptr %37, align 8, !tbaa !5
  %175 = load double, ptr %52, align 8, !tbaa !9
  %176 = load i64, ptr %43, align 8, !tbaa !5
  %.not202224 = icmp slt i64 %176, 1
  br i1 %.not202224, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph263
  %min.iters.check391 = icmp ult i64 %176, 4
  %or.cond = or i1 %min.iters.check391, %diff.check388
  br i1 %or.cond, label %.lr.ph.preheader409, label %vector.ph392

vector.ph392:                                     ; preds = %.lr.ph.preheader
  %n.vec394 = and i64 %176, 9223372036854775804
  %ind.end395 = or disjoint i64 %n.vec394, 1
  br label %vector.body397

vector.body397:                                   ; preds = %vector.body397, %vector.ph392
  %index398 = phi i64 [ 0, %vector.ph392 ], [ %index.next402, %vector.body397 ]
  %177 = getelementptr double, ptr %16, i64 %index398
  %178 = getelementptr inbounds i8, ptr %177, i64 16
  %wide.load400 = load <2 x double>, ptr %177, align 8, !tbaa !9
  %wide.load401 = load <2 x double>, ptr %178, align 8, !tbaa !9
  %179 = getelementptr double, ptr %17, i64 %index398
  %180 = getelementptr inbounds i8, ptr %179, i64 16
  store <2 x double> %wide.load400, ptr %179, align 8, !tbaa !9
  store <2 x double> %wide.load401, ptr %180, align 8, !tbaa !9
  %index.next402 = add nuw i64 %index398, 4
  %181 = icmp eq i64 %index.next402, %n.vec394
  br i1 %181, label %middle.block389, label %vector.body397, !llvm.loop !12

middle.block389:                                  ; preds = %vector.body397
  %cmp.n403 = icmp eq i64 %176, %n.vec394
  br i1 %cmp.n403, label %._crit_edge, label %.lr.ph.preheader409

.lr.ph.preheader409:                              ; preds = %middle.block389, %.lr.ph.preheader
  %storemerge201225.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end395, %middle.block389 ]
  %182 = add nuw i64 %176, 1
  %183 = sub i64 %182, %storemerge201225.ph
  %184 = sub i64 %176, %storemerge201225.ph
  %xtraiter = and i64 %183, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader409, %.lr.ph.prol
  %storemerge201225.prol = phi i64 [ %188, %.lr.ph.prol ], [ %storemerge201225.ph, %.lr.ph.preheader409 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader409 ]
  %185 = getelementptr inbounds double, ptr %69, i64 %storemerge201225.prol
  %186 = load double, ptr %185, align 8, !tbaa !9
  %187 = getelementptr inbounds double, ptr %68, i64 %storemerge201225.prol
  store double %186, ptr %187, align 8, !tbaa !9
  %188 = add nuw i64 %storemerge201225.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.ph.prol.loopexit, label %.lr.ph.prol, !llvm.loop !16

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader409
  %storemerge201225.unr = phi i64 [ %storemerge201225.ph, %.lr.ph.preheader409 ], [ %188, %.lr.ph.prol ]
  %189 = icmp ult i64 %184, 3
  br i1 %189, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %storemerge201225 = phi i64 [ %204, %.lr.ph ], [ %storemerge201225.unr, %.lr.ph.prol.loopexit ]
  %190 = getelementptr inbounds double, ptr %69, i64 %storemerge201225
  %191 = load double, ptr %190, align 8, !tbaa !9
  %192 = getelementptr inbounds double, ptr %68, i64 %storemerge201225
  store double %191, ptr %192, align 8, !tbaa !9
  %193 = getelementptr double, ptr %16, i64 %storemerge201225
  %194 = load double, ptr %193, align 8, !tbaa !9
  %195 = getelementptr double, ptr %17, i64 %storemerge201225
  store double %194, ptr %195, align 8, !tbaa !9
  %196 = add nuw i64 %storemerge201225, 2
  %197 = getelementptr inbounds double, ptr %69, i64 %196
  %198 = load double, ptr %197, align 8, !tbaa !9
  %199 = getelementptr inbounds double, ptr %68, i64 %196
  store double %198, ptr %199, align 8, !tbaa !9
  %200 = add nuw i64 %storemerge201225, 3
  %201 = getelementptr inbounds double, ptr %69, i64 %200
  %202 = load double, ptr %201, align 8, !tbaa !9
  %203 = getelementptr inbounds double, ptr %68, i64 %200
  store double %202, ptr %203, align 8, !tbaa !9
  %204 = add nuw i64 %storemerge201225, 4
  %exitcond.not.3 = icmp eq i64 %200, %176
  br i1 %exitcond.not.3, label %._crit_edge, label %.lr.ph, !llvm.loop !18

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block389, %.lr.ph263
  %205 = load i64, ptr %45, align 8, !tbaa !5
  %206 = load i64, ptr %44, align 8, !tbaa !5
  %.not204226 = icmp slt i64 %206, 1
  br i1 %.not204226, label %._crit_edge230, label %.lr.ph229.preheader

.lr.ph229.preheader:                              ; preds = %._crit_edge
  %min.iters.check374 = icmp ult i64 %206, 4
  %or.cond404 = or i1 %min.iters.check374, %diff.check371
  br i1 %or.cond404, label %.lr.ph229.preheader408, label %vector.ph375

vector.ph375:                                     ; preds = %.lr.ph229.preheader
  %n.vec377 = and i64 %206, 9223372036854775804
  %ind.end378 = or disjoint i64 %n.vec377, 1
  br label %vector.body380

vector.body380:                                   ; preds = %vector.body380, %vector.ph375
  %index381 = phi i64 [ 0, %vector.ph375 ], [ %index.next385, %vector.body380 ]
  %207 = getelementptr double, ptr %18, i64 %index381
  %208 = getelementptr inbounds i8, ptr %207, i64 16
  %wide.load383 = load <2 x double>, ptr %207, align 8, !tbaa !9
  %wide.load384 = load <2 x double>, ptr %208, align 8, !tbaa !9
  %209 = getelementptr double, ptr %19, i64 %index381
  %210 = getelementptr inbounds i8, ptr %209, i64 16
  store <2 x double> %wide.load383, ptr %209, align 8, !tbaa !9
  store <2 x double> %wide.load384, ptr %210, align 8, !tbaa !9
  %index.next385 = add nuw i64 %index381, 4
  %211 = icmp eq i64 %index.next385, %n.vec377
  br i1 %211, label %middle.block372, label %vector.body380, !llvm.loop !19

middle.block372:                                  ; preds = %vector.body380
  %cmp.n386 = icmp eq i64 %206, %n.vec377
  br i1 %cmp.n386, label %._crit_edge230, label %.lr.ph229.preheader408

.lr.ph229.preheader408:                           ; preds = %middle.block372, %.lr.ph229.preheader
  %storemerge203227.ph = phi i64 [ 1, %.lr.ph229.preheader ], [ %ind.end378, %middle.block372 ]
  %212 = add nuw i64 %206, 1
  %213 = sub i64 %212, %storemerge203227.ph
  %214 = sub i64 %206, %storemerge203227.ph
  %xtraiter417 = and i64 %213, 3
  %lcmp.mod418.not = icmp eq i64 %xtraiter417, 0
  br i1 %lcmp.mod418.not, label %.lr.ph229.prol.loopexit, label %.lr.ph229.prol

.lr.ph229.prol:                                   ; preds = %.lr.ph229.preheader408, %.lr.ph229.prol
  %storemerge203227.prol = phi i64 [ %218, %.lr.ph229.prol ], [ %storemerge203227.ph, %.lr.ph229.preheader408 ]
  %prol.iter419 = phi i64 [ %prol.iter419.next, %.lr.ph229.prol ], [ 0, %.lr.ph229.preheader408 ]
  %215 = getelementptr inbounds double, ptr %67, i64 %storemerge203227.prol
  %216 = load double, ptr %215, align 8, !tbaa !9
  %217 = getelementptr inbounds double, ptr %66, i64 %storemerge203227.prol
  store double %216, ptr %217, align 8, !tbaa !9
  %218 = add nuw i64 %storemerge203227.prol, 1
  %prol.iter419.next = add i64 %prol.iter419, 1
  %prol.iter419.cmp.not = icmp eq i64 %prol.iter419.next, %xtraiter417
  br i1 %prol.iter419.cmp.not, label %.lr.ph229.prol.loopexit, label %.lr.ph229.prol, !llvm.loop !20

.lr.ph229.prol.loopexit:                          ; preds = %.lr.ph229.prol, %.lr.ph229.preheader408
  %storemerge203227.unr = phi i64 [ %storemerge203227.ph, %.lr.ph229.preheader408 ], [ %218, %.lr.ph229.prol ]
  %219 = icmp ult i64 %214, 3
  br i1 %219, label %._crit_edge230, label %.lr.ph229

.lr.ph229:                                        ; preds = %.lr.ph229.prol.loopexit, %.lr.ph229
  %storemerge203227 = phi i64 [ %234, %.lr.ph229 ], [ %storemerge203227.unr, %.lr.ph229.prol.loopexit ]
  %220 = getelementptr inbounds double, ptr %67, i64 %storemerge203227
  %221 = load double, ptr %220, align 8, !tbaa !9
  %222 = getelementptr inbounds double, ptr %66, i64 %storemerge203227
  store double %221, ptr %222, align 8, !tbaa !9
  %223 = getelementptr double, ptr %18, i64 %storemerge203227
  %224 = load double, ptr %223, align 8, !tbaa !9
  %225 = getelementptr double, ptr %19, i64 %storemerge203227
  store double %224, ptr %225, align 8, !tbaa !9
  %226 = add nuw i64 %storemerge203227, 2
  %227 = getelementptr inbounds double, ptr %67, i64 %226
  %228 = load double, ptr %227, align 8, !tbaa !9
  %229 = getelementptr inbounds double, ptr %66, i64 %226
  store double %228, ptr %229, align 8, !tbaa !9
  %230 = add nuw i64 %storemerge203227, 3
  %231 = getelementptr inbounds double, ptr %67, i64 %230
  %232 = load double, ptr %231, align 8, !tbaa !9
  %233 = getelementptr inbounds double, ptr %66, i64 %230
  store double %232, ptr %233, align 8, !tbaa !9
  %234 = add nuw i64 %storemerge203227, 4
  %exitcond287.not.3 = icmp eq i64 %230, %206
  br i1 %exitcond287.not.3, label %._crit_edge230, label %.lr.ph229, !llvm.loop !21

._crit_edge230:                                   ; preds = %.lr.ph229.prol.loopexit, %.lr.ph229, %middle.block372, %._crit_edge
  %235 = load i64, ptr %47, align 8, !tbaa !5
  %236 = load double, ptr %50, align 8, !tbaa !9
  %237 = load i64, ptr %46, align 8, !tbaa !5
  %.not206232 = icmp slt i64 %237, 1
  br i1 %.not206232, label %._crit_edge236, label %.lr.ph235.preheader

.lr.ph235.preheader:                              ; preds = %._crit_edge230
  %238 = add nuw i64 %237, 1
  %min.iters.check357 = icmp ult i64 %237, 4
  %or.cond405 = or i1 %min.iters.check357, %diff.check354
  br i1 %or.cond405, label %.lr.ph235.preheader407, label %vector.ph358

vector.ph358:                                     ; preds = %.lr.ph235.preheader
  %n.vec360 = and i64 %237, 9223372036854775804
  %ind.end361 = or disjoint i64 %n.vec360, 1
  br label %vector.body363

vector.body363:                                   ; preds = %vector.body363, %vector.ph358
  %index364 = phi i64 [ 0, %vector.ph358 ], [ %index.next368, %vector.body363 ]
  %239 = getelementptr double, ptr %21, i64 %index364
  %240 = getelementptr inbounds i8, ptr %239, i64 16
  %wide.load366 = load <2 x double>, ptr %239, align 8, !tbaa !9
  %wide.load367 = load <2 x double>, ptr %240, align 8, !tbaa !9
  %241 = getelementptr double, ptr %22, i64 %index364
  %242 = getelementptr inbounds i8, ptr %241, i64 16
  store <2 x double> %wide.load366, ptr %241, align 8, !tbaa !9
  store <2 x double> %wide.load367, ptr %242, align 8, !tbaa !9
  %index.next368 = add nuw i64 %index364, 4
  %243 = icmp eq i64 %index.next368, %n.vec360
  br i1 %243, label %middle.block355, label %vector.body363, !llvm.loop !22

middle.block355:                                  ; preds = %vector.body363
  %cmp.n369 = icmp eq i64 %237, %n.vec360
  br i1 %cmp.n369, label %._crit_edge236, label %.lr.ph235.preheader407

.lr.ph235.preheader407:                           ; preds = %middle.block355, %.lr.ph235.preheader
  %storemerge205233.ph = phi i64 [ 1, %.lr.ph235.preheader ], [ %ind.end361, %middle.block355 ]
  %244 = add nuw i64 %237, 1
  %245 = sub i64 %244, %storemerge205233.ph
  %246 = sub i64 %237, %storemerge205233.ph
  %xtraiter420 = and i64 %245, 3
  %lcmp.mod421.not = icmp eq i64 %xtraiter420, 0
  br i1 %lcmp.mod421.not, label %.lr.ph235.prol.loopexit, label %.lr.ph235.prol

.lr.ph235.prol:                                   ; preds = %.lr.ph235.preheader407, %.lr.ph235.prol
  %storemerge205233.prol = phi i64 [ %250, %.lr.ph235.prol ], [ %storemerge205233.ph, %.lr.ph235.preheader407 ]
  %prol.iter422 = phi i64 [ %prol.iter422.next, %.lr.ph235.prol ], [ 0, %.lr.ph235.preheader407 ]
  %247 = getelementptr inbounds double, ptr %62, i64 %storemerge205233.prol
  %248 = load double, ptr %247, align 8, !tbaa !9
  %249 = getelementptr inbounds double, ptr %61, i64 %storemerge205233.prol
  store double %248, ptr %249, align 8, !tbaa !9
  %250 = add nuw i64 %storemerge205233.prol, 1
  %prol.iter422.next = add i64 %prol.iter422, 1
  %prol.iter422.cmp.not = icmp eq i64 %prol.iter422.next, %xtraiter420
  br i1 %prol.iter422.cmp.not, label %.lr.ph235.prol.loopexit, label %.lr.ph235.prol, !llvm.loop !23

.lr.ph235.prol.loopexit:                          ; preds = %.lr.ph235.prol, %.lr.ph235.preheader407
  %storemerge205233.unr = phi i64 [ %storemerge205233.ph, %.lr.ph235.preheader407 ], [ %250, %.lr.ph235.prol ]
  %251 = icmp ult i64 %246, 3
  br i1 %251, label %._crit_edge236, label %.lr.ph235

.lr.ph235:                                        ; preds = %.lr.ph235.prol.loopexit, %.lr.ph235
  %storemerge205233 = phi i64 [ %266, %.lr.ph235 ], [ %storemerge205233.unr, %.lr.ph235.prol.loopexit ]
  %252 = getelementptr inbounds double, ptr %62, i64 %storemerge205233
  %253 = load double, ptr %252, align 8, !tbaa !9
  %254 = getelementptr inbounds double, ptr %61, i64 %storemerge205233
  store double %253, ptr %254, align 8, !tbaa !9
  %255 = getelementptr double, ptr %21, i64 %storemerge205233
  %256 = load double, ptr %255, align 8, !tbaa !9
  %257 = getelementptr double, ptr %22, i64 %storemerge205233
  store double %256, ptr %257, align 8, !tbaa !9
  %258 = add nuw i64 %storemerge205233, 2
  %259 = getelementptr inbounds double, ptr %62, i64 %258
  %260 = load double, ptr %259, align 8, !tbaa !9
  %261 = getelementptr inbounds double, ptr %61, i64 %258
  store double %260, ptr %261, align 8, !tbaa !9
  %262 = add nuw i64 %storemerge205233, 3
  %263 = getelementptr inbounds double, ptr %62, i64 %262
  %264 = load double, ptr %263, align 8, !tbaa !9
  %265 = getelementptr inbounds double, ptr %61, i64 %262
  store double %264, ptr %265, align 8, !tbaa !9
  %266 = add nuw i64 %storemerge205233, 4
  %exitcond288.not.3 = icmp eq i64 %262, %237
  br i1 %exitcond288.not.3, label %._crit_edge236, label %.lr.ph235, !llvm.loop !24

._crit_edge236:                                   ; preds = %.lr.ph235.prol.loopexit, %.lr.ph235, %middle.block355, %._crit_edge230
  %storemerge205.lcssa = phi i64 [ 1, %._crit_edge230 ], [ %238, %middle.block355 ], [ %238, %.lr.ph235 ], [ %238, %.lr.ph235.prol.loopexit ]
  store i64 %storemerge205.lcssa, ptr %35, align 8, !tbaa !5
  %267 = load i64, ptr %48, align 8, !tbaa !5
  %268 = load i64, ptr %5, align 8, !tbaa !5
  %.not207 = icmp eq i64 %268, 0
  br i1 %.not207, label %284, label %269

269:                                              ; preds = %._crit_edge236
  %270 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %270, ptr getelementptr inbounds (i8, ptr @dchk5_.io___322, i64 8), align 8, !tbaa !25
  %271 = call i64 @s_wsfe(ptr noundef nonnull @dchk5_.io___322) #3
  %272 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #3
  %273 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %274 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #3
  %275 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %55, i64 noundef 1) #3
  %276 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #3
  %277 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #3
  %278 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %52, i64 noundef 8) #3
  %279 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #3
  %280 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #3
  %281 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 8) #3
  %282 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 8) #3
  %283 = call i64 @e_wsfe() #3
  br label %284

284:                                              ; preds = %269, %._crit_edge236
  %285 = load i64, ptr %6, align 8, !tbaa !5
  %.not208 = icmp eq i64 %285, 0
  br i1 %.not208, label %289, label %286

286:                                              ; preds = %284
  store i64 0, ptr %34, align 8, !tbaa !28
  %287 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %287, ptr %80, align 8, !tbaa !30
  %288 = call i64 @f_rew(ptr noundef nonnull %34) #3
  br label %289

289:                                              ; preds = %286, %284
  %290 = call i32 @f2c_dsyr2k(ptr noundef nonnull %51, ptr noundef nonnull %55, ptr noundef nonnull %38, ptr noundef nonnull %37, ptr noundef nonnull %52, ptr noundef %16, ptr noundef nonnull %45, ptr noundef %18, ptr noundef nonnull %47, ptr noundef nonnull %50, ptr noundef %21, ptr noundef nonnull %48) #3
  %291 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !11
  %.not209 = icmp eq i64 %291, 0
  br i1 %.not209, label %292, label %296

292:                                              ; preds = %289
  %293 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %293, ptr getelementptr inbounds (i8, ptr @dchk5_.io___323, i64 8), align 8, !tbaa !25
  %294 = call i64 @s_wsfe(ptr noundef nonnull @dchk5_.io___323) #3
  %295 = call i64 @e_wsfe() #3
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %518

296:                                              ; preds = %289
  %297 = load i8, ptr %51, align 1, !tbaa !11
  %298 = icmp eq i8 %171, %297
  %299 = zext i1 %298 to i64
  store i64 %299, ptr %53, align 16, !tbaa !5
  %300 = load i8, ptr %55, align 1, !tbaa !11
  %301 = icmp eq i8 %172, %300
  %302 = zext i1 %301 to i64
  store i64 %302, ptr %81, align 8, !tbaa !5
  %303 = load i64, ptr %38, align 8, !tbaa !5
  %304 = icmp eq i64 %173, %303
  %305 = zext i1 %304 to i64
  store i64 %305, ptr %82, align 16, !tbaa !5
  %306 = load i64, ptr %37, align 8, !tbaa !5
  %307 = icmp eq i64 %174, %306
  %308 = zext i1 %307 to i64
  store i64 %308, ptr %83, align 8, !tbaa !5
  %309 = load double, ptr %52, align 8, !tbaa !9
  %310 = fcmp oeq double %175, %309
  %311 = zext i1 %310 to i64
  store i64 %311, ptr %84, align 16, !tbaa !5
  %312 = call i64 @lde_(ptr noundef %17, ptr noundef %16, ptr noundef nonnull %43)
  store i64 %312, ptr %85, align 8, !tbaa !5
  %313 = load i64, ptr %45, align 8, !tbaa !5
  %314 = icmp eq i64 %205, %313
  %315 = zext i1 %314 to i64
  store i64 %315, ptr %86, align 16, !tbaa !5
  %316 = call i64 @lde_(ptr noundef %19, ptr noundef %18, ptr noundef nonnull %44)
  store i64 %316, ptr %87, align 8, !tbaa !5
  %317 = load i64, ptr %47, align 8, !tbaa !5
  %318 = icmp eq i64 %235, %317
  %319 = zext i1 %318 to i64
  store i64 %319, ptr %88, align 16, !tbaa !5
  %320 = load double, ptr %50, align 8, !tbaa !9
  %321 = fcmp oeq double %236, %320
  %322 = zext i1 %321 to i64
  store i64 %322, ptr %89, align 8, !tbaa !5
  br i1 %110, label %323, label %325

323:                                              ; preds = %296
  %324 = call i64 @lde_(ptr noundef %22, ptr noundef %21, ptr noundef nonnull %46)
  br label %327

325:                                              ; preds = %296
  %326 = call i64 @lderes_(ptr noundef nonnull @.str.7, ptr noundef nonnull %51, ptr noundef nonnull %38, ptr noundef nonnull %38, ptr noundef %22, ptr noundef %21, ptr noundef nonnull %48, i64 noundef 2, i64 noundef 1)
  br label %327

327:                                              ; preds = %325, %323
  %storemerge301 = phi i64 [ %326, %325 ], [ %324, %323 ]
  store i64 %storemerge301, ptr %90, align 16, !tbaa !5
  %328 = load i64, ptr %48, align 8, !tbaa !5
  %329 = icmp eq i64 %267, %328
  %330 = zext i1 %329 to i64
  store i64 %330, ptr %91, align 8, !tbaa !5
  store i64 1, ptr %35, align 8, !tbaa !5
  br label %._crit_edge296

._crit_edge296:                                   ; preds = %327, %339
  %331 = phi i64 [ 1, %327 ], [ %341, %339 ]
  %.0239 = phi i1 [ true, %327 ], [ %333, %339 ]
  %storemerge210238 = phi i64 [ 0, %327 ], [ %340, %339 ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %53, i64 0, i64 %storemerge210238
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %332 = icmp ne i64 %.pre, 0
  %333 = and i1 %.0239, %332
  %.not221 = icmp eq i64 %.pre, 0
  br i1 %.not221, label %334, label %339

334:                                              ; preds = %._crit_edge296
  %335 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %335, ptr getelementptr inbounds (i8, ptr @dchk5_.io___326, i64 8), align 8, !tbaa !25
  %336 = call i64 @s_wsfe(ptr noundef nonnull @dchk5_.io___326) #3
  %337 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #3
  %338 = call i64 @e_wsfe() #3
  %.pre297 = load i64, ptr %35, align 8, !tbaa !5
  br label %339

339:                                              ; preds = %._crit_edge296, %334
  %340 = phi i64 [ %331, %._crit_edge296 ], [ %.pre297, %334 ]
  %341 = add nsw i64 %340, 1
  store i64 %341, ptr %35, align 8, !tbaa !5
  %342 = icmp slt i64 %340, 12
  br i1 %342, label %._crit_edge296, label %343, !llvm.loop !31

343:                                              ; preds = %339
  br i1 %333, label %345, label %344

344:                                              ; preds = %343
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %518

345:                                              ; preds = %343
  br i1 %110, label %.loopexit, label %346

346:                                              ; preds = %345
  %347 = load i64, ptr %38, align 8, !tbaa !5
  store i64 1, ptr %36, align 8, !tbaa !5
  %.not213254 = icmp slt i64 %347, 1
  br i1 %.not213254, label %.loopexit, label %.lr.ph259

.lr.ph259:                                        ; preds = %346, %485
  %indvar = phi i64 [ %indvar.next, %485 ], [ 0, %346 ]
  %348 = phi double [ %483, %485 ], [ %165, %346 ]
  %.0176257 = phi i64 [ %.1, %485 ], [ 1, %346 ]
  %.0182256 = phi i64 [ %.1183, %485 ], [ 1, %346 ]
  %349 = phi i64 [ %486, %485 ], [ 1, %346 ]
  %350 = shl i64 %indvar, 4
  %351 = shl i64 %indvar, 3
  %352 = add i64 %351, %73
  %353 = sub i64 %72, %352
  %354 = shl i64 %indvar, 3
  %355 = add i64 %92, %354
  %356 = load i64, ptr %38, align 8
  %reass.sub = sub i64 %356, %349
  %357 = add i64 %reass.sub, 1
  %storemerge214 = select i1 %153, i64 %349, i64 %357
  %.0179 = select i1 %153, i64 1, i64 %349
  store i64 %storemerge214, ptr %42, align 8, !tbaa !5
  switch i8 %119, label %416 [
    i8 84, label %358
    i8 67, label %358
  ]

358:                                              ; preds = %.lr.ph259, %.lr.ph259
  %359 = load i64, ptr %37, align 8, !tbaa !5
  %.not218240 = icmp slt i64 %359, 1
  %.pre298 = load i64, ptr %14, align 8, !tbaa !5
  br i1 %.not218240, label %._crit_edge244, label %.lr.ph243

.lr.ph243:                                        ; preds = %358
  %360 = shl nuw i64 %349, 1
  %361 = add i64 %360, -2
  %362 = mul nsw i64 %.pre298, %361
  %363 = getelementptr double, ptr %70, i64 %362
  %364 = getelementptr double, ptr %363, i64 %359
  %365 = getelementptr double, ptr %60, i64 %359
  %366 = add nuw i64 %359, 1
  %min.iters.check338 = icmp ult i64 %359, 16
  br i1 %min.iters.check338, label %scalar.ph337.preheader, label %vector.memcheck328

vector.memcheck328:                               ; preds = %.lr.ph243
  %367 = shl i64 %359, 3
  %368 = add i64 %367, %29
  %369 = mul i64 %.pre298, %350
  %370 = add i64 %369, %28
  %371 = sub i64 %368, %370
  %diff.check329 = icmp ult i64 %371, 32
  %372 = sub i64 %29, %370
  %diff.check330 = icmp ult i64 %372, 32
  %conflict.rdx331 = or i1 %diff.check329, %diff.check330
  %373 = add i64 %93, %369
  %diff.check332 = icmp ult i64 %373, 32
  %conflict.rdx333 = or i1 %conflict.rdx331, %diff.check332
  %374 = add i64 %369, %28
  %375 = add i64 %374, %367
  %376 = sub i64 %29, %375
  %diff.check334 = icmp ult i64 %376, 32
  %conflict.rdx335 = or i1 %conflict.rdx333, %diff.check334
  br i1 %conflict.rdx335, label %scalar.ph337.preheader, label %vector.ph339

vector.ph339:                                     ; preds = %vector.memcheck328
  %n.vec341 = and i64 %359, 9223372036854775804
  %ind.end342 = or disjoint i64 %n.vec341, 1
  br label %vector.body344

vector.body344:                                   ; preds = %vector.body344, %vector.ph339
  %index345 = phi i64 [ 0, %vector.ph339 ], [ %index.next351, %vector.body344 ]
  %offset.idx346 = or disjoint i64 %index345, 1
  %377 = getelementptr double, ptr %364, i64 %offset.idx346
  %378 = getelementptr i8, ptr %377, i64 16
  %wide.load347 = load <2 x double>, ptr %377, align 8, !tbaa !9
  %wide.load348 = load <2 x double>, ptr %378, align 8, !tbaa !9
  %379 = getelementptr double, ptr %25, i64 %index345
  %380 = getelementptr inbounds i8, ptr %379, i64 16
  store <2 x double> %wide.load347, ptr %379, align 8, !tbaa !9
  store <2 x double> %wide.load348, ptr %380, align 8, !tbaa !9
  %381 = getelementptr double, ptr %363, i64 %offset.idx346
  %382 = getelementptr i8, ptr %381, i64 16
  %wide.load349 = load <2 x double>, ptr %381, align 8, !tbaa !9
  %wide.load350 = load <2 x double>, ptr %382, align 8, !tbaa !9
  %383 = getelementptr double, ptr %365, i64 %offset.idx346
  %384 = getelementptr i8, ptr %383, i64 16
  store <2 x double> %wide.load349, ptr %383, align 8, !tbaa !9
  store <2 x double> %wide.load350, ptr %384, align 8, !tbaa !9
  %index.next351 = add nuw i64 %index345, 4
  %385 = icmp eq i64 %index.next351, %n.vec341
  br i1 %385, label %middle.block336, label %vector.body344, !llvm.loop !32

middle.block336:                                  ; preds = %vector.body344
  %cmp.n352 = icmp eq i64 %359, %n.vec341
  br i1 %cmp.n352, label %._crit_edge244, label %scalar.ph337.preheader

scalar.ph337.preheader:                           ; preds = %middle.block336, %vector.memcheck328, %.lr.ph243
  %storemerge217241.ph = phi i64 [ 1, %vector.memcheck328 ], [ 1, %.lr.ph243 ], [ %ind.end342, %middle.block336 ]
  %xtraiter423 = and i64 %359, 1
  %lcmp.mod424.not = icmp eq i64 %xtraiter423, 0
  br i1 %lcmp.mod424.not, label %scalar.ph337.prol.loopexit, label %scalar.ph337.prol

scalar.ph337.prol:                                ; preds = %scalar.ph337.preheader
  %386 = getelementptr double, ptr %364, i64 %storemerge217241.ph
  %387 = load double, ptr %386, align 8, !tbaa !9
  %388 = getelementptr inbounds double, ptr %60, i64 %storemerge217241.ph
  store double %387, ptr %388, align 8, !tbaa !9
  %389 = getelementptr double, ptr %363, i64 %storemerge217241.ph
  %390 = load double, ptr %389, align 8, !tbaa !9
  %391 = getelementptr double, ptr %365, i64 %storemerge217241.ph
  store double %390, ptr %391, align 8, !tbaa !9
  %392 = add nuw i64 %storemerge217241.ph, 1
  br label %scalar.ph337.prol.loopexit

scalar.ph337.prol.loopexit:                       ; preds = %scalar.ph337.prol, %scalar.ph337.preheader
  %storemerge217241.unr = phi i64 [ %storemerge217241.ph, %scalar.ph337.preheader ], [ %392, %scalar.ph337.prol ]
  %393 = icmp eq i64 %359, %storemerge217241.ph
  br i1 %393, label %._crit_edge244, label %scalar.ph337

scalar.ph337:                                     ; preds = %scalar.ph337.prol.loopexit, %scalar.ph337
  %storemerge217241 = phi i64 [ %407, %scalar.ph337 ], [ %storemerge217241.unr, %scalar.ph337.prol.loopexit ]
  %394 = getelementptr double, ptr %364, i64 %storemerge217241
  %395 = load double, ptr %394, align 8, !tbaa !9
  %396 = getelementptr inbounds double, ptr %60, i64 %storemerge217241
  store double %395, ptr %396, align 8, !tbaa !9
  %397 = getelementptr double, ptr %363, i64 %storemerge217241
  %398 = load double, ptr %397, align 8, !tbaa !9
  %399 = getelementptr double, ptr %365, i64 %storemerge217241
  store double %398, ptr %399, align 8, !tbaa !9
  %400 = add nuw i64 %storemerge217241, 1
  %401 = getelementptr double, ptr %364, i64 %400
  %402 = load double, ptr %401, align 8, !tbaa !9
  %403 = getelementptr double, ptr %25, i64 %storemerge217241
  store double %402, ptr %403, align 8, !tbaa !9
  %404 = getelementptr double, ptr %363, i64 %400
  %405 = load double, ptr %404, align 8, !tbaa !9
  %406 = getelementptr double, ptr %365, i64 %400
  store double %405, ptr %406, align 8, !tbaa !9
  %407 = add nuw i64 %storemerge217241, 2
  %exitcond289.not.1 = icmp eq i64 %400, %359
  br i1 %exitcond289.not.1, label %._crit_edge244, label %scalar.ph337, !llvm.loop !33

._crit_edge244:                                   ; preds = %scalar.ph337.prol.loopexit, %scalar.ph337, %middle.block336, %358
  %storemerge217.lcssa = phi i64 [ 1, %358 ], [ %366, %middle.block336 ], [ %366, %scalar.ph337 ], [ %366, %scalar.ph337.prol.loopexit ]
  store i64 %storemerge217.lcssa, ptr %35, align 8, !tbaa !5
  %408 = shl i64 %359, 1
  store i64 %408, ptr %31, align 8, !tbaa !5
  %409 = shl i64 %.pre298, 1
  store i64 %409, ptr %32, align 8, !tbaa !5
  store i64 %409, ptr %33, align 8, !tbaa !5
  %410 = getelementptr inbounds double, ptr %70, i64 %.0176257
  %411 = mul nsw i64 %349, %63
  %412 = getelementptr double, ptr %65, i64 %.0179
  %413 = getelementptr double, ptr %412, i64 %411
  %414 = getelementptr inbounds double, ptr %62, i64 %.0182256
  %415 = call i32 @dmmch_(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, ptr noundef nonnull %42, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %52, ptr noundef nonnull %410, ptr noundef nonnull %32, ptr noundef %25, ptr noundef nonnull %33, ptr noundef nonnull %50, ptr noundef %413, ptr noundef nonnull %14, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %414, ptr noundef nonnull %48, ptr noundef %1, ptr noundef nonnull %49, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %469

416:                                              ; preds = %.lr.ph259
  %417 = load i64, ptr %37, align 8, !tbaa !5
  %invariant.gep = getelementptr double, ptr %70, i64 %349
  %.not216248 = icmp slt i64 %417, 1
  %.pre299 = load i64, ptr %14, align 8, !tbaa !5
  br i1 %.not216248, label %._crit_edge252, label %.lr.ph251

.lr.ph251:                                        ; preds = %416
  %418 = add nsw i64 %417, -1
  %419 = getelementptr double, ptr %60, i64 %417
  %420 = add nuw i64 %417, 1
  %min.iters.check = icmp ugt i64 %417, 7
  %ident.check.not = icmp eq i64 %.pre299, 1
  %or.cond406 = select i1 %min.iters.check, i1 %ident.check.not, i1 false
  br i1 %or.cond406, label %vector.memcheck, label %scalar.ph.preheader

vector.memcheck:                                  ; preds = %.lr.ph251
  %421 = shl i64 %417, 3
  %422 = add i64 %353, %421
  %diff.check = icmp ult i64 %422, 32
  %diff.check320 = icmp ult i64 %353, 32
  %conflict.rdx = or i1 %diff.check, %diff.check320
  %diff.check321 = icmp ult i64 %355, 32
  %conflict.rdx322 = or i1 %conflict.rdx, %diff.check321
  %423 = sub i64 %353, %421
  %diff.check323 = icmp ult i64 %423, 32
  %conflict.rdx324 = or i1 %conflict.rdx322, %diff.check323
  br i1 %conflict.rdx324, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %417, 9223372036854775804
  %ind.end = or disjoint i64 %n.vec, 1
  %424 = getelementptr double, ptr %invariant.gep, i64 %418
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %425 = getelementptr double, ptr %424, i64 %offset.idx
  %426 = getelementptr i8, ptr %425, i64 16
  %wide.load = load <2 x double>, ptr %425, align 8, !tbaa !9
  %wide.load325 = load <2 x double>, ptr %426, align 8, !tbaa !9
  %427 = getelementptr double, ptr %25, i64 %index
  %428 = getelementptr inbounds i8, ptr %427, i64 16
  store <2 x double> %wide.load, ptr %427, align 8, !tbaa !9
  store <2 x double> %wide.load325, ptr %428, align 8, !tbaa !9
  %429 = getelementptr double, ptr %invariant.gep, i64 %index
  %430 = getelementptr i8, ptr %429, i64 16
  %wide.load326 = load <2 x double>, ptr %429, align 8, !tbaa !9
  %wide.load327 = load <2 x double>, ptr %430, align 8, !tbaa !9
  %431 = getelementptr double, ptr %419, i64 %offset.idx
  %432 = getelementptr i8, ptr %431, i64 16
  store <2 x double> %wide.load326, ptr %431, align 8, !tbaa !9
  store <2 x double> %wide.load327, ptr %432, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %433 = icmp eq i64 %index.next, %n.vec
  br i1 %433, label %middle.block, label %vector.body, !llvm.loop !34

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %417, %n.vec
  br i1 %cmp.n, label %._crit_edge252, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph251
  %storemerge215249.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph251 ], [ %ind.end, %middle.block ]
  %xtraiter426 = and i64 %417, 1
  %lcmp.mod427.not = icmp eq i64 %xtraiter426, 0
  br i1 %lcmp.mod427.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader
  %434 = add i64 %418, %storemerge215249.ph
  %435 = mul nsw i64 %.pre299, %434
  %gep.prol = getelementptr double, ptr %invariant.gep, i64 %435
  %436 = load double, ptr %gep.prol, align 8, !tbaa !9
  %437 = getelementptr inbounds double, ptr %60, i64 %storemerge215249.ph
  store double %436, ptr %437, align 8, !tbaa !9
  %438 = add nsw i64 %storemerge215249.ph, -1
  %439 = mul nsw i64 %.pre299, %438
  %gep247.prol = getelementptr double, ptr %invariant.gep, i64 %439
  %440 = load double, ptr %gep247.prol, align 8, !tbaa !9
  %441 = getelementptr double, ptr %419, i64 %storemerge215249.ph
  store double %440, ptr %441, align 8, !tbaa !9
  %442 = add nuw i64 %storemerge215249.ph, 1
  br label %scalar.ph.prol.loopexit

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %storemerge215249.unr = phi i64 [ %storemerge215249.ph, %scalar.ph.preheader ], [ %442, %scalar.ph.prol ]
  %443 = icmp eq i64 %417, %storemerge215249.ph
  br i1 %443, label %._crit_edge252, label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %storemerge215249 = phi i64 [ %460, %scalar.ph ], [ %storemerge215249.unr, %scalar.ph.prol.loopexit ]
  %444 = add i64 %418, %storemerge215249
  %445 = mul nsw i64 %.pre299, %444
  %gep = getelementptr double, ptr %invariant.gep, i64 %445
  %446 = load double, ptr %gep, align 8, !tbaa !9
  %447 = getelementptr inbounds double, ptr %60, i64 %storemerge215249
  store double %446, ptr %447, align 8, !tbaa !9
  %448 = add nsw i64 %storemerge215249, -1
  %449 = mul nsw i64 %.pre299, %448
  %gep247 = getelementptr double, ptr %invariant.gep, i64 %449
  %450 = load double, ptr %gep247, align 8, !tbaa !9
  %451 = getelementptr double, ptr %419, i64 %storemerge215249
  store double %450, ptr %451, align 8, !tbaa !9
  %452 = add nuw i64 %storemerge215249, 1
  %453 = add i64 %417, %storemerge215249
  %454 = mul nsw i64 %.pre299, %453
  %gep.1 = getelementptr double, ptr %invariant.gep, i64 %454
  %455 = load double, ptr %gep.1, align 8, !tbaa !9
  %456 = getelementptr double, ptr %25, i64 %storemerge215249
  store double %455, ptr %456, align 8, !tbaa !9
  %457 = mul nsw i64 %.pre299, %storemerge215249
  %gep247.1 = getelementptr double, ptr %invariant.gep, i64 %457
  %458 = load double, ptr %gep247.1, align 8, !tbaa !9
  %459 = getelementptr double, ptr %419, i64 %452
  store double %458, ptr %459, align 8, !tbaa !9
  %460 = add nuw i64 %storemerge215249, 2
  %exitcond290.not.1 = icmp eq i64 %452, %417
  br i1 %exitcond290.not.1, label %._crit_edge252, label %scalar.ph, !llvm.loop !35

._crit_edge252:                                   ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block, %416
  %storemerge215.lcssa = phi i64 [ 1, %416 ], [ %420, %middle.block ], [ %420, %scalar.ph ], [ %420, %scalar.ph.prol.loopexit ]
  store i64 %storemerge215.lcssa, ptr %35, align 8, !tbaa !5
  %461 = shl i64 %417, 1
  store i64 %461, ptr %31, align 8, !tbaa !5
  %462 = shl i64 %.pre299, 1
  store i64 %462, ptr %32, align 8, !tbaa !5
  %463 = getelementptr inbounds double, ptr %70, i64 %.0179
  %464 = mul nsw i64 %349, %63
  %465 = getelementptr double, ptr %65, i64 %.0179
  %466 = getelementptr double, ptr %465, i64 %464
  %467 = getelementptr inbounds double, ptr %62, i64 %.0182256
  %468 = call i32 @dmmch_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.1, ptr noundef nonnull %42, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %52, ptr noundef nonnull %463, ptr noundef nonnull %14, ptr noundef %25, ptr noundef nonnull %32, ptr noundef nonnull %50, ptr noundef %466, ptr noundef nonnull %14, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %467, ptr noundef nonnull %48, ptr noundef %1, ptr noundef nonnull %49, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %469

469:                                              ; preds = %._crit_edge252, %._crit_edge244
  %470 = load i64, ptr %48, align 8, !tbaa !5
  br i1 %153, label %471, label %473

471:                                              ; preds = %469
  %472 = add nsw i64 %470, %.0182256
  br label %480

473:                                              ; preds = %469
  %474 = add i64 %.0182256, 1
  %475 = add i64 %474, %470
  switch i8 %119, label %480 [
    i8 84, label %476
    i8 67, label %476
  ]

476:                                              ; preds = %473, %473
  %477 = load i64, ptr %14, align 8, !tbaa !5
  %478 = shl i64 %477, 1
  %479 = add nsw i64 %478, %.0176257
  br label %480

480:                                              ; preds = %473, %476, %471
  %.1183 = phi i64 [ %472, %471 ], [ %475, %476 ], [ %475, %473 ]
  %.1 = phi i64 [ %.0176257, %471 ], [ %479, %476 ], [ %.0176257, %473 ]
  %481 = load double, ptr %49, align 8
  %482 = fcmp oge double %348, %481
  %483 = select i1 %482, double %348, double %481
  store double %483, ptr %56, align 8, !tbaa !9
  %484 = load i64, ptr %7, align 8, !tbaa !5
  %.not219 = icmp eq i64 %484, 0
  br i1 %.not219, label %485, label %510

485:                                              ; preds = %480
  %486 = add nuw nsw i64 %349, 1
  store i64 %486, ptr %36, align 8, !tbaa !5
  %.not213.not = icmp slt i64 %349, %347
  %indvar.next = add i64 %indvar, 1
  br i1 %.not213.not, label %.lr.ph259, label %.loopexit, !llvm.loop !36

.loopexit:                                        ; preds = %485, %346, %345
  %487 = phi double [ %165, %346 ], [ %165, %345 ], [ %483, %485 ]
  %488 = add nuw i64 %.0184261, 1
  %exitcond291.not = icmp eq i64 %.0184261, %160
  br i1 %exitcond291.not, label %._crit_edge264.loopexit, label %.lr.ph263, !llvm.loop !37

._crit_edge264.loopexit:                          ; preds = %.loopexit
  %.pre300 = load i64, ptr %30, align 8, !tbaa !5
  br label %._crit_edge264

._crit_edge264:                                   ; preds = %._crit_edge264.loopexit, %.lr.ph268.split
  %489 = phi i64 [ %.pre300, %._crit_edge264.loopexit ], [ %161, %.lr.ph268.split ]
  %490 = phi double [ %487, %._crit_edge264.loopexit ], [ %162, %.lr.ph268.split ]
  %.not199.not = icmp slt i64 %.0185266, %489
  br i1 %.not199.not, label %.lr.ph268.splitthread-pre-split, label %._crit_edge269, !llvm.loop !38

._crit_edge269:                                   ; preds = %._crit_edge264, %.lr.ph268.split.us, %148
  %491 = phi double [ %149, %.lr.ph268.split.us ], [ %149, %148 ], [ %490, %._crit_edge264 ]
  %492 = add nuw nsw i64 %.0177271, 1
  %exitcond292.not = icmp eq i64 %492, 3
  br i1 %exitcond292.not, label %.loopexit222, label %148, !llvm.loop !40

.loopexit222:                                     ; preds = %._crit_edge269, %126
  %493 = phi double [ %116, %126 ], [ %491, %._crit_edge269 ]
  %494 = add nuw nsw i64 %.0178272, 1
  %exitcond293.not = icmp eq i64 %494, 4
  br i1 %exitcond293.not, label %495, label %115, !llvm.loop !41

495:                                              ; preds = %.loopexit222
  %496 = add nuw i64 %.0181274, 1
  %exitcond294.not = icmp eq i64 %.0181274, %111
  br i1 %exitcond294.not, label %.loopexit223, label %.lr.ph276, !llvm.loop !42

.loopexit223:                                     ; preds = %495, %108, %105
  %497 = phi double [ %98, %108 ], [ %98, %105 ], [ %493, %495 ]
  %498 = add nuw i64 %.0180278, 1
  %exitcond295.not = icmp eq i64 %.0180278, %71
  br i1 %exitcond295.not, label %._crit_edge281, label %97, !llvm.loop !43

._crit_edge281:                                   ; preds = %.loopexit223, %27
  %499 = phi double [ 0.000000e+00, %27 ], [ %497, %.loopexit223 ]
  %500 = load double, ptr %2, align 8, !tbaa !9
  %501 = fcmp olt double %499, %500
  %502 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %501, label %503, label %506

503:                                              ; preds = %._crit_edge281
  store i64 %502, ptr getelementptr inbounds (i8, ptr @dchk5_.io___333, i64 8), align 8, !tbaa !25
  %504 = call i64 @s_wsfe(ptr noundef nonnull @dchk5_.io___333) #3
  %505 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  br label %535

506:                                              ; preds = %._crit_edge281
  store i64 %502, ptr getelementptr inbounds (i8, ptr @dchk5_.io___334, i64 8), align 8, !tbaa !25
  %507 = call i64 @s_wsfe(ptr noundef nonnull @dchk5_.io___334) #3
  %508 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %509 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #3
  br label %535

510:                                              ; preds = %480
  %511 = load i64, ptr %38, align 8, !tbaa !5
  %512 = icmp sgt i64 %511, 1
  br i1 %512, label %513, label %518

513:                                              ; preds = %510
  %514 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %514, ptr getelementptr inbounds (i8, ptr @dchk5_.io___335, i64 8), align 8, !tbaa !25
  %515 = call i64 @s_wsfe(ptr noundef nonnull @dchk5_.io___335) #3
  %516 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %36, i64 noundef 8) #3
  %517 = call i64 @e_wsfe() #3
  br label %518

518:                                              ; preds = %510, %513, %344, %292
  %519 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %519, ptr getelementptr inbounds (i8, ptr @dchk5_.io___336, i64 8), align 8, !tbaa !25
  %520 = call i64 @s_wsfe(ptr noundef nonnull @dchk5_.io___336) #3
  %521 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %522 = call i64 @e_wsfe() #3
  %523 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %523, ptr getelementptr inbounds (i8, ptr @dchk5_.io___337, i64 8), align 8, !tbaa !25
  %524 = call i64 @s_wsfe(ptr noundef nonnull @dchk5_.io___337) #3
  %525 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %41, i64 noundef 8) #3
  %526 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %527 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %51, i64 noundef 1) #3
  %528 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %55, i64 noundef 1) #3
  %529 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #3
  %530 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #3
  %531 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %52, i64 noundef 8) #3
  %532 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #3
  %533 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 8) #3
  %534 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 8) #3
  br label %535

535:                                              ; preds = %503, %506, %518
  %.sink312 = phi ptr [ %41, %503 ], [ %56, %506 ], [ %48, %518 ]
  %536 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %.sink312, i64 noundef 8) #3
  %537 = call i64 @e_wsfe() #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %53) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #3
  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, 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_dsyr2k(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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


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