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

156:                                              ; preds = %658, %27
  %157 = load i64, ptr %78, align 8, !tbaa !9
  %158 = load i64, ptr %61, align 8, !tbaa !9
  %159 = icmp sle i64 %157, %158
  br i1 %159, label %160, label %661

160:                                              ; preds = %156
  %161 = load ptr, ptr %37, align 8, !tbaa !5
  %162 = load i64, ptr %78, align 8, !tbaa !9
  %163 = getelementptr inbounds i64, ptr %161, i64 %162
  %164 = load i64, ptr %163, align 8, !tbaa !9
  store i64 %164, ptr %70, align 8, !tbaa !9
  %165 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %165, ptr %86, align 8, !tbaa !9
  %166 = load i64, ptr %86, align 8, !tbaa !9
  %167 = load ptr, ptr %42, align 8, !tbaa !5
  %168 = load i64, ptr %167, align 8, !tbaa !9
  %169 = icmp slt i64 %166, %168
  br i1 %169, label %170, label %173

170:                                              ; preds = %160
  %171 = load i64, ptr %86, align 8, !tbaa !9
  %172 = add nsw i64 %171, 1
  store i64 %172, ptr %86, align 8, !tbaa !9
  br label %173

173:                                              ; preds = %170, %160
  %174 = load i64, ptr %86, align 8, !tbaa !9
  %175 = load ptr, ptr %42, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = icmp sgt i64 %174, %176
  br i1 %177, label %178, label %179

178:                                              ; preds = %173
  br label %657

179:                                              ; preds = %173
  %180 = load i64, ptr %86, align 8, !tbaa !9
  %181 = load i64, ptr %70, align 8, !tbaa !9
  %182 = mul nsw i64 %180, %181
  store i64 %182, ptr %85, align 8, !tbaa !9
  %183 = load i64, ptr %70, align 8, !tbaa !9
  %184 = icmp sle i64 %183, 0
  %185 = zext i1 %184 to i32
  %186 = sext i32 %185 to i64
  store i64 %186, ptr %97, align 8, !tbaa !9
  %187 = load ptr, ptr %36, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  store i64 %188, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %653, %179
  %190 = load i64, ptr %77, align 8, !tbaa !9
  %191 = load i64, ptr %62, align 8, !tbaa !9
  %192 = icmp sle i64 %190, %191
  br i1 %192, label %193, label %656

193:                                              ; preds = %189
  %194 = load ptr, ptr %37, align 8, !tbaa !5
  %195 = load i64, ptr %77, align 8, !tbaa !9
  %196 = getelementptr inbounds i64, ptr %194, i64 %195
  %197 = load i64, ptr %196, align 8, !tbaa !9
  store i64 %197, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %88, align 8, !tbaa !9
  br label %198

198:                                              ; preds = %649, %193
  %199 = load i64, ptr %88, align 8, !tbaa !9
  %200 = icmp sle i64 %199, 3
  br i1 %200, label %201, label %652

201:                                              ; preds = %198
  %202 = load i64, ptr %88, align 8, !tbaa !9
  %203 = sub nsw i64 %202, 1
  %204 = getelementptr inbounds [3 x i8], ptr @schk4_.icht, i64 0, i64 %203
  %205 = load i8, ptr %204, align 1, !tbaa !13
  %206 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  store i8 %205, ptr %206, align 1, !tbaa !13
  %207 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %208 = load i8, ptr %207, align 1, !tbaa !13
  %209 = zext i8 %208 to i32
  %210 = icmp eq i32 %209, 84
  br i1 %210, label %216, label %211

211:                                              ; preds = %201
  %212 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %213 = load i8, ptr %212, align 1, !tbaa !13
  %214 = zext i8 %213 to i32
  %215 = icmp eq i32 %214, 67
  br label %216

216:                                              ; preds = %211, %201
  %217 = phi i1 [ true, %201 ], [ %215, %211 ]
  %218 = zext i1 %217 to i32
  %219 = sext i32 %218 to i64
  store i64 %219, ptr %96, align 8, !tbaa !9
  %220 = load i64, ptr %96, align 8, !tbaa !9
  %221 = icmp ne i64 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %216
  %223 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %223, ptr %74, align 8, !tbaa !9
  %224 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %224, ptr %75, align 8, !tbaa !9
  br label %228

225:                                              ; preds = %216
  %226 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %226, ptr %74, align 8, !tbaa !9
  %227 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %227, ptr %75, align 8, !tbaa !9
  br label %228

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

234:                                              ; preds = %228
  %235 = load i64, ptr %84, align 8, !tbaa !9
  %236 = add nsw i64 %235, 1
  store i64 %236, ptr %84, align 8, !tbaa !9
  br label %237

237:                                              ; preds = %234, %228
  %238 = load i64, ptr %84, align 8, !tbaa !9
  %239 = load ptr, ptr %42, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = icmp sgt i64 %238, %240
  br i1 %241, label %242, label %243

242:                                              ; preds = %237
  br label %648

243:                                              ; preds = %237
  %244 = load i64, ptr %84, align 8, !tbaa !9
  %245 = load i64, ptr %75, align 8, !tbaa !9
  %246 = mul nsw i64 %244, %245
  store i64 %246, ptr %83, align 8, !tbaa !9
  %247 = load ptr, ptr %43, align 8, !tbaa !5
  %248 = load i64, ptr %56, align 8, !tbaa !9
  %249 = getelementptr inbounds float, ptr %247, i64 %248
  %250 = load ptr, ptr %42, align 8, !tbaa !5
  %251 = load ptr, ptr %44, align 8, !tbaa !5
  %252 = getelementptr inbounds float, ptr %251, i64 1
  %253 = call i32 @smake_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef %74, ptr noundef %75, ptr noundef %249, ptr noundef %250, ptr noundef %252, ptr noundef %84, ptr noundef %102, ptr noundef @c_b99, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  store i64 1, ptr %89, align 8, !tbaa !9
  br label %254

254:                                              ; preds = %644, %243
  %255 = load i64, ptr %89, align 8, !tbaa !9
  %256 = icmp sle i64 %255, 2
  br i1 %256, label %257, label %647

257:                                              ; preds = %254
  %258 = load i64, ptr %89, align 8, !tbaa !9
  %259 = sub nsw i64 %258, 1
  %260 = getelementptr inbounds [2 x i8], ptr @schk4_.ichu, i64 0, i64 %259
  %261 = load i8, ptr %260, align 1, !tbaa !13
  %262 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  store i8 %261, ptr %262, align 1, !tbaa !13
  %263 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %264 = load i8, ptr %263, align 1, !tbaa !13
  %265 = zext i8 %264 to i32
  %266 = icmp eq i32 %265, 85
  %267 = zext i1 %266 to i32
  %268 = sext i32 %267 to i64
  store i64 %268, ptr %104, align 8, !tbaa !9
  %269 = load ptr, ptr %38, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  store i64 %270, ptr %63, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %271

271:                                              ; preds = %640, %257
  %272 = load i64, ptr %71, align 8, !tbaa !9
  %273 = load i64, ptr %63, align 8, !tbaa !9
  %274 = icmp sle i64 %272, %273
  br i1 %274, label %275, label %643

275:                                              ; preds = %271
  %276 = load ptr, ptr %39, align 8, !tbaa !5
  %277 = load i64, ptr %71, align 8, !tbaa !9
  %278 = getelementptr inbounds float, ptr %276, i64 %277
  %279 = load float, ptr %278, align 4, !tbaa !11
  store float %279, ptr %99, align 4, !tbaa !11
  %280 = load ptr, ptr %40, align 8, !tbaa !5
  %281 = load i64, ptr %280, align 8, !tbaa !9
  store i64 %281, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %72, align 8, !tbaa !9
  br label %282

282:                                              ; preds = %636, %275
  %283 = load i64, ptr %72, align 8, !tbaa !9
  %284 = load i64, ptr %64, align 8, !tbaa !9
  %285 = icmp sle i64 %283, %284
  br i1 %285, label %286, label %639

286:                                              ; preds = %282
  %287 = load ptr, ptr %41, align 8, !tbaa !5
  %288 = load i64, ptr %72, align 8, !tbaa !9
  %289 = getelementptr inbounds float, ptr %287, i64 %288
  %290 = load float, ptr %289, align 4, !tbaa !11
  store float %290, ptr %91, align 4, !tbaa !11
  %291 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %292 = load ptr, ptr %49, align 8, !tbaa !5
  %293 = load i64, ptr %60, align 8, !tbaa !9
  %294 = getelementptr inbounds float, ptr %292, i64 %293
  %295 = load ptr, ptr %42, align 8, !tbaa !5
  %296 = load ptr, ptr %50, align 8, !tbaa !5
  %297 = getelementptr inbounds float, ptr %296, i64 1
  %298 = call i32 @smake_(ptr noundef @.str.6, ptr noundef %291, ptr noundef @.str.5, ptr noundef %70, ptr noundef %70, ptr noundef %294, ptr noundef %295, ptr noundef %297, ptr noundef %86, ptr noundef %102, ptr noundef @c_b99, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %299 = load i64, ptr %76, align 8, !tbaa !9
  %300 = add nsw i64 %299, 1
  store i64 %300, ptr %76, align 8, !tbaa !9
  %301 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %302 = load i8, ptr %301, align 1, !tbaa !13
  %303 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  store i8 %302, ptr %303, align 1, !tbaa !13
  %304 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %305 = load i8, ptr %304, align 1, !tbaa !13
  %306 = getelementptr inbounds [1 x i8], ptr %107, i64 0, i64 0
  store i8 %305, ptr %306, align 1, !tbaa !13
  %307 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %307, ptr %82, align 8, !tbaa !9
  %308 = load i64, ptr %69, align 8, !tbaa !9
  store i64 %308, ptr %81, align 8, !tbaa !9
  %309 = load float, ptr %99, align 4, !tbaa !11
  store float %309, ptr %87, align 4, !tbaa !11
  %310 = load i64, ptr %83, align 8, !tbaa !9
  store i64 %310, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %311

311:                                              ; preds = %323, %286
  %312 = load i64, ptr %67, align 8, !tbaa !9
  %313 = load i64, ptr %65, align 8, !tbaa !9
  %314 = icmp sle i64 %312, %313
  br i1 %314, label %315, label %326

315:                                              ; preds = %311
  %316 = load ptr, ptr %44, align 8, !tbaa !5
  %317 = load i64, ptr %67, align 8, !tbaa !9
  %318 = getelementptr inbounds float, ptr %316, i64 %317
  %319 = load float, ptr %318, align 4, !tbaa !11
  %320 = load ptr, ptr %45, align 8, !tbaa !5
  %321 = load i64, ptr %67, align 8, !tbaa !9
  %322 = getelementptr inbounds float, ptr %320, i64 %321
  store float %319, ptr %322, align 4, !tbaa !11
  br label %323

323:                                              ; preds = %315
  %324 = load i64, ptr %67, align 8, !tbaa !9
  %325 = add nsw i64 %324, 1
  store i64 %325, ptr %67, align 8, !tbaa !9
  br label %311, !llvm.loop !14

326:                                              ; preds = %311
  %327 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %327, ptr %92, align 8, !tbaa !9
  %328 = load float, ptr %91, align 4, !tbaa !11
  store float %328, ptr %95, align 4, !tbaa !11
  %329 = load i64, ptr %85, align 8, !tbaa !9
  store i64 %329, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %330

330:                                              ; preds = %342, %326
  %331 = load i64, ptr %67, align 8, !tbaa !9
  %332 = load i64, ptr %65, align 8, !tbaa !9
  %333 = icmp sle i64 %331, %332
  br i1 %333, label %334, label %345

334:                                              ; preds = %330
  %335 = load ptr, ptr %50, align 8, !tbaa !5
  %336 = load i64, ptr %67, align 8, !tbaa !9
  %337 = getelementptr inbounds float, ptr %335, i64 %336
  %338 = load float, ptr %337, align 4, !tbaa !11
  %339 = load ptr, ptr %51, align 8, !tbaa !5
  %340 = load i64, ptr %67, align 8, !tbaa !9
  %341 = getelementptr inbounds float, ptr %339, i64 %340
  store float %338, ptr %341, align 4, !tbaa !11
  br label %342

342:                                              ; preds = %334
  %343 = load i64, ptr %67, align 8, !tbaa !9
  %344 = add nsw i64 %343, 1
  store i64 %344, ptr %67, align 8, !tbaa !9
  br label %330, !llvm.loop !16

345:                                              ; preds = %330
  %346 = load i64, ptr %86, align 8, !tbaa !9
  store i64 %346, ptr %93, align 8, !tbaa !9
  %347 = load ptr, ptr %33, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  %349 = icmp ne i64 %348, 0
  br i1 %349, label %350, label %368

350:                                              ; preds = %345
  %351 = load ptr, ptr %32, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  store i64 %352, ptr getelementptr inbounds (%struct.cilist, ptr @schk4_.io___268, i32 0, i32 1), align 8, !tbaa !17
  %353 = call i64 @s_wsfe(ptr noundef @schk4_.io___268)
  %354 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %355 = load ptr, ptr %28, align 8, !tbaa !5
  %356 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %355, i64 noundef 6)
  %357 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %358 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %357, i64 noundef 1)
  %359 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %360 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %359, i64 noundef 1)
  %361 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %362 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %363 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %99, i64 noundef 4)
  %364 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %84, i64 noundef 8)
  %365 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %91, i64 noundef 4)
  %366 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %367 = call i64 @e_wsfe()
  br label %368

368:                                              ; preds = %350, %345
  %369 = load ptr, ptr %34, align 8, !tbaa !5
  %370 = load i64, ptr %369, align 8, !tbaa !9
  %371 = icmp ne i64 %370, 0
  br i1 %371, label %372, label %378

372:                                              ; preds = %368
  %373 = getelementptr inbounds %struct.alist, ptr %66, i32 0, i32 0
  store i64 0, ptr %373, align 8, !tbaa !19
  %374 = load ptr, ptr %32, align 8, !tbaa !5
  %375 = load i64, ptr %374, align 8, !tbaa !9
  %376 = getelementptr inbounds %struct.alist, ptr %66, i32 0, i32 1
  store i64 %375, ptr %376, align 8, !tbaa !21
  %377 = call i64 @f_rew(ptr noundef %66)
  br label %378

378:                                              ; preds = %372, %368
  %379 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %380 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %381 = load ptr, ptr %44, align 8, !tbaa !5
  %382 = getelementptr inbounds float, ptr %381, i64 1
  %383 = load ptr, ptr %50, align 8, !tbaa !5
  %384 = getelementptr inbounds float, ptr %383, i64 1
  %385 = call i32 @f2c_ssyrk(ptr noundef %379, ptr noundef %380, ptr noundef %70, ptr noundef %69, ptr noundef %99, ptr noundef %382, ptr noundef %84, ptr noundef %91, ptr noundef %384, ptr noundef %86)
  %386 = load i64, ptr getelementptr inbounds (%struct.anon, ptr @infoc_, i32 0, i32 2), align 8, !tbaa !13
  %387 = icmp ne i64 %386, 0
  br i1 %387, label %394, label %388

388:                                              ; preds = %378
  %389 = load ptr, ptr %31, align 8, !tbaa !5
  %390 = load i64, ptr %389, align 8, !tbaa !9
  store i64 %390, ptr getelementptr inbounds (%struct.cilist, ptr @schk4_.io___269, i32 0, i32 1), align 8, !tbaa !17
  %391 = call i64 @s_wsfe(ptr noundef @schk4_.io___269)
  %392 = call i64 @e_wsfe()
  %393 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %393, align 8, !tbaa !9
  br label %694

394:                                              ; preds = %378
  %395 = getelementptr inbounds [1 x i8], ptr %105, i64 0, i64 0
  %396 = load i8, ptr %395, align 1, !tbaa !13
  %397 = zext i8 %396 to i32
  %398 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %399 = load i8, ptr %398, align 1, !tbaa !13
  %400 = zext i8 %399 to i32
  %401 = icmp eq i32 %397, %400
  %402 = zext i1 %401 to i32
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 0
  store i64 %403, ptr %404, align 16, !tbaa !9
  %405 = getelementptr inbounds [1 x i8], ptr %107, i64 0, i64 0
  %406 = load i8, ptr %405, align 1, !tbaa !13
  %407 = zext i8 %406 to i32
  %408 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %409 = load i8, ptr %408, align 1, !tbaa !13
  %410 = zext i8 %409 to i32
  %411 = icmp eq i32 %407, %410
  %412 = zext i1 %411 to i32
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 1
  store i64 %413, ptr %414, align 8, !tbaa !9
  %415 = load i64, ptr %82, align 8, !tbaa !9
  %416 = load i64, ptr %70, align 8, !tbaa !9
  %417 = icmp eq i64 %415, %416
  %418 = zext i1 %417 to i32
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 2
  store i64 %419, ptr %420, align 16, !tbaa !9
  %421 = load i64, ptr %81, align 8, !tbaa !9
  %422 = load i64, ptr %69, align 8, !tbaa !9
  %423 = icmp eq i64 %421, %422
  %424 = zext i1 %423 to i32
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 3
  store i64 %425, ptr %426, align 8, !tbaa !9
  %427 = load float, ptr %87, align 4, !tbaa !11
  %428 = load float, ptr %99, align 4, !tbaa !11
  %429 = fcmp oeq float %427, %428
  %430 = zext i1 %429 to i32
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 4
  store i64 %431, ptr %432, align 16, !tbaa !9
  %433 = load ptr, ptr %45, align 8, !tbaa !5
  %434 = getelementptr inbounds float, ptr %433, i64 1
  %435 = load ptr, ptr %44, align 8, !tbaa !5
  %436 = getelementptr inbounds float, ptr %435, i64 1
  %437 = call i64 @lse_(ptr noundef %434, ptr noundef %436, ptr noundef %83)
  %438 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 5
  store i64 %437, ptr %438, align 8, !tbaa !9
  %439 = load i64, ptr %92, align 8, !tbaa !9
  %440 = load i64, ptr %84, align 8, !tbaa !9
  %441 = icmp eq i64 %439, %440
  %442 = zext i1 %441 to i32
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 6
  store i64 %443, ptr %444, align 16, !tbaa !9
  %445 = load float, ptr %95, align 4, !tbaa !11
  %446 = load float, ptr %91, align 4, !tbaa !11
  %447 = fcmp oeq float %445, %446
  %448 = zext i1 %447 to i32
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 7
  store i64 %449, ptr %450, align 8, !tbaa !9
  %451 = load i64, ptr %97, align 8, !tbaa !9
  %452 = icmp ne i64 %451, 0
  br i1 %452, label %453, label %460

453:                                              ; preds = %394
  %454 = load ptr, ptr %51, align 8, !tbaa !5
  %455 = getelementptr inbounds float, ptr %454, i64 1
  %456 = load ptr, ptr %50, align 8, !tbaa !5
  %457 = getelementptr inbounds float, ptr %456, i64 1
  %458 = call i64 @lse_(ptr noundef %455, ptr noundef %457, ptr noundef %85)
  %459 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 8
  store i64 %458, ptr %459, align 16, !tbaa !9
  br label %468

460:                                              ; preds = %394
  %461 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %462 = load ptr, ptr %51, align 8, !tbaa !5
  %463 = getelementptr inbounds float, ptr %462, i64 1
  %464 = load ptr, ptr %50, align 8, !tbaa !5
  %465 = getelementptr inbounds float, ptr %464, i64 1
  %466 = call i64 @lseres_(ptr noundef @.str.6, ptr noundef %461, ptr noundef %70, ptr noundef %70, ptr noundef %463, ptr noundef %465, ptr noundef %86, i64 noundef 2, i64 noundef 1)
  %467 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 8
  store i64 %466, ptr %467, align 16, !tbaa !9
  br label %468

468:                                              ; preds = %460, %453
  %469 = load i64, ptr %93, align 8, !tbaa !9
  %470 = load i64, ptr %86, align 8, !tbaa !9
  %471 = icmp eq i64 %469, %470
  %472 = zext i1 %471 to i32
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 9
  store i64 %473, ptr %474, align 8, !tbaa !9
  store i64 1, ptr %94, align 8, !tbaa !9
  %475 = load i64, ptr %101, align 8, !tbaa !9
  store i64 %475, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %476

476:                                              ; preds = %505, %468
  %477 = load i64, ptr %67, align 8, !tbaa !9
  %478 = load i64, ptr %65, align 8, !tbaa !9
  %479 = icmp sle i64 %477, %478
  br i1 %479, label %480, label %508

480:                                              ; preds = %476
  %481 = load i64, ptr %94, align 8, !tbaa !9
  %482 = icmp ne i64 %481, 0
  br i1 %482, label %483, label %489

483:                                              ; preds = %480
  %484 = load i64, ptr %67, align 8, !tbaa !9
  %485 = sub nsw i64 %484, 1
  %486 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 %485
  %487 = load i64, ptr %486, align 8, !tbaa !9
  %488 = icmp ne i64 %487, 0
  br label %489

489:                                              ; preds = %483, %480
  %490 = phi i1 [ false, %480 ], [ %488, %483 ]
  %491 = zext i1 %490 to i32
  %492 = sext i32 %491 to i64
  store i64 %492, ptr %94, align 8, !tbaa !9
  %493 = load i64, ptr %67, align 8, !tbaa !9
  %494 = sub nsw i64 %493, 1
  %495 = getelementptr inbounds [13 x i64], ptr %100, i64 0, i64 %494
  %496 = load i64, ptr %495, align 8, !tbaa !9
  %497 = icmp ne i64 %496, 0
  br i1 %497, label %504, label %498

498:                                              ; preds = %489
  %499 = load ptr, ptr %31, align 8, !tbaa !5
  %500 = load i64, ptr %499, align 8, !tbaa !9
  store i64 %500, ptr getelementptr inbounds (%struct.cilist, ptr @schk4_.io___272, i32 0, i32 1), align 8, !tbaa !17
  %501 = call i64 @s_wsfe(ptr noundef @schk4_.io___272)
  %502 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %67, i64 noundef 8)
  %503 = call i64 @e_wsfe()
  br label %504

504:                                              ; preds = %498, %489
  br label %505

505:                                              ; preds = %504
  %506 = load i64, ptr %67, align 8, !tbaa !9
  %507 = add nsw i64 %506, 1
  store i64 %507, ptr %67, align 8, !tbaa !9
  br label %476, !llvm.loop !22

508:                                              ; preds = %476
  %509 = load i64, ptr %94, align 8, !tbaa !9
  %510 = icmp ne i64 %509, 0
  br i1 %510, label %513, label %511

511:                                              ; preds = %508
  %512 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %512, align 8, !tbaa !9
  br label %694

513:                                              ; preds = %508
  %514 = load i64, ptr %97, align 8, !tbaa !9
  %515 = icmp ne i64 %514, 0
  br i1 %515, label %635, label %516

516:                                              ; preds = %513
  store i64 1, ptr %73, align 8, !tbaa !9
  %517 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %517, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %518

518:                                              ; preds = %631, %516
  %519 = load i64, ptr %68, align 8, !tbaa !9
  %520 = load i64, ptr %65, align 8, !tbaa !9
  %521 = icmp sle i64 %519, %520
  br i1 %521, label %522, label %634

522:                                              ; preds = %518
  %523 = load i64, ptr %104, align 8, !tbaa !9
  %524 = icmp ne i64 %523, 0
  br i1 %524, label %525, label %527

525:                                              ; preds = %522
  store i64 1, ptr %79, align 8, !tbaa !9
  %526 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %526, ptr %80, align 8, !tbaa !9
  br label %533

527:                                              ; preds = %522
  %528 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %528, ptr %79, align 8, !tbaa !9
  %529 = load i64, ptr %70, align 8, !tbaa !9
  %530 = load i64, ptr %68, align 8, !tbaa !9
  %531 = sub nsw i64 %529, %530
  %532 = add nsw i64 %531, 1
  store i64 %532, ptr %80, align 8, !tbaa !9
  br label %533

533:                                              ; preds = %527, %525
  %534 = load i64, ptr %96, align 8, !tbaa !9
  %535 = icmp ne i64 %534, 0
  br i1 %535, label %536, label %570

536:                                              ; preds = %533
  %537 = load ptr, ptr %43, align 8, !tbaa !5
  %538 = load i64, ptr %79, align 8, !tbaa !9
  %539 = load i64, ptr %55, align 8, !tbaa !9
  %540 = mul nsw i64 %538, %539
  %541 = add nsw i64 %540, 1
  %542 = getelementptr inbounds float, ptr %537, i64 %541
  %543 = load ptr, ptr %42, align 8, !tbaa !5
  %544 = load ptr, ptr %43, align 8, !tbaa !5
  %545 = load i64, ptr %68, align 8, !tbaa !9
  %546 = load i64, ptr %55, align 8, !tbaa !9
  %547 = mul nsw i64 %545, %546
  %548 = add nsw i64 %547, 1
  %549 = getelementptr inbounds float, ptr %544, i64 %548
  %550 = load ptr, ptr %42, align 8, !tbaa !5
  %551 = load ptr, ptr %49, align 8, !tbaa !5
  %552 = load i64, ptr %79, align 8, !tbaa !9
  %553 = load i64, ptr %68, align 8, !tbaa !9
  %554 = load i64, ptr %59, align 8, !tbaa !9
  %555 = mul nsw i64 %553, %554
  %556 = add nsw i64 %552, %555
  %557 = getelementptr inbounds float, ptr %551, i64 %556
  %558 = load ptr, ptr %42, align 8, !tbaa !5
  %559 = load ptr, ptr %52, align 8, !tbaa !5
  %560 = getelementptr inbounds float, ptr %559, i64 1
  %561 = load ptr, ptr %53, align 8, !tbaa !5
  %562 = getelementptr inbounds float, ptr %561, i64 1
  %563 = load ptr, ptr %50, align 8, !tbaa !5
  %564 = load i64, ptr %73, align 8, !tbaa !9
  %565 = getelementptr inbounds float, ptr %563, i64 %564
  %566 = load ptr, ptr %29, align 8, !tbaa !5
  %567 = load ptr, ptr %35, align 8, !tbaa !5
  %568 = load ptr, ptr %31, align 8, !tbaa !5
  %569 = call i32 @smmch_(ptr noundef @.str.10, ptr noundef @.str, ptr noundef %80, ptr noundef @c__1, ptr noundef %69, ptr noundef %99, ptr noundef %542, ptr noundef %543, ptr noundef %549, ptr noundef %550, ptr noundef %91, ptr noundef %557, ptr noundef %558, ptr noundef %560, ptr noundef %562, ptr noundef %565, ptr noundef %86, ptr noundef %566, ptr noundef %90, ptr noundef %567, ptr noundef %568, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %602

570:                                              ; preds = %533
  %571 = load ptr, ptr %43, align 8, !tbaa !5
  %572 = load i64, ptr %79, align 8, !tbaa !9
  %573 = load i64, ptr %55, align 8, !tbaa !9
  %574 = add nsw i64 %572, %573
  %575 = getelementptr inbounds float, ptr %571, i64 %574
  %576 = load ptr, ptr %42, align 8, !tbaa !5
  %577 = load ptr, ptr %43, align 8, !tbaa !5
  %578 = load i64, ptr %68, align 8, !tbaa !9
  %579 = load i64, ptr %55, align 8, !tbaa !9
  %580 = add nsw i64 %578, %579
  %581 = getelementptr inbounds float, ptr %577, i64 %580
  %582 = load ptr, ptr %42, align 8, !tbaa !5
  %583 = load ptr, ptr %49, align 8, !tbaa !5
  %584 = load i64, ptr %79, align 8, !tbaa !9
  %585 = load i64, ptr %68, align 8, !tbaa !9
  %586 = load i64, ptr %59, align 8, !tbaa !9
  %587 = mul nsw i64 %585, %586
  %588 = add nsw i64 %584, %587
  %589 = getelementptr inbounds float, ptr %583, i64 %588
  %590 = load ptr, ptr %42, align 8, !tbaa !5
  %591 = load ptr, ptr %52, align 8, !tbaa !5
  %592 = getelementptr inbounds float, ptr %591, i64 1
  %593 = load ptr, ptr %53, align 8, !tbaa !5
  %594 = getelementptr inbounds float, ptr %593, i64 1
  %595 = load ptr, ptr %50, align 8, !tbaa !5
  %596 = load i64, ptr %73, align 8, !tbaa !9
  %597 = getelementptr inbounds float, ptr %595, i64 %596
  %598 = load ptr, ptr %29, align 8, !tbaa !5
  %599 = load ptr, ptr %35, align 8, !tbaa !5
  %600 = load ptr, ptr %31, align 8, !tbaa !5
  %601 = call i32 @smmch_(ptr noundef @.str, ptr noundef @.str.10, ptr noundef %80, ptr noundef @c__1, ptr noundef %69, ptr noundef %99, ptr noundef %575, ptr noundef %576, ptr noundef %581, ptr noundef %582, ptr noundef %91, ptr noundef %589, ptr noundef %590, ptr noundef %592, ptr noundef %594, ptr noundef %597, ptr noundef %86, ptr noundef %598, ptr noundef %90, ptr noundef %599, ptr noundef %600, ptr noundef @c_true, i64 noundef 1, i64 noundef 1)
  br label %602

602:                                              ; preds = %570, %536
  %603 = load i64, ptr %104, align 8, !tbaa !9
  %604 = icmp ne i64 %603, 0
  br i1 %604, label %605, label %609

605:                                              ; preds = %602
  %606 = load i64, ptr %86, align 8, !tbaa !9
  %607 = load i64, ptr %73, align 8, !tbaa !9
  %608 = add nsw i64 %607, %606
  store i64 %608, ptr %73, align 8, !tbaa !9
  br label %614

609:                                              ; preds = %602
  %610 = load i64, ptr %73, align 8, !tbaa !9
  %611 = load i64, ptr %86, align 8, !tbaa !9
  %612 = add nsw i64 %610, %611
  %613 = add nsw i64 %612, 1
  store i64 %613, ptr %73, align 8, !tbaa !9
  br label %614

614:                                              ; preds = %609, %605
  %615 = load float, ptr %106, align 4, !tbaa !11
  %616 = load float, ptr %90, align 4, !tbaa !11
  %617 = fcmp oge float %615, %616
  br i1 %617, label %618, label %620

618:                                              ; preds = %614
  %619 = load float, ptr %106, align 4, !tbaa !11
  br label %622

620:                                              ; preds = %614
  %621 = load float, ptr %90, align 4, !tbaa !11
  br label %622

622:                                              ; preds = %620, %618
  %623 = phi float [ %619, %618 ], [ %621, %620 ]
  %624 = fpext float %623 to double
  %625 = fptrunc double %624 to float
  store float %625, ptr %106, align 4, !tbaa !11
  %626 = load ptr, ptr %35, align 8, !tbaa !5
  %627 = load i64, ptr %626, align 8, !tbaa !9
  %628 = icmp ne i64 %627, 0
  br i1 %628, label %629, label %630

629:                                              ; preds = %622
  br label %684

630:                                              ; preds = %622
  br label %631

631:                                              ; preds = %630
  %632 = load i64, ptr %68, align 8, !tbaa !9
  %633 = add nsw i64 %632, 1
  store i64 %633, ptr %68, align 8, !tbaa !9
  br label %518, !llvm.loop !23

634:                                              ; preds = %518
  br label %635

635:                                              ; preds = %634, %513
  br label %636

636:                                              ; preds = %635
  %637 = load i64, ptr %72, align 8, !tbaa !9
  %638 = add nsw i64 %637, 1
  store i64 %638, ptr %72, align 8, !tbaa !9
  br label %282, !llvm.loop !24

639:                                              ; preds = %282
  br label %640

640:                                              ; preds = %639
  %641 = load i64, ptr %71, align 8, !tbaa !9
  %642 = add nsw i64 %641, 1
  store i64 %642, ptr %71, align 8, !tbaa !9
  br label %271, !llvm.loop !25

643:                                              ; preds = %271
  br label %644

644:                                              ; preds = %643
  %645 = load i64, ptr %89, align 8, !tbaa !9
  %646 = add nsw i64 %645, 1
  store i64 %646, ptr %89, align 8, !tbaa !9
  br label %254, !llvm.loop !26

647:                                              ; preds = %254
  br label %648

648:                                              ; preds = %647, %242
  br label %649

649:                                              ; preds = %648
  %650 = load i64, ptr %88, align 8, !tbaa !9
  %651 = add nsw i64 %650, 1
  store i64 %651, ptr %88, align 8, !tbaa !9
  br label %198, !llvm.loop !27

652:                                              ; preds = %198
  br label %653

653:                                              ; preds = %652
  %654 = load i64, ptr %77, align 8, !tbaa !9
  %655 = add nsw i64 %654, 1
  store i64 %655, ptr %77, align 8, !tbaa !9
  br label %189, !llvm.loop !28

656:                                              ; preds = %189
  br label %657

657:                                              ; preds = %656, %178
  br label %658

658:                                              ; preds = %657
  %659 = load i64, ptr %78, align 8, !tbaa !9
  %660 = add nsw i64 %659, 1
  store i64 %660, ptr %78, align 8, !tbaa !9
  br label %156, !llvm.loop !29

661:                                              ; preds = %156
  %662 = load float, ptr %106, align 4, !tbaa !11
  %663 = load ptr, ptr %30, align 8, !tbaa !5
  %664 = load float, ptr %663, align 4, !tbaa !11
  %665 = fcmp olt float %662, %664
  br i1 %665, label %666, label %674

666:                                              ; preds = %661
  %667 = load ptr, ptr %31, align 8, !tbaa !5
  %668 = load i64, ptr %667, align 8, !tbaa !9
  store i64 %668, ptr getelementptr inbounds (%struct.cilist, ptr @schk4_.io___278, i32 0, i32 1), align 8, !tbaa !17
  %669 = call i64 @s_wsfe(ptr noundef @schk4_.io___278)
  %670 = load ptr, ptr %28, align 8, !tbaa !5
  %671 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %670, i64 noundef 6)
  %672 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %673 = call i64 @e_wsfe()
  br label %683

674:                                              ; preds = %661
  %675 = load ptr, ptr %31, align 8, !tbaa !5
  %676 = load i64, ptr %675, align 8, !tbaa !9
  store i64 %676, ptr getelementptr inbounds (%struct.cilist, ptr @schk4_.io___279, i32 0, i32 1), align 8, !tbaa !17
  %677 = call i64 @s_wsfe(ptr noundef @schk4_.io___279)
  %678 = load ptr, ptr %28, align 8, !tbaa !5
  %679 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %678, i64 noundef 6)
  %680 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %681 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %106, i64 noundef 4)
  %682 = call i64 @e_wsfe()
  br label %683

683:                                              ; preds = %674, %666
  br label %718

684:                                              ; preds = %629
  %685 = load i64, ptr %70, align 8, !tbaa !9
  %686 = icmp sgt i64 %685, 1
  br i1 %686, label %687, label %693

687:                                              ; preds = %684
  %688 = load ptr, ptr %31, align 8, !tbaa !5
  %689 = load i64, ptr %688, align 8, !tbaa !9
  store i64 %689, ptr getelementptr inbounds (%struct.cilist, ptr @schk4_.io___280, i32 0, i32 1), align 8, !tbaa !17
  %690 = call i64 @s_wsfe(ptr noundef @schk4_.io___280)
  %691 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %68, i64 noundef 8)
  %692 = call i64 @e_wsfe()
  br label %693

693:                                              ; preds = %687, %684
  br label %694

694:                                              ; preds = %693, %511, %388
  %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 @schk4_.io___281, i32 0, i32 1), align 8, !tbaa !17
  %697 = call i64 @s_wsfe(ptr noundef @schk4_.io___281)
  %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 @e_wsfe()
  %701 = load ptr, ptr %31, align 8, !tbaa !5
  %702 = load i64, ptr %701, align 8, !tbaa !9
  store i64 %702, ptr getelementptr inbounds (%struct.cilist, ptr @schk4_.io___282, i32 0, i32 1), align 8, !tbaa !17
  %703 = call i64 @s_wsfe(ptr noundef @schk4_.io___282)
  %704 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %76, i64 noundef 8)
  %705 = load ptr, ptr %28, align 8, !tbaa !5
  %706 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %705, i64 noundef 6)
  %707 = getelementptr inbounds [1 x i8], ptr %98, i64 0, i64 0
  %708 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %707, i64 noundef 1)
  %709 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %710 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %709, i64 noundef 1)
  %711 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %70, i64 noundef 8)
  %712 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %69, i64 noundef 8)
  %713 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %99, i64 noundef 4)
  %714 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %84, i64 noundef 8)
  %715 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %91, i64 noundef 4)
  %716 = call i64 @do_fio(ptr noundef @c__1, ptr noundef %86, i64 noundef 8)
  %717 = call i64 @e_wsfe()
  br label %718

718:                                              ; preds = %694, %683
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 16, 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

; 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

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

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

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

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


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

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

@c__1 = external hidden global i64, align 8
@infoc_ = external dso_local local_unnamed_addr global %union.anon, align 8
@.str = external hidden unnamed_addr constant [2 x i8], align 1
@c_b99 = external hidden global float, align 4
@c_true = external hidden global i64, 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
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@schk4_.icht = external hidden local_unnamed_addr global [3 x i8], align 1
@schk4_.ichu = external hidden local_unnamed_addr global [2 x i8], align 1
@schk4_.io___268 = external hidden global %struct.cilist, align 8
@schk4_.io___269 = external hidden global %struct.cilist, align 8
@schk4_.io___272 = external hidden global %struct.cilist, align 8
@schk4_.io___278 = external hidden global %struct.cilist, align 8
@schk4_.io___279 = external hidden global %struct.cilist, align 8
@schk4_.io___280 = external hidden global %struct.cilist, align 8
@schk4_.io___281 = external hidden global %struct.cilist, align 8
@schk4_.io___282 = external hidden global %struct.cilist, align 8
@.str.10 = 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 @schk4_(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 nocapture noundef readnone %18, ptr nocapture noundef readnone %19, ptr nocapture noundef readnone %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 float, align 4
  %42 = alloca float, align 4
  %43 = alloca [1 x i8], align 1
  %44 = alloca float, align 4
  %45 = alloca [13 x i64], align 16
  %46 = alloca i64, align 8
  %47 = alloca [1 x i8], align 1
  %48 = 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 4, ptr nonnull %41) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #3
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %45) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #3
  %49 = getelementptr inbounds i8, ptr %9, i64 -8
  %50 = getelementptr inbounds i8, ptr %11, i64 -4
  %51 = getelementptr inbounds i8, ptr %13, i64 -4
  %52 = getelementptr inbounds i8, ptr %23, i64 -4
  %53 = getelementptr inbounds i8, ptr %22, i64 -4
  %54 = load i64, ptr %14, align 8, !tbaa !5
  %55 = xor i64 %54, -1
  %56 = getelementptr inbounds float, ptr %21, i64 %55
  %57 = getelementptr inbounds i8, ptr %17, i64 -4
  %58 = getelementptr inbounds i8, ptr %16, i64 -4
  store i64 0, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %46, align 8, !tbaa !5
  store float 0.000000e+00, ptr %48, align 4, !tbaa !9
  %59 = load i64, ptr %8, align 8, !tbaa !5
  %.not230 = icmp slt i64 %59, 1
  br i1 %.not230, label %._crit_edge234, label %.lr.ph233

.lr.ph233:                                        ; preds = %27
  %60 = ptrtoint ptr %23 to i64
  %61 = ptrtoint ptr %22 to i64
  %62 = ptrtoint ptr %17 to i64
  %63 = ptrtoint ptr %16 to i64
  %64 = getelementptr inbounds float, ptr %15, i64 %55
  %65 = getelementptr inbounds i8, ptr %28, i64 8
  %66 = getelementptr inbounds i8, ptr %45, i64 8
  %67 = getelementptr inbounds i8, ptr %45, i64 16
  %68 = getelementptr inbounds i8, ptr %45, i64 24
  %69 = getelementptr inbounds i8, ptr %45, i64 32
  %70 = getelementptr inbounds i8, ptr %45, i64 40
  %71 = getelementptr inbounds i8, ptr %45, i64 48
  %72 = getelementptr inbounds i8, ptr %45, i64 56
  %73 = getelementptr inbounds i8, ptr %45, i64 64
  %74 = getelementptr inbounds i8, ptr %45, i64 72
  %invariant.gep = getelementptr i8, ptr %64, i64 4
  %invariant.gep203 = getelementptr i8, ptr %15, i64 -4
  %75 = sub i64 %60, %61
  %76 = sub i64 %62, %63
  %diff.check263 = icmp ult i64 %76, 32
  %diff.check = icmp ult i64 %75, 32
  br label %77

77:                                               ; preds = %.lr.ph233, %.loopexit190
  %78 = phi float [ 0.000000e+00, %.lr.ph233 ], [ %313, %.loopexit190 ]
  %.0157231 = phi i64 [ 1, %.lr.ph233 ], [ %314, %.loopexit190 ]
  %79 = getelementptr inbounds i64, ptr %49, i64 %.0157231
  %80 = load i64, ptr %79, align 8, !tbaa !5
  store i64 %80, ptr %32, align 8, !tbaa !5
  store i64 %80, ptr %40, align 8, !tbaa !5
  %81 = load i64, ptr %14, align 8, !tbaa !5
  %82 = icmp slt i64 %80, %81
  br i1 %82, label %83, label %85

83:                                               ; preds = %77
  %84 = add nsw i64 %80, 1
  store i64 %84, ptr %40, align 8, !tbaa !5
  br label %85

85:                                               ; preds = %83, %77
  %86 = phi i64 [ %84, %83 ], [ %80, %77 ]
  %87 = icmp sgt i64 %86, %81
  br i1 %87, label %.loopexit190, label %88

88:                                               ; preds = %85
  %89 = mul nsw i64 %86, %80
  store i64 %89, ptr %39, align 8, !tbaa !5
  %90 = icmp slt i64 %80, 1
  %91 = load i64, ptr %8, align 8, !tbaa !5
  %.not170226 = icmp slt i64 %91, 1
  br i1 %.not170226, label %.loopexit190, label %.lr.ph229

.lr.ph229:                                        ; preds = %88, %311
  %92 = phi float [ %309, %311 ], [ %78, %88 ]
  %.0158227 = phi i64 [ %312, %311 ], [ 1, %88 ]
  %93 = getelementptr inbounds i64, ptr %49, i64 %.0158227
  %94 = load i64, ptr %93, align 8, !tbaa !5
  store i64 %94, ptr %31, align 8, !tbaa !5
  br label %95

95:                                               ; preds = %.lr.ph229, %.loopexit189
  %96 = phi float [ %92, %.lr.ph229 ], [ %309, %.loopexit189 ]
  %.0155225 = phi i64 [ 1, %.lr.ph229 ], [ %310, %.loopexit189 ]
  %97 = add nsw i64 %.0155225, -1
  %98 = getelementptr inbounds [3 x i8], ptr @schk4_.icht, i64 0, i64 %97
  %99 = load i8, ptr %98, align 1, !tbaa !11
  store i8 %99, ptr %47, align 1, !tbaa !11
  switch i8 %99, label %100 [
    i8 84, label %101
    i8 67, label %101
  ]

100:                                              ; preds = %95
  br label %101

101:                                              ; preds = %95, %95, %100
  %storemerge171.in = phi ptr [ %32, %100 ], [ %31, %95 ], [ %31, %95 ]
  %storemerge.in = phi ptr [ %31, %100 ], [ %32, %95 ], [ %32, %95 ]
  %storemerge171 = load i64, ptr %storemerge171.in, align 8, !tbaa !5
  store i64 %storemerge171, ptr %33, align 8, !tbaa !5
  %storemerge = load i64, ptr %storemerge.in, align 8, !tbaa !5
  store i64 %storemerge, ptr %34, align 8, !tbaa !5
  store i64 %storemerge171, ptr %38, align 8, !tbaa !5
  %102 = load i64, ptr %14, align 8, !tbaa !5
  %103 = icmp slt i64 %storemerge171, %102
  br i1 %103, label %104, label %106

104:                                              ; preds = %101
  %105 = add nsw i64 %storemerge171, 1
  store i64 %105, ptr %38, align 8, !tbaa !5
  br label %106

106:                                              ; preds = %104, %101
  %107 = phi i64 [ %105, %104 ], [ %storemerge171, %101 ]
  %108 = icmp sgt i64 %107, %102
  br i1 %108, label %.loopexit189, label %109

109:                                              ; preds = %106
  %110 = mul nsw i64 %107, %storemerge
  store i64 %110, ptr %37, align 8, !tbaa !5
  %111 = 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 %34, ptr noundef %15, ptr noundef nonnull %14, ptr noundef %16, ptr noundef nonnull %38, ptr noundef nonnull %46, ptr noundef nonnull @c_b99, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %112 = load i64, ptr %10, align 8, !tbaa !5
  %113 = icmp slt i64 %112, 1
  br i1 %113, label %.split.us.preheader, label %.split

.split.us.preheader:                              ; preds = %109
  %114 = load i8, ptr getelementptr inbounds (i8, ptr @schk4_.ichu, i64 1), align 1, !tbaa !11
  store i8 %114, ptr %43, align 1, !tbaa !11
  br label %.loopexit189

.split:                                           ; preds = %109, %._crit_edge221
  %115 = phi float [ %307, %._crit_edge221 ], [ %96, %109 ]
  %.0154223 = phi i64 [ %308, %._crit_edge221 ], [ 1, %109 ]
  %116 = add nsw i64 %.0154223, -1
  %117 = getelementptr inbounds [2 x i8], ptr @schk4_.ichu, i64 0, i64 %116
  %118 = load i8, ptr %117, align 1, !tbaa !11
  store i8 %118, ptr %43, align 1, !tbaa !11
  %119 = icmp ne i8 %118, 85
  %120 = load i64, ptr %10, align 8, !tbaa !5
  %.not172217 = icmp slt i64 %120, 1
  br i1 %.not172217, label %._crit_edge221, label %.lr.ph220

.lr.ph220:                                        ; preds = %.split
  %121 = load i64, ptr %12, align 8, !tbaa !5
  %122 = icmp slt i64 %121, 1
  br i1 %122, label %.lr.ph220.split.us.preheader, label %.lr.ph220.split.preheader

.lr.ph220.split.preheader:                        ; preds = %.lr.ph220
  %123 = zext i1 %119 to i64
  br label %.lr.ph220.split

.lr.ph220.split.us.preheader:                     ; preds = %.lr.ph220
  %124 = getelementptr inbounds float, ptr %50, i64 %120
  %125 = load float, ptr %124, align 4, !tbaa !9
  store float %125, ptr %44, align 4, !tbaa !9
  br label %._crit_edge221

.lr.ph220.splitthread-pre-split:                  ; preds = %._crit_edge216
  %126 = add nuw i64 %.0161218, 1
  %.pr = load i64, ptr %12, align 8, !tbaa !5
  br label %.lr.ph220.split

.lr.ph220.split:                                  ; preds = %.lr.ph220.split.preheader, %.lr.ph220.splitthread-pre-split
  %127 = phi i64 [ %.pr, %.lr.ph220.splitthread-pre-split ], [ %121, %.lr.ph220.split.preheader ]
  %128 = phi float [ %306, %.lr.ph220.splitthread-pre-split ], [ %115, %.lr.ph220.split.preheader ]
  %.0161218 = phi i64 [ %126, %.lr.ph220.splitthread-pre-split ], [ 1, %.lr.ph220.split.preheader ]
  %129 = getelementptr inbounds float, ptr %50, i64 %.0161218
  %130 = load float, ptr %129, align 4, !tbaa !9
  store float %130, ptr %44, align 4, !tbaa !9
  %.not173212 = icmp slt i64 %127, 1
  br i1 %.not173212, label %._crit_edge216, label %.lr.ph215

.lr.ph215:                                        ; preds = %.lr.ph220.split, %.loopexit
  %131 = phi float [ %304, %.loopexit ], [ %128, %.lr.ph220.split ]
  %.0160213 = phi i64 [ %305, %.loopexit ], [ 1, %.lr.ph220.split ]
  %132 = getelementptr inbounds float, ptr %51, i64 %.0160213
  %133 = load float, ptr %132, align 4, !tbaa !9
  store float %133, ptr %42, align 4, !tbaa !9
  %134 = call i32 @smake_(ptr noundef nonnull @.str.6, ptr noundef nonnull %43, ptr noundef nonnull @.str.5, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef %21, ptr noundef nonnull %14, ptr noundef %22, ptr noundef nonnull %40, ptr noundef nonnull %46, ptr noundef nonnull @c_b99, i64 noundef 2, i64 noundef 1, i64 noundef 1)
  %135 = load i64, ptr %35, align 8, !tbaa !5
  %136 = add nsw i64 %135, 1
  store i64 %136, ptr %35, align 8, !tbaa !5
  %137 = load i8, ptr %43, align 1, !tbaa !11
  %138 = load i8, ptr %47, align 1, !tbaa !11
  %139 = load i64, ptr %32, align 8, !tbaa !5
  %140 = load i64, ptr %31, align 8, !tbaa !5
  %141 = load float, ptr %44, align 4, !tbaa !9
  %142 = load i64, ptr %37, align 8, !tbaa !5
  %.not175191 = icmp slt i64 %142, 1
  br i1 %.not175191, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph215
  %min.iters.check266 = icmp ult i64 %142, 8
  %or.cond = or i1 %min.iters.check266, %diff.check263
  br i1 %or.cond, label %.lr.ph.preheader281, label %vector.ph267

vector.ph267:                                     ; preds = %.lr.ph.preheader
  %n.vec269 = and i64 %142, 9223372036854775800
  %ind.end270 = or disjoint i64 %n.vec269, 1
  br label %vector.body272

vector.body272:                                   ; preds = %vector.body272, %vector.ph267
  %index273 = phi i64 [ 0, %vector.ph267 ], [ %index.next277, %vector.body272 ]
  %143 = getelementptr float, ptr %16, i64 %index273
  %144 = getelementptr inbounds i8, ptr %143, i64 16
  %wide.load275 = load <4 x float>, ptr %143, align 4, !tbaa !9
  %wide.load276 = load <4 x float>, ptr %144, align 4, !tbaa !9
  %145 = getelementptr float, ptr %17, i64 %index273
  %146 = getelementptr inbounds i8, ptr %145, i64 16
  store <4 x float> %wide.load275, ptr %145, align 4, !tbaa !9
  store <4 x float> %wide.load276, ptr %146, align 4, !tbaa !9
  %index.next277 = add nuw i64 %index273, 8
  %147 = icmp eq i64 %index.next277, %n.vec269
  br i1 %147, label %middle.block264, label %vector.body272, !llvm.loop !12

middle.block264:                                  ; preds = %vector.body272
  %cmp.n278 = icmp eq i64 %142, %n.vec269
  br i1 %cmp.n278, label %._crit_edge, label %.lr.ph.preheader281

.lr.ph.preheader281:                              ; preds = %middle.block264, %.lr.ph.preheader
  %storemerge174192.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end270, %middle.block264 ]
  %148 = add nuw i64 %142, 1
  %149 = sub i64 %148, %storemerge174192.ph
  %150 = sub i64 %142, %storemerge174192.ph
  %xtraiter = and i64 %149, 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.preheader281, %.lr.ph.prol
  %storemerge174192.prol = phi i64 [ %154, %.lr.ph.prol ], [ %storemerge174192.ph, %.lr.ph.preheader281 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph.prol ], [ 0, %.lr.ph.preheader281 ]
  %151 = getelementptr inbounds float, ptr %58, i64 %storemerge174192.prol
  %152 = load float, ptr %151, align 4, !tbaa !9
  %153 = getelementptr inbounds float, ptr %57, i64 %storemerge174192.prol
  store float %152, ptr %153, align 4, !tbaa !9
  %154 = add nuw i64 %storemerge174192.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.preheader281
  %storemerge174192.unr = phi i64 [ %storemerge174192.ph, %.lr.ph.preheader281 ], [ %154, %.lr.ph.prol ]
  %155 = icmp ult i64 %150, 3
  br i1 %155, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %storemerge174192 = phi i64 [ %170, %.lr.ph ], [ %storemerge174192.unr, %.lr.ph.prol.loopexit ]
  %156 = getelementptr inbounds float, ptr %58, i64 %storemerge174192
  %157 = load float, ptr %156, align 4, !tbaa !9
  %158 = getelementptr inbounds float, ptr %57, i64 %storemerge174192
  store float %157, ptr %158, align 4, !tbaa !9
  %159 = getelementptr float, ptr %16, i64 %storemerge174192
  %160 = load float, ptr %159, align 4, !tbaa !9
  %161 = getelementptr float, ptr %17, i64 %storemerge174192
  store float %160, ptr %161, align 4, !tbaa !9
  %162 = add nuw i64 %storemerge174192, 2
  %163 = getelementptr inbounds float, ptr %58, i64 %162
  %164 = load float, ptr %163, align 4, !tbaa !9
  %165 = getelementptr inbounds float, ptr %57, i64 %162
  store float %164, ptr %165, align 4, !tbaa !9
  %166 = add nuw i64 %storemerge174192, 3
  %167 = getelementptr inbounds float, ptr %58, i64 %166
  %168 = load float, ptr %167, align 4, !tbaa !9
  %169 = getelementptr inbounds float, ptr %57, i64 %166
  store float %168, ptr %169, align 4, !tbaa !9
  %170 = add nuw i64 %storemerge174192, 4
  %exitcond.not.3 = icmp eq i64 %166, %142
  br i1 %exitcond.not.3, label %._crit_edge, label %.lr.ph, !llvm.loop !18

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block264, %.lr.ph215
  %171 = load i64, ptr %38, align 8, !tbaa !5
  %172 = load float, ptr %42, align 4, !tbaa !9
  %173 = load i64, ptr %39, align 8, !tbaa !5
  %.not177193 = icmp slt i64 %173, 1
  br i1 %.not177193, label %._crit_edge197, label %.lr.ph196.preheader

.lr.ph196.preheader:                              ; preds = %._crit_edge
  %174 = add nuw i64 %173, 1
  %min.iters.check = icmp ult i64 %173, 8
  %or.cond279 = or i1 %min.iters.check, %diff.check
  br i1 %or.cond279, label %.lr.ph196.preheader280, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph196.preheader
  %n.vec = and i64 %173, 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 ]
  %175 = getelementptr float, ptr %22, i64 %index
  %176 = getelementptr inbounds i8, ptr %175, i64 16
  %wide.load = load <4 x float>, ptr %175, align 4, !tbaa !9
  %wide.load261 = load <4 x float>, ptr %176, align 4, !tbaa !9
  %177 = getelementptr float, ptr %23, i64 %index
  %178 = getelementptr inbounds i8, ptr %177, i64 16
  store <4 x float> %wide.load, ptr %177, align 4, !tbaa !9
  store <4 x float> %wide.load261, ptr %178, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %179 = icmp eq i64 %index.next, %n.vec
  br i1 %179, label %middle.block, label %vector.body, !llvm.loop !19

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %173, %n.vec
  br i1 %cmp.n, label %._crit_edge197, label %.lr.ph196.preheader280

.lr.ph196.preheader280:                           ; preds = %middle.block, %.lr.ph196.preheader
  %storemerge176194.ph = phi i64 [ 1, %.lr.ph196.preheader ], [ %ind.end, %middle.block ]
  %180 = add nuw i64 %173, 1
  %181 = sub i64 %180, %storemerge176194.ph
  %182 = sub i64 %173, %storemerge176194.ph
  %xtraiter289 = and i64 %181, 3
  %lcmp.mod290.not = icmp eq i64 %xtraiter289, 0
  br i1 %lcmp.mod290.not, label %.lr.ph196.prol.loopexit, label %.lr.ph196.prol

.lr.ph196.prol:                                   ; preds = %.lr.ph196.preheader280, %.lr.ph196.prol
  %storemerge176194.prol = phi i64 [ %186, %.lr.ph196.prol ], [ %storemerge176194.ph, %.lr.ph196.preheader280 ]
  %prol.iter291 = phi i64 [ %prol.iter291.next, %.lr.ph196.prol ], [ 0, %.lr.ph196.preheader280 ]
  %183 = getelementptr inbounds float, ptr %53, i64 %storemerge176194.prol
  %184 = load float, ptr %183, align 4, !tbaa !9
  %185 = getelementptr inbounds float, ptr %52, i64 %storemerge176194.prol
  store float %184, ptr %185, align 4, !tbaa !9
  %186 = add nuw i64 %storemerge176194.prol, 1
  %prol.iter291.next = add i64 %prol.iter291, 1
  %prol.iter291.cmp.not = icmp eq i64 %prol.iter291.next, %xtraiter289
  br i1 %prol.iter291.cmp.not, label %.lr.ph196.prol.loopexit, label %.lr.ph196.prol, !llvm.loop !20

.lr.ph196.prol.loopexit:                          ; preds = %.lr.ph196.prol, %.lr.ph196.preheader280
  %storemerge176194.unr = phi i64 [ %storemerge176194.ph, %.lr.ph196.preheader280 ], [ %186, %.lr.ph196.prol ]
  %187 = icmp ult i64 %182, 3
  br i1 %187, label %._crit_edge197, label %.lr.ph196

.lr.ph196:                                        ; preds = %.lr.ph196.prol.loopexit, %.lr.ph196
  %storemerge176194 = phi i64 [ %202, %.lr.ph196 ], [ %storemerge176194.unr, %.lr.ph196.prol.loopexit ]
  %188 = getelementptr inbounds float, ptr %53, i64 %storemerge176194
  %189 = load float, ptr %188, align 4, !tbaa !9
  %190 = getelementptr inbounds float, ptr %52, i64 %storemerge176194
  store float %189, ptr %190, align 4, !tbaa !9
  %191 = getelementptr float, ptr %22, i64 %storemerge176194
  %192 = load float, ptr %191, align 4, !tbaa !9
  %193 = getelementptr float, ptr %23, i64 %storemerge176194
  store float %192, ptr %193, align 4, !tbaa !9
  %194 = add nuw i64 %storemerge176194, 2
  %195 = getelementptr inbounds float, ptr %53, i64 %194
  %196 = load float, ptr %195, align 4, !tbaa !9
  %197 = getelementptr inbounds float, ptr %52, i64 %194
  store float %196, ptr %197, align 4, !tbaa !9
  %198 = add nuw i64 %storemerge176194, 3
  %199 = getelementptr inbounds float, ptr %53, i64 %198
  %200 = load float, ptr %199, align 4, !tbaa !9
  %201 = getelementptr inbounds float, ptr %52, i64 %198
  store float %200, ptr %201, align 4, !tbaa !9
  %202 = add nuw i64 %storemerge176194, 4
  %exitcond237.not.3 = icmp eq i64 %198, %173
  br i1 %exitcond237.not.3, label %._crit_edge197, label %.lr.ph196, !llvm.loop !21

._crit_edge197:                                   ; preds = %.lr.ph196.prol.loopexit, %.lr.ph196, %middle.block, %._crit_edge
  %storemerge176.lcssa = phi i64 [ 1, %._crit_edge ], [ %174, %middle.block ], [ %174, %.lr.ph196 ], [ %174, %.lr.ph196.prol.loopexit ]
  store i64 %storemerge176.lcssa, ptr %29, align 8, !tbaa !5
  %203 = load i64, ptr %40, align 8, !tbaa !5
  %204 = load i64, ptr %5, align 8, !tbaa !5
  %.not178 = icmp eq i64 %204, 0
  br i1 %.not178, label %219, label %205

205:                                              ; preds = %._crit_edge197
  %206 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %206, ptr getelementptr inbounds (i8, ptr @schk4_.io___268, i64 8), align 8, !tbaa !22
  %207 = call i64 @s_wsfe(ptr noundef nonnull @schk4_.io___268) #3
  %208 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #3
  %209 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %210 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #3
  %211 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #3
  %212 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #3
  %213 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #3
  %214 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %44, i64 noundef 4) #3
  %215 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #3
  %216 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 4) #3
  %217 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #3
  %218 = call i64 @e_wsfe() #3
  br label %219

219:                                              ; preds = %205, %._crit_edge197
  %220 = load i64, ptr %6, align 8, !tbaa !5
  %.not179 = icmp eq i64 %220, 0
  br i1 %.not179, label %224, label %221

221:                                              ; preds = %219
  store i64 0, ptr %28, align 8, !tbaa !25
  %222 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %222, ptr %65, align 8, !tbaa !27
  %223 = call i64 @f_rew(ptr noundef nonnull %28) #3
  br label %224

224:                                              ; preds = %221, %219
  %225 = call i32 @f2c_ssyrk(ptr noundef nonnull %43, ptr noundef nonnull %47, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %16, ptr noundef nonnull %38, ptr noundef nonnull %42, ptr noundef %22, ptr noundef nonnull %40) #3
  %226 = load i64, ptr getelementptr inbounds (i8, ptr @infoc_, i64 16), align 8, !tbaa !11
  %.not180 = icmp eq i64 %226, 0
  br i1 %.not180, label %227, label %231

227:                                              ; preds = %224
  %228 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %228, ptr getelementptr inbounds (i8, ptr @schk4_.io___269, i64 8), align 8, !tbaa !22
  %229 = call i64 @s_wsfe(ptr noundef nonnull @schk4_.io___269) #3
  %230 = call i64 @e_wsfe() #3
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %336

231:                                              ; preds = %224
  %232 = load i8, ptr %43, align 1, !tbaa !11
  %233 = icmp eq i8 %137, %232
  %234 = zext i1 %233 to i64
  store i64 %234, ptr %45, align 16, !tbaa !5
  %235 = load i8, ptr %47, align 1, !tbaa !11
  %236 = icmp eq i8 %138, %235
  %237 = zext i1 %236 to i64
  store i64 %237, ptr %66, align 8, !tbaa !5
  %238 = load i64, ptr %32, align 8, !tbaa !5
  %239 = icmp eq i64 %139, %238
  %240 = zext i1 %239 to i64
  store i64 %240, ptr %67, align 16, !tbaa !5
  %241 = load i64, ptr %31, align 8, !tbaa !5
  %242 = icmp eq i64 %140, %241
  %243 = zext i1 %242 to i64
  store i64 %243, ptr %68, align 8, !tbaa !5
  %244 = load float, ptr %44, align 4, !tbaa !9
  %245 = fcmp oeq float %141, %244
  %246 = zext i1 %245 to i64
  store i64 %246, ptr %69, align 16, !tbaa !5
  %247 = call i64 @lse_(ptr noundef %17, ptr noundef %16, ptr noundef nonnull %37)
  store i64 %247, ptr %70, align 8, !tbaa !5
  %248 = load i64, ptr %38, align 8, !tbaa !5
  %249 = icmp eq i64 %171, %248
  %250 = zext i1 %249 to i64
  store i64 %250, ptr %71, align 16, !tbaa !5
  %251 = load float, ptr %42, align 4, !tbaa !9
  %252 = fcmp oeq float %172, %251
  %253 = zext i1 %252 to i64
  store i64 %253, ptr %72, align 8, !tbaa !5
  br i1 %90, label %254, label %256

254:                                              ; preds = %231
  %255 = call i64 @lse_(ptr noundef %23, ptr noundef %22, ptr noundef nonnull %39)
  br label %258

256:                                              ; preds = %231
  %257 = call i64 @lseres_(ptr noundef nonnull @.str.6, ptr noundef nonnull %43, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef %23, ptr noundef %22, ptr noundef nonnull %40, i64 noundef 2, i64 noundef 1)
  br label %258

258:                                              ; preds = %256, %254
  %storemerge246 = phi i64 [ %257, %256 ], [ %255, %254 ]
  store i64 %storemerge246, ptr %73, align 16, !tbaa !5
  %259 = load i64, ptr %40, align 8, !tbaa !5
  %260 = icmp eq i64 %203, %259
  %261 = zext i1 %260 to i64
  store i64 %261, ptr %74, align 8, !tbaa !5
  store i64 1, ptr %29, align 8, !tbaa !5
  br label %._crit_edge244

._crit_edge244:                                   ; preds = %258, %270
  %262 = phi i64 [ 1, %258 ], [ %272, %270 ]
  %.0200 = phi i1 [ true, %258 ], [ %264, %270 ]
  %storemerge181199 = phi i64 [ 0, %258 ], [ %271, %270 ]
  %.phi.trans.insert = getelementptr inbounds [13 x i64], ptr %45, i64 0, i64 %storemerge181199
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !5
  %263 = icmp ne i64 %.pre, 0
  %264 = and i1 %.0200, %263
  %.not188 = icmp eq i64 %.pre, 0
  br i1 %.not188, label %265, label %270

265:                                              ; preds = %._crit_edge244
  %266 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %266, ptr getelementptr inbounds (i8, ptr @schk4_.io___272, i64 8), align 8, !tbaa !22
  %267 = call i64 @s_wsfe(ptr noundef nonnull @schk4_.io___272) #3
  %268 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %29, i64 noundef 8) #3
  %269 = call i64 @e_wsfe() #3
  %.pre245 = load i64, ptr %29, align 8, !tbaa !5
  br label %270

270:                                              ; preds = %._crit_edge244, %265
  %271 = phi i64 [ %262, %._crit_edge244 ], [ %.pre245, %265 ]
  %272 = add nsw i64 %271, 1
  store i64 %272, ptr %29, align 8, !tbaa !5
  %273 = icmp slt i64 %271, 10
  br i1 %273, label %._crit_edge244, label %274, !llvm.loop !28

274:                                              ; preds = %270
  br i1 %264, label %276, label %275

275:                                              ; preds = %274
  store i64 1, ptr %7, align 8, !tbaa !5
  br label %336

276:                                              ; preds = %274
  br i1 %90, label %.loopexit, label %277

277:                                              ; preds = %276
  %278 = load i64, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %30, align 8, !tbaa !5
  %.not184207 = icmp slt i64 %278, 1
  br i1 %.not184207, label %.loopexit, label %.lr.ph211

.lr.ph211:                                        ; preds = %277, %302
  %279 = phi float [ %300, %302 ], [ %131, %277 ]
  %.0159209 = phi i64 [ %.1, %302 ], [ 1, %277 ]
  %280 = phi i64 [ %303, %302 ], [ 1, %277 ]
  %281 = load i64, ptr %32, align 8
  %reass.sub = sub i64 %281, %280
  %282 = add i64 %reass.sub, 1
  %storemerge185 = select i1 %119, i64 %282, i64 %280
  %.0156 = select i1 %119, i64 %280, i64 1
  store i64 %storemerge185, ptr %36, align 8, !tbaa !5
  switch i8 %99, label %290 [
    i8 84, label %283
    i8 67, label %283
  ]

283:                                              ; preds = %.lr.ph211, %.lr.ph211
  %284 = mul nsw i64 %.0156, %54
  %gep = getelementptr float, ptr %invariant.gep, i64 %284
  %285 = mul nsw i64 %280, %54
  %gep202 = getelementptr float, ptr %invariant.gep, i64 %285
  %286 = getelementptr float, ptr %56, i64 %.0156
  %287 = getelementptr float, ptr %286, i64 %285
  %288 = getelementptr inbounds float, ptr %53, i64 %.0159209
  %289 = call i32 @smmch_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %gep, ptr noundef nonnull %14, ptr noundef %gep202, ptr noundef nonnull %14, ptr noundef nonnull %42, ptr noundef %287, ptr noundef nonnull %14, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %288, ptr noundef nonnull %40, ptr noundef %1, ptr noundef nonnull %41, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %296

290:                                              ; preds = %.lr.ph211
  %gep204 = getelementptr float, ptr %invariant.gep203, i64 %.0156
  %gep206 = getelementptr float, ptr %invariant.gep203, i64 %280
  %291 = mul nsw i64 %280, %54
  %292 = getelementptr float, ptr %56, i64 %.0156
  %293 = getelementptr float, ptr %292, i64 %291
  %294 = getelementptr inbounds float, ptr %53, i64 %.0159209
  %295 = call i32 @smmch_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.10, ptr noundef nonnull %36, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull %44, ptr noundef %gep204, ptr noundef nonnull %14, ptr noundef %gep206, ptr noundef nonnull %14, ptr noundef nonnull %42, ptr noundef %293, ptr noundef nonnull %14, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %294, ptr noundef nonnull %40, ptr noundef %1, ptr noundef nonnull %41, ptr noundef %7, ptr noundef %3, ptr noundef nonnull @c_true, i64 noundef 1, i64 noundef 1)
  br label %296

296:                                              ; preds = %290, %283
  %297 = load i64, ptr %40, align 8, !tbaa !5
  %298 = load float, ptr %41, align 4
  %299 = fcmp oge float %279, %298
  %300 = select i1 %299, float %279, float %298
  store float %300, ptr %48, align 4, !tbaa !9
  %301 = load i64, ptr %7, align 8, !tbaa !5
  %.not186 = icmp eq i64 %301, 0
  br i1 %.not186, label %302, label %328

302:                                              ; preds = %296
  %.1.v = add i64 %.0159209, %123
  %.1 = add i64 %297, %.1.v
  %303 = add nuw nsw i64 %280, 1
  store i64 %303, ptr %30, align 8, !tbaa !5
  %.not184.not = icmp slt i64 %280, %278
  br i1 %.not184.not, label %.lr.ph211, label %.loopexit, !llvm.loop !29

.loopexit:                                        ; preds = %302, %277, %276
  %304 = phi float [ %131, %277 ], [ %131, %276 ], [ %300, %302 ]
  %305 = add nuw i64 %.0160213, 1
  %exitcond238.not = icmp eq i64 %.0160213, %127
  br i1 %exitcond238.not, label %._crit_edge216, label %.lr.ph215, !llvm.loop !30

._crit_edge216:                                   ; preds = %.loopexit, %.lr.ph220.split
  %306 = phi float [ %128, %.lr.ph220.split ], [ %304, %.loopexit ]
  %exitcond239.not = icmp eq i64 %.0161218, %120
  br i1 %exitcond239.not, label %._crit_edge221, label %.lr.ph220.splitthread-pre-split, !llvm.loop !31

._crit_edge221:                                   ; preds = %._crit_edge216, %.lr.ph220.split.us.preheader, %.split
  %307 = phi float [ %115, %.lr.ph220.split.us.preheader ], [ %115, %.split ], [ %306, %._crit_edge216 ]
  %308 = add nuw nsw i64 %.0154223, 1
  %exitcond240.not = icmp eq i64 %308, 3
  br i1 %exitcond240.not, label %.loopexit189, label %.split, !llvm.loop !33

.loopexit189:                                     ; preds = %._crit_edge221, %.split.us.preheader, %106
  %309 = phi float [ %96, %.split.us.preheader ], [ %96, %106 ], [ %307, %._crit_edge221 ]
  %310 = add nuw nsw i64 %.0155225, 1
  %exitcond241.not = icmp eq i64 %310, 4
  br i1 %exitcond241.not, label %311, label %95, !llvm.loop !34

311:                                              ; preds = %.loopexit189
  %312 = add nuw i64 %.0158227, 1
  %exitcond242.not = icmp eq i64 %.0158227, %91
  br i1 %exitcond242.not, label %.loopexit190, label %.lr.ph229, !llvm.loop !35

.loopexit190:                                     ; preds = %311, %88, %85
  %313 = phi float [ %78, %88 ], [ %78, %85 ], [ %309, %311 ]
  %314 = add nuw i64 %.0157231, 1
  %exitcond243.not = icmp eq i64 %.0157231, %59
  br i1 %exitcond243.not, label %._crit_edge234, label %77, !llvm.loop !36

._crit_edge234:                                   ; preds = %.loopexit190, %27
  %315 = phi float [ 0.000000e+00, %27 ], [ %313, %.loopexit190 ]
  %316 = load float, ptr %2, align 4, !tbaa !9
  %317 = fcmp olt float %315, %316
  %318 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %317, label %319, label %323

319:                                              ; preds = %._crit_edge234
  store i64 %318, ptr getelementptr inbounds (i8, ptr @schk4_.io___278, i64 8), align 8, !tbaa !22
  %320 = call i64 @s_wsfe(ptr noundef nonnull @schk4_.io___278) #3
  %321 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %322 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #3
  br label %353

323:                                              ; preds = %._crit_edge234
  store i64 %318, ptr getelementptr inbounds (i8, ptr @schk4_.io___279, i64 8), align 8, !tbaa !22
  %324 = call i64 @s_wsfe(ptr noundef nonnull @schk4_.io___279) #3
  %325 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %326 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #3
  %327 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %48, i64 noundef 4) #3
  br label %353

328:                                              ; preds = %296
  %329 = load i64, ptr %32, align 8, !tbaa !5
  %330 = icmp sgt i64 %329, 1
  br i1 %330, label %331, label %336

331:                                              ; preds = %328
  %332 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %332, ptr getelementptr inbounds (i8, ptr @schk4_.io___280, i64 8), align 8, !tbaa !22
  %333 = call i64 @s_wsfe(ptr noundef nonnull @schk4_.io___280) #3
  %334 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %30, i64 noundef 8) #3
  %335 = call i64 @e_wsfe() #3
  br label %336

336:                                              ; preds = %328, %331, %275, %227
  %337 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %337, ptr getelementptr inbounds (i8, ptr @schk4_.io___281, i64 8), align 8, !tbaa !22
  %338 = call i64 @s_wsfe(ptr noundef nonnull @schk4_.io___281) #3
  %339 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %340 = call i64 @e_wsfe() #3
  %341 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %341, ptr getelementptr inbounds (i8, ptr @schk4_.io___282, i64 8), align 8, !tbaa !22
  %342 = call i64 @s_wsfe(ptr noundef nonnull @schk4_.io___282) #3
  %343 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %35, i64 noundef 8) #3
  %344 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef %0, i64 noundef 6) #3
  %345 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %43, i64 noundef 1) #3
  %346 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %47, i64 noundef 1) #3
  %347 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %32, i64 noundef 8) #3
  %348 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %31, i64 noundef 8) #3
  %349 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %44, i64 noundef 4) #3
  %350 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %38, i64 noundef 8) #3
  %351 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %42, i64 noundef 4) #3
  %352 = call i64 @do_fio(ptr noundef nonnull @c__1, ptr noundef nonnull %40, i64 noundef 8) #3
  br label %353

353:                                              ; preds = %319, %323, %336
  %354 = call i64 @e_wsfe() #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #3
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %45) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #3
  call void @llvm.lifetime.end.p0(i64 4, 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

; 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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"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 = !{!23, !6, i64 8}
!23 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16, !24, i64 24, !6, i64 32}
!24 = !{!"any pointer", !7, i64 0}
!25 = !{!26, !6, i64 0}
!26 = !{!"", !6, i64 0, !6, i64 8}
!27 = !{!26, !6, i64 8}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13, !32}
!32 = !{!"llvm.loop.unswitch.partial.disable"}
!33 = distinct !{!33, !13, !32}
!34 = distinct !{!34, !13}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}


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