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

; 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_b99 = external hidden global float, align 4
@c_true = external hidden global i64, align 8
@schk1_.ich = external hidden global [3 x i8], align 1
@schk1_.io___124 = external hidden global %struct.cilist, align 8
@schk1_.io___125 = external hidden global %struct.cilist, align 8
@schk1_.io___128 = external hidden global %struct.cilist, align 8
@schk1_.io___130 = external hidden global %struct.cilist, align 8
@schk1_.io___131 = external hidden global %struct.cilist, align 8
@schk1_.io___132 = external hidden global %struct.cilist, align 8
@schk1_.io___133 = external hidden global %struct.cilist, align 8
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = 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 @smmch_(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 @lse_(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local i32 @schk1_(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 float, align 4
  %94 = alloca float, align 4
  %95 = alloca float, align 4
  %96 = alloca float, align 4
  %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 float, align 4
  %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 float, align 4
  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 4, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 4, 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 4, 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 4, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float 0.000000e+00, ptr %112, align 4, !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 = %686, %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 %689

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 = %682, %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 %685

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 %681

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 = %677, %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 %680

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 = %673, %214
  %220 = load i64, ptr %85, align 8, !tbaa !9
  %221 = icmp sle i64 %220, 3
  br i1 %221, label %222, label %676

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 @schk1_.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 %672

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 float, 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 float, ptr %272, i64 1
  %274 = call i32 @smake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %74, ptr noundef %76, ptr noundef %270, ptr noundef %271, ptr noundef %273, ptr noundef %89, ptr noundef %107, ptr noundef @c_b99, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  store i64 1, ptr %86, align 8, !tbaa !9
  br label %275

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

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 @schk1_.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 %667

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 float, 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 float, ptr %328, i64 1
  %330 = call i32 @smake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %75, ptr noundef %77, ptr noundef %326, ptr noundef %327, ptr noundef %329, ptr noundef %91, ptr noundef %107, ptr noundef @c_b99, 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 = %663, %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 %666

337:                                              ; preds = %333
  %338 = load ptr, ptr %39, align 8, !tbaa !5
  %339 = load i64, ptr %72, align 8, !tbaa !9
  %340 = getelementptr inbounds float, ptr %338, i64 %339
  %341 = load float, ptr %340, align 4, !tbaa !11
  store float %341, ptr %102, align 4, !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 = %659, %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 %662

348:                                              ; preds = %344
  %349 = load ptr, ptr %41, align 8, !tbaa !5
  %350 = load i64, ptr %73, align 8, !tbaa !9
  %351 = getelementptr inbounds float, ptr %349, i64 %350
  %352 = load float, ptr %351, align 4, !tbaa !11
  store float %352, ptr %96, align 4, !tbaa !11
  %353 = load ptr, ptr %49, align 8, !tbaa !5
  %354 = load i64, ptr %60, align 8, !tbaa !9
  %355 = getelementptr inbounds float, 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 float, ptr %357, i64 1
  %359 = call i32 @smake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %70, ptr noundef %71, ptr noundef %355, ptr noundef %356, ptr noundef %358, ptr noundef %92, ptr noundef %107, ptr noundef @c_b99, 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 float, ptr %102, align 4, !tbaa !11
  store float %371, ptr %93, align 4, !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 float, ptr %378, i64 %379
  %381 = load float, ptr %380, align 4, !tbaa !11
  %382 = load ptr, ptr %45, align 8, !tbaa !5
  %383 = load i64, ptr %68, align 8, !tbaa !9
  %384 = getelementptr inbounds float, ptr %382, i64 %383
  store float %381, ptr %384, align 4, !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 float, ptr %396, i64 %397
  %399 = load float, ptr %398, align 4, !tbaa !11
  %400 = load ptr, ptr %48, align 8, !tbaa !5
  %401 = load i64, ptr %68, align 8, !tbaa !9
  %402 = getelementptr inbounds float, ptr %400, i64 %401
  store float %399, ptr %402, align 4, !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 float, ptr %96, align 4, !tbaa !11
  store float %408, ptr %94, align 4, !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 float, ptr %415, i64 %416
  %418 = load float, ptr %417, align 4, !tbaa !11
  %419 = load ptr, ptr %51, align 8, !tbaa !5
  %420 = load i64, ptr %68, align 8, !tbaa !9
  %421 = getelementptr inbounds float, ptr %419, i64 %420
  store float %418, ptr %421, align 4, !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 @schk1_.io___124, i32 0, i32 1), align 8, !tbaa !18
  %433 = call i64 @s_wsfe(ptr noundef @schk1_.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 4)
  %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 4)
  %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 float, ptr %463, i64 1
  %465 = load ptr, ptr %47, align 8, !tbaa !5
  %466 = getelementptr inbounds float, ptr %465, i64 1
  %467 = load ptr, ptr %50, align 8, !tbaa !5
  %468 = getelementptr inbounds float, ptr %467, i64 1
  %469 = call i32 @f2c_sgemm(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 @schk1_.io___125, i32 0, i32 1), align 8, !tbaa !18
  %475 = call i64 @s_wsfe(ptr noundef @schk1_.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 %712

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 float, ptr %93, align 4, !tbaa !11
  %518 = load float, ptr %102, align 4, !tbaa !11
  %519 = fcmp oeq float %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 float, ptr %523, i64 1
  %525 = load ptr, ptr %44, align 8, !tbaa !5
  %526 = getelementptr inbounds float, ptr %525, i64 1
  %527 = call i64 @lse_(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 float, ptr %535, i64 1
  %537 = load ptr, ptr %47, align 8, !tbaa !5
  %538 = getelementptr inbounds float, ptr %537, i64 1
  %539 = call i64 @lse_(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 float, ptr %94, align 4, !tbaa !11
  %548 = load float, ptr %96, align 4, !tbaa !11
  %549 = fcmp oeq float %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 float, ptr %556, i64 1
  %558 = load ptr, ptr %50, align 8, !tbaa !5
  %559 = getelementptr inbounds float, ptr %558, i64 1
  %560 = call i64 @lse_(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 float, ptr %563, i64 1
  %565 = load ptr, ptr %50, align 8, !tbaa !5
  %566 = getelementptr inbounds float, ptr %565, i64 1
  %567 = call i64 @lseres_(ptr noundef @.str.4, ptr noundef @.str.5, 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 @schk1_.io___128, i32 0, i32 1), align 8, !tbaa !18
  %602 = call i64 @s_wsfe(ptr noundef @schk1_.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 %712

614:                                              ; preds = %609
  %615 = load i64, ptr %101, align 8, !tbaa !9
  %616 = icmp ne i64 %615, 0
  br i1 %616, label %658, 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 float, 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 float, 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 float, 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 float, ptr %632, i64 1
  %634 = load ptr, ptr %53, align 8, !tbaa !5
  %635 = getelementptr inbounds float, ptr %634, i64 1
  %636 = load ptr, ptr %50, align 8, !tbaa !5
  %637 = getelementptr inbounds float, 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 @smmch_(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 float, ptr %112, align 4, !tbaa !11
  %643 = load float, ptr %95, align 4, !tbaa !11
  %644 = fcmp oge float %642, %643
  br i1 %644, label %645, label %647

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

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

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

656:                                              ; preds = %649
  br label %712

657:                                              ; preds = %649
  br label %658

658:                                              ; preds = %657, %614
  br label %659

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

662:                                              ; preds = %344
  br label %663

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

666:                                              ; preds = %333
  br label %667

667:                                              ; preds = %666, %319
  br label %668

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

671:                                              ; preds = %275
  br label %672

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

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

676:                                              ; preds = %219
  br label %677

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

680:                                              ; preds = %210
  br label %681

681:                                              ; preds = %680, %194
  br label %682

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

685:                                              ; preds = %172
  br label %686

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

689:                                              ; preds = %161
  %690 = load float, ptr %112, align 4, !tbaa !11
  %691 = load ptr, ptr %30, align 8, !tbaa !5
  %692 = load float, ptr %691, align 4, !tbaa !11
  %693 = fcmp olt float %690, %692
  br i1 %693, label %694, label %702

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

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

711:                                              ; preds = %702, %694
  br label %738

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

738:                                              ; preds = %712, %711
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 4, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 4, 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 @smake_(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_sgemm(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 @lseres_(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 = !{!"float", !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_b99 = external hidden global float, align 4
@c_true = external hidden global i64, align 8
@schk1_.ich = external hidden local_unnamed_addr global [3 x i8], align 1
@schk1_.io___124 = external hidden global %struct.cilist, align 8
@schk1_.io___125 = external hidden global %struct.cilist, align 8
@schk1_.io___128 = external hidden global %struct.cilist, align 8
@schk1_.io___130 = external hidden global %struct.cilist, align 8
@schk1_.io___131 = external hidden global %struct.cilist, align 8
@schk1_.io___132 = external hidden global %struct.cilist, align 8
@schk1_.io___133 = external hidden global %struct.cilist, align 8
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = 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 @smmch_(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 @lse_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @schk1_(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 float, align 4
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %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 float, align 4
  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 4, ptr nonnull %44) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #3
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr nonnull %51) #3
  %52 = getelementptr inbounds i8, ptr %9, i64 -8
  %53 = getelementptr inbounds i8, ptr %11, i64 -4
  %54 = getelementptr inbounds i8, ptr %13, i64 -4
  %55 = getelementptr inbounds i8, ptr %23, i64 -4
  %56 = getelementptr inbounds i8, ptr %22, i64 -4
  %57 = getelementptr inbounds i8, ptr %20, i64 -4
  %58 = getelementptr inbounds i8, ptr %19, i64 -4
  %59 = getelementptr inbounds i8, ptr %17, i64 -4
  %60 = getelementptr inbounds i8, ptr %16, i64 -4
  store i64 0, ptr %37, align 8, !tbaa !5
  store i64 1, ptr %48, align 8, !tbaa !5
  store float 0.000000e+00, ptr %51, align 4, !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 float [ %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 float [ %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 float [ %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 float [ %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 @schk1_.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 @smake_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, 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_b99, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  br label %125

125:                                              ; preds = %122, %.loopexit185
  %126 = phi float [ %109, %122 ], [ %347, %.loopexit185 ]
  %.0147214 = phi i64 [ 1, %122 ], [ %348, %.loopexit185 ]
  %127 = add nsw i64 %.0147214, -1
  %128 = getelementptr inbounds [3 x i8], ptr @schk1_.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 @smake_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, 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_b99, 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 float, ptr %53, i64 %142
  %146 = load float, ptr %145, align 4, !tbaa !9
  store float %146, ptr %46, align 4, !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 float [ %346, %.lr.ph212.splitthread-pre-split ], [ %126, %.lr.ph212 ]
  %.0153210 = phi i64 [ %147, %.lr.ph212.splitthread-pre-split ], [ 1, %.lr.ph212 ]
  %150 = getelementptr inbounds float, ptr %53, i64 %.0153210
  %151 = load float, ptr %150, align 4, !tbaa !9
  store float %151, ptr %46, align 4, !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 float [ %344, %343 ], [ %149, %.lr.ph212.split ]
  %.0152205 = phi i64 [ %345, %343 ], [ 1, %.lr.ph212.split ]
  %153 = getelementptr inbounds float, ptr %54, i64 %.0152205
  %154 = load float, ptr %153, align 4, !tbaa !9
  store float %154, ptr %45, align 4, !tbaa !9
  %155 = call i32 @smake_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, 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_b99, 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 float, ptr %46, align 4, !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, 8
  %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, 9223372036854775800
  %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 float, ptr %16, i64 %index287
  %166 = getelementptr inbounds i8, ptr %165, i64 16
  %wide.load289 = load <4 x float>, ptr %165, align 4, !tbaa !9
  %wide.load290 = load <4 x float>, ptr %166, align 4, !tbaa !9
  %167 = getelementptr float, ptr %17, i64 %index287
  %168 = getelementptr inbounds i8, ptr %167, i64 16
  store <4 x float> %wide.load289, ptr %167, align 4, !tbaa !9
  store <4 x float> %wide.load290, ptr %168, align 4, !tbaa !9
  %index.next291 = add nuw i64 %index287, 8
  %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 float, ptr %60, i64 %storemerge171189.prol
  %174 = load float, ptr %173, align 4, !tbaa !9
  %175 = getelementptr inbounds float, ptr %59, i64 %storemerge171189.prol
  store float %174, ptr %175, align 4, !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 float, ptr %60, i64 %storemerge171189
  %179 = load float, ptr %178, align 4, !tbaa !9
  %180 = getelementptr inbounds float, ptr %59, i64 %storemerge171189
  store float %179, ptr %180, align 4, !tbaa !9
  %181 = getelementptr float, ptr %16, i64 %storemerge171189
  %182 = load float, ptr %181, align 4, !tbaa !9
  %183 = getelementptr float, ptr %17, i64 %storemerge171189
  store float %182, ptr %183, align 4, !tbaa !9
  %184 = add nuw i64 %storemerge171189, 2
  %185 = getelementptr inbounds float, ptr %60, i64 %184
  %186 = load float, ptr %185, align 4, !tbaa !9
  %187 = getelementptr inbounds float, ptr %59, i64 %184
  store float %186, ptr %187, align 4, !tbaa !9
  %188 = add nuw i64 %storemerge171189, 3
  %189 = getelementptr inbounds float, ptr %60, i64 %188
  %190 = load float, ptr %189, align 4, !tbaa !9
  %191 = getelementptr inbounds float, ptr %59, i64 %188
  store float %190, ptr %191, align 4, !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, 8
  %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, 9223372036854775800
  %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 float, ptr %19, i64 %index270
  %196 = getelementptr inbounds i8, ptr %195, i64 16
  %wide.load272 = load <4 x float>, ptr %195, align 4, !tbaa !9
  %wide.load273 = load <4 x float>, ptr %196, align 4, !tbaa !9
  %197 = getelementptr float, ptr %20, i64 %index270
  %198 = getelementptr inbounds i8, ptr %197, i64 16
  store <4 x float> %wide.load272, ptr %197, align 4, !tbaa !9
  store <4 x float> %wide.load273, ptr %198, align 4, !tbaa !9
  %index.next274 = add nuw i64 %index270, 8
  %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 float, ptr %58, i64 %storemerge173191.prol
  %204 = load float, ptr %203, align 4, !tbaa !9
  %205 = getelementptr inbounds float, ptr %57, i64 %storemerge173191.prol
  store float %204, ptr %205, align 4, !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 float, ptr %58, i64 %storemerge173191
  %209 = load float, ptr %208, align 4, !tbaa !9
  %210 = getelementptr inbounds float, ptr %57, i64 %storemerge173191
  store float %209, ptr %210, align 4, !tbaa !9
  %211 = getelementptr float, ptr %19, i64 %storemerge173191
  %212 = load float, ptr %211, align 4, !tbaa !9
  %213 = getelementptr float, ptr %20, i64 %storemerge173191
  store float %212, ptr %213, align 4, !tbaa !9
  %214 = add nuw i64 %storemerge173191, 2
  %215 = getelementptr inbounds float, ptr %58, i64 %214
  %216 = load float, ptr %215, align 4, !tbaa !9
  %217 = getelementptr inbounds float, ptr %57, i64 %214
  store float %216, ptr %217, align 4, !tbaa !9
  %218 = add nuw i64 %storemerge173191, 3
  %219 = getelementptr inbounds float, ptr %58, i64 %218
  %220 = load float, ptr %219, align 4, !tbaa !9
  %221 = getelementptr inbounds float, ptr %57, i64 %218
  store float %220, ptr %221, align 4, !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 float, ptr %45, align 4, !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, 8
  %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, 9223372036854775800
  %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 float, ptr %22, i64 %index
  %228 = getelementptr inbounds i8, ptr %227, i64 16
  %wide.load = load <4 x float>, ptr %227, align 4, !tbaa !9
  %wide.load258 = load <4 x float>, ptr %228, align 4, !tbaa !9
  %229 = getelementptr float, ptr %23, i64 %index
  %230 = getelementptr inbounds i8, ptr %229, i64 16
  store <4 x float> %wide.load, ptr %229, align 4, !tbaa !9
  store <4 x float> %wide.load258, ptr %230, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %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 float, ptr %56, i64 %storemerge175197.prol
  %236 = load float, ptr %235, align 4, !tbaa !9
  %237 = getelementptr inbounds float, ptr %55, i64 %storemerge175197.prol
  store float %236, ptr %237, align 4, !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 float, ptr %56, i64 %storemerge175197
  %241 = load float, ptr %240, align 4, !tbaa !9
  %242 = getelementptr inbounds float, ptr %55, i64 %storemerge175197
  store float %241, ptr %242, align 4, !tbaa !9
  %243 = getelementptr float, ptr %22, i64 %storemerge175197
  %244 = load float, ptr %243, align 4, !tbaa !9
  %245 = getelementptr float, ptr %23, i64 %storemerge175197
  store float %244, ptr %245, align 4, !tbaa !9
  %246 = add nuw i64 %storemerge175197, 2
  %247 = getelementptr inbounds float, ptr %56, i64 %246
  %248 = load float, ptr %247, align 4, !tbaa !9
  %249 = getelementptr inbounds float, ptr %55, i64 %246
  store float %248, ptr %249, align 4, !tbaa !9
  %250 = add nuw i64 %storemerge175197, 3
  %251 = getelementptr inbounds float, ptr %56, i64 %250
  %252 = load float, ptr %251, align 4, !tbaa !9
  %253 = getelementptr inbounds float, ptr %55, i64 %250
  store float %252, ptr %253, align 4, !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 @schk1_.io___124, i64 8), align 8, !tbaa !25
  %259 = call i64 @s_wsfe(ptr noundef nonnull @schk1_.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 4) #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 4) #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_sgemm(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 @schk1_.io___125, i64 8), align 8, !tbaa !25
  %283 = call i64 @s_wsfe(ptr noundef nonnull @schk1_.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 float, ptr %46, align 4, !tbaa !9
  %302 = fcmp oeq float %163, %301
  %303 = zext i1 %302 to i64
  store i64 %303, ptr %73, align 8, !tbaa !5
  %304 = call i64 @lse_(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 @lse_(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 float, ptr %45, align 4, !tbaa !9
  %313 = fcmp oeq float %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 @lse_(ptr noundef %23, ptr noundef %22, ptr noundef nonnull %41)
  br label %319

317:                                              ; preds = %285
  %318 = call i64 @lseres_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, 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 @schk1_.io___128, i64 8), align 8, !tbaa !25
  %328 = call i64 @s_wsfe(ptr noundef nonnull @schk1_.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 @smmch_(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 float, ptr %44, align 4
  %340 = fcmp oge float %152, %339
  %341 = select i1 %340, float %152, float %339
  store float %341, ptr %51, align 4, !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 float [ %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 float [ %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 float [ %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 float [ %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 float [ %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 float [ %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 float [ 0.000000e+00, %27 ], [ %355, %._crit_edge224 ]
  %358 = load float, ptr %2, align 4, !tbaa !9
  %359 = fcmp olt float %357, %358
  %360 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %359, label %361, label %365

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

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

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

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

388:                                              ; preds = %361, %365, %.loopexit
  %389 = call i64 @e_wsfe() #3
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %46) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #3
  call void @llvm.lifetime.end.p0(i64 4, 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 @smake_(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_sgemm(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 @lseres_(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 = !{!"float", !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