; 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
@c_b101 = external hidden global double, align 8
@c_true = external hidden global i64, align 8
@dchk1_.ich = external hidden global [3 x i8], align 1
@dchk1_.io___124 = external hidden global %struct.cilist, align 8
@dchk1_.io___125 = external hidden global %struct.cilist, align 8
@dchk1_.io___128 = external hidden global %struct.cilist, align 8
@dchk1_.io___130 = external hidden global %struct.cilist, align 8
@dchk1_.io___131 = external hidden global %struct.cilist, align 8
@dchk1_.io___132 = external hidden global %struct.cilist, align 8
@dchk1_.io___133 = external hidden global %struct.cilist, 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

; 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 @dchk1_(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 i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca %struct.alist, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca i64, align 8
  %89 = alloca i64, align 8
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca double, align 8
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = alloca double, align 8
  %97 = alloca i64, align 8
  %98 = alloca i64, align 8
  %99 = alloca i64, align 8
  %100 = alloca i64, align 8
  %101 = alloca i64, align 8
  %102 = alloca double, align 8
  %103 = alloca [13 x i64], align 16
  %104 = alloca i64, align 8
  %105 = alloca i64, align 8
  %106 = alloca i64, align 8
  %107 = alloca i64, align 8
  %108 = alloca [1 x i8], align 1
  %109 = alloca [1 x i8], align 1
  %110 = alloca [1 x i8], align 1
  %111 = alloca [1 x i8], align 1
  %112 = alloca double, align 8
  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 8, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 16, 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 8, 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 8, 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 1, ptr %109) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #3
  %113 = load ptr, ptr %37, align 8, !tbaa !5
  %114 = getelementptr inbounds i64, ptr %113, i32 -1
  store ptr %114, ptr %37, align 8, !tbaa !5
  %115 = load ptr, ptr %39, align 8, !tbaa !5
  %116 = getelementptr inbounds double, ptr %115, i32 -1
  store ptr %116, ptr %39, align 8, !tbaa !5
  %117 = load ptr, ptr %41, align 8, !tbaa !5
  %118 = getelementptr inbounds double, ptr %117, i32 -1
  store ptr %118, ptr %41, align 8, !tbaa !5
  %119 = load ptr, ptr %53, align 8, !tbaa !5
  %120 = getelementptr inbounds double, ptr %119, i32 -1
  store ptr %120, ptr %53, align 8, !tbaa !5
  %121 = load ptr, ptr %52, align 8, !tbaa !5
  %122 = getelementptr inbounds double, ptr %121, i32 -1
  store ptr %122, ptr %52, align 8, !tbaa !5
  %123 = load ptr, ptr %51, align 8, !tbaa !5
  %124 = getelementptr inbounds double, ptr %123, i32 -1
  store ptr %124, ptr %51, align 8, !tbaa !5
  %125 = load ptr, ptr %50, align 8, !tbaa !5
  %126 = getelementptr inbounds double, ptr %125, i32 -1
  store ptr %126, ptr %50, 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 %59, align 8, !tbaa !9
  %129 = load i64, ptr %59, align 8, !tbaa !9
  %130 = add nsw i64 1, %129
  store i64 %130, ptr %60, align 8, !tbaa !9
  %131 = load i64, ptr %60, align 8, !tbaa !9
  %132 = load ptr, ptr %49, align 8, !tbaa !5
  %133 = sub i64 0, %131
  %134 = getelementptr inbounds double, ptr %132, i64 %133
  store ptr %134, ptr %49, align 8, !tbaa !5
  %135 = load ptr, ptr %48, align 8, !tbaa !5
  %136 = getelementptr inbounds double, ptr %135, i32 -1
  store ptr %136, ptr %48, align 8, !tbaa !5
  %137 = load ptr, ptr %47, align 8, !tbaa !5
  %138 = getelementptr inbounds double, ptr %137, i32 -1
  store ptr %138, ptr %47, align 8, !tbaa !5
  %139 = load ptr, ptr %42, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  store i64 %140, ptr %57, align 8, !tbaa !9
  %141 = load i64, ptr %57, align 8, !tbaa !9
  %142 = add nsw i64 1, %141
  store i64 %142, ptr %58, align 8, !tbaa !9
  %143 = load i64, ptr %58, align 8, !tbaa !9
  %144 = load ptr, ptr %46, align 8, !tbaa !5
  %145 = sub i64 0, %143
  %146 = getelementptr inbounds double, ptr %144, i64 %145
  store ptr %146, ptr %46, align 8, !tbaa !5
  %147 = load ptr, ptr %45, align 8, !tbaa !5
  %148 = getelementptr inbounds double, ptr %147, i32 -1
  store ptr %148, ptr %45, align 8, !tbaa !5
  %149 = load ptr, ptr %44, align 8, !tbaa !5
  %150 = getelementptr inbounds double, ptr %149, i32 -1
  store ptr %150, ptr %44, align 8, !tbaa !5
  %151 = load ptr, ptr %42, align 8, !tbaa !5
  %152 = load i64, ptr %151, align 8, !tbaa !9
  store i64 %152, ptr %55, align 8, !tbaa !9
  %153 = load i64, ptr %55, align 8, !tbaa !9
  %154 = add nsw i64 1, %153
  store i64 %154, ptr %56, align 8, !tbaa !9
  %155 = load i64, ptr %56, align 8, !tbaa !9
  %156 = load ptr, ptr %43, align 8, !tbaa !5
  %157 = sub i64 0, %155
  %158 = getelementptr inbounds double, ptr %156, i64 %157
  store ptr %158, ptr %43, align 8, !tbaa !5
  store i64 13, ptr %106, align 8, !tbaa !9
  store i64 0, ptr %78, align 8, !tbaa !9
  store i64 1, ptr %107, align 8, !tbaa !9
  store double 0.000000e+00, ptr %112, align 8, !tbaa !11
  %159 = load ptr, ptr %36, align 8, !tbaa !5
  %160 = load i64, ptr %159, align 8, !tbaa !9
  store i64 %160, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %161

161:                                              ; preds = %684, %27
  %162 = load i64, ptr %80, align 8, !tbaa !9
  %163 = load i64, ptr %61, align 8, !tbaa !9
  %164 = icmp sle i64 %162, %163
  br i1 %164, label %165, label %687

165:                                              ; preds = %161
  %166 = load ptr, ptr %37, align 8, !tbaa !5
  %167 = load i64, ptr %80, align 8, !tbaa !9
  %168 = getelementptr inbounds i64, ptr %166, i64 %167
  %169 = load i64, ptr %168, align 8, !tbaa !9
  store i64 %169, ptr %70, align 8, !tbaa !9
  %170 = load ptr, ptr %36, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  store i64 %171, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %81, align 8, !tbaa !9
  br label %172

172:                                              ; preds = %680, %165
  %173 = load i64, ptr %81, align 8, !tbaa !9
  %174 = load i64, ptr %62, align 8, !tbaa !9
  %175 = icmp sle i64 %173, %174
  br i1 %175, label %176, label %683

176:                                              ; preds = %172
  %177 = load ptr, ptr %37, align 8, !tbaa !5
  %178 = load i64, ptr %81, align 8, !tbaa !9
  %179 = getelementptr inbounds i64, ptr %177, i64 %178
  %180 = load i64, ptr %179, align 8, !tbaa !9
  store i64 %180, ptr %71, align 8, !tbaa !9
  %181 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %181, ptr %92, align 8, !tbaa !9
  %182 = load i64, ptr %92, align 8, !tbaa !9
  %183 = load ptr, ptr %42, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = icmp slt i64 %182, %184
  br i1 %185, label %186, label %189

186:                                              ; preds = %176
  %187 = load i64, ptr %92, align 8, !tbaa !9
  %188 = add nsw i64 %187, 1
  store i64 %188, ptr %92, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %186, %176
  %190 = load i64, ptr %92, align 8, !tbaa !9
  %191 = load ptr, ptr %42, align 8, !tbaa !5
  %192 = load i64, ptr %191, align 8, !tbaa !9
  %193 = icmp sgt i64 %190, %192
  br i1 %193, label %194, label %195

194:                                              ; preds = %189
  br label %679

195:                                              ; preds = %189
  %196 = load i64, ptr %92, align 8, !tbaa !9
  %197 = load i64, ptr %71, align 8, !tbaa !9
  %198 = mul nsw i64 %196, %197
  store i64 %198, ptr %90, align 8, !tbaa !9
  %199 = load i64, ptr %71, align 8, !tbaa !9
  %200 = icmp sle i64 %199, 0
  br i1 %200, label %204, label %201

201:                                              ; preds = %195
  %202 = load i64, ptr %70, align 8, !tbaa !9
  %203 = icmp sle i64 %202, 0
  br label %204

204:                                              ; preds = %201, %195
  %205 = phi i1 [ true, %195 ], [ %203, %201 ]
  %206 = zext i1 %205 to i32
  %207 = sext i32 %206 to i64
  store i64 %207, ptr %101, align 8, !tbaa !9
  %208 = load ptr, ptr %36, align 8, !tbaa !5
  %209 = load i64, ptr %208, align 8, !tbaa !9
  store i64 %209, ptr %63, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %210

210:                                              ; preds = %675, %204
  %211 = load i64, ptr %79, align 8, !tbaa !9
  %212 = load i64, ptr %63, align 8, !tbaa !9
  %213 = icmp sle i64 %211, %212
  br i1 %213, label %214, label %678

214:                                              ; preds = %210
  %215 = load ptr, ptr %37, align 8, !tbaa !5
  %216 = load i64, ptr %79, align 8, !tbaa !9
  %217 = getelementptr inbounds i64, ptr %215, i64 %216
  %218 = load i64, ptr %217, align 8, !tbaa !9
  store i64 %218, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %85, align 8, !tbaa !9
  br label %219

219:                                              ; preds = %671, %214
  %220 = load i64, ptr %85, align 8, !tbaa !9
  %221 = icmp sle i64 %220, 3
  br i1 %221, label %222, label %674

222:                                              ; preds = %219
  %223 = load i64, ptr %85, align 8, !tbaa !9
  %224 = sub nsw i64 %223, 1
  %225 = getelementptr inbounds [3 x i8], ptr @dchk1_.ich, i64 0, i64 %224
  %226 = load i8, ptr %225, align 1, !tbaa !13
  %227 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  store i8 %226, ptr %227, align 1, !tbaa !13
  %228 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %229 = load i8, ptr %228, align 1, !tbaa !13
  %230 = zext i8 %229 to i32
  %231 = icmp eq i32 %230, 84
  br i1 %231, label %237, label %232

232:                                              ; preds = %222
  %233 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %234 = load i8, ptr %233, align 1, !tbaa !13
  %235 = zext i8 %234 to i32
  %236 = icmp eq i32 %235, 67
  br label %237

237:                                              ; preds = %232, %222
  %238 = phi i1 [ true, %222 ], [ %236, %232 ]
  %239 = zext i1 %238 to i32
  %240 = sext i32 %239 to i64
  store i64 %240, ptr %104, align 8, !tbaa !9
  %241 = load i64, ptr %104, align 8, !tbaa !9
  %242 = icmp ne i64 %241, 0
  br i1 %242, label %243, label %246

243:                                              ; preds = %237
  %244 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %244, ptr %74, align 8, !tbaa !9
  %245 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %245, ptr %76, align 8, !tbaa !9
  br label %249

246:                                              ; preds = %237
  %247 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %247, ptr %74, align 8, !tbaa !9
  %248 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %248, ptr %76, align 8, !tbaa !9
  br label %249

249:                                              ; preds = %246, %243
  %250 = load i64, ptr %74, align 8, !tbaa !9
  store i64 %250, ptr %89, align 8, !tbaa !9
  %251 = load i64, ptr %89, align 8, !tbaa !9
  %252 = load ptr, ptr %42, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %254 = icmp slt i64 %251, %253
  br i1 %254, label %255, label %258

255:                                              ; preds = %249
  %256 = load i64, ptr %89, align 8, !tbaa !9
  %257 = add nsw i64 %256, 1
  store i64 %257, ptr %89, align 8, !tbaa !9
  br label %258

258:                                              ; preds = %255, %249
  %259 = load i64, ptr %89, align 8, !tbaa !9
  %260 = load ptr, ptr %42, align 8, !tbaa !5
  %261 = load i64, ptr %260, align 8, !tbaa !9
  %262 = icmp sgt i64 %259, %261
  br i1 %262, label %263, label %264

263:                                              ; preds = %258
  br label %670

264:                                              ; preds = %258
  %265 = load i64, ptr %89, align 8, !tbaa !9
  %266 = load i64, ptr %76, align 8, !tbaa !9
  %267 = mul nsw i64 %265, %266
  store i64 %267, ptr %87, align 8, !tbaa !9
  %268 = load ptr, ptr %43, align 8, !tbaa !5
  %269 = load i64, ptr %56, align 8, !tbaa !9
  %270 = getelementptr inbounds double, ptr %268, i64 %269
  %271 = load ptr, ptr %42, align 8, !tbaa !5
  %272 = load ptr, ptr %44, align 8, !tbaa !5
  %273 = getelementptr inbounds double, ptr %272, i64 1
  %274 = call i32 @dmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %74, ptr noundef %76, ptr noundef %270, ptr noundef %271, ptr noundef %273, ptr noundef %89, ptr noundef %107, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  store i64 1, ptr %86, align 8, !tbaa !9
  br label %275

275:                                              ; preds = %666, %264
  %276 = load i64, ptr %86, align 8, !tbaa !9
  %277 = icmp sle i64 %276, 3
  br i1 %277, label %278, label %669

278:                                              ; preds = %275
  %279 = load i64, ptr %86, align 8, !tbaa !9
  %280 = sub nsw i64 %279, 1
  %281 = getelementptr inbounds [3 x i8], ptr @dchk1_.ich, i64 0, i64 %280
  %282 = load i8, ptr %281, align 1, !tbaa !13
  %283 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  store i8 %282, ptr %283, align 1, !tbaa !13
  %284 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %285 = load i8, ptr %284, align 1, !tbaa !13
  %286 = zext i8 %285 to i32
  %287 = icmp eq i32 %286, 84
  br i1 %287, label %293, label %288

288:                                              ; preds = %278
  %289 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %290 = load i8, ptr %289, align 1, !tbaa !13
  %291 = zext i8 %290 to i32
  %292 = icmp eq i32 %291, 67
  br label %293

293:                                              ; preds = %288, %278
  %294 = phi i1 [ true, %278 ], [ %292, %288 ]
  %295 = zext i1 %294 to i32
  %296 = sext i32 %295 to i64
  store i64 %296, ptr %105, align 8, !tbaa !9
  %297 = load i64, ptr %105, align 8, !tbaa !9
  %298 = icmp ne i64 %297, 0
  br i1 %298, label %299, label %302

299:                                              ; preds = %293
  %300 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %300, ptr %75, align 8, !tbaa !9
  %301 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %301, ptr %77, align 8, !tbaa !9
  br label %305

302:                                              ; preds = %293
  %303 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %303, ptr %75, align 8, !tbaa !9
  %304 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %304, ptr %77, align 8, !tbaa !9
  br label %305

305:                                              ; preds = %302, %299
  %306 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %306, ptr %91, align 8, !tbaa !9
  %307 = load i64, ptr %91, align 8, !tbaa !9
  %308 = load ptr, ptr %42, align 8, !tbaa !5
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = icmp slt i64 %307, %309
  br i1 %310, label %311, label %314

311:                                              ; preds = %305
  %312 = load i64, ptr %91, align 8, !tbaa !9
  %313 = add nsw i64 %312, 1
  store i64 %313, ptr %91, align 8, !tbaa !9
  br label %314

314:                                              ; preds = %311, %305
  %315 = load i64, ptr %91, align 8, !tbaa !9
  %316 = load ptr, ptr %42, align 8, !tbaa !5
  %317 = load i64, ptr %316, align 8, !tbaa !9
  %318 = icmp sgt i64 %315, %317
  br i1 %318, label %319, label %320

319:                                              ; preds = %314
  br label %665

320:                                              ; preds = %314
  %321 = load i64, ptr %91, align 8, !tbaa !9
  %322 = load i64, ptr %77, align 8, !tbaa !9
  %323 = mul nsw i64 %321, %322
  store i64 %323, ptr %88, align 8, !tbaa !9
  %324 = load ptr, ptr %46, align 8, !tbaa !5
  %325 = load i64, ptr %58, align 8, !tbaa !9
  %326 = getelementptr inbounds double, ptr %324, i64 %325
  %327 = load ptr, ptr %42, align 8, !tbaa !5
  %328 = load ptr, ptr %47, align 8, !tbaa !5
  %329 = getelementptr inbounds double, ptr %328, i64 1
  %330 = call i32 @dmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %75, ptr noundef %77, ptr noundef %326, ptr noundef %327, ptr noundef %329, ptr noundef %91, ptr noundef %107, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %331 = load ptr, ptr %38, align 8, !tbaa !5
  %332 = load i64, ptr %331, align 8, !tbaa !9
  store i64 %332, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %72, align 8, !tbaa !9
  br label %333

333:                                              ; preds = %661, %320
  %334 = load i64, ptr %72, align 8, !tbaa !9
  %335 = load i64, ptr %64, align 8, !tbaa !9
  %336 = icmp sle i64 %334, %335
  br i1 %336, label %337, label %664

337:                                              ; preds = %333
  %338 = load ptr, ptr %39, align 8, !tbaa !5
  %339 = load i64, ptr %72, align 8, !tbaa !9
  %340 = getelementptr inbounds double, ptr %338, i64 %339
  %341 = load double, ptr %340, align 8, !tbaa !11
  store double %341, ptr %102, align 8, !tbaa !11
  %342 = load ptr, ptr %40, align 8, !tbaa !5
  %343 = load i64, ptr %342, align 8, !tbaa !9
  store i64 %343, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %73, align 8, !tbaa !9
  br label %344

344:                                              ; preds = %657, %337
  %345 = load i64, ptr %73, align 8, !tbaa !9
  %346 = load i64, ptr %65, align 8, !tbaa !9
  %347 = icmp sle i64 %345, %346
  br i1 %347, label %348, label %660

348:                                              ; preds = %344
  %349 = load ptr, ptr %41, align 8, !tbaa !5
  %350 = load i64, ptr %73, align 8, !tbaa !9
  %351 = getelementptr inbounds double, ptr %349, i64 %350
  %352 = load double, ptr %351, align 8, !tbaa !11
  store double %352, ptr %96, align 8, !tbaa !11
  %353 = load ptr, ptr %49, align 8, !tbaa !5
  %354 = load i64, ptr %60, align 8, !tbaa !9
  %355 = getelementptr inbounds double, ptr %353, i64 %354
  %356 = load ptr, ptr %42, align 8, !tbaa !5
  %357 = load ptr, ptr %50, align 8, !tbaa !5
  %358 = getelementptr inbounds double, ptr %357, i64 1
  %359 = call i32 @dmake_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %70, ptr noundef %71, ptr noundef %355, ptr noundef %356, ptr noundef %358, ptr noundef %92, ptr noundef %107, ptr noundef @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %360 = load i64, ptr %78, align 8, !tbaa !9
  %361 = add nsw i64 %360, 1
  store i64 %361, ptr %78, align 8, !tbaa !9
  %362 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %363 = load i8, ptr %362, align 1, !tbaa !13
  %364 = getelementptr inbounds [1 x i8], ptr %108, i64 0, i64 0
  store i8 %363, ptr %364, align 1, !tbaa !13
  %365 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %366 = load i8, ptr %365, align 1, !tbaa !13
  %367 = getelementptr inbounds [1 x i8], ptr %109, i64 0, i64 0
  store i8 %366, ptr %367, align 1, !tbaa !13
  %368 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %368, ptr %83, align 8, !tbaa !9
  %369 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %369, ptr %84, align 8, !tbaa !9
  %370 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %370, ptr %82, align 8, !tbaa !9
  %371 = load double, ptr %102, align 8, !tbaa !11
  store double %371, ptr %93, align 8, !tbaa !11
  %372 = load i64, ptr %87, align 8, !tbaa !9
  store i64 %372, ptr %66, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %373

373:                                              ; preds = %385, %348
  %374 = load i64, ptr %68, align 8, !tbaa !9
  %375 = load i64, ptr %66, align 8, !tbaa !9
  %376 = icmp sle i64 %374, %375
  br i1 %376, label %377, label %388

377:                                              ; preds = %373
  %378 = load ptr, ptr %44, align 8, !tbaa !5
  %379 = load i64, ptr %68, align 8, !tbaa !9
  %380 = getelementptr inbounds double, ptr %378, i64 %379
  %381 = load double, ptr %380, align 8, !tbaa !11
  %382 = load ptr, ptr %45, align 8, !tbaa !5
  %383 = load i64, ptr %68, align 8, !tbaa !9
  %384 = getelementptr inbounds double, ptr %382, i64 %383
  store double %381, ptr %384, align 8, !tbaa !11
  br label %385

385:                                              ; preds = %377
  %386 = load i64, ptr %68, align 8, !tbaa !9
  %387 = add nsw i64 %386, 1
  store i64 %387, ptr %68, align 8, !tbaa !9
  br label %373, !llvm.loop !14

388:                                              ; preds = %373
  %389 = load i64, ptr %89, align 8, !tbaa !9
  store i64 %389, ptr %97, align 8, !tbaa !9
  %390 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %390, ptr %66, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %391

391:                                              ; preds = %403, %388
  %392 = load i64, ptr %68, align 8, !tbaa !9
  %393 = load i64, ptr %66, align 8, !tbaa !9
  %394 = icmp sle i64 %392, %393
  br i1 %394, label %395, label %406

395:                                              ; preds = %391
  %396 = load ptr, ptr %47, align 8, !tbaa !5
  %397 = load i64, ptr %68, align 8, !tbaa !9
  %398 = getelementptr inbounds double, ptr %396, i64 %397
  %399 = load double, ptr %398, align 8, !tbaa !11
  %400 = load ptr, ptr %48, align 8, !tbaa !5
  %401 = load i64, ptr %68, align 8, !tbaa !9
  %402 = getelementptr inbounds double, ptr %400, i64 %401
  store double %399, ptr %402, align 8, !tbaa !11
  br label %403

403:                                              ; preds = %395
  %404 = load i64, ptr %68, align 8, !tbaa !9
  %405 = add nsw i64 %404, 1
  store i64 %405, ptr %68, align 8, !tbaa !9
  br label %391, !llvm.loop !16

406:                                              ; preds = %391
  %407 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %407, ptr %98, align 8, !tbaa !9
  %408 = load double, ptr %96, align 8, !tbaa !11
  store double %408, ptr %94, align 8, !tbaa !11
  %409 = load i64, ptr %90, align 8, !tbaa !9
  store i64 %409, ptr %66, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %410

410:                                              ; preds = %422, %406
  %411 = load i64, ptr %68, align 8, !tbaa !9
  %412 = load i64, ptr %66, align 8, !tbaa !9
  %413 = icmp sle i64 %411, %412
  br i1 %413, label %414, label %425

414:                                              ; preds = %410
  %415 = load ptr, ptr %50, align 8, !tbaa !5
  %416 = load i64, ptr %68, align 8, !tbaa !9
  %417 = getelementptr inbounds double, ptr %415, i64 %416
  %418 = load double, ptr %417, align 8, !tbaa !11
  %419 = load ptr, ptr %51, align 8, !tbaa !5
  %420 = load i64, ptr %68, align 8, !tbaa !9
  %421 = getelementptr inbounds double, ptr %419, i64 %420
  store double %418, ptr %421, align 8, !tbaa !11
  br label %422

422:                                              ; preds = %414
  %423 = load i64, ptr %68, align 8, !tbaa !9
  %424 = add nsw i64 %423, 1
  store i64 %424, ptr %68, align 8, !tbaa !9
  br label %410, !llvm.loop !17

425:                                              ; preds = %410
  %426 = load i64, ptr %92, align 8, !tbaa !9
  store i64 %426, ptr %99, align 8, !tbaa !9
  %427 = load ptr, ptr %33, align 8, !tbaa !5
  %428 = load i64, ptr %427, align 8, !tbaa !9
  %429 = icmp ne i64 %428, 0
  br i1 %429, label %430, label %450

430:                                              ; preds = %425
  %431 = load ptr, ptr %32, align 8, !tbaa !5
  %432 = load i64, ptr %431, align 8, !tbaa !9
  store i64 %432, ptr getelementptr inbounds (%struct.cilist, ptr @dchk1_.io___124, i32 0, i32 1), align 8, !tbaa !18
  %433 = call i64 @s_wsfe(ptr noundef @dchk1_.io___124)
  %434 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %78, i64 noundef 8)
  %435 = load ptr, ptr %28, align 8, !tbaa !5
  %436 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %435, i64 noundef 6)
  %437 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %438 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %437, i64 noundef 1)
  %439 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %440 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %439, i64 noundef 1)
  %441 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %442 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %443 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %444 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %445 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %446 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %91, i64 noundef 8)
  %447 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %96, i64 noundef 8)
  %448 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %92, i64 noundef 8)
  %449 = call i64 @e_wsfe()
  br label %450

450:                                              ; preds = %430, %425
  %451 = load ptr, ptr %34, align 8, !tbaa !5
  %452 = load i64, ptr %451, align 8, !tbaa !9
  %453 = icmp ne i64 %452, 0
  br i1 %453, label %454, label %460

454:                                              ; preds = %450
  %455 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 0
  store i64 0, ptr %455, align 8, !tbaa !20
  %456 = load ptr, ptr %32, align 8, !tbaa !5
  %457 = load i64, ptr %456, align 8, !tbaa !9
  %458 = getelementptr inbounds %struct.alist, ptr %67, i32 0, i32 1
  store i64 %457, ptr %458, align 8, !tbaa !22
  %459 = call i64 @f_rew(ptr noundef %67)
  br label %460

460:                                              ; preds = %454, %450
  %461 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %462 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %463 = load ptr, ptr %44, align 8, !tbaa !5
  %464 = getelementptr inbounds double, ptr %463, i64 1
  %465 = load ptr, ptr %47, align 8, !tbaa !5
  %466 = getelementptr inbounds double, ptr %465, i64 1
  %467 = load ptr, ptr %50, align 8, !tbaa !5
  %468 = getelementptr inbounds double, ptr %467, i64 1
  %469 = call i32 @f2c_dgemm(ptr noundef %461, ptr noundef %462, ptr noundef %70, ptr noundef %71, ptr noundef %69, ptr noundef %102, ptr noundef %464, ptr noundef %89, ptr noundef %466, ptr noundef %91, ptr noundef %96, ptr noundef %468, ptr noundef %92)
  %470 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !13
  %471 = icmp ne i64 %470, 0
  br i1 %471, label %478, label %472

472:                                              ; preds = %460
  %473 = load ptr, ptr %31, align 8, !tbaa !5
  %474 = load i64, ptr %473, align 8, !tbaa !9
  store i64 %474, ptr getelementptr inbounds (%struct.cilist, ptr @dchk1_.io___125, i32 0, i32 1), align 8, !tbaa !18
  %475 = call i64 @s_wsfe(ptr noundef @dchk1_.io___125)
  %476 = call i64 @e_wsfe()
  %477 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %477, align 8, !tbaa !9
  br label %710

478:                                              ; preds = %460
  %479 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %480 = load i8, ptr %479, align 1, !tbaa !13
  %481 = zext i8 %480 to i32
  %482 = getelementptr inbounds [1 x i8], ptr %108, i64 0, i64 0
  %483 = load i8, ptr %482, align 1, !tbaa !13
  %484 = zext i8 %483 to i32
  %485 = icmp eq i32 %481, %484
  %486 = zext i1 %485 to i32
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 0
  store i64 %487, ptr %488, align 16, !tbaa !9
  %489 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %490 = load i8, ptr %489, align 1, !tbaa !13
  %491 = zext i8 %490 to i32
  %492 = getelementptr inbounds [1 x i8], ptr %109, i64 0, i64 0
  %493 = load i8, ptr %492, align 1, !tbaa !13
  %494 = zext i8 %493 to i32
  %495 = icmp eq i32 %491, %494
  %496 = zext i1 %495 to i32
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 1
  store i64 %497, ptr %498, align 8, !tbaa !9
  %499 = load i64, ptr %83, align 8, !tbaa !9
  %500 = load i64, ptr %70, align 8, !tbaa !9
  %501 = icmp eq i64 %499, %500
  %502 = zext i1 %501 to i32
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 2
  store i64 %503, ptr %504, align 16, !tbaa !9
  %505 = load i64, ptr %84, align 8, !tbaa !9
  %506 = load i64, ptr %71, align 8, !tbaa !9
  %507 = icmp eq i64 %505, %506
  %508 = zext i1 %507 to i32
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 3
  store i64 %509, ptr %510, align 8, !tbaa !9
  %511 = load i64, ptr %82, align 8, !tbaa !9
  %512 = load i64, ptr %69, align 8, !tbaa !9
  %513 = icmp eq i64 %511, %512
  %514 = zext i1 %513 to i32
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 4
  store i64 %515, ptr %516, align 16, !tbaa !9
  %517 = load double, ptr %93, align 8, !tbaa !11
  %518 = load double, ptr %102, align 8, !tbaa !11
  %519 = fcmp oeq double %517, %518
  %520 = zext i1 %519 to i32
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 5
  store i64 %521, ptr %522, align 8, !tbaa !9
  %523 = load ptr, ptr %45, align 8, !tbaa !5
  %524 = getelementptr inbounds double, ptr %523, i64 1
  %525 = load ptr, ptr %44, align 8, !tbaa !5
  %526 = getelementptr inbounds double, ptr %525, i64 1
  %527 = call i64 @lde_(ptr noundef %524, ptr noundef %526, ptr noundef %87)
  %528 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 6
  store i64 %527, ptr %528, align 16, !tbaa !9
  %529 = load i64, ptr %97, align 8, !tbaa !9
  %530 = load i64, ptr %89, align 8, !tbaa !9
  %531 = icmp eq i64 %529, %530
  %532 = zext i1 %531 to i32
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 7
  store i64 %533, ptr %534, align 8, !tbaa !9
  %535 = load ptr, ptr %48, align 8, !tbaa !5
  %536 = getelementptr inbounds double, ptr %535, i64 1
  %537 = load ptr, ptr %47, align 8, !tbaa !5
  %538 = getelementptr inbounds double, ptr %537, i64 1
  %539 = call i64 @lde_(ptr noundef %536, ptr noundef %538, ptr noundef %88)
  %540 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 8
  store i64 %539, ptr %540, align 16, !tbaa !9
  %541 = load i64, ptr %98, align 8, !tbaa !9
  %542 = load i64, ptr %91, align 8, !tbaa !9
  %543 = icmp eq i64 %541, %542
  %544 = zext i1 %543 to i32
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 9
  store i64 %545, ptr %546, align 8, !tbaa !9
  %547 = load double, ptr %94, align 8, !tbaa !11
  %548 = load double, ptr %96, align 8, !tbaa !11
  %549 = fcmp oeq double %547, %548
  %550 = zext i1 %549 to i32
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 10
  store i64 %551, ptr %552, align 16, !tbaa !9
  %553 = load i64, ptr %101, align 8, !tbaa !9
  %554 = icmp ne i64 %553, 0
  br i1 %554, label %555, label %562

555:                                              ; preds = %478
  %556 = load ptr, ptr %51, align 8, !tbaa !5
  %557 = getelementptr inbounds double, ptr %556, i64 1
  %558 = load ptr, ptr %50, align 8, !tbaa !5
  %559 = getelementptr inbounds double, ptr %558, i64 1
  %560 = call i64 @lde_(ptr noundef %557, ptr noundef %559, ptr noundef %90)
  %561 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 11
  store i64 %560, ptr %561, align 8, !tbaa !9
  br label %569

562:                                              ; preds = %478
  %563 = load ptr, ptr %51, align 8, !tbaa !5
  %564 = getelementptr inbounds double, ptr %563, i64 1
  %565 = load ptr, ptr %50, align 8, !tbaa !5
  %566 = getelementptr inbounds double, ptr %565, i64 1
  %567 = call i64 @lderes_(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef %70, ptr noundef %71, ptr noundef %564, ptr noundef %566, ptr noundef %92, i64 noundef 2, i64 noundef 1)
  %568 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 11
  store i64 %567, ptr %568, align 8, !tbaa !9
  br label %569

569:                                              ; preds = %562, %555
  %570 = load i64, ptr %99, align 8, !tbaa !9
  %571 = load i64, ptr %92, align 8, !tbaa !9
  %572 = icmp eq i64 %570, %571
  %573 = zext i1 %572 to i32
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 12
  store i64 %574, ptr %575, align 16, !tbaa !9
  store i64 1, ptr %100, align 8, !tbaa !9
  %576 = load i64, ptr %106, align 8, !tbaa !9
  store i64 %576, ptr %66, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %577

577:                                              ; preds = %606, %569
  %578 = load i64, ptr %68, align 8, !tbaa !9
  %579 = load i64, ptr %66, align 8, !tbaa !9
  %580 = icmp sle i64 %578, %579
  br i1 %580, label %581, label %609

581:                                              ; preds = %577
  %582 = load i64, ptr %100, align 8, !tbaa !9
  %583 = icmp ne i64 %582, 0
  br i1 %583, label %584, label %590

584:                                              ; preds = %581
  %585 = load i64, ptr %68, align 8, !tbaa !9
  %586 = sub nsw i64 %585, 1
  %587 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 %586
  %588 = load i64, ptr %587, align 8, !tbaa !9
  %589 = icmp ne i64 %588, 0
  br label %590

590:                                              ; preds = %584, %581
  %591 = phi i1 [ false, %581 ], [ %589, %584 ]
  %592 = zext i1 %591 to i32
  %593 = sext i32 %592 to i64
  store i64 %593, ptr %100, align 8, !tbaa !9
  %594 = load i64, ptr %68, align 8, !tbaa !9
  %595 = sub nsw i64 %594, 1
  %596 = getelementptr inbounds [13 x i64], ptr %103, i64 0, i64 %595
  %597 = load i64, ptr %596, align 8, !tbaa !9
  %598 = icmp ne i64 %597, 0
  br i1 %598, label %605, label %599

599:                                              ; preds = %590
  %600 = load ptr, ptr %31, align 8, !tbaa !5
  %601 = load i64, ptr %600, align 8, !tbaa !9
  store i64 %601, ptr getelementptr inbounds (%struct.cilist, ptr @dchk1_.io___128, i32 0, i32 1), align 8, !tbaa !18
  %602 = call i64 @s_wsfe(ptr noundef @dchk1_.io___128)
  %603 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %68, i64 noundef 8)
  %604 = call i64 @e_wsfe()
  br label %605

605:                                              ; preds = %599, %590
  br label %606

606:                                              ; preds = %605
  %607 = load i64, ptr %68, align 8, !tbaa !9
  %608 = add nsw i64 %607, 1
  store i64 %608, ptr %68, align 8, !tbaa !9
  br label %577, !llvm.loop !23

609:                                              ; preds = %577
  %610 = load i64, ptr %100, align 8, !tbaa !9
  %611 = icmp ne i64 %610, 0
  br i1 %611, label %614, label %612

612:                                              ; preds = %609
  %613 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %613, align 8, !tbaa !9
  br label %710

614:                                              ; preds = %609
  %615 = load i64, ptr %101, align 8, !tbaa !9
  %616 = icmp ne i64 %615, 0
  br i1 %616, label %656, label %617

617:                                              ; preds = %614
  %618 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %619 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %620 = load ptr, ptr %43, align 8, !tbaa !5
  %621 = load i64, ptr %56, align 8, !tbaa !9
  %622 = getelementptr inbounds double, ptr %620, i64 %621
  %623 = load ptr, ptr %42, align 8, !tbaa !5
  %624 = load ptr, ptr %46, align 8, !tbaa !5
  %625 = load i64, ptr %58, align 8, !tbaa !9
  %626 = getelementptr inbounds double, ptr %624, i64 %625
  %627 = load ptr, ptr %42, align 8, !tbaa !5
  %628 = load ptr, ptr %49, align 8, !tbaa !5
  %629 = load i64, ptr %60, align 8, !tbaa !9
  %630 = getelementptr inbounds double, ptr %628, i64 %629
  %631 = load ptr, ptr %42, align 8, !tbaa !5
  %632 = load ptr, ptr %52, align 8, !tbaa !5
  %633 = getelementptr inbounds double, ptr %632, i64 1
  %634 = load ptr, ptr %53, align 8, !tbaa !5
  %635 = getelementptr inbounds double, ptr %634, i64 1
  %636 = load ptr, ptr %50, align 8, !tbaa !5
  %637 = getelementptr inbounds double, ptr %636, i64 1
  %638 = load ptr, ptr %29, align 8, !tbaa !5
  %639 = load ptr, ptr %35, align 8, !tbaa !5
  %640 = load ptr, ptr %31, align 8, !tbaa !5
  %641 = call i32 @dmmch_(ptr noundef %618, ptr noundef %619, ptr noundef %70, ptr noundef %71, ptr noundef %69, ptr noundef %102, ptr noundef %622, ptr noundef %623, ptr noundef %626, ptr noundef %627, ptr noundef %96, ptr noundef %630, ptr noundef %631, ptr noundef %633, ptr noundef %635, ptr noundef %637, ptr noundef %92, ptr noundef %638, ptr noundef %95, ptr noundef %639, ptr noundef %640, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  %642 = load double, ptr %112, align 8, !tbaa !11
  %643 = load double, ptr %95, align 8, !tbaa !11
  %644 = fcmp oge double %642, %643
  br i1 %644, label %645, label %647

645:                                              ; preds = %617
  %646 = load double, ptr %112, align 8, !tbaa !11
  br label %649

647:                                              ; preds = %617
  %648 = load double, ptr %95, align 8, !tbaa !11
  br label %649

649:                                              ; preds = %647, %645
  %650 = phi double [ %646, %645 ], [ %648, %647 ]
  store double %650, ptr %112, align 8, !tbaa !11
  %651 = load ptr, ptr %35, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = icmp ne i64 %652, 0
  br i1 %653, label %654, label %655

654:                                              ; preds = %649
  br label %710

655:                                              ; preds = %649
  br label %656

656:                                              ; preds = %655, %614
  br label %657

657:                                              ; preds = %656
  %658 = load i64, ptr %73, align 8, !tbaa !9
  %659 = add nsw i64 %658, 1
  store i64 %659, ptr %73, align 8, !tbaa !9
  br label %344, !llvm.loop !24

660:                                              ; preds = %344
  br label %661

661:                                              ; preds = %660
  %662 = load i64, ptr %72, align 8, !tbaa !9
  %663 = add nsw i64 %662, 1
  store i64 %663, ptr %72, align 8, !tbaa !9
  br label %333, !llvm.loop !25

664:                                              ; preds = %333
  br label %665

665:                                              ; preds = %664, %319
  br label %666

666:                                              ; preds = %665
  %667 = load i64, ptr %86, align 8, !tbaa !9
  %668 = add nsw i64 %667, 1
  store i64 %668, ptr %86, align 8, !tbaa !9
  br label %275, !llvm.loop !26

669:                                              ; preds = %275
  br label %670

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

671:                                              ; preds = %670
  %672 = load i64, ptr %85, align 8, !tbaa !9
  %673 = add nsw i64 %672, 1
  store i64 %673, ptr %85, align 8, !tbaa !9
  br label %219, !llvm.loop !27

674:                                              ; preds = %219
  br label %675

675:                                              ; preds = %674
  %676 = load i64, ptr %79, align 8, !tbaa !9
  %677 = add nsw i64 %676, 1
  store i64 %677, ptr %79, align 8, !tbaa !9
  br label %210, !llvm.loop !28

678:                                              ; preds = %210
  br label %679

679:                                              ; preds = %678, %194
  br label %680

680:                                              ; preds = %679
  %681 = load i64, ptr %81, align 8, !tbaa !9
  %682 = add nsw i64 %681, 1
  store i64 %682, ptr %81, align 8, !tbaa !9
  br label %172, !llvm.loop !29

683:                                              ; preds = %172
  br label %684

684:                                              ; preds = %683
  %685 = load i64, ptr %80, align 8, !tbaa !9
  %686 = add nsw i64 %685, 1
  store i64 %686, ptr %80, align 8, !tbaa !9
  br label %161, !llvm.loop !30

687:                                              ; preds = %161
  %688 = load double, ptr %112, align 8, !tbaa !11
  %689 = load ptr, ptr %30, align 8, !tbaa !5
  %690 = load double, ptr %689, align 8, !tbaa !11
  %691 = fcmp olt double %688, %690
  br i1 %691, label %692, label %700

692:                                              ; preds = %687
  %693 = load ptr, ptr %31, align 8, !tbaa !5
  %694 = load i64, ptr %693, align 8, !tbaa !9
  store i64 %694, ptr getelementptr inbounds (%struct.cilist, ptr @dchk1_.io___130, i32 0, i32 1), align 8, !tbaa !18
  %695 = call i64 @s_wsfe(ptr noundef @dchk1_.io___130)
  %696 = load ptr, ptr %28, align 8, !tbaa !5
  %697 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %696, i64 noundef 6)
  %698 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %78, i64 noundef 8)
  %699 = call i64 @e_wsfe()
  br label %709

700:                                              ; preds = %687
  %701 = load ptr, ptr %31, align 8, !tbaa !5
  %702 = load i64, ptr %701, align 8, !tbaa !9
  store i64 %702, ptr getelementptr inbounds (%struct.cilist, ptr @dchk1_.io___131, i32 0, i32 1), align 8, !tbaa !18
  %703 = call i64 @s_wsfe(ptr noundef @dchk1_.io___131)
  %704 = load ptr, ptr %28, align 8, !tbaa !5
  %705 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %704, i64 noundef 6)
  %706 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %78, i64 noundef 8)
  %707 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %112, i64 noundef 8)
  %708 = call i64 @e_wsfe()
  br label %709

709:                                              ; preds = %700, %692
  br label %736

710:                                              ; preds = %654, %612, %472
  %711 = load ptr, ptr %31, align 8, !tbaa !5
  %712 = load i64, ptr %711, align 8, !tbaa !9
  store i64 %712, ptr getelementptr inbounds (%struct.cilist, ptr @dchk1_.io___132, i32 0, i32 1), align 8, !tbaa !18
  %713 = call i64 @s_wsfe(ptr noundef @dchk1_.io___132)
  %714 = load ptr, ptr %28, align 8, !tbaa !5
  %715 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %714, i64 noundef 6)
  %716 = call i64 @e_wsfe()
  %717 = load ptr, ptr %31, align 8, !tbaa !5
  %718 = load i64, ptr %717, align 8, !tbaa !9
  store i64 %718, ptr getelementptr inbounds (%struct.cilist, ptr @dchk1_.io___133, i32 0, i32 1), align 8, !tbaa !18
  %719 = call i64 @s_wsfe(ptr noundef @dchk1_.io___133)
  %720 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %78, i64 noundef 8)
  %721 = load ptr, ptr %28, align 8, !tbaa !5
  %722 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %721, i64 noundef 6)
  %723 = getelementptr inbounds [1 x i8], ptr %110, i64 0, i64 0
  %724 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %723, i64 noundef 1)
  %725 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %726 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %725, i64 noundef 1)
  %727 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %728 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %71, i64 noundef 8)
  %729 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %730 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %102, i64 noundef 8)
  %731 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %89, i64 noundef 8)
  %732 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %91, i64 noundef 8)
  %733 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %96, i64 noundef 8)
  %734 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %92, i64 noundef 8)
  %735 = call i64 @e_wsfe()
  br label %736

736:                                              ; preds = %710, %709
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #3
  call void @llvm.lifetime.end.p0(i64 1, 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 8, 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 8, 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 16, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 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

declare i32 @f2c_dgemm(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) #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

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}


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

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

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local local_unnamed_addr global %union.anon, align 8
@c_b101 = external hidden global double, align 8
@c_true = external hidden global i64, align 8
@dchk1_.ich = external hidden local_unnamed_addr global [3 x i8], align 1
@dchk1_.io___124 = external hidden global %struct.cilist, align 8
@dchk1_.io___125 = external hidden global %struct.cilist, align 8
@dchk1_.io___128 = external hidden global %struct.cilist, align 8
@dchk1_.io___130 = external hidden global %struct.cilist, align 8
@dchk1_.io___131 = external hidden global %struct.cilist, align 8
@dchk1_.io___132 = external hidden global %struct.cilist, align 8
@dchk1_.io___133 = external hidden global %struct.cilist, 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

; 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 @dchk1_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture noundef readonly %11, ptr nocapture noundef readonly %12, ptr nocapture noundef readonly %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, i64 noundef %26) local_unnamed_addr #2 {
  %28 = alloca %struct.alist, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca 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 double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca [13 x i64], align 16
  %48 = alloca i64, align 8
  %49 = alloca [1 x i8], align 1
  %50 = alloca [1 x i8], align 1
  %51 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #3
  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 8, 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 104, ptr nonnull %47) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #3
  %52 = getelementptr inbounds i8, ptr %9, i64 -8
  %53 = getelementptr inbounds i8, ptr %11, i64 -8
  %54 = getelementptr inbounds i8, ptr %13, i64 -8
  %55 = getelementptr inbounds i8, ptr %23, i64 -8
  %56 = getelementptr inbounds i8, ptr %22, i64 -8
  %57 = getelementptr inbounds i8, ptr %20, i64 -8
  %58 = getelementptr inbounds i8, ptr %19, i64 -8
  %59 = getelementptr inbounds i8, ptr %17, i64 -8
  %60 = getelementptr inbounds i8, ptr %16, i64 -8
  store i64 0, ptr %37, align 8, !tbaa !5
  store i64 1, ptr %48, align 8, !tbaa !5
  store double 0.000000e+00, ptr %51, align 8, !tbaa !9
  %61 = load i64, ptr %8, align 8, !tbaa !5
  %.not225 = icmp slt i64 %61, 1
  br i1 %.not225, label %._crit_edge229, label %.lr.ph228.split.preheader

.lr.ph228.split.preheader:                        ; preds = %27
  %62 = ptrtoint ptr %23 to i64
  %63 = ptrtoint ptr %22 to i64
  %64 = ptrtoint ptr %20 to i64
  %65 = ptrtoint ptr %19 to i64
  %66 = ptrtoint ptr %17 to i64
  %67 = ptrtoint ptr %16 to i64
  %68 = getelementptr inbounds i8, ptr %28, i64 8
  %69 = getelementptr inbounds i8, ptr %47, i64 8
  %70 = getelementptr inbounds i8, ptr %47, i64 16
  %71 = getelementptr inbounds i8, ptr %47, i64 24
  %72 = getelementptr inbounds i8, ptr %47, i64 32
  %73 = getelementptr inbounds i8, ptr %47, i64 40
  %74 = getelementptr inbounds i8, ptr %47, i64 48
  %75 = getelementptr inbounds i8, ptr %47, i64 56
  %76 = getelementptr inbounds i8, ptr %47, i64 64
  %77 = getelementptr inbounds i8, ptr %47, i64 72
  %78 = getelementptr inbounds i8, ptr %47, i64 80
  %79 = getelementptr inbounds i8, ptr %47, i64 88
  %80 = getelementptr inbounds i8, ptr %47, i64 96
  %81 = sub i64 %62, %63
  %82 = sub i64 %64, %65
  %83 = sub i64 %66, %67
  %diff.check277 = icmp ult i64 %83, 32
  %diff.check260 = icmp ult i64 %82, 32
  %diff.check = icmp ult i64 %81, 32
  br label %.lr.ph228.split

.lr.ph228.split:                                  ; preds = %.lr.ph228.split.preheader, %._crit_edge224
  %84 = phi double [ %355, %._crit_edge224 ], [ 0.000000e+00, %.lr.ph228.split.preheader ]
  %.0150226 = phi i64 [ %356, %._crit_edge224 ], [ 1, %.lr.ph228.split.preheader ]
  %85 = getelementptr inbounds i64, ptr %52, i64 %.0150226
  %86 = load i64, ptr %85, align 8, !tbaa !5
  store i64 %86, ptr %31, align 8, !tbaa !5
  %87 = load i64, ptr %8, align 8, !tbaa !5
  %.not164220 = icmp slt i64 %87, 1
  br i1 %.not164220, label %._crit_edge224, label %.lr.ph223

.lr.ph223:                                        ; preds = %.lr.ph228.split, %.loopexit187
  %88 = phi double [ %353, %.loopexit187 ], [ %84, %.lr.ph228.split ]
  %.0149221 = phi i64 [ %354, %.loopexit187 ], [ 1, %.lr.ph228.split ]
  %89 = getelementptr inbounds i64, ptr %52, i64 %.0149221
  %90 = load i64, ptr %89, align 8, !tbaa !5
  store i64 %90, ptr %32, align 8, !tbaa !5
  %91 = load i64, ptr %31, align 8
  store i64 %91, ptr %43, align 8, !tbaa !5
  %92 = load i64, ptr %14, align 8, !tbaa !5
  %93 = icmp slt i64 %91, %92
  br i1 %93, label %94, label %96

94:                                               ; preds = %.lr.ph223
  %95 = add nsw i64 %91, 1
  store i64 %95, ptr %43, align 8, !tbaa !5
  br label %96

96:                                               ; preds = %94, %.lr.ph223
  %97 = phi i64 [ %95, %94 ], [ %91, %.lr.ph223 ]
  %98 = icmp sgt i64 %97, %92
  br i1 %98, label %.loopexit187, label %99

99:                                               ; preds = %96
  %100 = mul nsw i64 %97, %90
  store i64 %100, ptr %41, align 8, !tbaa !5
  %101 = icmp slt i64 %90, 1
  %102 = icmp slt i64 %91, 1
  %103 = or i1 %101, %102
  %104 = load i64, ptr %8, align 8, !tbaa !5
  %.not165216 = icmp slt i64 %104, 1
  br i1 %.not165216, label %.loopexit187, label %.lr.ph219

.lr.ph219:                                        ; preds = %99, %351
  %105 = phi double [ %349, %351 ], [ %88, %99 ]
  %.0151217 = phi i64 [ %352, %351 ], [ 1, %99 ]
  %106 = getelementptr inbounds i64, ptr %52, i64 %.0151217
  %107 = load i64, ptr %106, align 8, !tbaa !5
  store i64 %107, ptr %30, align 8, !tbaa !5
  br label %108

108:                                              ; preds = %.lr.ph219, %.loopexit186
  %109 = phi double [ %105, %.lr.ph219 ], [ %349, %.loopexit186 ]
  %.0148215 = phi i64 [ 1, %.lr.ph219 ], [ %350, %.loopexit186 ]
  %110 = add nsw i64 %.0148215, -1
  %111 = getelementptr inbounds [3 x i8], ptr @dchk1_.ich, i64 0, i64 %110
  %112 = load i8, ptr %111, align 1, !tbaa !11
  store i8 %112, ptr %49, align 1, !tbaa !11
  switch i8 %112, label %113 [
    i8 84, label %114
    i8 67, label %114
  ]

113:                                              ; preds = %108
  br label %114

114:                                              ; preds = %108, %108, %113
  %storemerge166.in = phi ptr [ %31, %113 ], [ %30, %108 ], [ %30, %108 ]
  %storemerge.in = phi ptr [ %30, %113 ], [ %31, %108 ], [ %31, %108 ]
  %storemerge166 = load i64, ptr %storemerge166.in, align 8, !tbaa !5
  store i64 %storemerge166, ptr %33, align 8, !tbaa !5
  %storemerge = load i64, ptr %storemerge.in, align 8, !tbaa !5
  store i64 %storemerge, ptr %35, align 8, !tbaa !5
  store i64 %storemerge166, ptr %40, align 8, !tbaa !5
  %115 = load i64, ptr %14, align 8, !tbaa !5
  %116 = icmp slt i64 %storemerge166, %115
  br i1 %116, label %117, label %119

117:                                              ; preds = %114
  %118 = add nsw i64 %storemerge166, 1
  store i64 %118, ptr %40, align 8, !tbaa !5
  br label %119

119:                                              ; preds = %117, %114
  %120 = phi i64 [ %118, %117 ], [ %storemerge166, %114 ]
  %121 = icmp sgt i64 %120, %115
  br i1 %121, label %.loopexit186, label %122

122:                                              ; preds = %119
  %123 = mul nsw i64 %120, %storemerge
  store i64 %123, ptr %38, align 8, !tbaa !5
  %124 = call i32 @dmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %33, ptr noundef nonnull %35, ptr noundef %15, ptr noundef nonnull %14, ptr noundef %16, ptr noundef nonnull %40, ptr noundef nonnull %48, ptr noundef nonnull @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %125

125:                                              ; preds = %122, %.loopexit185
  %126 = phi double [ %109, %122 ], [ %347, %.loopexit185 ]
  %.0147214 = phi i64 [ 1, %122 ], [ %348, %.loopexit185 ]
  %127 = add nsw i64 %.0147214, -1
  %128 = getelementptr inbounds [3 x i8], ptr @dchk1_.ich, i64 0, i64 %127
  %129 = load i8, ptr %128, align 1, !tbaa !11
  store i8 %129, ptr %50, align 1, !tbaa !11
  switch i8 %129, label %130 [
    i8 84, label %131
    i8 67, label %131
  ]

130:                                              ; preds = %125
  br label %131

131:                                              ; preds = %125, %125, %130
  %storemerge168.in = phi ptr [ %30, %130 ], [ %32, %125 ], [ %32, %125 ]
  %storemerge167.in = phi ptr [ %32, %130 ], [ %30, %125 ], [ %30, %125 ]
  %storemerge168 = load i64, ptr %storemerge168.in, align 8, !tbaa !5
  store i64 %storemerge168, ptr %34, align 8, !tbaa !5
  %storemerge167 = load i64, ptr %storemerge167.in, align 8, !tbaa !5
  store i64 %storemerge167, ptr %36, align 8, !tbaa !5
  store i64 %storemerge168, ptr %42, align 8, !tbaa !5
  %132 = load i64, ptr %14, align 8, !tbaa !5
  %133 = icmp slt i64 %storemerge168, %132
  br i1 %133, label %134, label %136

134:                                              ; preds = %131
  %135 = add nsw i64 %storemerge168, 1
  store i64 %135, ptr %42, align 8, !tbaa !5
  br label %136

136:                                              ; preds = %134, %131
  %137 = phi i64 [ %135, %134 ], [ %storemerge168, %131 ]
  %138 = icmp sgt i64 %137, %132
  br i1 %138, label %.loopexit185, label %139

139:                                              ; preds = %136
  %140 = mul nsw i64 %137, %storemerge167
  store i64 %140, ptr %39, align 8, !tbaa !5
  %141 = call i32 @dmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %34, ptr noundef nonnull %36, ptr noundef %18, ptr noundef nonnull %14, ptr noundef %19, ptr noundef nonnull %42, ptr noundef nonnull %48, ptr noundef nonnull @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %142 = load i64, ptr %10, align 8, !tbaa !5
  %.not169209 = icmp slt i64 %142, 1
  br i1 %.not169209, label %.loopexit185, label %.lr.ph212

.lr.ph212:                                        ; preds = %139
  %143 = load i64, ptr %12, align 8, !tbaa !5
  %144 = icmp slt i64 %143, 1
  br i1 %144, label %.lr.ph212.split.us.preheader, label %.lr.ph212.split

.lr.ph212.split.us.preheader:                     ; preds = %.lr.ph212
  %145 = getelementptr inbounds double, ptr %53, i64 %142
  %146 = load double, ptr %145, align 8, !tbaa !9
  store double %146, ptr %46, align 8, !tbaa !9
  br label %.loopexit185

.lr.ph212.splitthread-pre-split:                  ; preds = %._crit_edge208
  %147 = add nuw i64 %.0153210, 1
  %.pr = load i64, ptr %12, align 8, !tbaa !5
  br label %.lr.ph212.split

.lr.ph212.split:                                  ; preds = %.lr.ph212, %.lr.ph212.splitthread-pre-split
  %148 = phi i64 [ %.pr, %.lr.ph212.splitthread-pre-split ], [ %143, %.lr.ph212 ]
  %149 = phi double [ %346, %.lr.ph212.splitthread-pre-split ], [ %126, %.lr.ph212 ]
  %.0153210 = phi i64 [ %147, %.lr.ph212.splitthread-pre-split ], [ 1, %.lr.ph212 ]
  %150 = getelementptr inbounds double, ptr %53, i64 %.0153210
  %151 = load double, ptr %150, align 8, !tbaa !9
  store double %151, ptr %46, align 8, !tbaa !9
  %.not170204 = icmp slt i64 %148, 1
  br i1 %.not170204, label %._crit_edge208, label %.lr.ph207

.lr.ph207:                                        ; preds = %.lr.ph212.split, %343
  %152 = phi double [ %344, %343 ], [ %149, %.lr.ph212.split ]
  %.0152205 = phi i64 [ %345, %343 ], [ 1, %.lr.ph212.split ]
  %153 = getelementptr inbounds double, ptr %54, i64 %.0152205
  %154 = load double, ptr %153, align 8, !tbaa !9
  store double %154, ptr %45, align 8, !tbaa !9
  %155 = call i32 @dmake_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef %21, ptr noundef nonnull %14, ptr noundef %22, ptr noundef nonnull %43, ptr noundef nonnull %48, ptr noundef nonnull @c_b101, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %156 = load i64, ptr %37, align 8, !tbaa !5
  %157 = add nsw i64 %156, 1
  store i64 %157, ptr %37, align 8, !tbaa !5
  %158 = load i8, ptr %49, align 1, !tbaa !11
  %159 = load i8, ptr %50, align 1, !tbaa !11
  %160 = load i64, ptr %31, align 8, !tbaa !5
  %161 = load i64, ptr %32, align 8, !tbaa !5
  %162 = load i64, ptr %30, align 8, !tbaa !5
  %163 = load double, ptr %46, align 8, !tbaa !9
  %164 = load i64, ptr %38, align 8, !tbaa !5
  %.not172188 = icmp slt i64 %164, 1
  br i1 %.not172188, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph207
  %min.iters.check280 = icmp ult i64 %164, 4
  %or.cond = or i1 %min.iters.check280, %diff.check277
  br i1 %or.cond, label %.lr.ph.preheader297, label %vector.ph281

vector.ph281:                                     ; preds = %.lr.ph.preheader
  %n.vec283 = and i64 %164, 9223372036854775804
  %ind.end284 = or disjoint i64 %n.vec283, 1
  br label %vector.body286

vector.body286:                                   ; preds = %vector.body286, %vector.ph281
  %index287 = phi i64 [ 0, %vector.ph281 ], [ %index.next291, %vector.body286 ]
  %165 = getelementptr double, ptr %16, i64 %index287
  %166 = getelementptr inbounds i8, ptr %165, i64 16
  %wide.load289 = load <2 x double>, ptr %165, align 8, !tbaa !9
  %wide.load290 = load <2 x double>, ptr %166, align 8, !tbaa !9
  %167 = getelementptr double, ptr %17, i64 %index287
  %168 = getelementptr inbounds i8, ptr %167, i64 16
  store <2 x double> %wide.load289, ptr %167, align 8, !tbaa !9
  store <2 x double> %wide.load290, ptr %168, align 8, !tbaa !9
  %index.next291 = add nuw i64 %index287, 4
  %169 = icmp eq i64 %index.next291, %n.vec283
  br i1 %169, label %middle.block278, label %vector.body286, !llvm.loop !12

middle.block278:                                  ; preds = %vector.body286
  %cmp.n292 = icmp eq i64 %164, %n.vec283
  br i1 %cmp.n292, label %._crit_edge, label %.lr.ph.preheader297

.lr.ph.preheader297:                              ; preds = %middle.block278, %.lr.ph.preheader
  %storemerge171189.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end284, %middle.block278 ]
  %170 = add nuw i64 %164, 1
  %171 = sub i64 %170, %storemerge171189.ph
  %172 = sub i64 %164, %storemerge171189.ph
  %xtraiter = and i64 %171, 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.preheader297, %.lr.ph.prol
  %storemerge171189.prol = phi i64 [ %176, %.lr.ph.prol ], [ %storemerge171189.ph, %.lr.ph.preheader297 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader297 ]
  %173 = getelementptr inbounds double, ptr %60, i64 %storemerge171189.prol
  %174 = load double, ptr %173, align 8, !tbaa !9
  %175 = getelementptr inbounds double, ptr %59, i64 %storemerge171189.prol
  store double %174, ptr %175, align 8, !tbaa !9
  %176 = add nuw i64 %storemerge171189.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.preheader297
  %storemerge171189.unr = phi i64 [ %storemerge171189.ph, %.lr.ph.preheader297 ], [ %176, %.lr.ph.prol ]
  %177 = icmp ult i64 %172, 3
  br i1 %177, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %storemerge171189 = phi i64 [ %192, %.lr.ph ], [ %storemerge171189.unr, %.lr.ph.prol.loopexit ]
  %178 = getelementptr inbounds double, ptr %60, i64 %storemerge171189
  %179 = load double, ptr %178, align 8, !tbaa !9
  %180 = getelementptr inbounds double, ptr %59, i64 %storemerge171189
  store double %179, ptr %180, align 8, !tbaa !9
  %181 = getelementptr double, ptr %16, i64 %storemerge171189
  %182 = load double, ptr %181, align 8, !tbaa !9
  %183 = getelementptr double, ptr %17, i64 %storemerge171189
  store double %182, ptr %183, align 8, !tbaa !9
  %184 = add nuw i64 %storemerge171189, 2
  %185 = getelementptr inbounds double, ptr %60, i64 %184
  %186 = load double, ptr %185, align 8, !tbaa !9
  %187 = getelementptr inbounds double, ptr %59, i64 %184
  store double %186, ptr %187, align 8, !tbaa !9
  %188 = add nuw i64 %storemerge171189, 3
  %189 = getelementptr inbounds double, ptr %60, i64 %188
  %190 = load double, ptr %189, align 8, !tbaa !9
  %191 = getelementptr inbounds double, ptr %59, i64 %188
  store double %190, ptr %191, align 8, !tbaa !9
  %192 = add nuw i64 %storemerge171189, 4
  %exitcond.not.3 = icmp eq i64 %188, %164
  br i1 %exitcond.not.3, label %._crit_edge, label %.lr.ph, !llvm.loop !18

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block278, %.lr.ph207
  %193 = load i64, ptr %40, align 8, !tbaa !5
  %194 = load i64, ptr %39, align 8, !tbaa !5
  %.not174190 = icmp slt i64 %194, 1
  br i1 %.not174190, label %._crit_edge194, label %.lr.ph193.preheader

.lr.ph193.preheader:                              ; preds = %._crit_edge
  %min.iters.check263 = icmp ult i64 %194, 4
  %or.cond293 = or i1 %min.iters.check263, %diff.check260
  br i1 %or.cond293, label %.lr.ph193.preheader296, label %vector.ph264

vector.ph264:                                     ; preds = %.lr.ph193.preheader
  %n.vec266 = and i64 %194, 9223372036854775804
  %ind.end267 = or disjoint i64 %n.vec266, 1
  br label %vector.body269

vector.body269:                                   ; preds = %vector.body269, %vector.ph264
  %index270 = phi i64 [ 0, %vector.ph264 ], [ %index.next274, %vector.body269 ]
  %195 = getelementptr double, ptr %19, i64 %index270
  %196 = getelementptr inbounds i8, ptr %195, i64 16
  %wide.load272 = load <2 x double>, ptr %195, align 8, !tbaa !9
  %wide.load273 = load <2 x double>, ptr %196, align 8, !tbaa !9
  %197 = getelementptr double, ptr %20, i64 %index270
  %198 = getelementptr inbounds i8, ptr %197, i64 16
  store <2 x double> %wide.load272, ptr %197, align 8, !tbaa !9
  store <2 x double> %wide.load273, ptr %198, align 8, !tbaa !9
  %index.next274 = add nuw i64 %index270, 4
  %199 = icmp eq i64 %index.next274, %n.vec266
  br i1 %199, label %middle.block261, label %vector.body269, !llvm.loop !19

middle.block261:                                  ; preds = %vector.body269
  %cmp.n275 = icmp eq i64 %194, %n.vec266
  br i1 %cmp.n275, label %._crit_edge194, label %.lr.ph193.preheader296

.lr.ph193.preheader296:                           ; preds = %middle.block261, %.lr.ph193.preheader
  %storemerge173191.ph = phi i64 [ 1, %.lr.ph193.preheader ], [ %ind.end267, %middle.block261 ]
  %200 = add nuw i64 %194, 1
  %201 = sub i64 %200, %storemerge173191.ph
  %202 = sub i64 %194, %storemerge173191.ph
  %xtraiter304 = and i64 %201, 3
  %lcmp.mod305.not = icmp eq i64 %xtraiter304, 0
  br i1 %lcmp.mod305.not, label %.lr.ph193.prol.loopexit, label %.lr.ph193.prol

.lr.ph193.prol:                                   ; preds = %.lr.ph193.preheader296, %.lr.ph193.prol
  %storemerge173191.prol = phi i64 [ %206, %.lr.ph193.prol ], [ %storemerge173191.ph, %.lr.ph193.preheader296 ]
  %prol.iter306 = phi i64 [ %prol.iter306.next, %.lr.ph193.prol ], [ 0, %.lr.ph193.preheader296 ]
  %203 = getelementptr inbounds double, ptr %58, i64 %storemerge173191.prol
  %204 = load double, ptr %203, align 8, !tbaa !9
  %205 = getelementptr inbounds double, ptr %57, i64 %storemerge173191.prol
  store double %204, ptr %205, align 8, !tbaa !9
  %206 = add nuw i64 %storemerge173191.prol, 1
  %prol.iter306.next = add i64 %prol.iter306, 1
  %prol.iter306.cmp.not = icmp eq i64 %prol.iter306.next, %xtraiter304
  br i1 %prol.iter306.cmp.not, label %.lr.ph193.prol.loopexit, label %.lr.ph193.prol, !llvm.loop !20

.lr.ph193.prol.loopexit:                          ; preds = %.lr.ph193.prol, %.lr.ph193.preheader296
  %storemerge173191.unr = phi i64 [ %storemerge173191.ph, %.lr.ph193.preheader296 ], [ %206, %.lr.ph193.prol ]
  %207 = icmp ult i64 %202, 3
  br i1 %207, label %._crit_edge194, label %.lr.ph193

.lr.ph193:                                        ; preds = %.lr.ph193.prol.loopexit, %.lr.ph193
  %storemerge173191 = phi i64 [ %222, %.lr.ph193 ], [ %storemerge173191.unr, %.lr.ph193.prol.loopexit ]
  %208 = getelementptr inbounds double, ptr %58, i64 %storemerge173191
  %209 = load double, ptr %208, align 8, !tbaa !9
  %210 = getelementptr inbounds double, ptr %57, i64 %storemerge173191
  store double %209, ptr %210, align 8, !tbaa !9
  %211 = getelementptr double, ptr %19, i64 %storemerge173191
  %212 = load double, ptr %211, align 8, !tbaa !9
  %213 = getelementptr double, ptr %20, i64 %storemerge173191
  store double %212, ptr %213, align 8, !tbaa !9
  %214 = add nuw i64 %storemerge173191, 2
  %215 = getelementptr inbounds double, ptr %58, i64 %214
  %216 = load double, ptr %215, align 8, !tbaa !9
  %217 = getelementptr inbounds double, ptr %57, i64 %214
  store double %216, ptr %217, align 8, !tbaa !9
  %218 = add nuw i64 %storemerge173191, 3
  %219 = getelementptr inbounds double, ptr %58, i64 %218
  %220 = load double, ptr %219, align 8, !tbaa !9
  %221 = getelementptr inbounds double, ptr %57, i64 %218
  store double %220, ptr %221, align 8, !tbaa !9
  %222 = add nuw i64 %storemerge173191, 4
  %exitcond234.not.3 = icmp eq i64 %218, %194
  br i1 %exitcond234.not.3, label %._crit_edge194, label %.lr.ph193, !llvm.loop !21

._crit_edge194:                                   ; preds = %.lr.ph193.prol.loopexit, %.lr.ph193, %middle.block261, %._crit_edge
  %223 = load i64, ptr %42, align 8, !tbaa !5
  %224 = load double, ptr %45, align 8, !tbaa !9
  %225 = load i64, ptr %41, align 8, !tbaa !5
  %.not176196 = icmp slt i64 %225, 1
  br i1 %.not176196, label %._crit_edge200, label %.lr.ph199.preheader

.lr.ph199.preheader:                              ; preds = %._crit_edge194
  %226 = add nuw i64 %225, 1
  %min.iters.check = icmp ult i64 %225, 4
  %or.cond294 = or i1 %min.iters.check, %diff.check
  br i1 %or.cond294, label %.lr.ph199.preheader295, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph199.preheader
  %n.vec = and i64 %225, 9223372036854775804
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %227 = getelementptr double, ptr %22, i64 %index
  %228 = getelementptr inbounds i8, ptr %227, i64 16
  %wide.load = load <2 x double>, ptr %227, align 8, !tbaa !9
  %wide.load258 = load <2 x double>, ptr %228, align 8, !tbaa !9
  %229 = getelementptr double, ptr %23, i64 %index
  %230 = getelementptr inbounds i8, ptr %229, i64 16
  store <2 x double> %wide.load, ptr %229, align 8, !tbaa !9
  store <2 x double> %wide.load258, ptr %230, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %231 = icmp eq i64 %index.next, %n.vec
  br i1 %231, label %middle.block, label %vector.body, !llvm.loop !22

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %225, %n.vec
  br i1 %cmp.n, label %._crit_edge200, label %.lr.ph199.preheader295

.lr.ph199.preheader295:                           ; preds = %middle.block, %.lr.ph199.preheader
  %storemerge175197.ph = phi i64 [ 1, %.lr.ph199.preheader ], [ %ind.end, %middle.block ]
  %232 = add nuw i64 %225, 1
  %233 = sub i64 %232, %storemerge175197.ph
  %234 = sub i64 %225, %storemerge175197.ph
  %xtraiter307 = and i64 %233, 3
  %lcmp.mod308.not = icmp eq i64 %xtraiter307, 0
  br i1 %lcmp.mod308.not, label %.lr.ph199.prol.loopexit, label %.lr.ph199.prol

.lr.ph199.prol:                                   ; preds = %.lr.ph199.preheader295, %.lr.ph199.prol
  %storemerge175197.prol = phi i64 [ %238, %.lr.ph199.prol ], [ %storemerge175197.ph, %.lr.ph199.preheader295 ]
  %prol.iter309 = phi i64 [ %prol.iter309.next, %.lr.ph199.prol ], [ 0, %.lr.ph199.preheader295 ]
  %235 = getelementptr inbounds double, ptr %56, i64 %storemerge175197.prol
  %236 = load double, ptr %235, align 8, !tbaa !9
  %237 = getelementptr inbounds double, ptr %55, i64 %storemerge175197.prol
  store double %236, ptr %237, align 8, !tbaa !9
  %238 = add nuw i64 %storemerge175197.prol, 1
  %prol.iter309.next = add i64 %prol.iter309, 1
  %prol.iter309.cmp.not = icmp eq i64 %prol.iter309.next, %xtraiter307
  br i1 %prol.iter309.cmp.not, label %.lr.ph199.prol.loopexit, label %.lr.ph199.prol, !llvm.loop !23

.lr.ph199.prol.loopexit:                          ; preds = %.lr.ph199.prol, %.lr.ph199.preheader295
  %storemerge175197.unr = phi i64 [ %storemerge175197.ph, %.lr.ph199.preheader295 ], [ %238, %.lr.ph199.prol ]
  %239 = icmp ult i64 %234, 3
  br i1 %239, label %._crit_edge200, label %.lr.ph199

.lr.ph199:                                        ; preds = %.lr.ph199.prol.loopexit, %.lr.ph199
  %storemerge175197 = phi i64 [ %254, %.lr.ph199 ], [ %storemerge175197.unr, %.lr.ph199.prol.loopexit ]
  %240 = getelementptr inbounds double, ptr %56, i64 %storemerge175197
  %241 = load double, ptr %240, align 8, !tbaa !9
  %242 = getelementptr inbounds double, ptr %55, i64 %storemerge175197
  store double %241, ptr %242, align 8, !tbaa !9
  %243 = getelementptr double, ptr %22, i64 %storemerge175197
  %244 = load double, ptr %243, align 8, !tbaa !9
  %245 = getelementptr double, ptr %23, i64 %storemerge175197
  store double %244, ptr %245, align 8, !tbaa !9
  %246 = add nuw i64 %storemerge175197, 2
  %247 = getelementptr inbounds double, ptr %56, i64 %246
  %248 = load double, ptr %247, align 8, !tbaa !9
  %249 = getelementptr inbounds double, ptr %55, i64 %246
  store double %248, ptr %249, align 8, !tbaa !9
  %250 = add nuw i64 %storemerge175197, 3
  %251 = getelementptr inbounds double, ptr %56, i64 %250
  %252 = load double, ptr %251, align 8, !tbaa !9
  %253 = getelementptr inbounds double, ptr %55, i64 %250
  store double %252, ptr %253, align 8, !tbaa !9
  %254 = add nuw i64 %storemerge175197, 4
  %exitcond235.not.3 = icmp eq i64 %250, %225
  br i1 %exitcond235.not.3, label %._crit_edge200, label %.lr.ph199, !llvm.loop !24

._crit_edge200:                                   ; preds = %.lr.ph199.prol.loopexit, %.lr.ph199, %middle.block, %._crit_edge194
  %storemerge175.lcssa = phi i64 [ 1, %._crit_edge194 ], [ %226, %middle.block ], [ %226, %.lr.ph199 ], [ %226, %.lr.ph199.prol.loopexit ]
  store i64 %storemerge175.lcssa, ptr %29, align 8, !tbaa !5
  %255 = load i64, ptr %43, align 8, !tbaa !5
  %256 = load i64, ptr %5, align 8, !tbaa !5
  %.not177 = icmp eq i64 %256, 0
  br i1 %.not177, label %273, label %257

257:                                              ; preds = %._crit_edge200
  %258 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %258, ptr getelementptr inbounds (i8, ptr @dchk1_.io___124, i64 8), align 8, !tbaa !25
  %259 = call i64 @s_wsfe(ptr noundef nonnull @dchk1_.io___124) #3
  %260 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #3
  %261 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %262 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %49, i64 noundef 1) #3
  %263 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 1) #3
  %264 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #3
  %265 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #3
  %266 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %30, i64 noundef 8) #3
  %267 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %46, i64 noundef 8) #3
  %268 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #3
  %269 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 8) #3
  %270 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #3
  %271 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 8) #3
  %272 = call i64 @e_wsfe() #3
  br label %273

273:                                              ; preds = %257, %._crit_edge200
  %274 = load i64, ptr %6, align 8, !tbaa !5
  %.not178 = icmp eq i64 %274, 0
  br i1 %.not178, label %278, label %275

275:                                              ; preds = %273
  store i64 0, ptr %28, align 8, !tbaa !28
  %276 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %276, ptr %68, align 8, !tbaa !30
  %277 = call i64 @f_rew(ptr noundef nonnull %28) #3
  br label %278

278:                                              ; preds = %275, %273
  %279 = call i32 @f2c_dgemm(ptr noundef nonnull %49, ptr noundef nonnull %50, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %46, ptr noundef %16, ptr noundef nonnull %40, ptr noundef %19, ptr noundef nonnull %42, ptr noundef nonnull %45, ptr noundef %22, ptr noundef nonnull %43) #3
  %280 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !11
  %.not179 = icmp eq i64 %280, 0
  br i1 %.not179, label %281, label %285

281:                                              ; preds = %278
  %282 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %282, ptr getelementptr inbounds (i8, ptr @dchk1_.io___125, i64 8), align 8, !tbaa !25
  %283 = call i64 @s_wsfe(ptr noundef nonnull @dchk1_.io___125) #3
  %284 = call i64 @e_wsfe() #3
  br label %.loopexit.sink.split

285:                                              ; preds = %278
  %286 = load i8, ptr %49, align 1, !tbaa !11
  %287 = icmp eq i8 %286, %158
  %288 = zext i1 %287 to i64
  store i64 %288, ptr %47, align 16, !tbaa !5
  %289 = load i8, ptr %50, align 1, !tbaa !11
  %290 = icmp eq i8 %289, %159
  %291 = zext i1 %290 to i64
  store i64 %291, ptr %69, align 8, !tbaa !5
  %292 = load i64, ptr %31, align 8, !tbaa !5
  %293 = icmp eq i64 %160, %292
  %294 = zext i1 %293 to i64
  store i64 %294, ptr %70, align 16, !tbaa !5
  %295 = load i64, ptr %32, align 8, !tbaa !5
  %296 = icmp eq i64 %161, %295
  %297 = zext i1 %296 to i64
  store i64 %297, ptr %71, align 8, !tbaa !5
  %298 = load i64, ptr %30, align 8, !tbaa !5
  %299 = icmp eq i64 %162, %298
  %300 = zext i1 %299 to i64
  store i64 %300, ptr %72, align 16, !tbaa !5
  %301 = load double, ptr %46, align 8, !tbaa !9
  %302 = fcmp oeq double %163, %301
  %303 = zext i1 %302 to i64
  store i64 %303, ptr %73, align 8, !tbaa !5
  %304 = call i64 @lde_(ptr noundef %17, ptr noundef %16, ptr noundef nonnull %38)
  store i64 %304, ptr %74, align 16, !tbaa !5
  %305 = load i64, ptr %40, align 8, !tbaa !5
  %306 = icmp eq i64 %193, %305
  %307 = zext i1 %306 to i64
  store i64 %307, ptr %75, align 8, !tbaa !5
  %308 = call i64 @lde_(ptr noundef %20, ptr noundef %19, ptr noundef nonnull %39)
  store i64 %308, ptr %76, align 16, !tbaa !5
  %309 = load i64, ptr %42, align 8, !tbaa !5
  %310 = icmp eq i64 %223, %309
  %311 = zext i1 %310 to i64
  store i64 %311, ptr %77, align 8, !tbaa !5
  %312 = load double, ptr %45, align 8, !tbaa !9
  %313 = fcmp oeq double %224, %312
  %314 = zext i1 %313 to i64
  store i64 %314, ptr %78, align 16, !tbaa !5
  br i1 %103, label %315, label %317

315:                                              ; preds = %285
  %316 = call i64 @lde_(ptr noundef %23, ptr noundef %22, ptr noundef nonnull %41)
  br label %319

317:                                              ; preds = %285
  %318 = call i64 @lderes_(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef %23, ptr noundef %22, ptr noundef nonnull %43, i64 noundef 2, i64 noundef 1)
  br label %319

319:                                              ; preds = %317, %315
  %storemerge245 = phi i64 [ %318, %317 ], [ %316, %315 ]
  store i64 %storemerge245, ptr %79, align 8, !tbaa !5
  %320 = load i64, ptr %43, align 8, !tbaa !5
  %321 = icmp eq i64 %255, %320
  %322 = zext i1 %321 to i64
  store i64 %322, ptr %80, align 16, !tbaa !5
  store i64 1, ptr %29, align 8, !tbaa !5
  br label %._crit_edge243

._crit_edge243:                                   ; preds = %319, %331
  %323 = phi i64 [ 1, %319 ], [ %333, %331 ]
  %.0203 = phi i1 [ true, %319 ], [ %325, %331 ]
  %storemerge180202 = phi i64 [ 0, %319 ], [ %332, %331 ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %47, i64 0, i64 %storemerge180202
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %324 = icmp ne i64 %.pre, 0
  %325 = and i1 %.0203, %324
  %.not184 = icmp eq i64 %.pre, 0
  br i1 %.not184, label %326, label %331

326:                                              ; preds = %._crit_edge243
  %327 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %327, ptr getelementptr inbounds (i8, ptr @dchk1_.io___128, i64 8), align 8, !tbaa !25
  %328 = call i64 @s_wsfe(ptr noundef nonnull @dchk1_.io___128) #3
  %329 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %29, i64 noundef 8) #3
  %330 = call i64 @e_wsfe() #3
  %.pre244 = load i64, ptr %29, align 8, !tbaa !5
  br label %331

331:                                              ; preds = %._crit_edge243, %326
  %332 = phi i64 [ %323, %._crit_edge243 ], [ %.pre244, %326 ]
  %333 = add nsw i64 %332, 1
  store i64 %333, ptr %29, align 8, !tbaa !5
  %334 = icmp slt i64 %332, 13
  br i1 %334, label %._crit_edge243, label %335, !llvm.loop !31

335:                                              ; preds = %331
  br i1 %325, label %336, label %.loopexit.sink.split

336:                                              ; preds = %335
  br i1 %103, label %343, label %337

337:                                              ; preds = %336
  %338 = call i32 @dmmch_(ptr noundef nonnull %49, ptr noundef nonnull %50, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %46, ptr noundef %15, ptr noundef nonnull %14, ptr noundef %18, ptr noundef nonnull %14, ptr noundef nonnull %45, ptr noundef %21, ptr noundef nonnull %14, ptr noundef %24, ptr noundef %25, ptr noundef %22, ptr noundef nonnull %43, ptr noundef %1, ptr noundef nonnull %44, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  %339 = load double, ptr %44, align 8
  %340 = fcmp oge double %152, %339
  %341 = select i1 %340, double %152, double %339
  store double %341, ptr %51, align 8, !tbaa !9
  %342 = load i64, ptr %7, align 8, !tbaa !5
  %.not182 = icmp eq i64 %342, 0
  br i1 %.not182, label %343, label %.loopexit

343:                                              ; preds = %336, %337
  %344 = phi double [ %152, %336 ], [ %341, %337 ]
  %345 = add nuw i64 %.0152205, 1
  %exitcond236.not = icmp eq i64 %.0152205, %148
  br i1 %exitcond236.not, label %._crit_edge208, label %.lr.ph207, !llvm.loop !32

._crit_edge208:                                   ; preds = %343, %.lr.ph212.split
  %346 = phi double [ %149, %.lr.ph212.split ], [ %344, %343 ]
  %exitcond237.not = icmp eq i64 %.0153210, %142
  br i1 %exitcond237.not, label %.loopexit185, label %.lr.ph212.splitthread-pre-split, !llvm.loop !33

.loopexit185:                                     ; preds = %._crit_edge208, %139, %.lr.ph212.split.us.preheader, %136
  %347 = phi double [ %126, %139 ], [ %126, %.lr.ph212.split.us.preheader ], [ %126, %136 ], [ %346, %._crit_edge208 ]
  %348 = add nuw nsw i64 %.0147214, 1
  %exitcond238.not = icmp eq i64 %348, 4
  br i1 %exitcond238.not, label %.loopexit186, label %125, !llvm.loop !35

.loopexit186:                                     ; preds = %.loopexit185, %119
  %349 = phi double [ %109, %119 ], [ %347, %.loopexit185 ]
  %350 = add nuw nsw i64 %.0148215, 1
  %exitcond239.not = icmp eq i64 %350, 4
  br i1 %exitcond239.not, label %351, label %108, !llvm.loop !36

351:                                              ; preds = %.loopexit186
  %352 = add nuw i64 %.0151217, 1
  %exitcond240.not = icmp eq i64 %.0151217, %104
  br i1 %exitcond240.not, label %.loopexit187, label %.lr.ph219, !llvm.loop !37

.loopexit187:                                     ; preds = %351, %99, %96
  %353 = phi double [ %88, %99 ], [ %88, %96 ], [ %349, %351 ]
  %354 = add nuw i64 %.0149221, 1
  %exitcond241.not = icmp eq i64 %.0149221, %87
  br i1 %exitcond241.not, label %._crit_edge224, label %.lr.ph223, !llvm.loop !38

._crit_edge224:                                   ; preds = %.loopexit187, %.lr.ph228.split
  %355 = phi double [ %84, %.lr.ph228.split ], [ %353, %.loopexit187 ]
  %356 = add nuw i64 %.0150226, 1
  %exitcond242.not = icmp eq i64 %.0150226, %61
  br i1 %exitcond242.not, label %._crit_edge229, label %.lr.ph228.split, !llvm.loop !39

._crit_edge229:                                   ; preds = %._crit_edge224, %27
  %357 = phi double [ 0.000000e+00, %27 ], [ %355, %._crit_edge224 ]
  %358 = load double, ptr %2, align 8, !tbaa !9
  %359 = fcmp olt double %357, %358
  %360 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %359, label %361, label %364

361:                                              ; preds = %._crit_edge229
  store i64 %360, ptr getelementptr inbounds (i8, ptr @dchk1_.io___130, i64 8), align 8, !tbaa !25
  %362 = call i64 @s_wsfe(ptr noundef nonnull @dchk1_.io___130) #3
  %363 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  br label %385

364:                                              ; preds = %._crit_edge229
  store i64 %360, ptr getelementptr inbounds (i8, ptr @dchk1_.io___131, i64 8), align 8, !tbaa !25
  %365 = call i64 @s_wsfe(ptr noundef nonnull @dchk1_.io___131) #3
  %366 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %367 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #3
  br label %385

.loopexit.sink.split:                             ; preds = %335, %281
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %337, %.loopexit.sink.split
  %368 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %368, ptr getelementptr inbounds (i8, ptr @dchk1_.io___132, i64 8), align 8, !tbaa !25
  %369 = call i64 @s_wsfe(ptr noundef nonnull @dchk1_.io___132) #3
  %370 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %371 = call i64 @e_wsfe() #3
  %372 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %372, ptr getelementptr inbounds (i8, ptr @dchk1_.io___133, i64 8), align 8, !tbaa !25
  %373 = call i64 @s_wsfe(ptr noundef nonnull @dchk1_.io___133) #3
  %374 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %37, i64 noundef 8) #3
  %375 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %376 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %49, i64 noundef 1) #3
  %377 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %50, i64 noundef 1) #3
  %378 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #3
  %379 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #3
  %380 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %30, i64 noundef 8) #3
  %381 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %46, i64 noundef 8) #3
  %382 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #3
  %383 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 8) #3
  %384 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %45, i64 noundef 8) #3
  br label %385

385:                                              ; preds = %361, %364, %.loopexit
  %.sink = phi ptr [ %37, %361 ], [ %51, %364 ], [ %43, %.loopexit ]
  %386 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %.sink, i64 noundef 8) #3
  %387 = call i64 @e_wsfe() #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #3
  call void @llvm.lifetime.end.p0(i64 104, 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 8, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #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

declare i32 @f2c_dgemm(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) 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

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}
!33 = distinct !{!33, !13, !34}
!34 = !{!"llvm.loop.unswitch.partial.disable"}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}
!37 = distinct !{!37, !13}
!38 = distinct !{!38, !13}
!39 = distinct !{!39, !13, !34}


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