; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (stgsyl)

; 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"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@c__2 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__5 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b14 = external hidden global float, align 4
@c__1 = external hidden global i64, align 8
@c_b51 = external hidden global float, align 4
@c_b52 = external hidden global float, align 4

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

149:                                              ; preds = %22
  %150 = load ptr, ptr %24, align 8, !tbaa !5
  %151 = call i64 @lsame_(ptr noundef %150, ptr noundef @.str.1)
  %152 = icmp ne i64 %151, 0
  br i1 %152, label %155, label %153

153:                                              ; preds = %149
  %154 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -1, ptr %154, align 8, !tbaa !9
  br label %170

155:                                              ; preds = %149, %22
  %156 = load i64, ptr %83, align 8, !tbaa !9
  %157 = icmp ne i64 %156, 0
  br i1 %157, label %158, label %169

158:                                              ; preds = %155
  %159 = load ptr, ptr %25, align 8, !tbaa !5
  %160 = load i64, ptr %159, align 8, !tbaa !9
  %161 = icmp slt i64 %160, 0
  br i1 %161, label %166, label %162

162:                                              ; preds = %158
  %163 = load ptr, ptr %25, align 8, !tbaa !5
  %164 = load i64, ptr %163, align 8, !tbaa !9
  %165 = icmp sgt i64 %164, 4
  br i1 %165, label %166, label %168

166:                                              ; preds = %162, %158
  %167 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -2, ptr %167, align 8, !tbaa !9
  br label %168

168:                                              ; preds = %166, %162
  br label %169

169:                                              ; preds = %168, %155
  br label %170

170:                                              ; preds = %169, %153
  %171 = load ptr, ptr %45, align 8, !tbaa !5
  %172 = load i64, ptr %171, align 8, !tbaa !9
  %173 = icmp eq i64 %172, 0
  br i1 %173, label %174, label %284

174:                                              ; preds = %170
  %175 = load ptr, ptr %26, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = icmp sle i64 %176, 0
  br i1 %177, label %178, label %180

178:                                              ; preds = %174
  %179 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -3, ptr %179, align 8, !tbaa !9
  br label %283

180:                                              ; preds = %174
  %181 = load ptr, ptr %27, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = icmp sle i64 %182, 0
  br i1 %183, label %184, label %186

184:                                              ; preds = %180
  %185 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -4, ptr %185, align 8, !tbaa !9
  br label %282

186:                                              ; preds = %180
  %187 = load ptr, ptr %29, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = load ptr, ptr %26, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = icmp sge i64 1, %190
  br i1 %191, label %192, label %193

192:                                              ; preds = %186
  br label %196

193:                                              ; preds = %186
  %194 = load ptr, ptr %26, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  br label %196

196:                                              ; preds = %193, %192
  %197 = phi i64 [ 1, %192 ], [ %195, %193 ]
  %198 = icmp slt i64 %188, %197
  br i1 %198, label %199, label %201

199:                                              ; preds = %196
  %200 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -6, ptr %200, align 8, !tbaa !9
  br label %281

201:                                              ; preds = %196
  %202 = load ptr, ptr %31, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  %204 = load ptr, ptr %27, align 8, !tbaa !5
  %205 = load i64, ptr %204, align 8, !tbaa !9
  %206 = icmp sge i64 1, %205
  br i1 %206, label %207, label %208

207:                                              ; preds = %201
  br label %211

208:                                              ; preds = %201
  %209 = load ptr, ptr %27, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  br label %211

211:                                              ; preds = %208, %207
  %212 = phi i64 [ 1, %207 ], [ %210, %208 ]
  %213 = icmp slt i64 %203, %212
  br i1 %213, label %214, label %216

214:                                              ; preds = %211
  %215 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -8, ptr %215, align 8, !tbaa !9
  br label %280

216:                                              ; preds = %211
  %217 = load ptr, ptr %33, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = load ptr, ptr %26, align 8, !tbaa !5
  %220 = load i64, ptr %219, align 8, !tbaa !9
  %221 = icmp sge i64 1, %220
  br i1 %221, label %222, label %223

222:                                              ; preds = %216
  br label %226

223:                                              ; preds = %216
  %224 = load ptr, ptr %26, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  br label %226

226:                                              ; preds = %223, %222
  %227 = phi i64 [ 1, %222 ], [ %225, %223 ]
  %228 = icmp slt i64 %218, %227
  br i1 %228, label %229, label %231

229:                                              ; preds = %226
  %230 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -10, ptr %230, align 8, !tbaa !9
  br label %279

231:                                              ; preds = %226
  %232 = load ptr, ptr %35, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  %234 = load ptr, ptr %26, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  %236 = icmp sge i64 1, %235
  br i1 %236, label %237, label %238

237:                                              ; preds = %231
  br label %241

238:                                              ; preds = %231
  %239 = load ptr, ptr %26, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  br label %241

241:                                              ; preds = %238, %237
  %242 = phi i64 [ 1, %237 ], [ %240, %238 ]
  %243 = icmp slt i64 %233, %242
  br i1 %243, label %244, label %246

244:                                              ; preds = %241
  %245 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -12, ptr %245, align 8, !tbaa !9
  br label %278

246:                                              ; preds = %241
  %247 = load ptr, ptr %37, align 8, !tbaa !5
  %248 = load i64, ptr %247, align 8, !tbaa !9
  %249 = load ptr, ptr %27, align 8, !tbaa !5
  %250 = load i64, ptr %249, align 8, !tbaa !9
  %251 = icmp sge i64 1, %250
  br i1 %251, label %252, label %253

252:                                              ; preds = %246
  br label %256

253:                                              ; preds = %246
  %254 = load ptr, ptr %27, align 8, !tbaa !5
  %255 = load i64, ptr %254, align 8, !tbaa !9
  br label %256

256:                                              ; preds = %253, %252
  %257 = phi i64 [ 1, %252 ], [ %255, %253 ]
  %258 = icmp slt i64 %248, %257
  br i1 %258, label %259, label %261

259:                                              ; preds = %256
  %260 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -14, ptr %260, align 8, !tbaa !9
  br label %277

261:                                              ; preds = %256
  %262 = load ptr, ptr %39, align 8, !tbaa !5
  %263 = load i64, ptr %262, align 8, !tbaa !9
  %264 = load ptr, ptr %26, align 8, !tbaa !5
  %265 = load i64, ptr %264, align 8, !tbaa !9
  %266 = icmp sge i64 1, %265
  br i1 %266, label %267, label %268

267:                                              ; preds = %261
  br label %271

268:                                              ; preds = %261
  %269 = load ptr, ptr %26, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  br label %271

271:                                              ; preds = %268, %267
  %272 = phi i64 [ 1, %267 ], [ %270, %268 ]
  %273 = icmp slt i64 %263, %272
  br i1 %273, label %274, label %276

274:                                              ; preds = %271
  %275 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -16, ptr %275, align 8, !tbaa !9
  br label %276

276:                                              ; preds = %274, %271
  br label %277

277:                                              ; preds = %276, %259
  br label %278

278:                                              ; preds = %277, %244
  br label %279

279:                                              ; preds = %278, %229
  br label %280

280:                                              ; preds = %279, %214
  br label %281

281:                                              ; preds = %280, %199
  br label %282

282:                                              ; preds = %281, %184
  br label %283

283:                                              ; preds = %282, %178
  br label %284

284:                                              ; preds = %283, %170
  %285 = load ptr, ptr %45, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  %287 = icmp eq i64 %286, 0
  br i1 %287, label %288, label %333

288:                                              ; preds = %284
  %289 = load i64, ptr %83, align 8, !tbaa !9
  %290 = icmp ne i64 %289, 0
  br i1 %290, label %291, label %317

291:                                              ; preds = %288
  %292 = load ptr, ptr %25, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  %294 = icmp eq i64 %293, 1
  br i1 %294, label %299, label %295

295:                                              ; preds = %291
  %296 = load ptr, ptr %25, align 8, !tbaa !5
  %297 = load i64, ptr %296, align 8, !tbaa !9
  %298 = icmp eq i64 %297, 2
  br i1 %298, label %299, label %315

299:                                              ; preds = %295, %291
  store i64 1, ptr %58, align 8, !tbaa !9
  %300 = load ptr, ptr %26, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  %302 = shl i64 %301, 1
  %303 = load ptr, ptr %27, align 8, !tbaa !5
  %304 = load i64, ptr %303, align 8, !tbaa !9
  %305 = mul nsw i64 %302, %304
  store i64 %305, ptr %59, align 8, !tbaa !9
  %306 = load i64, ptr %58, align 8, !tbaa !9
  %307 = load i64, ptr %59, align 8, !tbaa !9
  %308 = icmp sge i64 %306, %307
  br i1 %308, label %309, label %311

309:                                              ; preds = %299
  %310 = load i64, ptr %58, align 8, !tbaa !9
  br label %313

311:                                              ; preds = %299
  %312 = load i64, ptr %59, align 8, !tbaa !9
  br label %313

313:                                              ; preds = %311, %309
  %314 = phi i64 [ %310, %309 ], [ %312, %311 ]
  store i64 %314, ptr %78, align 8, !tbaa !9
  br label %316

315:                                              ; preds = %295
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %316

316:                                              ; preds = %315, %313
  br label %318

317:                                              ; preds = %288
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %318

318:                                              ; preds = %317, %316
  %319 = load i64, ptr %78, align 8, !tbaa !9
  %320 = sitofp i64 %319 to float
  %321 = load ptr, ptr %42, align 8, !tbaa !5
  %322 = getelementptr inbounds float, ptr %321, i64 1
  store float %320, ptr %322, align 4, !tbaa !11
  %323 = load ptr, ptr %43, align 8, !tbaa !5
  %324 = load i64, ptr %323, align 8, !tbaa !9
  %325 = load i64, ptr %78, align 8, !tbaa !9
  %326 = icmp slt i64 %324, %325
  br i1 %326, label %327, label %332

327:                                              ; preds = %318
  %328 = load i64, ptr %85, align 8, !tbaa !9
  %329 = icmp ne i64 %328, 0
  br i1 %329, label %332, label %330

330:                                              ; preds = %327
  %331 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -20, ptr %331, align 8, !tbaa !9
  br label %332

332:                                              ; preds = %330, %327, %318
  br label %333

333:                                              ; preds = %332, %284
  %334 = load ptr, ptr %45, align 8, !tbaa !5
  %335 = load i64, ptr %334, align 8, !tbaa !9
  %336 = icmp ne i64 %335, 0
  br i1 %336, label %337, label %342

337:                                              ; preds = %333
  %338 = load ptr, ptr %45, align 8, !tbaa !5
  %339 = load i64, ptr %338, align 8, !tbaa !9
  %340 = sub nsw i64 0, %339
  store i64 %340, ptr %58, align 8, !tbaa !9
  %341 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %58)
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1605

342:                                              ; preds = %333
  %343 = load i64, ptr %85, align 8, !tbaa !9
  %344 = icmp ne i64 %343, 0
  br i1 %344, label %345, label %346

345:                                              ; preds = %342
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1605

346:                                              ; preds = %342
  br label %347

347:                                              ; preds = %346
  %348 = load ptr, ptr %26, align 8, !tbaa !5
  %349 = load i64, ptr %348, align 8, !tbaa !9
  %350 = icmp eq i64 %349, 0
  br i1 %350, label %355, label %351

351:                                              ; preds = %347
  %352 = load ptr, ptr %27, align 8, !tbaa !5
  %353 = load i64, ptr %352, align 8, !tbaa !9
  %354 = icmp eq i64 %353, 0
  br i1 %354, label %355, label %367

355:                                              ; preds = %351, %347
  %356 = load ptr, ptr %40, align 8, !tbaa !5
  store float 1.000000e+00, ptr %356, align 4, !tbaa !11
  %357 = load i64, ptr %83, align 8, !tbaa !9
  %358 = icmp ne i64 %357, 0
  br i1 %358, label %359, label %366

359:                                              ; preds = %355
  %360 = load ptr, ptr %25, align 8, !tbaa !5
  %361 = load i64, ptr %360, align 8, !tbaa !9
  %362 = icmp ne i64 %361, 0
  br i1 %362, label %363, label %365

363:                                              ; preds = %359
  %364 = load ptr, ptr %41, align 8, !tbaa !5
  store float 0.000000e+00, ptr %364, align 4, !tbaa !11
  br label %365

365:                                              ; preds = %363, %359
  br label %366

366:                                              ; preds = %365, %355
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1605

367:                                              ; preds = %351
  %368 = load ptr, ptr %24, align 8, !tbaa !5
  %369 = load ptr, ptr %26, align 8, !tbaa !5
  %370 = load ptr, ptr %27, align 8, !tbaa !5
  %371 = call i64 @ilaenv_(ptr noundef @c__2, ptr noundef @.str.2, ptr noundef %368, ptr noundef %369, ptr noundef %370, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %371, ptr %69, align 8, !tbaa !9
  %372 = load ptr, ptr %24, align 8, !tbaa !5
  %373 = load ptr, ptr %26, align 8, !tbaa !5
  %374 = load ptr, ptr %27, align 8, !tbaa !5
  %375 = call i64 @ilaenv_(ptr noundef @c__5, ptr noundef @.str.2, ptr noundef %372, ptr noundef %373, ptr noundef %374, ptr noundef @c_n1, ptr noundef @c_n1)
  store i64 %375, ptr %70, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  store i64 0, ptr %76, align 8, !tbaa !9
  %376 = load i64, ptr %83, align 8, !tbaa !9
  %377 = icmp ne i64 %376, 0
  br i1 %377, label %378, label %410

378:                                              ; preds = %367
  %379 = load ptr, ptr %25, align 8, !tbaa !5
  %380 = load i64, ptr %379, align 8, !tbaa !9
  %381 = icmp sge i64 %380, 3
  br i1 %381, label %382, label %400

382:                                              ; preds = %378
  %383 = load ptr, ptr %25, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  %385 = sub nsw i64 %384, 2
  store i64 %385, ptr %76, align 8, !tbaa !9
  %386 = load ptr, ptr %26, align 8, !tbaa !5
  %387 = load ptr, ptr %27, align 8, !tbaa !5
  %388 = load ptr, ptr %32, align 8, !tbaa !5
  %389 = load i64, ptr %51, align 8, !tbaa !9
  %390 = getelementptr inbounds float, ptr %388, i64 %389
  %391 = load ptr, ptr %33, align 8, !tbaa !5
  %392 = call i32 @slaset_(ptr noundef @.str.3, ptr noundef %386, ptr noundef %387, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %390, ptr noundef %391)
  %393 = load ptr, ptr %26, align 8, !tbaa !5
  %394 = load ptr, ptr %27, align 8, !tbaa !5
  %395 = load ptr, ptr %38, align 8, !tbaa !5
  %396 = load i64, ptr %57, align 8, !tbaa !9
  %397 = getelementptr inbounds float, ptr %395, i64 %396
  %398 = load ptr, ptr %39, align 8, !tbaa !5
  %399 = call i32 @slaset_(ptr noundef @.str.3, ptr noundef %393, ptr noundef %394, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %397, ptr noundef %398)
  br label %409

400:                                              ; preds = %378
  %401 = load ptr, ptr %25, align 8, !tbaa !5
  %402 = load i64, ptr %401, align 8, !tbaa !9
  %403 = icmp sge i64 %402, 1
  br i1 %403, label %404, label %408

404:                                              ; preds = %400
  %405 = load i64, ptr %83, align 8, !tbaa !9
  %406 = icmp ne i64 %405, 0
  br i1 %406, label %407, label %408

407:                                              ; preds = %404
  store i64 2, ptr %84, align 8, !tbaa !9
  br label %408

408:                                              ; preds = %407, %404, %400
  br label %409

409:                                              ; preds = %408, %382
  br label %410

410:                                              ; preds = %409, %367
  %411 = load i64, ptr %69, align 8, !tbaa !9
  %412 = icmp sle i64 %411, 1
  br i1 %412, label %413, label %416

413:                                              ; preds = %410
  %414 = load i64, ptr %70, align 8, !tbaa !9
  %415 = icmp sle i64 %414, 1
  br i1 %415, label %426, label %416

416:                                              ; preds = %413, %410
  %417 = load i64, ptr %69, align 8, !tbaa !9
  %418 = load ptr, ptr %26, align 8, !tbaa !5
  %419 = load i64, ptr %418, align 8, !tbaa !9
  %420 = icmp sge i64 %417, %419
  br i1 %420, label %421, label %605

421:                                              ; preds = %416
  %422 = load i64, ptr %70, align 8, !tbaa !9
  %423 = load ptr, ptr %27, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  %425 = icmp sge i64 %422, %424
  br i1 %425, label %426, label %605

426:                                              ; preds = %421, %413
  %427 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %427, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %428

428:                                              ; preds = %601, %426
  %429 = load i64, ptr %82, align 8, !tbaa !9
  %430 = load i64, ptr %58, align 8, !tbaa !9
  %431 = icmp sle i64 %429, %430
  br i1 %431, label %432, label %604

432:                                              ; preds = %428
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  store float 1.000000e+00, ptr %74, align 4, !tbaa !11
  store i64 0, ptr %73, align 8, !tbaa !9
  %433 = load ptr, ptr %24, align 8, !tbaa !5
  %434 = load ptr, ptr %26, align 8, !tbaa !5
  %435 = load ptr, ptr %27, align 8, !tbaa !5
  %436 = load ptr, ptr %28, align 8, !tbaa !5
  %437 = load i64, ptr %47, align 8, !tbaa !9
  %438 = getelementptr inbounds float, ptr %436, i64 %437
  %439 = load ptr, ptr %29, align 8, !tbaa !5
  %440 = load ptr, ptr %30, align 8, !tbaa !5
  %441 = load i64, ptr %49, align 8, !tbaa !9
  %442 = getelementptr inbounds float, ptr %440, i64 %441
  %443 = load ptr, ptr %31, align 8, !tbaa !5
  %444 = load ptr, ptr %32, align 8, !tbaa !5
  %445 = load i64, ptr %51, align 8, !tbaa !9
  %446 = getelementptr inbounds float, ptr %444, i64 %445
  %447 = load ptr, ptr %33, align 8, !tbaa !5
  %448 = load ptr, ptr %34, align 8, !tbaa !5
  %449 = load i64, ptr %53, align 8, !tbaa !9
  %450 = getelementptr inbounds float, ptr %448, i64 %449
  %451 = load ptr, ptr %35, align 8, !tbaa !5
  %452 = load ptr, ptr %36, align 8, !tbaa !5
  %453 = load i64, ptr %55, align 8, !tbaa !9
  %454 = getelementptr inbounds float, ptr %452, i64 %453
  %455 = load ptr, ptr %37, align 8, !tbaa !5
  %456 = load ptr, ptr %38, align 8, !tbaa !5
  %457 = load i64, ptr %57, align 8, !tbaa !9
  %458 = getelementptr inbounds float, ptr %456, i64 %457
  %459 = load ptr, ptr %39, align 8, !tbaa !5
  %460 = load ptr, ptr %40, align 8, !tbaa !5
  %461 = load ptr, ptr %44, align 8, !tbaa !5
  %462 = getelementptr inbounds i64, ptr %461, i64 1
  %463 = load ptr, ptr %45, align 8, !tbaa !5
  %464 = call i32 @stgsy2_(ptr noundef %433, ptr noundef %76, ptr noundef %434, ptr noundef %435, ptr noundef %438, ptr noundef %439, ptr noundef %442, ptr noundef %443, ptr noundef %446, ptr noundef %447, ptr noundef %450, ptr noundef %451, ptr noundef %454, ptr noundef %455, ptr noundef %458, ptr noundef %459, ptr noundef %460, ptr noundef %74, ptr noundef %80, ptr noundef %462, ptr noundef %73, ptr noundef %463)
  %465 = load float, ptr %80, align 4, !tbaa !11
  %466 = fcmp une float %465, 0.000000e+00
  br i1 %466, label %467, label %509

467:                                              ; preds = %432
  %468 = load ptr, ptr %25, align 8, !tbaa !5
  %469 = load i64, ptr %468, align 8, !tbaa !9
  %470 = icmp eq i64 %469, 1
  br i1 %470, label %475, label %471

471:                                              ; preds = %467
  %472 = load ptr, ptr %25, align 8, !tbaa !5
  %473 = load i64, ptr %472, align 8, !tbaa !9
  %474 = icmp eq i64 %473, 3
  br i1 %474, label %475, label %494

475:                                              ; preds = %471, %467
  %476 = load ptr, ptr %26, align 8, !tbaa !5
  %477 = load i64, ptr %476, align 8, !tbaa !9
  %478 = shl i64 %477, 1
  %479 = load ptr, ptr %27, align 8, !tbaa !5
  %480 = load i64, ptr %479, align 8, !tbaa !9
  %481 = mul nsw i64 %478, %480
  %482 = sitofp i64 %481 to float
  %483 = fpext float %482 to double
  %484 = call double @sqrt(double noundef %483) #4
  %485 = load float, ptr %80, align 4, !tbaa !11
  %486 = fpext float %485 to double
  %487 = load float, ptr %74, align 4, !tbaa !11
  %488 = fpext float %487 to double
  %489 = call double @sqrt(double noundef %488) #4
  %490 = fmul double %486, %489
  %491 = fdiv double %484, %490
  %492 = fptrunc double %491 to float
  %493 = load ptr, ptr %41, align 8, !tbaa !5
  store float %492, ptr %493, align 4, !tbaa !11
  br label %508

494:                                              ; preds = %471
  %495 = load i64, ptr %73, align 8, !tbaa !9
  %496 = sitofp i64 %495 to float
  %497 = fpext float %496 to double
  %498 = call double @sqrt(double noundef %497) #4
  %499 = load float, ptr %80, align 4, !tbaa !11
  %500 = fpext float %499 to double
  %501 = load float, ptr %74, align 4, !tbaa !11
  %502 = fpext float %501 to double
  %503 = call double @sqrt(double noundef %502) #4
  %504 = fmul double %500, %503
  %505 = fdiv double %498, %504
  %506 = fptrunc double %505 to float
  %507 = load ptr, ptr %41, align 8, !tbaa !5
  store float %506, ptr %507, align 4, !tbaa !11
  br label %508

508:                                              ; preds = %494, %475
  br label %509

509:                                              ; preds = %508, %432
  %510 = load i64, ptr %84, align 8, !tbaa !9
  %511 = icmp eq i64 %510, 2
  br i1 %511, label %512, label %564

512:                                              ; preds = %509
  %513 = load i64, ptr %82, align 8, !tbaa !9
  %514 = icmp eq i64 %513, 1
  br i1 %514, label %515, label %564

515:                                              ; preds = %512
  %516 = load i64, ptr %83, align 8, !tbaa !9
  %517 = icmp ne i64 %516, 0
  br i1 %517, label %518, label %521

518:                                              ; preds = %515
  %519 = load ptr, ptr %25, align 8, !tbaa !5
  %520 = load i64, ptr %519, align 8, !tbaa !9
  store i64 %520, ptr %76, align 8, !tbaa !9
  br label %521

521:                                              ; preds = %518, %515
  %522 = load ptr, ptr %40, align 8, !tbaa !5
  %523 = load float, ptr %522, align 4, !tbaa !11
  store float %523, ptr %79, align 4, !tbaa !11
  %524 = load ptr, ptr %26, align 8, !tbaa !5
  %525 = load ptr, ptr %27, align 8, !tbaa !5
  %526 = load ptr, ptr %32, align 8, !tbaa !5
  %527 = load i64, ptr %51, align 8, !tbaa !9
  %528 = getelementptr inbounds float, ptr %526, i64 %527
  %529 = load ptr, ptr %33, align 8, !tbaa !5
  %530 = load ptr, ptr %42, align 8, !tbaa !5
  %531 = getelementptr inbounds float, ptr %530, i64 1
  %532 = load ptr, ptr %26, align 8, !tbaa !5
  %533 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %524, ptr noundef %525, ptr noundef %528, ptr noundef %529, ptr noundef %531, ptr noundef %532)
  %534 = load ptr, ptr %26, align 8, !tbaa !5
  %535 = load ptr, ptr %27, align 8, !tbaa !5
  %536 = load ptr, ptr %38, align 8, !tbaa !5
  %537 = load i64, ptr %57, align 8, !tbaa !9
  %538 = getelementptr inbounds float, ptr %536, i64 %537
  %539 = load ptr, ptr %39, align 8, !tbaa !5
  %540 = load ptr, ptr %42, align 8, !tbaa !5
  %541 = load ptr, ptr %26, align 8, !tbaa !5
  %542 = load i64, ptr %541, align 8, !tbaa !9
  %543 = load ptr, ptr %27, align 8, !tbaa !5
  %544 = load i64, ptr %543, align 8, !tbaa !9
  %545 = mul nsw i64 %542, %544
  %546 = add nsw i64 %545, 1
  %547 = getelementptr inbounds float, ptr %540, i64 %546
  %548 = load ptr, ptr %26, align 8, !tbaa !5
  %549 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %534, ptr noundef %535, ptr noundef %538, ptr noundef %539, ptr noundef %547, ptr noundef %548)
  %550 = load ptr, ptr %26, align 8, !tbaa !5
  %551 = load ptr, ptr %27, align 8, !tbaa !5
  %552 = load ptr, ptr %32, align 8, !tbaa !5
  %553 = load i64, ptr %51, align 8, !tbaa !9
  %554 = getelementptr inbounds float, ptr %552, i64 %553
  %555 = load ptr, ptr %33, align 8, !tbaa !5
  %556 = call i32 @slaset_(ptr noundef @.str.3, ptr noundef %550, ptr noundef %551, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %554, ptr noundef %555)
  %557 = load ptr, ptr %26, align 8, !tbaa !5
  %558 = load ptr, ptr %27, align 8, !tbaa !5
  %559 = load ptr, ptr %38, align 8, !tbaa !5
  %560 = load i64, ptr %57, align 8, !tbaa !9
  %561 = getelementptr inbounds float, ptr %559, i64 %560
  %562 = load ptr, ptr %39, align 8, !tbaa !5
  %563 = call i32 @slaset_(ptr noundef @.str.3, ptr noundef %557, ptr noundef %558, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %561, ptr noundef %562)
  br label %600

564:                                              ; preds = %512, %509
  %565 = load i64, ptr %84, align 8, !tbaa !9
  %566 = icmp eq i64 %565, 2
  br i1 %566, label %567, label %599

567:                                              ; preds = %564
  %568 = load i64, ptr %82, align 8, !tbaa !9
  %569 = icmp eq i64 %568, 2
  br i1 %569, label %570, label %599

570:                                              ; preds = %567
  %571 = load ptr, ptr %26, align 8, !tbaa !5
  %572 = load ptr, ptr %27, align 8, !tbaa !5
  %573 = load ptr, ptr %42, align 8, !tbaa !5
  %574 = getelementptr inbounds float, ptr %573, i64 1
  %575 = load ptr, ptr %26, align 8, !tbaa !5
  %576 = load ptr, ptr %32, align 8, !tbaa !5
  %577 = load i64, ptr %51, align 8, !tbaa !9
  %578 = getelementptr inbounds float, ptr %576, i64 %577
  %579 = load ptr, ptr %33, align 8, !tbaa !5
  %580 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %571, ptr noundef %572, ptr noundef %574, ptr noundef %575, ptr noundef %578, ptr noundef %579)
  %581 = load ptr, ptr %26, align 8, !tbaa !5
  %582 = load ptr, ptr %27, align 8, !tbaa !5
  %583 = load ptr, ptr %42, align 8, !tbaa !5
  %584 = load ptr, ptr %26, align 8, !tbaa !5
  %585 = load i64, ptr %584, align 8, !tbaa !9
  %586 = load ptr, ptr %27, align 8, !tbaa !5
  %587 = load i64, ptr %586, align 8, !tbaa !9
  %588 = mul nsw i64 %585, %587
  %589 = add nsw i64 %588, 1
  %590 = getelementptr inbounds float, ptr %583, i64 %589
  %591 = load ptr, ptr %26, align 8, !tbaa !5
  %592 = load ptr, ptr %38, align 8, !tbaa !5
  %593 = load i64, ptr %57, align 8, !tbaa !9
  %594 = getelementptr inbounds float, ptr %592, i64 %593
  %595 = load ptr, ptr %39, align 8, !tbaa !5
  %596 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %581, ptr noundef %582, ptr noundef %590, ptr noundef %591, ptr noundef %594, ptr noundef %595)
  %597 = load float, ptr %79, align 4, !tbaa !11
  %598 = load ptr, ptr %40, align 8, !tbaa !5
  store float %597, ptr %598, align 4, !tbaa !11
  br label %599

599:                                              ; preds = %570, %567, %564
  br label %600

600:                                              ; preds = %599, %521
  br label %601

601:                                              ; preds = %600
  %602 = load i64, ptr %82, align 8, !tbaa !9
  %603 = add nsw i64 %602, 1
  store i64 %603, ptr %82, align 8, !tbaa !9
  br label %428, !llvm.loop !13

604:                                              ; preds = %428
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1605

605:                                              ; preds = %421, %416
  store i64 0, ptr %65, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %606

606:                                              ; preds = %641, %605
  %607 = load i64, ptr %62, align 8, !tbaa !9
  %608 = load ptr, ptr %26, align 8, !tbaa !5
  %609 = load i64, ptr %608, align 8, !tbaa !9
  %610 = icmp sgt i64 %607, %609
  br i1 %610, label %611, label %612

611:                                              ; preds = %606
  br label %642

612:                                              ; preds = %606
  %613 = load i64, ptr %65, align 8, !tbaa !9
  %614 = add nsw i64 %613, 1
  store i64 %614, ptr %65, align 8, !tbaa !9
  %615 = load i64, ptr %62, align 8, !tbaa !9
  %616 = load ptr, ptr %44, align 8, !tbaa !5
  %617 = load i64, ptr %65, align 8, !tbaa !9
  %618 = getelementptr inbounds i64, ptr %616, i64 %617
  store i64 %615, ptr %618, align 8, !tbaa !9
  %619 = load i64, ptr %69, align 8, !tbaa !9
  %620 = load i64, ptr %62, align 8, !tbaa !9
  %621 = add nsw i64 %620, %619
  store i64 %621, ptr %62, align 8, !tbaa !9
  %622 = load i64, ptr %62, align 8, !tbaa !9
  %623 = load ptr, ptr %26, align 8, !tbaa !5
  %624 = load i64, ptr %623, align 8, !tbaa !9
  %625 = icmp sge i64 %622, %624
  br i1 %625, label %626, label %627

626:                                              ; preds = %612
  br label %642

627:                                              ; preds = %612
  %628 = load ptr, ptr %28, align 8, !tbaa !5
  %629 = load i64, ptr %62, align 8, !tbaa !9
  %630 = load i64, ptr %62, align 8, !tbaa !9
  %631 = sub nsw i64 %630, 1
  %632 = load i64, ptr %46, align 8, !tbaa !9
  %633 = mul nsw i64 %631, %632
  %634 = add nsw i64 %629, %633
  %635 = getelementptr inbounds float, ptr %628, i64 %634
  %636 = load float, ptr %635, align 4, !tbaa !11
  %637 = fcmp une float %636, 0.000000e+00
  br i1 %637, label %638, label %641

638:                                              ; preds = %627
  %639 = load i64, ptr %62, align 8, !tbaa !9
  %640 = add nsw i64 %639, 1
  store i64 %640, ptr %62, align 8, !tbaa !9
  br label %641

641:                                              ; preds = %638, %627
  br label %606

642:                                              ; preds = %626, %611
  %643 = load ptr, ptr %26, align 8, !tbaa !5
  %644 = load i64, ptr %643, align 8, !tbaa !9
  %645 = add nsw i64 %644, 1
  %646 = load ptr, ptr %44, align 8, !tbaa !5
  %647 = load i64, ptr %65, align 8, !tbaa !9
  %648 = add nsw i64 %647, 1
  %649 = getelementptr inbounds i64, ptr %646, i64 %648
  store i64 %645, ptr %649, align 8, !tbaa !9
  %650 = load ptr, ptr %44, align 8, !tbaa !5
  %651 = load i64, ptr %65, align 8, !tbaa !9
  %652 = getelementptr inbounds i64, ptr %650, i64 %651
  %653 = load i64, ptr %652, align 8, !tbaa !9
  %654 = load ptr, ptr %44, align 8, !tbaa !5
  %655 = load i64, ptr %65, align 8, !tbaa !9
  %656 = add nsw i64 %655, 1
  %657 = getelementptr inbounds i64, ptr %654, i64 %656
  %658 = load i64, ptr %657, align 8, !tbaa !9
  %659 = icmp eq i64 %653, %658
  br i1 %659, label %660, label %663

660:                                              ; preds = %642
  %661 = load i64, ptr %65, align 8, !tbaa !9
  %662 = add nsw i64 %661, -1
  store i64 %662, ptr %65, align 8, !tbaa !9
  br label %663

663:                                              ; preds = %660, %642
  %664 = load i64, ptr %65, align 8, !tbaa !9
  %665 = add nsw i64 %664, 1
  store i64 %665, ptr %66, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %666

666:                                              ; preds = %701, %663
  %667 = load i64, ptr %63, align 8, !tbaa !9
  %668 = load ptr, ptr %27, align 8, !tbaa !5
  %669 = load i64, ptr %668, align 8, !tbaa !9
  %670 = icmp sgt i64 %667, %669
  br i1 %670, label %671, label %672

671:                                              ; preds = %666
  br label %702

672:                                              ; preds = %666
  %673 = load i64, ptr %66, align 8, !tbaa !9
  %674 = add nsw i64 %673, 1
  store i64 %674, ptr %66, align 8, !tbaa !9
  %675 = load i64, ptr %63, align 8, !tbaa !9
  %676 = load ptr, ptr %44, align 8, !tbaa !5
  %677 = load i64, ptr %66, align 8, !tbaa !9
  %678 = getelementptr inbounds i64, ptr %676, i64 %677
  store i64 %675, ptr %678, align 8, !tbaa !9
  %679 = load i64, ptr %70, align 8, !tbaa !9
  %680 = load i64, ptr %63, align 8, !tbaa !9
  %681 = add nsw i64 %680, %679
  store i64 %681, ptr %63, align 8, !tbaa !9
  %682 = load i64, ptr %63, align 8, !tbaa !9
  %683 = load ptr, ptr %27, align 8, !tbaa !5
  %684 = load i64, ptr %683, align 8, !tbaa !9
  %685 = icmp sge i64 %682, %684
  br i1 %685, label %686, label %687

686:                                              ; preds = %672
  br label %702

687:                                              ; preds = %672
  %688 = load ptr, ptr %30, align 8, !tbaa !5
  %689 = load i64, ptr %63, align 8, !tbaa !9
  %690 = load i64, ptr %63, align 8, !tbaa !9
  %691 = sub nsw i64 %690, 1
  %692 = load i64, ptr %48, align 8, !tbaa !9
  %693 = mul nsw i64 %691, %692
  %694 = add nsw i64 %689, %693
  %695 = getelementptr inbounds float, ptr %688, i64 %694
  %696 = load float, ptr %695, align 4, !tbaa !11
  %697 = fcmp une float %696, 0.000000e+00
  br i1 %697, label %698, label %701

698:                                              ; preds = %687
  %699 = load i64, ptr %63, align 8, !tbaa !9
  %700 = add nsw i64 %699, 1
  store i64 %700, ptr %63, align 8, !tbaa !9
  br label %701

701:                                              ; preds = %698, %687
  br label %666

702:                                              ; preds = %686, %671
  %703 = load ptr, ptr %27, align 8, !tbaa !5
  %704 = load i64, ptr %703, align 8, !tbaa !9
  %705 = add nsw i64 %704, 1
  %706 = load ptr, ptr %44, align 8, !tbaa !5
  %707 = load i64, ptr %66, align 8, !tbaa !9
  %708 = add nsw i64 %707, 1
  %709 = getelementptr inbounds i64, ptr %706, i64 %708
  store i64 %705, ptr %709, align 8, !tbaa !9
  %710 = load ptr, ptr %44, align 8, !tbaa !5
  %711 = load i64, ptr %66, align 8, !tbaa !9
  %712 = getelementptr inbounds i64, ptr %710, i64 %711
  %713 = load i64, ptr %712, align 8, !tbaa !9
  %714 = load ptr, ptr %44, align 8, !tbaa !5
  %715 = load i64, ptr %66, align 8, !tbaa !9
  %716 = add nsw i64 %715, 1
  %717 = getelementptr inbounds i64, ptr %714, i64 %716
  %718 = load i64, ptr %717, align 8, !tbaa !9
  %719 = icmp eq i64 %713, %718
  br i1 %719, label %720, label %723

720:                                              ; preds = %702
  %721 = load i64, ptr %66, align 8, !tbaa !9
  %722 = add nsw i64 %721, -1
  store i64 %722, ptr %66, align 8, !tbaa !9
  br label %723

723:                                              ; preds = %720, %702
  %724 = load i64, ptr %83, align 8, !tbaa !9
  %725 = icmp ne i64 %724, 0
  br i1 %725, label %726, label %1237

726:                                              ; preds = %723
  %727 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %727, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %728

728:                                              ; preds = %1233, %726
  %729 = load i64, ptr %82, align 8, !tbaa !9
  %730 = load i64, ptr %58, align 8, !tbaa !9
  %731 = icmp sle i64 %729, %730
  br i1 %731, label %732, label %1236

732:                                              ; preds = %728
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  store float 1.000000e+00, ptr %74, align 4, !tbaa !11
  store i64 0, ptr %73, align 8, !tbaa !9
  %733 = load ptr, ptr %40, align 8, !tbaa !5
  store float 1.000000e+00, ptr %733, align 4, !tbaa !11
  %734 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %734, ptr %59, align 8, !tbaa !9
  %735 = load i64, ptr %65, align 8, !tbaa !9
  %736 = add nsw i64 %735, 2
  store i64 %736, ptr %63, align 8, !tbaa !9
  br label %737

737:                                              ; preds = %1093, %732
  %738 = load i64, ptr %63, align 8, !tbaa !9
  %739 = load i64, ptr %59, align 8, !tbaa !9
  %740 = icmp sle i64 %738, %739
  br i1 %740, label %741, label %1096

741:                                              ; preds = %737
  %742 = load ptr, ptr %44, align 8, !tbaa !5
  %743 = load i64, ptr %63, align 8, !tbaa !9
  %744 = getelementptr inbounds i64, ptr %742, i64 %743
  %745 = load i64, ptr %744, align 8, !tbaa !9
  store i64 %745, ptr %72, align 8, !tbaa !9
  %746 = load ptr, ptr %44, align 8, !tbaa !5
  %747 = load i64, ptr %63, align 8, !tbaa !9
  %748 = add nsw i64 %747, 1
  %749 = getelementptr inbounds i64, ptr %746, i64 %748
  %750 = load i64, ptr %749, align 8, !tbaa !9
  %751 = sub nsw i64 %750, 1
  store i64 %751, ptr %68, align 8, !tbaa !9
  %752 = load i64, ptr %68, align 8, !tbaa !9
  %753 = load i64, ptr %72, align 8, !tbaa !9
  %754 = sub nsw i64 %752, %753
  %755 = add nsw i64 %754, 1
  store i64 %755, ptr %70, align 8, !tbaa !9
  %756 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %756, ptr %62, align 8, !tbaa !9
  br label %757

757:                                              ; preds = %1089, %741
  %758 = load i64, ptr %62, align 8, !tbaa !9
  %759 = icmp sge i64 %758, 1
  br i1 %759, label %760, label %1092

760:                                              ; preds = %757
  %761 = load ptr, ptr %44, align 8, !tbaa !5
  %762 = load i64, ptr %62, align 8, !tbaa !9
  %763 = getelementptr inbounds i64, ptr %761, i64 %762
  %764 = load i64, ptr %763, align 8, !tbaa !9
  store i64 %764, ptr %71, align 8, !tbaa !9
  %765 = load ptr, ptr %44, align 8, !tbaa !5
  %766 = load i64, ptr %62, align 8, !tbaa !9
  %767 = add nsw i64 %766, 1
  %768 = getelementptr inbounds i64, ptr %765, i64 %767
  %769 = load i64, ptr %768, align 8, !tbaa !9
  %770 = sub nsw i64 %769, 1
  store i64 %770, ptr %67, align 8, !tbaa !9
  %771 = load i64, ptr %67, align 8, !tbaa !9
  %772 = load i64, ptr %71, align 8, !tbaa !9
  %773 = sub nsw i64 %771, %772
  %774 = add nsw i64 %773, 1
  store i64 %774, ptr %69, align 8, !tbaa !9
  store i64 0, ptr %75, align 8, !tbaa !9
  %775 = load ptr, ptr %24, align 8, !tbaa !5
  %776 = load ptr, ptr %28, align 8, !tbaa !5
  %777 = load i64, ptr %71, align 8, !tbaa !9
  %778 = load i64, ptr %71, align 8, !tbaa !9
  %779 = load i64, ptr %46, align 8, !tbaa !9
  %780 = mul nsw i64 %778, %779
  %781 = add nsw i64 %777, %780
  %782 = getelementptr inbounds float, ptr %776, i64 %781
  %783 = load ptr, ptr %29, align 8, !tbaa !5
  %784 = load ptr, ptr %30, align 8, !tbaa !5
  %785 = load i64, ptr %72, align 8, !tbaa !9
  %786 = load i64, ptr %72, align 8, !tbaa !9
  %787 = load i64, ptr %48, align 8, !tbaa !9
  %788 = mul nsw i64 %786, %787
  %789 = add nsw i64 %785, %788
  %790 = getelementptr inbounds float, ptr %784, i64 %789
  %791 = load ptr, ptr %31, align 8, !tbaa !5
  %792 = load ptr, ptr %32, align 8, !tbaa !5
  %793 = load i64, ptr %71, align 8, !tbaa !9
  %794 = load i64, ptr %72, align 8, !tbaa !9
  %795 = load i64, ptr %50, align 8, !tbaa !9
  %796 = mul nsw i64 %794, %795
  %797 = add nsw i64 %793, %796
  %798 = getelementptr inbounds float, ptr %792, i64 %797
  %799 = load ptr, ptr %33, align 8, !tbaa !5
  %800 = load ptr, ptr %34, align 8, !tbaa !5
  %801 = load i64, ptr %71, align 8, !tbaa !9
  %802 = load i64, ptr %71, align 8, !tbaa !9
  %803 = load i64, ptr %52, align 8, !tbaa !9
  %804 = mul nsw i64 %802, %803
  %805 = add nsw i64 %801, %804
  %806 = getelementptr inbounds float, ptr %800, i64 %805
  %807 = load ptr, ptr %35, align 8, !tbaa !5
  %808 = load ptr, ptr %36, align 8, !tbaa !5
  %809 = load i64, ptr %72, align 8, !tbaa !9
  %810 = load i64, ptr %72, align 8, !tbaa !9
  %811 = load i64, ptr %54, align 8, !tbaa !9
  %812 = mul nsw i64 %810, %811
  %813 = add nsw i64 %809, %812
  %814 = getelementptr inbounds float, ptr %808, i64 %813
  %815 = load ptr, ptr %37, align 8, !tbaa !5
  %816 = load ptr, ptr %38, align 8, !tbaa !5
  %817 = load i64, ptr %71, align 8, !tbaa !9
  %818 = load i64, ptr %72, align 8, !tbaa !9
  %819 = load i64, ptr %56, align 8, !tbaa !9
  %820 = mul nsw i64 %818, %819
  %821 = add nsw i64 %817, %820
  %822 = getelementptr inbounds float, ptr %816, i64 %821
  %823 = load ptr, ptr %39, align 8, !tbaa !5
  %824 = load ptr, ptr %44, align 8, !tbaa !5
  %825 = load i64, ptr %66, align 8, !tbaa !9
  %826 = add nsw i64 %825, 2
  %827 = getelementptr inbounds i64, ptr %824, i64 %826
  %828 = call i32 @stgsy2_(ptr noundef %775, ptr noundef %76, ptr noundef %69, ptr noundef %70, ptr noundef %782, ptr noundef %783, ptr noundef %790, ptr noundef %791, ptr noundef %798, ptr noundef %799, ptr noundef %806, ptr noundef %807, ptr noundef %814, ptr noundef %815, ptr noundef %822, ptr noundef %823, ptr noundef %81, ptr noundef %74, ptr noundef %80, ptr noundef %827, ptr noundef %75, ptr noundef %77)
  %829 = load i64, ptr %77, align 8, !tbaa !9
  %830 = icmp sgt i64 %829, 0
  br i1 %830, label %831, label %834

831:                                              ; preds = %760
  %832 = load i64, ptr %77, align 8, !tbaa !9
  %833 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %832, ptr %833, align 8, !tbaa !9
  br label %834

834:                                              ; preds = %831, %760
  %835 = load i64, ptr %75, align 8, !tbaa !9
  %836 = load i64, ptr %73, align 8, !tbaa !9
  %837 = add nsw i64 %836, %835
  store i64 %837, ptr %73, align 8, !tbaa !9
  %838 = load float, ptr %81, align 4, !tbaa !11
  %839 = fcmp une float %838, 1.000000e+00
  br i1 %839, label %840, label %967

840:                                              ; preds = %834
  %841 = load i64, ptr %72, align 8, !tbaa !9
  %842 = sub nsw i64 %841, 1
  store i64 %842, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %843

843:                                              ; preds = %864, %840
  %844 = load i64, ptr %64, align 8, !tbaa !9
  %845 = load i64, ptr %60, align 8, !tbaa !9
  %846 = icmp sle i64 %844, %845
  br i1 %846, label %847, label %867

847:                                              ; preds = %843
  %848 = load ptr, ptr %26, align 8, !tbaa !5
  %849 = load ptr, ptr %32, align 8, !tbaa !5
  %850 = load i64, ptr %64, align 8, !tbaa !9
  %851 = load i64, ptr %50, align 8, !tbaa !9
  %852 = mul nsw i64 %850, %851
  %853 = add nsw i64 %852, 1
  %854 = getelementptr inbounds float, ptr %849, i64 %853
  %855 = call i32 @f2c_sscal(ptr noundef %848, ptr noundef %81, ptr noundef %854, ptr noundef @c__1)
  %856 = load ptr, ptr %26, align 8, !tbaa !5
  %857 = load ptr, ptr %38, align 8, !tbaa !5
  %858 = load i64, ptr %64, align 8, !tbaa !9
  %859 = load i64, ptr %56, align 8, !tbaa !9
  %860 = mul nsw i64 %858, %859
  %861 = add nsw i64 %860, 1
  %862 = getelementptr inbounds float, ptr %857, i64 %861
  %863 = call i32 @f2c_sscal(ptr noundef %856, ptr noundef %81, ptr noundef %862, ptr noundef @c__1)
  br label %864

864:                                              ; preds = %847
  %865 = load i64, ptr %64, align 8, !tbaa !9
  %866 = add nsw i64 %865, 1
  store i64 %866, ptr %64, align 8, !tbaa !9
  br label %843, !llvm.loop !15

867:                                              ; preds = %843
  %868 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %868, ptr %60, align 8, !tbaa !9
  %869 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %869, ptr %64, align 8, !tbaa !9
  br label %870

870:                                              ; preds = %893, %867
  %871 = load i64, ptr %64, align 8, !tbaa !9
  %872 = load i64, ptr %60, align 8, !tbaa !9
  %873 = icmp sle i64 %871, %872
  br i1 %873, label %874, label %896

874:                                              ; preds = %870
  %875 = load i64, ptr %71, align 8, !tbaa !9
  %876 = sub nsw i64 %875, 1
  store i64 %876, ptr %61, align 8, !tbaa !9
  %877 = load ptr, ptr %32, align 8, !tbaa !5
  %878 = load i64, ptr %64, align 8, !tbaa !9
  %879 = load i64, ptr %50, align 8, !tbaa !9
  %880 = mul nsw i64 %878, %879
  %881 = add nsw i64 %880, 1
  %882 = getelementptr inbounds float, ptr %877, i64 %881
  %883 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %81, ptr noundef %882, ptr noundef @c__1)
  %884 = load i64, ptr %71, align 8, !tbaa !9
  %885 = sub nsw i64 %884, 1
  store i64 %885, ptr %61, align 8, !tbaa !9
  %886 = load ptr, ptr %38, align 8, !tbaa !5
  %887 = load i64, ptr %64, align 8, !tbaa !9
  %888 = load i64, ptr %56, align 8, !tbaa !9
  %889 = mul nsw i64 %887, %888
  %890 = add nsw i64 %889, 1
  %891 = getelementptr inbounds float, ptr %886, i64 %890
  %892 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %81, ptr noundef %891, ptr noundef @c__1)
  br label %893

893:                                              ; preds = %874
  %894 = load i64, ptr %64, align 8, !tbaa !9
  %895 = add nsw i64 %894, 1
  store i64 %895, ptr %64, align 8, !tbaa !9
  br label %870, !llvm.loop !16

896:                                              ; preds = %870
  %897 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %897, ptr %60, align 8, !tbaa !9
  %898 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %898, ptr %64, align 8, !tbaa !9
  br label %899

899:                                              ; preds = %930, %896
  %900 = load i64, ptr %64, align 8, !tbaa !9
  %901 = load i64, ptr %60, align 8, !tbaa !9
  %902 = icmp sle i64 %900, %901
  br i1 %902, label %903, label %933

903:                                              ; preds = %899
  %904 = load ptr, ptr %26, align 8, !tbaa !5
  %905 = load i64, ptr %904, align 8, !tbaa !9
  %906 = load i64, ptr %67, align 8, !tbaa !9
  %907 = sub nsw i64 %905, %906
  store i64 %907, ptr %61, align 8, !tbaa !9
  %908 = load ptr, ptr %32, align 8, !tbaa !5
  %909 = load i64, ptr %67, align 8, !tbaa !9
  %910 = add nsw i64 %909, 1
  %911 = load i64, ptr %64, align 8, !tbaa !9
  %912 = load i64, ptr %50, align 8, !tbaa !9
  %913 = mul nsw i64 %911, %912
  %914 = add nsw i64 %910, %913
  %915 = getelementptr inbounds float, ptr %908, i64 %914
  %916 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %81, ptr noundef %915, ptr noundef @c__1)
  %917 = load ptr, ptr %26, align 8, !tbaa !5
  %918 = load i64, ptr %917, align 8, !tbaa !9
  %919 = load i64, ptr %67, align 8, !tbaa !9
  %920 = sub nsw i64 %918, %919
  store i64 %920, ptr %61, align 8, !tbaa !9
  %921 = load ptr, ptr %38, align 8, !tbaa !5
  %922 = load i64, ptr %67, align 8, !tbaa !9
  %923 = add nsw i64 %922, 1
  %924 = load i64, ptr %64, align 8, !tbaa !9
  %925 = load i64, ptr %56, align 8, !tbaa !9
  %926 = mul nsw i64 %924, %925
  %927 = add nsw i64 %923, %926
  %928 = getelementptr inbounds float, ptr %921, i64 %927
  %929 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %81, ptr noundef %928, ptr noundef @c__1)
  br label %930

930:                                              ; preds = %903
  %931 = load i64, ptr %64, align 8, !tbaa !9
  %932 = add nsw i64 %931, 1
  store i64 %932, ptr %64, align 8, !tbaa !9
  br label %899, !llvm.loop !17

933:                                              ; preds = %899
  %934 = load ptr, ptr %27, align 8, !tbaa !5
  %935 = load i64, ptr %934, align 8, !tbaa !9
  store i64 %935, ptr %60, align 8, !tbaa !9
  %936 = load i64, ptr %68, align 8, !tbaa !9
  %937 = add nsw i64 %936, 1
  store i64 %937, ptr %64, align 8, !tbaa !9
  br label %938

938:                                              ; preds = %959, %933
  %939 = load i64, ptr %64, align 8, !tbaa !9
  %940 = load i64, ptr %60, align 8, !tbaa !9
  %941 = icmp sle i64 %939, %940
  br i1 %941, label %942, label %962

942:                                              ; preds = %938
  %943 = load ptr, ptr %26, align 8, !tbaa !5
  %944 = load ptr, ptr %32, align 8, !tbaa !5
  %945 = load i64, ptr %64, align 8, !tbaa !9
  %946 = load i64, ptr %50, align 8, !tbaa !9
  %947 = mul nsw i64 %945, %946
  %948 = add nsw i64 %947, 1
  %949 = getelementptr inbounds float, ptr %944, i64 %948
  %950 = call i32 @f2c_sscal(ptr noundef %943, ptr noundef %81, ptr noundef %949, ptr noundef @c__1)
  %951 = load ptr, ptr %26, align 8, !tbaa !5
  %952 = load ptr, ptr %38, align 8, !tbaa !5
  %953 = load i64, ptr %64, align 8, !tbaa !9
  %954 = load i64, ptr %56, align 8, !tbaa !9
  %955 = mul nsw i64 %953, %954
  %956 = add nsw i64 %955, 1
  %957 = getelementptr inbounds float, ptr %952, i64 %956
  %958 = call i32 @f2c_sscal(ptr noundef %951, ptr noundef %81, ptr noundef %957, ptr noundef @c__1)
  br label %959

959:                                              ; preds = %942
  %960 = load i64, ptr %64, align 8, !tbaa !9
  %961 = add nsw i64 %960, 1
  store i64 %961, ptr %64, align 8, !tbaa !9
  br label %938, !llvm.loop !18

962:                                              ; preds = %938
  %963 = load float, ptr %81, align 4, !tbaa !11
  %964 = load ptr, ptr %40, align 8, !tbaa !5
  %965 = load float, ptr %964, align 4, !tbaa !11
  %966 = fmul float %965, %963
  store float %966, ptr %964, align 4, !tbaa !11
  br label %967

967:                                              ; preds = %962, %834
  %968 = load i64, ptr %62, align 8, !tbaa !9
  %969 = icmp sgt i64 %968, 1
  br i1 %969, label %970, label %1021

970:                                              ; preds = %967
  %971 = load i64, ptr %71, align 8, !tbaa !9
  %972 = sub nsw i64 %971, 1
  store i64 %972, ptr %60, align 8, !tbaa !9
  %973 = load ptr, ptr %28, align 8, !tbaa !5
  %974 = load i64, ptr %71, align 8, !tbaa !9
  %975 = load i64, ptr %46, align 8, !tbaa !9
  %976 = mul nsw i64 %974, %975
  %977 = add nsw i64 %976, 1
  %978 = getelementptr inbounds float, ptr %973, i64 %977
  %979 = load ptr, ptr %29, align 8, !tbaa !5
  %980 = load ptr, ptr %32, align 8, !tbaa !5
  %981 = load i64, ptr %71, align 8, !tbaa !9
  %982 = load i64, ptr %72, align 8, !tbaa !9
  %983 = load i64, ptr %50, align 8, !tbaa !9
  %984 = mul nsw i64 %982, %983
  %985 = add nsw i64 %981, %984
  %986 = getelementptr inbounds float, ptr %980, i64 %985
  %987 = load ptr, ptr %33, align 8, !tbaa !5
  %988 = load ptr, ptr %32, align 8, !tbaa !5
  %989 = load i64, ptr %72, align 8, !tbaa !9
  %990 = load i64, ptr %50, align 8, !tbaa !9
  %991 = mul nsw i64 %989, %990
  %992 = add nsw i64 %991, 1
  %993 = getelementptr inbounds float, ptr %988, i64 %992
  %994 = load ptr, ptr %33, align 8, !tbaa !5
  %995 = call i32 @f2c_sgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %60, ptr noundef %70, ptr noundef %69, ptr noundef @c_b51, ptr noundef %978, ptr noundef %979, ptr noundef %986, ptr noundef %987, ptr noundef @c_b52, ptr noundef %993, ptr noundef %994)
  %996 = load i64, ptr %71, align 8, !tbaa !9
  %997 = sub nsw i64 %996, 1
  store i64 %997, ptr %60, align 8, !tbaa !9
  %998 = load ptr, ptr %34, align 8, !tbaa !5
  %999 = load i64, ptr %71, align 8, !tbaa !9
  %1000 = load i64, ptr %52, align 8, !tbaa !9
  %1001 = mul nsw i64 %999, %1000
  %1002 = add nsw i64 %1001, 1
  %1003 = getelementptr inbounds float, ptr %998, i64 %1002
  %1004 = load ptr, ptr %35, align 8, !tbaa !5
  %1005 = load ptr, ptr %32, align 8, !tbaa !5
  %1006 = load i64, ptr %71, align 8, !tbaa !9
  %1007 = load i64, ptr %72, align 8, !tbaa !9
  %1008 = load i64, ptr %50, align 8, !tbaa !9
  %1009 = mul nsw i64 %1007, %1008
  %1010 = add nsw i64 %1006, %1009
  %1011 = getelementptr inbounds float, ptr %1005, i64 %1010
  %1012 = load ptr, ptr %33, align 8, !tbaa !5
  %1013 = load ptr, ptr %38, align 8, !tbaa !5
  %1014 = load i64, ptr %72, align 8, !tbaa !9
  %1015 = load i64, ptr %56, align 8, !tbaa !9
  %1016 = mul nsw i64 %1014, %1015
  %1017 = add nsw i64 %1016, 1
  %1018 = getelementptr inbounds float, ptr %1013, i64 %1017
  %1019 = load ptr, ptr %39, align 8, !tbaa !5
  %1020 = call i32 @f2c_sgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %60, ptr noundef %70, ptr noundef %69, ptr noundef @c_b51, ptr noundef %1003, ptr noundef %1004, ptr noundef %1011, ptr noundef %1012, ptr noundef @c_b52, ptr noundef %1018, ptr noundef %1019)
  br label %1021

1021:                                             ; preds = %970, %967
  %1022 = load i64, ptr %63, align 8, !tbaa !9
  %1023 = load i64, ptr %66, align 8, !tbaa !9
  %1024 = icmp slt i64 %1022, %1023
  br i1 %1024, label %1025, label %1088

1025:                                             ; preds = %1021
  %1026 = load ptr, ptr %27, align 8, !tbaa !5
  %1027 = load i64, ptr %1026, align 8, !tbaa !9
  %1028 = load i64, ptr %68, align 8, !tbaa !9
  %1029 = sub nsw i64 %1027, %1028
  store i64 %1029, ptr %60, align 8, !tbaa !9
  %1030 = load ptr, ptr %38, align 8, !tbaa !5
  %1031 = load i64, ptr %71, align 8, !tbaa !9
  %1032 = load i64, ptr %72, align 8, !tbaa !9
  %1033 = load i64, ptr %56, align 8, !tbaa !9
  %1034 = mul nsw i64 %1032, %1033
  %1035 = add nsw i64 %1031, %1034
  %1036 = getelementptr inbounds float, ptr %1030, i64 %1035
  %1037 = load ptr, ptr %39, align 8, !tbaa !5
  %1038 = load ptr, ptr %30, align 8, !tbaa !5
  %1039 = load i64, ptr %72, align 8, !tbaa !9
  %1040 = load i64, ptr %68, align 8, !tbaa !9
  %1041 = add nsw i64 %1040, 1
  %1042 = load i64, ptr %48, align 8, !tbaa !9
  %1043 = mul nsw i64 %1041, %1042
  %1044 = add nsw i64 %1039, %1043
  %1045 = getelementptr inbounds float, ptr %1038, i64 %1044
  %1046 = load ptr, ptr %31, align 8, !tbaa !5
  %1047 = load ptr, ptr %32, align 8, !tbaa !5
  %1048 = load i64, ptr %71, align 8, !tbaa !9
  %1049 = load i64, ptr %68, align 8, !tbaa !9
  %1050 = add nsw i64 %1049, 1
  %1051 = load i64, ptr %50, align 8, !tbaa !9
  %1052 = mul nsw i64 %1050, %1051
  %1053 = add nsw i64 %1048, %1052
  %1054 = getelementptr inbounds float, ptr %1047, i64 %1053
  %1055 = load ptr, ptr %33, align 8, !tbaa !5
  %1056 = call i32 @f2c_sgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %69, ptr noundef %60, ptr noundef %70, ptr noundef @c_b52, ptr noundef %1036, ptr noundef %1037, ptr noundef %1045, ptr noundef %1046, ptr noundef @c_b52, ptr noundef %1054, ptr noundef %1055)
  %1057 = load ptr, ptr %27, align 8, !tbaa !5
  %1058 = load i64, ptr %1057, align 8, !tbaa !9
  %1059 = load i64, ptr %68, align 8, !tbaa !9
  %1060 = sub nsw i64 %1058, %1059
  store i64 %1060, ptr %60, align 8, !tbaa !9
  %1061 = load ptr, ptr %38, align 8, !tbaa !5
  %1062 = load i64, ptr %71, align 8, !tbaa !9
  %1063 = load i64, ptr %72, align 8, !tbaa !9
  %1064 = load i64, ptr %56, align 8, !tbaa !9
  %1065 = mul nsw i64 %1063, %1064
  %1066 = add nsw i64 %1062, %1065
  %1067 = getelementptr inbounds float, ptr %1061, i64 %1066
  %1068 = load ptr, ptr %39, align 8, !tbaa !5
  %1069 = load ptr, ptr %36, align 8, !tbaa !5
  %1070 = load i64, ptr %72, align 8, !tbaa !9
  %1071 = load i64, ptr %68, align 8, !tbaa !9
  %1072 = add nsw i64 %1071, 1
  %1073 = load i64, ptr %54, align 8, !tbaa !9
  %1074 = mul nsw i64 %1072, %1073
  %1075 = add nsw i64 %1070, %1074
  %1076 = getelementptr inbounds float, ptr %1069, i64 %1075
  %1077 = load ptr, ptr %37, align 8, !tbaa !5
  %1078 = load ptr, ptr %38, align 8, !tbaa !5
  %1079 = load i64, ptr %71, align 8, !tbaa !9
  %1080 = load i64, ptr %68, align 8, !tbaa !9
  %1081 = add nsw i64 %1080, 1
  %1082 = load i64, ptr %56, align 8, !tbaa !9
  %1083 = mul nsw i64 %1081, %1082
  %1084 = add nsw i64 %1079, %1083
  %1085 = getelementptr inbounds float, ptr %1078, i64 %1084
  %1086 = load ptr, ptr %39, align 8, !tbaa !5
  %1087 = call i32 @f2c_sgemm(ptr noundef @.str, ptr noundef @.str, ptr noundef %69, ptr noundef %60, ptr noundef %70, ptr noundef @c_b52, ptr noundef %1067, ptr noundef %1068, ptr noundef %1076, ptr noundef %1077, ptr noundef @c_b52, ptr noundef %1085, ptr noundef %1086)
  br label %1088

1088:                                             ; preds = %1025, %1021
  br label %1089

1089:                                             ; preds = %1088
  %1090 = load i64, ptr %62, align 8, !tbaa !9
  %1091 = add nsw i64 %1090, -1
  store i64 %1091, ptr %62, align 8, !tbaa !9
  br label %757, !llvm.loop !19

1092:                                             ; preds = %757
  br label %1093

1093:                                             ; preds = %1092
  %1094 = load i64, ptr %63, align 8, !tbaa !9
  %1095 = add nsw i64 %1094, 1
  store i64 %1095, ptr %63, align 8, !tbaa !9
  br label %737, !llvm.loop !20

1096:                                             ; preds = %737
  %1097 = load float, ptr %80, align 4, !tbaa !11
  %1098 = fcmp une float %1097, 0.000000e+00
  br i1 %1098, label %1099, label %1141

1099:                                             ; preds = %1096
  %1100 = load ptr, ptr %25, align 8, !tbaa !5
  %1101 = load i64, ptr %1100, align 8, !tbaa !9
  %1102 = icmp eq i64 %1101, 1
  br i1 %1102, label %1107, label %1103

1103:                                             ; preds = %1099
  %1104 = load ptr, ptr %25, align 8, !tbaa !5
  %1105 = load i64, ptr %1104, align 8, !tbaa !9
  %1106 = icmp eq i64 %1105, 3
  br i1 %1106, label %1107, label %1126

1107:                                             ; preds = %1103, %1099
  %1108 = load ptr, ptr %26, align 8, !tbaa !5
  %1109 = load i64, ptr %1108, align 8, !tbaa !9
  %1110 = shl i64 %1109, 1
  %1111 = load ptr, ptr %27, align 8, !tbaa !5
  %1112 = load i64, ptr %1111, align 8, !tbaa !9
  %1113 = mul nsw i64 %1110, %1112
  %1114 = sitofp i64 %1113 to float
  %1115 = fpext float %1114 to double
  %1116 = call double @sqrt(double noundef %1115) #4
  %1117 = load float, ptr %80, align 4, !tbaa !11
  %1118 = fpext float %1117 to double
  %1119 = load float, ptr %74, align 4, !tbaa !11
  %1120 = fpext float %1119 to double
  %1121 = call double @sqrt(double noundef %1120) #4
  %1122 = fmul double %1118, %1121
  %1123 = fdiv double %1116, %1122
  %1124 = fptrunc double %1123 to float
  %1125 = load ptr, ptr %41, align 8, !tbaa !5
  store float %1124, ptr %1125, align 4, !tbaa !11
  br label %1140

1126:                                             ; preds = %1103
  %1127 = load i64, ptr %73, align 8, !tbaa !9
  %1128 = sitofp i64 %1127 to float
  %1129 = fpext float %1128 to double
  %1130 = call double @sqrt(double noundef %1129) #4
  %1131 = load float, ptr %80, align 4, !tbaa !11
  %1132 = fpext float %1131 to double
  %1133 = load float, ptr %74, align 4, !tbaa !11
  %1134 = fpext float %1133 to double
  %1135 = call double @sqrt(double noundef %1134) #4
  %1136 = fmul double %1132, %1135
  %1137 = fdiv double %1130, %1136
  %1138 = fptrunc double %1137 to float
  %1139 = load ptr, ptr %41, align 8, !tbaa !5
  store float %1138, ptr %1139, align 4, !tbaa !11
  br label %1140

1140:                                             ; preds = %1126, %1107
  br label %1141

1141:                                             ; preds = %1140, %1096
  %1142 = load i64, ptr %84, align 8, !tbaa !9
  %1143 = icmp eq i64 %1142, 2
  br i1 %1143, label %1144, label %1196

1144:                                             ; preds = %1141
  %1145 = load i64, ptr %82, align 8, !tbaa !9
  %1146 = icmp eq i64 %1145, 1
  br i1 %1146, label %1147, label %1196

1147:                                             ; preds = %1144
  %1148 = load i64, ptr %83, align 8, !tbaa !9
  %1149 = icmp ne i64 %1148, 0
  br i1 %1149, label %1150, label %1153

1150:                                             ; preds = %1147
  %1151 = load ptr, ptr %25, align 8, !tbaa !5
  %1152 = load i64, ptr %1151, align 8, !tbaa !9
  store i64 %1152, ptr %76, align 8, !tbaa !9
  br label %1153

1153:                                             ; preds = %1150, %1147
  %1154 = load ptr, ptr %40, align 8, !tbaa !5
  %1155 = load float, ptr %1154, align 4, !tbaa !11
  store float %1155, ptr %79, align 4, !tbaa !11
  %1156 = load ptr, ptr %26, align 8, !tbaa !5
  %1157 = load ptr, ptr %27, align 8, !tbaa !5
  %1158 = load ptr, ptr %32, align 8, !tbaa !5
  %1159 = load i64, ptr %51, align 8, !tbaa !9
  %1160 = getelementptr inbounds float, ptr %1158, i64 %1159
  %1161 = load ptr, ptr %33, align 8, !tbaa !5
  %1162 = load ptr, ptr %42, align 8, !tbaa !5
  %1163 = getelementptr inbounds float, ptr %1162, i64 1
  %1164 = load ptr, ptr %26, align 8, !tbaa !5
  %1165 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %1156, ptr noundef %1157, ptr noundef %1160, ptr noundef %1161, ptr noundef %1163, ptr noundef %1164)
  %1166 = load ptr, ptr %26, align 8, !tbaa !5
  %1167 = load ptr, ptr %27, align 8, !tbaa !5
  %1168 = load ptr, ptr %38, align 8, !tbaa !5
  %1169 = load i64, ptr %57, align 8, !tbaa !9
  %1170 = getelementptr inbounds float, ptr %1168, i64 %1169
  %1171 = load ptr, ptr %39, align 8, !tbaa !5
  %1172 = load ptr, ptr %42, align 8, !tbaa !5
  %1173 = load ptr, ptr %26, align 8, !tbaa !5
  %1174 = load i64, ptr %1173, align 8, !tbaa !9
  %1175 = load ptr, ptr %27, align 8, !tbaa !5
  %1176 = load i64, ptr %1175, align 8, !tbaa !9
  %1177 = mul nsw i64 %1174, %1176
  %1178 = add nsw i64 %1177, 1
  %1179 = getelementptr inbounds float, ptr %1172, i64 %1178
  %1180 = load ptr, ptr %26, align 8, !tbaa !5
  %1181 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %1166, ptr noundef %1167, ptr noundef %1170, ptr noundef %1171, ptr noundef %1179, ptr noundef %1180)
  %1182 = load ptr, ptr %26, align 8, !tbaa !5
  %1183 = load ptr, ptr %27, align 8, !tbaa !5
  %1184 = load ptr, ptr %32, align 8, !tbaa !5
  %1185 = load i64, ptr %51, align 8, !tbaa !9
  %1186 = getelementptr inbounds float, ptr %1184, i64 %1185
  %1187 = load ptr, ptr %33, align 8, !tbaa !5
  %1188 = call i32 @slaset_(ptr noundef @.str.3, ptr noundef %1182, ptr noundef %1183, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %1186, ptr noundef %1187)
  %1189 = load ptr, ptr %26, align 8, !tbaa !5
  %1190 = load ptr, ptr %27, align 8, !tbaa !5
  %1191 = load ptr, ptr %38, align 8, !tbaa !5
  %1192 = load i64, ptr %57, align 8, !tbaa !9
  %1193 = getelementptr inbounds float, ptr %1191, i64 %1192
  %1194 = load ptr, ptr %39, align 8, !tbaa !5
  %1195 = call i32 @slaset_(ptr noundef @.str.3, ptr noundef %1189, ptr noundef %1190, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %1193, ptr noundef %1194)
  br label %1232

1196:                                             ; preds = %1144, %1141
  %1197 = load i64, ptr %84, align 8, !tbaa !9
  %1198 = icmp eq i64 %1197, 2
  br i1 %1198, label %1199, label %1231

1199:                                             ; preds = %1196
  %1200 = load i64, ptr %82, align 8, !tbaa !9
  %1201 = icmp eq i64 %1200, 2
  br i1 %1201, label %1202, label %1231

1202:                                             ; preds = %1199
  %1203 = load ptr, ptr %26, align 8, !tbaa !5
  %1204 = load ptr, ptr %27, align 8, !tbaa !5
  %1205 = load ptr, ptr %42, align 8, !tbaa !5
  %1206 = getelementptr inbounds float, ptr %1205, i64 1
  %1207 = load ptr, ptr %26, align 8, !tbaa !5
  %1208 = load ptr, ptr %32, align 8, !tbaa !5
  %1209 = load i64, ptr %51, align 8, !tbaa !9
  %1210 = getelementptr inbounds float, ptr %1208, i64 %1209
  %1211 = load ptr, ptr %33, align 8, !tbaa !5
  %1212 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %1203, ptr noundef %1204, ptr noundef %1206, ptr noundef %1207, ptr noundef %1210, ptr noundef %1211)
  %1213 = load ptr, ptr %26, align 8, !tbaa !5
  %1214 = load ptr, ptr %27, align 8, !tbaa !5
  %1215 = load ptr, ptr %42, align 8, !tbaa !5
  %1216 = load ptr, ptr %26, align 8, !tbaa !5
  %1217 = load i64, ptr %1216, align 8, !tbaa !9
  %1218 = load ptr, ptr %27, align 8, !tbaa !5
  %1219 = load i64, ptr %1218, align 8, !tbaa !9
  %1220 = mul nsw i64 %1217, %1219
  %1221 = add nsw i64 %1220, 1
  %1222 = getelementptr inbounds float, ptr %1215, i64 %1221
  %1223 = load ptr, ptr %26, align 8, !tbaa !5
  %1224 = load ptr, ptr %38, align 8, !tbaa !5
  %1225 = load i64, ptr %57, align 8, !tbaa !9
  %1226 = getelementptr inbounds float, ptr %1224, i64 %1225
  %1227 = load ptr, ptr %39, align 8, !tbaa !5
  %1228 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %1213, ptr noundef %1214, ptr noundef %1222, ptr noundef %1223, ptr noundef %1226, ptr noundef %1227)
  %1229 = load float, ptr %79, align 4, !tbaa !11
  %1230 = load ptr, ptr %40, align 8, !tbaa !5
  store float %1229, ptr %1230, align 4, !tbaa !11
  br label %1231

1231:                                             ; preds = %1202, %1199, %1196
  br label %1232

1232:                                             ; preds = %1231, %1153
  br label %1233

1233:                                             ; preds = %1232
  %1234 = load i64, ptr %82, align 8, !tbaa !9
  %1235 = add nsw i64 %1234, 1
  store i64 %1235, ptr %82, align 8, !tbaa !9
  br label %728, !llvm.loop !21

1236:                                             ; preds = %728
  br label %1600

1237:                                             ; preds = %723
  %1238 = load ptr, ptr %40, align 8, !tbaa !5
  store float 1.000000e+00, ptr %1238, align 4, !tbaa !11
  %1239 = load i64, ptr %65, align 8, !tbaa !9
  store i64 %1239, ptr %58, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  br label %1240

1240:                                             ; preds = %1596, %1237
  %1241 = load i64, ptr %62, align 8, !tbaa !9
  %1242 = load i64, ptr %58, align 8, !tbaa !9
  %1243 = icmp sle i64 %1241, %1242
  br i1 %1243, label %1244, label %1599

1244:                                             ; preds = %1240
  %1245 = load ptr, ptr %44, align 8, !tbaa !5
  %1246 = load i64, ptr %62, align 8, !tbaa !9
  %1247 = getelementptr inbounds i64, ptr %1245, i64 %1246
  %1248 = load i64, ptr %1247, align 8, !tbaa !9
  store i64 %1248, ptr %71, align 8, !tbaa !9
  %1249 = load ptr, ptr %44, align 8, !tbaa !5
  %1250 = load i64, ptr %62, align 8, !tbaa !9
  %1251 = add nsw i64 %1250, 1
  %1252 = getelementptr inbounds i64, ptr %1249, i64 %1251
  %1253 = load i64, ptr %1252, align 8, !tbaa !9
  %1254 = sub nsw i64 %1253, 1
  store i64 %1254, ptr %67, align 8, !tbaa !9
  %1255 = load i64, ptr %67, align 8, !tbaa !9
  %1256 = load i64, ptr %71, align 8, !tbaa !9
  %1257 = sub nsw i64 %1255, %1256
  %1258 = add nsw i64 %1257, 1
  store i64 %1258, ptr %69, align 8, !tbaa !9
  %1259 = load i64, ptr %65, align 8, !tbaa !9
  %1260 = add nsw i64 %1259, 2
  store i64 %1260, ptr %59, align 8, !tbaa !9
  %1261 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %1261, ptr %63, align 8, !tbaa !9
  br label %1262

1262:                                             ; preds = %1592, %1244
  %1263 = load i64, ptr %63, align 8, !tbaa !9
  %1264 = load i64, ptr %59, align 8, !tbaa !9
  %1265 = icmp sge i64 %1263, %1264
  br i1 %1265, label %1266, label %1595

1266:                                             ; preds = %1262
  %1267 = load ptr, ptr %44, align 8, !tbaa !5
  %1268 = load i64, ptr %63, align 8, !tbaa !9
  %1269 = getelementptr inbounds i64, ptr %1267, i64 %1268
  %1270 = load i64, ptr %1269, align 8, !tbaa !9
  store i64 %1270, ptr %72, align 8, !tbaa !9
  %1271 = load ptr, ptr %44, align 8, !tbaa !5
  %1272 = load i64, ptr %63, align 8, !tbaa !9
  %1273 = add nsw i64 %1272, 1
  %1274 = getelementptr inbounds i64, ptr %1271, i64 %1273
  %1275 = load i64, ptr %1274, align 8, !tbaa !9
  %1276 = sub nsw i64 %1275, 1
  store i64 %1276, ptr %68, align 8, !tbaa !9
  %1277 = load i64, ptr %68, align 8, !tbaa !9
  %1278 = load i64, ptr %72, align 8, !tbaa !9
  %1279 = sub nsw i64 %1277, %1278
  %1280 = add nsw i64 %1279, 1
  store i64 %1280, ptr %70, align 8, !tbaa !9
  %1281 = load ptr, ptr %24, align 8, !tbaa !5
  %1282 = load ptr, ptr %28, align 8, !tbaa !5
  %1283 = load i64, ptr %71, align 8, !tbaa !9
  %1284 = load i64, ptr %71, align 8, !tbaa !9
  %1285 = load i64, ptr %46, align 8, !tbaa !9
  %1286 = mul nsw i64 %1284, %1285
  %1287 = add nsw i64 %1283, %1286
  %1288 = getelementptr inbounds float, ptr %1282, i64 %1287
  %1289 = load ptr, ptr %29, align 8, !tbaa !5
  %1290 = load ptr, ptr %30, align 8, !tbaa !5
  %1291 = load i64, ptr %72, align 8, !tbaa !9
  %1292 = load i64, ptr %72, align 8, !tbaa !9
  %1293 = load i64, ptr %48, align 8, !tbaa !9
  %1294 = mul nsw i64 %1292, %1293
  %1295 = add nsw i64 %1291, %1294
  %1296 = getelementptr inbounds float, ptr %1290, i64 %1295
  %1297 = load ptr, ptr %31, align 8, !tbaa !5
  %1298 = load ptr, ptr %32, align 8, !tbaa !5
  %1299 = load i64, ptr %71, align 8, !tbaa !9
  %1300 = load i64, ptr %72, align 8, !tbaa !9
  %1301 = load i64, ptr %50, align 8, !tbaa !9
  %1302 = mul nsw i64 %1300, %1301
  %1303 = add nsw i64 %1299, %1302
  %1304 = getelementptr inbounds float, ptr %1298, i64 %1303
  %1305 = load ptr, ptr %33, align 8, !tbaa !5
  %1306 = load ptr, ptr %34, align 8, !tbaa !5
  %1307 = load i64, ptr %71, align 8, !tbaa !9
  %1308 = load i64, ptr %71, align 8, !tbaa !9
  %1309 = load i64, ptr %52, align 8, !tbaa !9
  %1310 = mul nsw i64 %1308, %1309
  %1311 = add nsw i64 %1307, %1310
  %1312 = getelementptr inbounds float, ptr %1306, i64 %1311
  %1313 = load ptr, ptr %35, align 8, !tbaa !5
  %1314 = load ptr, ptr %36, align 8, !tbaa !5
  %1315 = load i64, ptr %72, align 8, !tbaa !9
  %1316 = load i64, ptr %72, align 8, !tbaa !9
  %1317 = load i64, ptr %54, align 8, !tbaa !9
  %1318 = mul nsw i64 %1316, %1317
  %1319 = add nsw i64 %1315, %1318
  %1320 = getelementptr inbounds float, ptr %1314, i64 %1319
  %1321 = load ptr, ptr %37, align 8, !tbaa !5
  %1322 = load ptr, ptr %38, align 8, !tbaa !5
  %1323 = load i64, ptr %71, align 8, !tbaa !9
  %1324 = load i64, ptr %72, align 8, !tbaa !9
  %1325 = load i64, ptr %56, align 8, !tbaa !9
  %1326 = mul nsw i64 %1324, %1325
  %1327 = add nsw i64 %1323, %1326
  %1328 = getelementptr inbounds float, ptr %1322, i64 %1327
  %1329 = load ptr, ptr %39, align 8, !tbaa !5
  %1330 = load ptr, ptr %44, align 8, !tbaa !5
  %1331 = load i64, ptr %66, align 8, !tbaa !9
  %1332 = add nsw i64 %1331, 2
  %1333 = getelementptr inbounds i64, ptr %1330, i64 %1332
  %1334 = call i32 @stgsy2_(ptr noundef %1281, ptr noundef %76, ptr noundef %69, ptr noundef %70, ptr noundef %1288, ptr noundef %1289, ptr noundef %1296, ptr noundef %1297, ptr noundef %1304, ptr noundef %1305, ptr noundef %1312, ptr noundef %1313, ptr noundef %1320, ptr noundef %1321, ptr noundef %1328, ptr noundef %1329, ptr noundef %81, ptr noundef %74, ptr noundef %80, ptr noundef %1333, ptr noundef %75, ptr noundef %77)
  %1335 = load i64, ptr %77, align 8, !tbaa !9
  %1336 = icmp sgt i64 %1335, 0
  br i1 %1336, label %1337, label %1340

1337:                                             ; preds = %1266
  %1338 = load i64, ptr %77, align 8, !tbaa !9
  %1339 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 %1338, ptr %1339, align 8, !tbaa !9
  br label %1340

1340:                                             ; preds = %1337, %1266
  %1341 = load float, ptr %81, align 4, !tbaa !11
  %1342 = fcmp une float %1341, 1.000000e+00
  br i1 %1342, label %1343, label %1470

1343:                                             ; preds = %1340
  %1344 = load i64, ptr %72, align 8, !tbaa !9
  %1345 = sub nsw i64 %1344, 1
  store i64 %1345, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %1346

1346:                                             ; preds = %1367, %1343
  %1347 = load i64, ptr %64, align 8, !tbaa !9
  %1348 = load i64, ptr %60, align 8, !tbaa !9
  %1349 = icmp sle i64 %1347, %1348
  br i1 %1349, label %1350, label %1370

1350:                                             ; preds = %1346
  %1351 = load ptr, ptr %26, align 8, !tbaa !5
  %1352 = load ptr, ptr %32, align 8, !tbaa !5
  %1353 = load i64, ptr %64, align 8, !tbaa !9
  %1354 = load i64, ptr %50, align 8, !tbaa !9
  %1355 = mul nsw i64 %1353, %1354
  %1356 = add nsw i64 %1355, 1
  %1357 = getelementptr inbounds float, ptr %1352, i64 %1356
  %1358 = call i32 @f2c_sscal(ptr noundef %1351, ptr noundef %81, ptr noundef %1357, ptr noundef @c__1)
  %1359 = load ptr, ptr %26, align 8, !tbaa !5
  %1360 = load ptr, ptr %38, align 8, !tbaa !5
  %1361 = load i64, ptr %64, align 8, !tbaa !9
  %1362 = load i64, ptr %56, align 8, !tbaa !9
  %1363 = mul nsw i64 %1361, %1362
  %1364 = add nsw i64 %1363, 1
  %1365 = getelementptr inbounds float, ptr %1360, i64 %1364
  %1366 = call i32 @f2c_sscal(ptr noundef %1359, ptr noundef %81, ptr noundef %1365, ptr noundef @c__1)
  br label %1367

1367:                                             ; preds = %1350
  %1368 = load i64, ptr %64, align 8, !tbaa !9
  %1369 = add nsw i64 %1368, 1
  store i64 %1369, ptr %64, align 8, !tbaa !9
  br label %1346, !llvm.loop !22

1370:                                             ; preds = %1346
  %1371 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %1371, ptr %60, align 8, !tbaa !9
  %1372 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %1372, ptr %64, align 8, !tbaa !9
  br label %1373

1373:                                             ; preds = %1396, %1370
  %1374 = load i64, ptr %64, align 8, !tbaa !9
  %1375 = load i64, ptr %60, align 8, !tbaa !9
  %1376 = icmp sle i64 %1374, %1375
  br i1 %1376, label %1377, label %1399

1377:                                             ; preds = %1373
  %1378 = load i64, ptr %71, align 8, !tbaa !9
  %1379 = sub nsw i64 %1378, 1
  store i64 %1379, ptr %61, align 8, !tbaa !9
  %1380 = load ptr, ptr %32, align 8, !tbaa !5
  %1381 = load i64, ptr %64, align 8, !tbaa !9
  %1382 = load i64, ptr %50, align 8, !tbaa !9
  %1383 = mul nsw i64 %1381, %1382
  %1384 = add nsw i64 %1383, 1
  %1385 = getelementptr inbounds float, ptr %1380, i64 %1384
  %1386 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %81, ptr noundef %1385, ptr noundef @c__1)
  %1387 = load i64, ptr %71, align 8, !tbaa !9
  %1388 = sub nsw i64 %1387, 1
  store i64 %1388, ptr %61, align 8, !tbaa !9
  %1389 = load ptr, ptr %38, align 8, !tbaa !5
  %1390 = load i64, ptr %64, align 8, !tbaa !9
  %1391 = load i64, ptr %56, align 8, !tbaa !9
  %1392 = mul nsw i64 %1390, %1391
  %1393 = add nsw i64 %1392, 1
  %1394 = getelementptr inbounds float, ptr %1389, i64 %1393
  %1395 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %81, ptr noundef %1394, ptr noundef @c__1)
  br label %1396

1396:                                             ; preds = %1377
  %1397 = load i64, ptr %64, align 8, !tbaa !9
  %1398 = add nsw i64 %1397, 1
  store i64 %1398, ptr %64, align 8, !tbaa !9
  br label %1373, !llvm.loop !23

1399:                                             ; preds = %1373
  %1400 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %1400, ptr %60, align 8, !tbaa !9
  %1401 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %1401, ptr %64, align 8, !tbaa !9
  br label %1402

1402:                                             ; preds = %1433, %1399
  %1403 = load i64, ptr %64, align 8, !tbaa !9
  %1404 = load i64, ptr %60, align 8, !tbaa !9
  %1405 = icmp sle i64 %1403, %1404
  br i1 %1405, label %1406, label %1436

1406:                                             ; preds = %1402
  %1407 = load ptr, ptr %26, align 8, !tbaa !5
  %1408 = load i64, ptr %1407, align 8, !tbaa !9
  %1409 = load i64, ptr %67, align 8, !tbaa !9
  %1410 = sub nsw i64 %1408, %1409
  store i64 %1410, ptr %61, align 8, !tbaa !9
  %1411 = load ptr, ptr %32, align 8, !tbaa !5
  %1412 = load i64, ptr %67, align 8, !tbaa !9
  %1413 = add nsw i64 %1412, 1
  %1414 = load i64, ptr %64, align 8, !tbaa !9
  %1415 = load i64, ptr %50, align 8, !tbaa !9
  %1416 = mul nsw i64 %1414, %1415
  %1417 = add nsw i64 %1413, %1416
  %1418 = getelementptr inbounds float, ptr %1411, i64 %1417
  %1419 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %81, ptr noundef %1418, ptr noundef @c__1)
  %1420 = load ptr, ptr %26, align 8, !tbaa !5
  %1421 = load i64, ptr %1420, align 8, !tbaa !9
  %1422 = load i64, ptr %67, align 8, !tbaa !9
  %1423 = sub nsw i64 %1421, %1422
  store i64 %1423, ptr %61, align 8, !tbaa !9
  %1424 = load ptr, ptr %38, align 8, !tbaa !5
  %1425 = load i64, ptr %67, align 8, !tbaa !9
  %1426 = add nsw i64 %1425, 1
  %1427 = load i64, ptr %64, align 8, !tbaa !9
  %1428 = load i64, ptr %56, align 8, !tbaa !9
  %1429 = mul nsw i64 %1427, %1428
  %1430 = add nsw i64 %1426, %1429
  %1431 = getelementptr inbounds float, ptr %1424, i64 %1430
  %1432 = call i32 @f2c_sscal(ptr noundef %61, ptr noundef %81, ptr noundef %1431, ptr noundef @c__1)
  br label %1433

1433:                                             ; preds = %1406
  %1434 = load i64, ptr %64, align 8, !tbaa !9
  %1435 = add nsw i64 %1434, 1
  store i64 %1435, ptr %64, align 8, !tbaa !9
  br label %1402, !llvm.loop !24

1436:                                             ; preds = %1402
  %1437 = load ptr, ptr %27, align 8, !tbaa !5
  %1438 = load i64, ptr %1437, align 8, !tbaa !9
  store i64 %1438, ptr %60, align 8, !tbaa !9
  %1439 = load i64, ptr %68, align 8, !tbaa !9
  %1440 = add nsw i64 %1439, 1
  store i64 %1440, ptr %64, align 8, !tbaa !9
  br label %1441

1441:                                             ; preds = %1462, %1436
  %1442 = load i64, ptr %64, align 8, !tbaa !9
  %1443 = load i64, ptr %60, align 8, !tbaa !9
  %1444 = icmp sle i64 %1442, %1443
  br i1 %1444, label %1445, label %1465

1445:                                             ; preds = %1441
  %1446 = load ptr, ptr %26, align 8, !tbaa !5
  %1447 = load ptr, ptr %32, align 8, !tbaa !5
  %1448 = load i64, ptr %64, align 8, !tbaa !9
  %1449 = load i64, ptr %50, align 8, !tbaa !9
  %1450 = mul nsw i64 %1448, %1449
  %1451 = add nsw i64 %1450, 1
  %1452 = getelementptr inbounds float, ptr %1447, i64 %1451
  %1453 = call i32 @f2c_sscal(ptr noundef %1446, ptr noundef %81, ptr noundef %1452, ptr noundef @c__1)
  %1454 = load ptr, ptr %26, align 8, !tbaa !5
  %1455 = load ptr, ptr %38, align 8, !tbaa !5
  %1456 = load i64, ptr %64, align 8, !tbaa !9
  %1457 = load i64, ptr %56, align 8, !tbaa !9
  %1458 = mul nsw i64 %1456, %1457
  %1459 = add nsw i64 %1458, 1
  %1460 = getelementptr inbounds float, ptr %1455, i64 %1459
  %1461 = call i32 @f2c_sscal(ptr noundef %1454, ptr noundef %81, ptr noundef %1460, ptr noundef @c__1)
  br label %1462

1462:                                             ; preds = %1445
  %1463 = load i64, ptr %64, align 8, !tbaa !9
  %1464 = add nsw i64 %1463, 1
  store i64 %1464, ptr %64, align 8, !tbaa !9
  br label %1441, !llvm.loop !25

1465:                                             ; preds = %1441
  %1466 = load float, ptr %81, align 4, !tbaa !11
  %1467 = load ptr, ptr %40, align 8, !tbaa !5
  %1468 = load float, ptr %1467, align 4, !tbaa !11
  %1469 = fmul float %1468, %1466
  store float %1469, ptr %1467, align 4, !tbaa !11
  br label %1470

1470:                                             ; preds = %1465, %1340
  %1471 = load i64, ptr %63, align 8, !tbaa !9
  %1472 = load i64, ptr %65, align 8, !tbaa !9
  %1473 = add nsw i64 %1472, 2
  %1474 = icmp sgt i64 %1471, %1473
  br i1 %1474, label %1475, label %1524

1475:                                             ; preds = %1470
  %1476 = load i64, ptr %72, align 8, !tbaa !9
  %1477 = sub nsw i64 %1476, 1
  store i64 %1477, ptr %60, align 8, !tbaa !9
  %1478 = load ptr, ptr %32, align 8, !tbaa !5
  %1479 = load i64, ptr %71, align 8, !tbaa !9
  %1480 = load i64, ptr %72, align 8, !tbaa !9
  %1481 = load i64, ptr %50, align 8, !tbaa !9
  %1482 = mul nsw i64 %1480, %1481
  %1483 = add nsw i64 %1479, %1482
  %1484 = getelementptr inbounds float, ptr %1478, i64 %1483
  %1485 = load ptr, ptr %33, align 8, !tbaa !5
  %1486 = load ptr, ptr %30, align 8, !tbaa !5
  %1487 = load i64, ptr %72, align 8, !tbaa !9
  %1488 = load i64, ptr %48, align 8, !tbaa !9
  %1489 = mul nsw i64 %1487, %1488
  %1490 = add nsw i64 %1489, 1
  %1491 = getelementptr inbounds float, ptr %1486, i64 %1490
  %1492 = load ptr, ptr %31, align 8, !tbaa !5
  %1493 = load ptr, ptr %38, align 8, !tbaa !5
  %1494 = load i64, ptr %71, align 8, !tbaa !9
  %1495 = load i64, ptr %56, align 8, !tbaa !9
  %1496 = add nsw i64 %1494, %1495
  %1497 = getelementptr inbounds float, ptr %1493, i64 %1496
  %1498 = load ptr, ptr %39, align 8, !tbaa !5
  %1499 = call i32 @f2c_sgemm(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %69, ptr noundef %60, ptr noundef %70, ptr noundef @c_b52, ptr noundef %1484, ptr noundef %1485, ptr noundef %1491, ptr noundef %1492, ptr noundef @c_b52, ptr noundef %1497, ptr noundef %1498)
  %1500 = load i64, ptr %72, align 8, !tbaa !9
  %1501 = sub nsw i64 %1500, 1
  store i64 %1501, ptr %60, align 8, !tbaa !9
  %1502 = load ptr, ptr %38, align 8, !tbaa !5
  %1503 = load i64, ptr %71, align 8, !tbaa !9
  %1504 = load i64, ptr %72, align 8, !tbaa !9
  %1505 = load i64, ptr %56, align 8, !tbaa !9
  %1506 = mul nsw i64 %1504, %1505
  %1507 = add nsw i64 %1503, %1506
  %1508 = getelementptr inbounds float, ptr %1502, i64 %1507
  %1509 = load ptr, ptr %39, align 8, !tbaa !5
  %1510 = load ptr, ptr %36, align 8, !tbaa !5
  %1511 = load i64, ptr %72, align 8, !tbaa !9
  %1512 = load i64, ptr %54, align 8, !tbaa !9
  %1513 = mul nsw i64 %1511, %1512
  %1514 = add nsw i64 %1513, 1
  %1515 = getelementptr inbounds float, ptr %1510, i64 %1514
  %1516 = load ptr, ptr %37, align 8, !tbaa !5
  %1517 = load ptr, ptr %38, align 8, !tbaa !5
  %1518 = load i64, ptr %71, align 8, !tbaa !9
  %1519 = load i64, ptr %56, align 8, !tbaa !9
  %1520 = add nsw i64 %1518, %1519
  %1521 = getelementptr inbounds float, ptr %1517, i64 %1520
  %1522 = load ptr, ptr %39, align 8, !tbaa !5
  %1523 = call i32 @f2c_sgemm(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %69, ptr noundef %60, ptr noundef %70, ptr noundef @c_b52, ptr noundef %1508, ptr noundef %1509, ptr noundef %1515, ptr noundef %1516, ptr noundef @c_b52, ptr noundef %1521, ptr noundef %1522)
  br label %1524

1524:                                             ; preds = %1475, %1470
  %1525 = load i64, ptr %62, align 8, !tbaa !9
  %1526 = load i64, ptr %65, align 8, !tbaa !9
  %1527 = icmp slt i64 %1525, %1526
  br i1 %1527, label %1528, label %1591

1528:                                             ; preds = %1524
  %1529 = load ptr, ptr %26, align 8, !tbaa !5
  %1530 = load i64, ptr %1529, align 8, !tbaa !9
  %1531 = load i64, ptr %67, align 8, !tbaa !9
  %1532 = sub nsw i64 %1530, %1531
  store i64 %1532, ptr %60, align 8, !tbaa !9
  %1533 = load ptr, ptr %28, align 8, !tbaa !5
  %1534 = load i64, ptr %71, align 8, !tbaa !9
  %1535 = load i64, ptr %67, align 8, !tbaa !9
  %1536 = add nsw i64 %1535, 1
  %1537 = load i64, ptr %46, align 8, !tbaa !9
  %1538 = mul nsw i64 %1536, %1537
  %1539 = add nsw i64 %1534, %1538
  %1540 = getelementptr inbounds float, ptr %1533, i64 %1539
  %1541 = load ptr, ptr %29, align 8, !tbaa !5
  %1542 = load ptr, ptr %32, align 8, !tbaa !5
  %1543 = load i64, ptr %71, align 8, !tbaa !9
  %1544 = load i64, ptr %72, align 8, !tbaa !9
  %1545 = load i64, ptr %50, align 8, !tbaa !9
  %1546 = mul nsw i64 %1544, %1545
  %1547 = add nsw i64 %1543, %1546
  %1548 = getelementptr inbounds float, ptr %1542, i64 %1547
  %1549 = load ptr, ptr %33, align 8, !tbaa !5
  %1550 = load ptr, ptr %32, align 8, !tbaa !5
  %1551 = load i64, ptr %67, align 8, !tbaa !9
  %1552 = add nsw i64 %1551, 1
  %1553 = load i64, ptr %72, align 8, !tbaa !9
  %1554 = load i64, ptr %50, align 8, !tbaa !9
  %1555 = mul nsw i64 %1553, %1554
  %1556 = add nsw i64 %1552, %1555
  %1557 = getelementptr inbounds float, ptr %1550, i64 %1556
  %1558 = load ptr, ptr %33, align 8, !tbaa !5
  %1559 = call i32 @f2c_sgemm(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %60, ptr noundef %70, ptr noundef %69, ptr noundef @c_b51, ptr noundef %1540, ptr noundef %1541, ptr noundef %1548, ptr noundef %1549, ptr noundef @c_b52, ptr noundef %1557, ptr noundef %1558)
  %1560 = load ptr, ptr %26, align 8, !tbaa !5
  %1561 = load i64, ptr %1560, align 8, !tbaa !9
  %1562 = load i64, ptr %67, align 8, !tbaa !9
  %1563 = sub nsw i64 %1561, %1562
  store i64 %1563, ptr %60, align 8, !tbaa !9
  %1564 = load ptr, ptr %34, align 8, !tbaa !5
  %1565 = load i64, ptr %71, align 8, !tbaa !9
  %1566 = load i64, ptr %67, align 8, !tbaa !9
  %1567 = add nsw i64 %1566, 1
  %1568 = load i64, ptr %52, align 8, !tbaa !9
  %1569 = mul nsw i64 %1567, %1568
  %1570 = add nsw i64 %1565, %1569
  %1571 = getelementptr inbounds float, ptr %1564, i64 %1570
  %1572 = load ptr, ptr %35, align 8, !tbaa !5
  %1573 = load ptr, ptr %38, align 8, !tbaa !5
  %1574 = load i64, ptr %71, align 8, !tbaa !9
  %1575 = load i64, ptr %72, align 8, !tbaa !9
  %1576 = load i64, ptr %56, align 8, !tbaa !9
  %1577 = mul nsw i64 %1575, %1576
  %1578 = add nsw i64 %1574, %1577
  %1579 = getelementptr inbounds float, ptr %1573, i64 %1578
  %1580 = load ptr, ptr %39, align 8, !tbaa !5
  %1581 = load ptr, ptr %32, align 8, !tbaa !5
  %1582 = load i64, ptr %67, align 8, !tbaa !9
  %1583 = add nsw i64 %1582, 1
  %1584 = load i64, ptr %72, align 8, !tbaa !9
  %1585 = load i64, ptr %50, align 8, !tbaa !9
  %1586 = mul nsw i64 %1584, %1585
  %1587 = add nsw i64 %1583, %1586
  %1588 = getelementptr inbounds float, ptr %1581, i64 %1587
  %1589 = load ptr, ptr %33, align 8, !tbaa !5
  %1590 = call i32 @f2c_sgemm(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %60, ptr noundef %70, ptr noundef %69, ptr noundef @c_b51, ptr noundef %1571, ptr noundef %1572, ptr noundef %1579, ptr noundef %1580, ptr noundef @c_b52, ptr noundef %1588, ptr noundef %1589)
  br label %1591

1591:                                             ; preds = %1528, %1524
  br label %1592

1592:                                             ; preds = %1591
  %1593 = load i64, ptr %63, align 8, !tbaa !9
  %1594 = add nsw i64 %1593, -1
  store i64 %1594, ptr %63, align 8, !tbaa !9
  br label %1262, !llvm.loop !26

1595:                                             ; preds = %1262
  br label %1596

1596:                                             ; preds = %1595
  %1597 = load i64, ptr %62, align 8, !tbaa !9
  %1598 = add nsw i64 %1597, 1
  store i64 %1598, ptr %62, align 8, !tbaa !9
  br label %1240, !llvm.loop !27

1599:                                             ; preds = %1240
  br label %1600

1600:                                             ; preds = %1599, %1236
  %1601 = load i64, ptr %78, align 8, !tbaa !9
  %1602 = sitofp i64 %1601 to float
  %1603 = load ptr, ptr %42, align 8, !tbaa !5
  %1604 = getelementptr inbounds float, ptr %1603, i64 1
  store float %1602, ptr %1604, align 4, !tbaa !11
  store i32 0, ptr %23, align 4
  store i32 1, ptr %86, align 4
  br label %1605

1605:                                             ; preds = %1600, %604, %366, %345, %337
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  %1606 = load i32, ptr %23, align 4
  ret i32 %1606
}

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

declare i64 @lsame_(ptr noundef, ptr noundef) #2

declare i32 @xerbla_(ptr noundef, ptr noundef) #2

declare i64 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @slaset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

; Function Attrs: nounwind
declare double @sqrt(double noundef) #3

declare i32 @slacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @f2c_sscal(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @f2c_sgemm(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 "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 #4 = { 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 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}


; 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"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@c__2 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__5 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b14 = external hidden global float, align 4
@c__1 = external hidden global i64, align 8
@c_b51 = external hidden global float, align 4
@c_b52 = external hidden global float, align 4

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @stgsyl_(ptr noundef %0, ptr nocapture noundef readonly %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 nocapture noundef writeonly %17, ptr noundef %18, ptr nocapture noundef readonly %19, ptr noundef %20, ptr noundef %21) local_unnamed_addr #0 {
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca float, align 4
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #5
  %35 = load i64, ptr %5, align 8, !tbaa !5
  %36 = xor i64 %35, -1
  %37 = getelementptr inbounds float, ptr %4, i64 %36
  %38 = load i64, ptr %7, align 8, !tbaa !5
  %39 = xor i64 %38, -1
  %40 = getelementptr inbounds float, ptr %6, i64 %39
  %41 = load i64, ptr %9, align 8, !tbaa !5
  %42 = xor i64 %41, -1
  %43 = getelementptr inbounds float, ptr %8, i64 %42
  %44 = load i64, ptr %11, align 8, !tbaa !5
  %45 = xor i64 %44, -1
  %46 = getelementptr inbounds float, ptr %10, i64 %45
  %47 = load i64, ptr %13, align 8, !tbaa !5
  %48 = xor i64 %47, -1
  %49 = getelementptr inbounds float, ptr %12, i64 %48
  %50 = load i64, ptr %15, align 8, !tbaa !5
  %51 = xor i64 %50, -1
  %52 = getelementptr inbounds float, ptr %14, i64 %51
  %53 = getelementptr inbounds i8, ptr %20, i64 -8
  store i64 0, ptr %21, align 8, !tbaa !5
  %54 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %55 = load i64, ptr %19, align 8, !tbaa !5
  %56 = icmp eq i64 %55, -1
  %.not = icmp eq i64 %54, 0
  br i1 %.not, label %57, label %.critedge

57:                                               ; preds = %22
  %58 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not702 = icmp eq i64 %58, 0
  br i1 %.not702, label %.thread741.sink.split, label %60

.critedge:                                        ; preds = %22
  %59 = load i64, ptr %1, align 8, !tbaa !5
  %or.cond723 = icmp ugt i64 %59, 4
  br i1 %or.cond723, label %.thread741.sink.split, label %60

60:                                               ; preds = %57, %.critedge
  %.pr = load i64, ptr %21, align 8, !tbaa !5
  %61 = icmp eq i64 %.pr, 0
  br i1 %61, label %62, label %.thread741

62:                                               ; preds = %60
  %63 = load i64, ptr %2, align 8, !tbaa !5
  %64 = icmp slt i64 %63, 1
  br i1 %64, label %.thread741.sink.split, label %65

65:                                               ; preds = %62
  %66 = load i64, ptr %3, align 8, !tbaa !5
  %67 = icmp slt i64 %66, 1
  br i1 %67, label %.thread741.sink.split, label %68

68:                                               ; preds = %65
  %69 = load i64, ptr %5, align 8, !tbaa !5
  %70 = icmp slt i64 %69, %63
  br i1 %70, label %.thread741.sink.split, label %71

71:                                               ; preds = %68
  %72 = load i64, ptr %7, align 8, !tbaa !5
  %73 = icmp slt i64 %72, %66
  br i1 %73, label %.thread741.sink.split, label %74

74:                                               ; preds = %71
  %75 = load i64, ptr %9, align 8, !tbaa !5
  %76 = icmp slt i64 %75, %63
  br i1 %76, label %.thread741.sink.split, label %77

77:                                               ; preds = %74
  %78 = load i64, ptr %11, align 8, !tbaa !5
  %79 = icmp slt i64 %78, %63
  br i1 %79, label %.thread741.sink.split, label %80

80:                                               ; preds = %77
  %81 = load i64, ptr %13, align 8, !tbaa !5
  %82 = icmp slt i64 %81, %66
  br i1 %82, label %.thread741.sink.split, label %83

83:                                               ; preds = %80
  %84 = load i64, ptr %15, align 8, !tbaa !5
  %85 = icmp slt i64 %84, %63
  br i1 %85, label %.thread741.sink.split, label %.thread

.thread:                                          ; preds = %83
  br i1 %.not, label %92, label %86

86:                                               ; preds = %.thread
  %87 = load i64, ptr %1, align 8, !tbaa !5
  %.off = add i64 %87, -1
  %switch = icmp ult i64 %.off, 2
  br i1 %switch, label %88, label %92

88:                                               ; preds = %86
  %89 = shl nuw i64 %63, 1
  %90 = mul nsw i64 %89, %66
  %91 = tail call i64 @llvm.smax.i64(i64 %90, i64 1)
  br label %92

92:                                               ; preds = %86, %.thread, %88
  %.0665 = phi i64 [ %91, %88 ], [ 1, %86 ], [ 1, %.thread ]
  %93 = uitofp nneg i64 %.0665 to float
  store float %93, ptr %18, align 4, !tbaa !9
  %94 = load i64, ptr %19, align 8, !tbaa !5
  %95 = icmp sge i64 %94, %.0665
  %or.cond = select i1 %95, i1 true, i1 %56
  br i1 %or.cond, label %.thread736, label %.thread741.sink.split

.thread741.sink.split:                            ; preds = %92, %83, %80, %77, %74, %71, %68, %65, %62, %.critedge, %57
  %.sink = phi i64 [ -1, %57 ], [ -2, %.critedge ], [ -3, %62 ], [ -4, %65 ], [ -6, %68 ], [ -8, %71 ], [ -10, %74 ], [ -12, %77 ], [ -14, %80 ], [ -16, %83 ], [ -20, %92 ]
  store i64 %.sink, ptr %21, align 8, !tbaa !5
  br label %.thread741

.thread741:                                       ; preds = %.thread741.sink.split, %60
  %96 = phi i64 [ %.pr, %60 ], [ %.sink, %.thread741.sink.split ]
  %97 = sub nsw i64 0, %96
  store i64 %97, ptr %23, align 8, !tbaa !5
  %98 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %23) #5
  br label %.loopexit

.thread736:                                       ; preds = %92
  br i1 %56, label %.loopexit, label %99

99:                                               ; preds = %.thread736
  %100 = tail call i64 @ilaenv_(ptr noundef nonnull @c__2, ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  store i64 %100, ptr %26, align 8, !tbaa !5
  %101 = tail call i64 @ilaenv_(ptr noundef nonnull @c__5, ptr noundef nonnull @.str.2, ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  store i64 %101, ptr %27, align 8, !tbaa !5
  store i64 0, ptr %31, align 8, !tbaa !5
  br i1 %.not, label %111, label %102

102:                                              ; preds = %99
  %103 = load i64, ptr %1, align 8, !tbaa !5
  %104 = icmp sgt i64 %103, 2
  br i1 %104, label %105, label %109

105:                                              ; preds = %102
  %106 = add nsw i64 %103, -2
  store i64 %106, ptr %31, align 8, !tbaa !5
  %107 = tail call i32 @slaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b14, ptr noundef nonnull @c_b14, ptr noundef %8, ptr noundef nonnull %9) #5
  %108 = tail call i32 @slaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b14, ptr noundef nonnull @c_b14, ptr noundef %14, ptr noundef nonnull %15) #5
  br label %111

109:                                              ; preds = %102
  %110 = icmp sgt i64 %103, 0
  %spec.select730 = select i1 %110, i64 2, i64 1
  br label %111

111:                                              ; preds = %109, %105, %99
  %112 = phi i1 [ false, %105 ], [ false, %99 ], [ %110, %109 ]
  %113 = phi i64 [ 1, %105 ], [ 1, %99 ], [ %spec.select730, %109 ]
  %114 = icmp slt i64 %100, 2
  %115 = icmp slt i64 %101, 2
  %or.cond5 = select i1 %114, i1 %115, i1 false
  br i1 %or.cond5, label %.lr.ph877.preheader, label %116

116:                                              ; preds = %111
  %117 = load i64, ptr %2, align 8, !tbaa !5
  %.not704 = icmp slt i64 %100, %117
  br i1 %.not704, label %183, label %118

118:                                              ; preds = %116
  %119 = load i64, ptr %3, align 8, !tbaa !5
  %.not705 = icmp slt i64 %101, %119
  br i1 %.not705, label %183, label %.lr.ph877.preheader

.lr.ph877.preheader:                              ; preds = %118, %111
  store float 0.000000e+00, ptr %33, align 4, !tbaa !9
  store float 1.000000e+00, ptr %29, align 4, !tbaa !9
  store i64 0, ptr %28, align 8, !tbaa !5
  %120 = call i32 @stgsy2_(ptr noundef %0, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %29, ptr noundef nonnull %33, ptr noundef %20, ptr noundef nonnull %28, ptr noundef nonnull %21) #5
  %121 = load float, ptr %33, align 4, !tbaa !9
  %122 = fcmp une float %121, 0.000000e+00
  br i1 %122, label %123, label %140

123:                                              ; preds = %.lr.ph877.preheader
  %124 = load i64, ptr %1, align 8, !tbaa !5
  switch i64 %124, label %130 [
    i64 1, label %125
    i64 3, label %125
  ]

125:                                              ; preds = %123, %123
  %126 = load i64, ptr %2, align 8, !tbaa !5
  %127 = shl i64 %126, 1
  %128 = load i64, ptr %3, align 8, !tbaa !5
  %129 = mul nsw i64 %127, %128
  br label %.sink.split

130:                                              ; preds = %123
  %131 = load i64, ptr %28, align 8, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %125, %130
  %.sink921 = phi i64 [ %129, %125 ], [ %131, %130 ]
  %132 = sitofp i64 %.sink921 to float
  %133 = fpext float %132 to double
  %134 = call double @sqrt(double noundef %133) #5
  %.sink901.in = load float, ptr %33, align 4, !tbaa !9
  %.sink901 = fpext float %.sink901.in to double
  %.sink903 = load float, ptr %29, align 4, !tbaa !9
  %135 = fpext float %.sink903 to double
  %136 = call double @sqrt(double noundef %135) #5
  %137 = fmul double %136, %.sink901
  %138 = fdiv double %134, %137
  %139 = fptrunc double %138 to float
  store float %139, ptr %17, align 4, !tbaa !9
  br label %140

140:                                              ; preds = %.sink.split, %.lr.ph877.preheader
  br i1 %112, label %141, label %154

141:                                              ; preds = %140
  br i1 %.not, label %144, label %142

142:                                              ; preds = %141
  %143 = load i64, ptr %1, align 8, !tbaa !5
  store i64 %143, ptr %31, align 8, !tbaa !5
  br label %144

144:                                              ; preds = %142, %141
  %145 = load float, ptr %16, align 4, !tbaa !9
  %146 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %18, ptr noundef nonnull %2) #5
  %147 = load i64, ptr %2, align 8, !tbaa !5
  %148 = load i64, ptr %3, align 8, !tbaa !5
  %149 = mul nsw i64 %148, %147
  %150 = getelementptr float, ptr %18, i64 %149
  %151 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %150, ptr noundef nonnull %2) #5
  %152 = call i32 @slaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b14, ptr noundef nonnull @c_b14, ptr noundef %8, ptr noundef nonnull %9) #5
  %153 = call i32 @slaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b14, ptr noundef nonnull @c_b14, ptr noundef %14, ptr noundef nonnull %15) #5
  br label %154

154:                                              ; preds = %140, %144
  %.1664.peel = phi float [ %145, %144 ], [ undef, %140 ]
  %.not721.not.peel = icmp ugt i64 %113, 1
  br i1 %.not721.not.peel, label %.lr.ph877, label %.loopexit

.lr.ph877:                                        ; preds = %154
  store float 0.000000e+00, ptr %33, align 4, !tbaa !9
  store float 1.000000e+00, ptr %29, align 4, !tbaa !9
  store i64 0, ptr %28, align 8, !tbaa !5
  %155 = call i32 @stgsy2_(ptr noundef %0, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %29, ptr noundef nonnull %33, ptr noundef %20, ptr noundef nonnull %28, ptr noundef nonnull %21) #5
  %156 = load float, ptr %33, align 4, !tbaa !9
  %157 = fcmp une float %156, 0.000000e+00
  br i1 %157, label %158, label %175

158:                                              ; preds = %.lr.ph877
  %159 = load i64, ptr %1, align 8, !tbaa !5
  switch i64 %159, label %165 [
    i64 1, label %160
    i64 3, label %160
  ]

160:                                              ; preds = %158, %158
  %161 = load i64, ptr %2, align 8, !tbaa !5
  %162 = shl i64 %161, 1
  %163 = load i64, ptr %3, align 8, !tbaa !5
  %164 = mul nsw i64 %162, %163
  br label %.sink.split904

165:                                              ; preds = %158
  %166 = load i64, ptr %28, align 8, !tbaa !5
  br label %.sink.split904

.sink.split904:                                   ; preds = %160, %165
  %.sink924 = phi i64 [ %164, %160 ], [ %166, %165 ]
  %167 = sitofp i64 %.sink924 to float
  %168 = fpext float %167 to double
  %169 = call double @sqrt(double noundef %168) #5
  %.sink910.in = load float, ptr %33, align 4, !tbaa !9
  %.sink910 = fpext float %.sink910.in to double
  %.sink912 = load float, ptr %29, align 4, !tbaa !9
  %170 = fpext float %.sink912 to double
  %171 = call double @sqrt(double noundef %170) #5
  %172 = fmul double %171, %.sink910
  %173 = fdiv double %169, %172
  %174 = fptrunc double %173 to float
  store float %174, ptr %17, align 4, !tbaa !9
  br label %175

175:                                              ; preds = %.sink.split904, %.lr.ph877
  br i1 %112, label %176, label %.loopexit

176:                                              ; preds = %175
  %177 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull %9) #5
  %178 = load i64, ptr %2, align 8, !tbaa !5
  %179 = load i64, ptr %3, align 8, !tbaa !5
  %180 = mul nsw i64 %179, %178
  %181 = getelementptr float, ptr %18, i64 %180
  %182 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %181, ptr noundef nonnull %2, ptr noundef %14, ptr noundef nonnull %15) #5
  store float %.1664.peel, ptr %16, align 4, !tbaa !9
  br label %.loopexit

183:                                              ; preds = %118, %116
  %184 = icmp slt i64 %117, 1
  br i1 %184, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %183, %189
  %.0670756 = phi i64 [ %185, %189 ], [ 0, %183 ]
  %.0681755 = phi i64 [ %.1682, %189 ], [ 1, %183 ]
  %185 = add nuw nsw i64 %.0670756, 1
  %186 = getelementptr i64, ptr %20, i64 %.0670756
  store i64 %.0681755, ptr %186, align 8, !tbaa !5
  %187 = add nsw i64 %.0681755, %100
  %188 = load i64, ptr %2, align 8, !tbaa !5
  %.not706 = icmp slt i64 %187, %188
  br i1 %.not706, label %189, label %._crit_edge

189:                                              ; preds = %.lr.ph
  %190 = add nsw i64 %187, -1
  %191 = mul nsw i64 %190, %35
  %192 = getelementptr float, ptr %37, i64 %187
  %193 = getelementptr float, ptr %192, i64 %191
  %194 = load float, ptr %193, align 4, !tbaa !9
  %195 = fcmp une float %194, 0.000000e+00
  %196 = zext i1 %195 to i64
  %.1682 = add nsw i64 %187, %196
  %197 = icmp sgt i64 %.1682, %188
  br i1 %197, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %189, %.lr.ph, %183
  %198 = phi i64 [ %117, %183 ], [ %188, %.lr.ph ], [ %188, %189 ]
  %.1671 = phi i64 [ 0, %183 ], [ %185, %.lr.ph ], [ %185, %189 ]
  %199 = add nsw i64 %198, 1
  %200 = getelementptr i64, ptr %20, i64 %.1671
  store i64 %199, ptr %200, align 8, !tbaa !5
  %201 = getelementptr inbounds i64, ptr %53, i64 %.1671
  %202 = load i64, ptr %201, align 8, !tbaa !5
  %203 = icmp eq i64 %202, %199
  %204 = sext i1 %203 to i64
  %spec.select731 = add nsw i64 %.1671, %204
  %205 = add nsw i64 %spec.select731, 1
  %206 = load i64, ptr %3, align 8, !tbaa !5
  %207 = icmp slt i64 %206, 1
  br i1 %207, label %._crit_edge763, label %.lr.ph762

.lr.ph762:                                        ; preds = %._crit_edge, %212
  %.0667760 = phi i64 [ %208, %212 ], [ %205, %._crit_edge ]
  %.0677759 = phi i64 [ %.1678, %212 ], [ 1, %._crit_edge ]
  %208 = add nsw i64 %.0667760, 1
  %209 = getelementptr i64, ptr %20, i64 %.0667760
  store i64 %.0677759, ptr %209, align 8, !tbaa !5
  %210 = add nsw i64 %.0677759, %101
  %211 = load i64, ptr %3, align 8, !tbaa !5
  %.not707 = icmp slt i64 %210, %211
  br i1 %.not707, label %212, label %._crit_edge763

212:                                              ; preds = %.lr.ph762
  %213 = add nsw i64 %210, -1
  %214 = mul nsw i64 %213, %38
  %215 = getelementptr float, ptr %40, i64 %210
  %216 = getelementptr float, ptr %215, i64 %214
  %217 = load float, ptr %216, align 4, !tbaa !9
  %218 = fcmp une float %217, 0.000000e+00
  %219 = zext i1 %218 to i64
  %.1678 = add nsw i64 %210, %219
  %220 = icmp sgt i64 %.1678, %211
  br i1 %220, label %._crit_edge763, label %.lr.ph762

._crit_edge763:                                   ; preds = %212, %.lr.ph762, %._crit_edge
  %221 = phi i64 [ %206, %._crit_edge ], [ %211, %.lr.ph762 ], [ %211, %212 ]
  %.1668 = phi i64 [ %205, %._crit_edge ], [ %208, %.lr.ph762 ], [ %208, %212 ]
  %222 = add nsw i64 %221, 1
  %223 = getelementptr i64, ptr %20, i64 %.1668
  store i64 %222, ptr %223, align 8, !tbaa !5
  %224 = getelementptr inbounds i64, ptr %53, i64 %.1668
  %225 = load i64, ptr %224, align 8, !tbaa !5
  %226 = icmp eq i64 %225, %222
  %227 = sext i1 %226 to i64
  %spec.select732 = add i64 %.1668, %227
  br i1 %.not, label %400, label %.lr.ph823

.lr.ph823:                                        ; preds = %._crit_edge763
  %228 = add nsw i64 %spec.select731, 2
  %.not715808 = icmp sgt i64 %228, %spec.select732
  %invariant.gep797 = getelementptr i8, ptr %37, i64 4
  %invariant.gep799 = getelementptr i8, ptr %43, i64 4
  %invariant.gep801 = getelementptr i8, ptr %46, i64 4
  %invariant.gep803 = getelementptr i8, ptr %52, i64 4
  %229 = icmp sgt i64 %spec.select731, 0
  %230 = add i64 %38, 1
  %231 = add i64 %47, 1
  %232 = getelementptr i64, ptr %53, i64 %spec.select732
  %233 = getelementptr i8, ptr %232, i64 16
  %234 = getelementptr i64, ptr %20, i64 %spec.select732
  br label %235

235:                                              ; preds = %.lr.ph823, %398
  %.1821 = phi i64 [ 1, %.lr.ph823 ], [ %399, %398 ]
  %.2820 = phi float [ undef, %.lr.ph823 ], [ %.3, %398 ]
  store float 0.000000e+00, ptr %33, align 4, !tbaa !9
  store float 1.000000e+00, ptr %29, align 4, !tbaa !9
  store float 1.000000e+00, ptr %16, align 4, !tbaa !9
  br i1 %.not715808, label %._crit_edge812.thread, label %.lr.ph811

.lr.ph811:                                        ; preds = %235
  br i1 %229, label %.lr.ph807.us, label %.loopexit753.preheader

.loopexit753.preheader:                           ; preds = %.lr.ph811
  %236 = load i64, ptr %232, align 8, !tbaa !5
  %237 = load i64, ptr %234, align 8, !tbaa !5
  %238 = sub i64 %237, %236
  store i64 %238, ptr %27, align 8, !tbaa !5
  br label %._crit_edge812.thread

.lr.ph807.us:                                     ; preds = %.lr.ph811, %..loopexit753_crit_edge.us
  %239 = phi i64 [ %286, %..loopexit753_crit_edge.us ], [ 0, %.lr.ph811 ]
  %.2679809.us = phi i64 [ %345, %..loopexit753_crit_edge.us ], [ %228, %.lr.ph811 ]
  %240 = getelementptr inbounds i64, ptr %53, i64 %.2679809.us
  %241 = load i64, ptr %240, align 8, !tbaa !5
  %242 = getelementptr i64, ptr %20, i64 %.2679809.us
  %243 = load i64, ptr %242, align 8, !tbaa !5
  %244 = add nsw i64 %243, -1
  %245 = sub i64 %243, %241
  store i64 %245, ptr %27, align 8, !tbaa !5
  %246 = mul i64 %241, %230
  %247 = getelementptr inbounds float, ptr %40, i64 %246
  %248 = mul nsw i64 %241, %41
  %249 = mul i64 %241, %231
  %250 = getelementptr inbounds float, ptr %49, i64 %249
  %251 = mul nsw i64 %241, %50
  %252 = add nsw i64 %241, -1
  %gep800.us = getelementptr float, ptr %invariant.gep799, i64 %248
  %gep804.us = getelementptr float, ptr %invariant.gep803, i64 %251
  %253 = icmp slt i64 %.2679809.us, %spec.select732
  %254 = mul nsw i64 %243, %38
  %255 = getelementptr float, ptr %40, i64 %241
  %256 = getelementptr float, ptr %255, i64 %254
  %257 = mul nsw i64 %243, %41
  %258 = mul nsw i64 %243, %47
  %259 = getelementptr float, ptr %49, i64 %241
  %260 = getelementptr float, ptr %259, i64 %258
  %261 = mul nsw i64 %243, %50
  %.not716769.us = icmp slt i64 %241, 2
  %.not717778.us.not = icmp slt i64 %241, %243
  br label %262

262:                                              ; preds = %.backedge889, %.lr.ph807.us
  %263 = phi i64 [ %239, %.lr.ph807.us ], [ %286, %.backedge889 ]
  %.2683805.us = phi i64 [ %spec.select731, %.lr.ph807.us ], [ %.2683805.us.be, %.backedge889 ]
  %264 = getelementptr inbounds i64, ptr %53, i64 %.2683805.us
  %265 = load i64, ptr %264, align 8, !tbaa !5
  %266 = getelementptr i64, ptr %20, i64 %.2683805.us
  %267 = load i64, ptr %266, align 8, !tbaa !5
  %268 = add nsw i64 %267, -1
  %269 = sub i64 %267, %265
  store i64 %269, ptr %26, align 8, !tbaa !5
  store i64 0, ptr %30, align 8, !tbaa !5
  %270 = mul nsw i64 %265, %35
  %271 = getelementptr float, ptr %37, i64 %265
  %272 = getelementptr float, ptr %271, i64 %270
  %273 = getelementptr float, ptr %43, i64 %265
  %274 = getelementptr float, ptr %273, i64 %248
  %275 = mul nsw i64 %265, %44
  %276 = getelementptr float, ptr %46, i64 %265
  %277 = getelementptr float, ptr %276, i64 %275
  %278 = getelementptr float, ptr %52, i64 %265
  %279 = getelementptr float, ptr %278, i64 %251
  %280 = call i32 @stgsy2_(ptr noundef %0, ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %272, ptr noundef nonnull %5, ptr noundef %247, ptr noundef nonnull %7, ptr noundef %274, ptr noundef nonnull %9, ptr noundef %277, ptr noundef nonnull %11, ptr noundef %250, ptr noundef nonnull %13, ptr noundef %279, ptr noundef nonnull %15, ptr noundef nonnull %34, ptr noundef nonnull %29, ptr noundef nonnull %33, ptr noundef %233, ptr noundef nonnull %30, ptr noundef nonnull %32) #5
  %281 = load i64, ptr %32, align 8, !tbaa !5
  %282 = icmp sgt i64 %281, 0
  br i1 %282, label %283, label %284

283:                                              ; preds = %262
  store i64 %281, ptr %21, align 8, !tbaa !5
  br label %284

284:                                              ; preds = %283, %262
  %285 = load i64, ptr %30, align 8, !tbaa !5
  %286 = add nsw i64 %263, %285
  %287 = load float, ptr %34, align 4, !tbaa !9
  %288 = fcmp une float %287, 1.000000e+00
  br i1 %288, label %289, label %326

289:                                              ; preds = %284
  store i64 %252, ptr %24, align 8, !tbaa !5
  br i1 %.not716769.us, label %._crit_edge773.us, label %.lr.ph772.us

.lr.ph772.us:                                     ; preds = %289, %.lr.ph772.us
  %.0673770.us = phi i64 [ %294, %.lr.ph772.us ], [ 1, %289 ]
  %290 = mul nsw i64 %.0673770.us, %41
  %gep.us = getelementptr float, ptr %invariant.gep799, i64 %290
  %291 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep.us, ptr noundef nonnull @c__1) #5
  %292 = mul nsw i64 %.0673770.us, %50
  %gep768.us = getelementptr float, ptr %invariant.gep803, i64 %292
  %293 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep768.us, ptr noundef nonnull @c__1) #5
  %294 = add nuw nsw i64 %.0673770.us, 1
  %295 = load i64, ptr %24, align 8, !tbaa !5
  %.not716.us.not = icmp slt i64 %.0673770.us, %295
  br i1 %.not716.us.not, label %.lr.ph772.us, label %._crit_edge773.us, !llvm.loop !11

._crit_edge773.us:                                ; preds = %.lr.ph772.us, %289
  store i64 %244, ptr %24, align 8, !tbaa !5
  br i1 %.not717778.us.not, label %.lr.ph781.us, label %._crit_edge787.us

296:                                              ; preds = %.lr.ph781.us, %296
  %.1674779.us = phi i64 [ %241, %.lr.ph781.us ], [ %301, %296 ]
  store i64 %342, ptr %25, align 8, !tbaa !5
  %297 = mul nsw i64 %.1674779.us, %41
  %gep775.us = getelementptr float, ptr %invariant.gep799, i64 %297
  %298 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep775.us, ptr noundef nonnull @c__1) #5
  store i64 %342, ptr %25, align 8, !tbaa !5
  %299 = mul nsw i64 %.1674779.us, %50
  %gep777.us = getelementptr float, ptr %invariant.gep803, i64 %299
  %300 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep777.us, ptr noundef nonnull @c__1) #5
  %301 = add nsw i64 %.1674779.us, 1
  %302 = load i64, ptr %24, align 8, !tbaa !5
  %.not717.us.not = icmp slt i64 %.1674779.us, %302
  br i1 %.not717.us.not, label %296, label %._crit_edge782.us, !llvm.loop !13

._crit_edge782.us:                                ; preds = %296
  store i64 %244, ptr %24, align 8, !tbaa !5
  br i1 %.not717778.us.not, label %.lr.ph786.us, label %._crit_edge787.us

303:                                              ; preds = %.lr.ph786.us, %303
  %.2675784.us = phi i64 [ %241, %.lr.ph786.us ], [ %314, %303 ]
  %304 = load i64, ptr %2, align 8, !tbaa !5
  %305 = sub nsw i64 %304, %268
  store i64 %305, ptr %25, align 8, !tbaa !5
  %306 = mul nsw i64 %.2675784.us, %41
  %307 = getelementptr float, ptr %343, i64 %306
  %308 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %307, ptr noundef nonnull @c__1) #5
  %309 = load i64, ptr %2, align 8, !tbaa !5
  %310 = sub nsw i64 %309, %268
  store i64 %310, ptr %25, align 8, !tbaa !5
  %311 = mul nsw i64 %.2675784.us, %50
  %312 = getelementptr float, ptr %344, i64 %311
  %313 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %312, ptr noundef nonnull @c__1) #5
  %314 = add nsw i64 %.2675784.us, 1
  %315 = load i64, ptr %24, align 8, !tbaa !5
  %.not718.us.not = icmp slt i64 %.2675784.us, %315
  br i1 %.not718.us.not, label %303, label %._crit_edge787.us, !llvm.loop !14

._crit_edge787.us:                                ; preds = %303, %._crit_edge773.us, %._crit_edge782.us
  %316 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %316, ptr %24, align 8, !tbaa !5
  %.not719792.us = icmp sgt i64 %243, %316
  br i1 %.not719792.us, label %._crit_edge796.us, label %.lr.ph795.us

.lr.ph795.us:                                     ; preds = %._crit_edge787.us, %.lr.ph795.us
  %.3676793.us = phi i64 [ %321, %.lr.ph795.us ], [ %243, %._crit_edge787.us ]
  %317 = mul nsw i64 %.3676793.us, %41
  %gep789.us = getelementptr float, ptr %invariant.gep799, i64 %317
  %318 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep789.us, ptr noundef nonnull @c__1) #5
  %319 = mul nsw i64 %.3676793.us, %50
  %gep791.us = getelementptr float, ptr %invariant.gep803, i64 %319
  %320 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep791.us, ptr noundef nonnull @c__1) #5
  %321 = add nsw i64 %.3676793.us, 1
  %322 = load i64, ptr %24, align 8, !tbaa !5
  %.not719.us.not = icmp slt i64 %.3676793.us, %322
  br i1 %.not719.us.not, label %.lr.ph795.us, label %._crit_edge796.us, !llvm.loop !15

._crit_edge796.us:                                ; preds = %.lr.ph795.us, %._crit_edge787.us
  %323 = load float, ptr %34, align 4, !tbaa !9
  %324 = load float, ptr %16, align 4, !tbaa !9
  %325 = fmul float %323, %324
  store float %325, ptr %16, align 4, !tbaa !9
  br label %326

326:                                              ; preds = %._crit_edge796.us, %284
  %.not720.us = icmp eq i64 %.2683805.us, 1
  br i1 %.not720.us, label %.thread888, label %327

327:                                              ; preds = %326
  %328 = add nsw i64 %265, -1
  store i64 %328, ptr %24, align 8, !tbaa !5
  %gep798.us = getelementptr float, ptr %invariant.gep797, i64 %270
  %329 = call i32 @f2c_sgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull @c_b51, ptr noundef %gep798.us, ptr noundef nonnull %5, ptr noundef %274, ptr noundef nonnull %9, ptr noundef nonnull @c_b52, ptr noundef %gep800.us, ptr noundef nonnull %9) #5
  store i64 %328, ptr %24, align 8, !tbaa !5
  %gep802.us = getelementptr float, ptr %invariant.gep801, i64 %275
  %330 = call i32 @f2c_sgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull @c_b51, ptr noundef %gep802.us, ptr noundef nonnull %11, ptr noundef %274, ptr noundef nonnull %9, ptr noundef nonnull @c_b52, ptr noundef %gep804.us, ptr noundef nonnull %15) #5
  br i1 %253, label %331, label %.thread885

.thread888:                                       ; preds = %326
  br i1 %253, label %331, label %._crit_edge812

331:                                              ; preds = %.thread888, %327
  %332 = load i64, ptr %3, align 8, !tbaa !5
  %333 = sub nsw i64 %332, %244
  store i64 %333, ptr %24, align 8, !tbaa !5
  %334 = getelementptr float, ptr %273, i64 %257
  %335 = call i32 @f2c_sgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %26, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull @c_b52, ptr noundef %279, ptr noundef nonnull %15, ptr noundef %256, ptr noundef nonnull %7, ptr noundef nonnull @c_b52, ptr noundef %334, ptr noundef nonnull %9) #5
  %336 = load i64, ptr %3, align 8, !tbaa !5
  %337 = sub nsw i64 %336, %244
  store i64 %337, ptr %24, align 8, !tbaa !5
  %338 = getelementptr float, ptr %278, i64 %261
  %339 = call i32 @f2c_sgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %26, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull @c_b52, ptr noundef %279, ptr noundef nonnull %15, ptr noundef %260, ptr noundef nonnull %13, ptr noundef nonnull @c_b52, ptr noundef %338, ptr noundef nonnull %15) #5
  %340 = icmp sgt i64 %.2683805.us, 1
  br i1 %340, label %.backedge889, label %..loopexit753_crit_edge.us

.backedge889:                                     ; preds = %331, %.thread885
  %.2683805.us.be = add nsw i64 %.2683805.us, -1
  br label %262, !llvm.loop !16

.thread885:                                       ; preds = %327
  %341 = icmp sgt i64 %.2683805.us, 1
  br i1 %341, label %.backedge889, label %._crit_edge812

.lr.ph781.us:                                     ; preds = %._crit_edge773.us
  %342 = add nsw i64 %265, -1
  br label %296

.lr.ph786.us:                                     ; preds = %._crit_edge782.us
  %343 = getelementptr float, ptr %43, i64 %267
  %344 = getelementptr float, ptr %52, i64 %267
  br label %303

..loopexit753_crit_edge.us:                       ; preds = %331
  %345 = add nuw nsw i64 %.2679809.us, 1
  br label %.lr.ph807.us

._crit_edge812:                                   ; preds = %.thread888, %.thread885
  %.pre = load float, ptr %33, align 4, !tbaa !9
  %346 = fcmp une float %.pre, 0.000000e+00
  br i1 %346, label %347, label %._crit_edge812.thread

347:                                              ; preds = %._crit_edge812
  %348 = load i64, ptr %1, align 8, !tbaa !5
  switch i64 %348, label %365 [
    i64 1, label %349
    i64 3, label %349
  ]

349:                                              ; preds = %347, %347
  %350 = load i64, ptr %2, align 8, !tbaa !5
  %351 = shl i64 %350, 1
  %352 = load i64, ptr %3, align 8, !tbaa !5
  %353 = mul nsw i64 %351, %352
  %354 = sitofp i64 %353 to float
  %355 = fpext float %354 to double
  %356 = call double @sqrt(double noundef %355) #5
  %357 = load float, ptr %33, align 4, !tbaa !9
  %358 = fpext float %357 to double
  %359 = load float, ptr %29, align 4, !tbaa !9
  %360 = fpext float %359 to double
  %361 = call double @sqrt(double noundef %360) #5
  %362 = fmul double %361, %358
  %363 = fdiv double %356, %362
  %364 = fptrunc double %363 to float
  store float %364, ptr %17, align 4, !tbaa !9
  br label %._crit_edge812.thread

365:                                              ; preds = %347
  %366 = sitofp i64 %286 to float
  %367 = fpext float %366 to double
  %368 = call double @sqrt(double noundef %367) #5
  %369 = load float, ptr %33, align 4, !tbaa !9
  %370 = fpext float %369 to double
  %371 = load float, ptr %29, align 4, !tbaa !9
  %372 = fpext float %371 to double
  %373 = call double @sqrt(double noundef %372) #5
  %374 = fmul double %373, %370
  %375 = fdiv double %368, %374
  %376 = fptrunc double %375 to float
  store float %376, ptr %17, align 4, !tbaa !9
  br label %._crit_edge812.thread

._crit_edge812.thread:                            ; preds = %235, %.loopexit753.preheader, %349, %365, %._crit_edge812
  %377 = icmp eq i64 %.1821, 1
  %or.cond11 = and i1 %112, %377
  br i1 %or.cond11, label %378, label %389

378:                                              ; preds = %._crit_edge812.thread
  %379 = load i64, ptr %1, align 8, !tbaa !5
  store i64 %379, ptr %31, align 8, !tbaa !5
  %380 = load float, ptr %16, align 4, !tbaa !9
  %381 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %18, ptr noundef nonnull %2) #5
  %382 = load i64, ptr %2, align 8, !tbaa !5
  %383 = load i64, ptr %3, align 8, !tbaa !5
  %384 = mul nsw i64 %383, %382
  %385 = getelementptr float, ptr %18, i64 %384
  %386 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %385, ptr noundef nonnull %2) #5
  %387 = call i32 @slaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b14, ptr noundef nonnull @c_b14, ptr noundef %8, ptr noundef nonnull %9) #5
  %388 = call i32 @slaset_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b14, ptr noundef nonnull @c_b14, ptr noundef %14, ptr noundef nonnull %15) #5
  br label %398

389:                                              ; preds = %._crit_edge812.thread
  %390 = icmp eq i64 %.1821, 2
  %or.cond13 = and i1 %112, %390
  br i1 %or.cond13, label %391, label %398

391:                                              ; preds = %389
  %392 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull %9) #5
  %393 = load i64, ptr %2, align 8, !tbaa !5
  %394 = load i64, ptr %3, align 8, !tbaa !5
  %395 = mul nsw i64 %394, %393
  %396 = getelementptr float, ptr %18, i64 %395
  %397 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %396, ptr noundef nonnull %2, ptr noundef %14, ptr noundef nonnull %15) #5
  store float %.2820, ptr %16, align 4, !tbaa !9
  br label %398

398:                                              ; preds = %378, %391, %389
  %.3 = phi float [ %380, %378 ], [ %.2820, %391 ], [ %.2820, %389 ]
  %399 = add nuw nsw i64 %.1821, 1
  %.not714.not = icmp ult i64 %.1821, %113
  br i1 %.not714.not, label %235, label %.loopexit752, !llvm.loop !17

400:                                              ; preds = %._crit_edge763
  store float 1.000000e+00, ptr %16, align 4, !tbaa !9
  %.not708863 = icmp slt i64 %spec.select731, 1
  br i1 %.not708863, label %.loopexit752, label %.lr.ph866

.lr.ph866:                                        ; preds = %400
  %401 = add nuw nsw i64 %spec.select731, 2
  %invariant.gep855 = getelementptr i8, ptr %40, i64 4
  %invariant.gep857 = getelementptr i8, ptr %49, i64 4
  %.not709859 = icmp slt i64 %spec.select732, %401
  %402 = add i64 %35, 1
  %403 = add i64 %44, 1
  %404 = getelementptr i64, ptr %53, i64 %spec.select732
  %405 = getelementptr i8, ptr %404, i64 16
  %invariant.gep824 = getelementptr i8, ptr %43, i64 4
  %invariant.gep825 = getelementptr i8, ptr %52, i64 4
  br i1 %.not709859, label %.loopexit752, label %.lr.ph862

..loopexit751_crit_edge:                          ; preds = %496
  %406 = add nuw nsw i64 %.3684864, 1
  br label %.lr.ph862

.lr.ph862:                                        ; preds = %.lr.ph866, %..loopexit751_crit_edge
  %.3684864 = phi i64 [ %406, %..loopexit751_crit_edge ], [ 1, %.lr.ph866 ]
  %407 = getelementptr inbounds i64, ptr %53, i64 %.3684864
  %408 = load i64, ptr %407, align 8, !tbaa !5
  %409 = getelementptr i64, ptr %20, i64 %.3684864
  %410 = load i64, ptr %409, align 8, !tbaa !5
  %411 = add nsw i64 %410, -1
  %412 = sub i64 %410, %408
  store i64 %412, ptr %26, align 8, !tbaa !5
  %413 = mul i64 %408, %402
  %414 = getelementptr inbounds float, ptr %37, i64 %413
  %415 = getelementptr float, ptr %43, i64 %408
  %416 = mul i64 %408, %403
  %417 = getelementptr inbounds float, ptr %46, i64 %416
  %418 = getelementptr float, ptr %52, i64 %408
  %419 = add nsw i64 %408, -1
  %420 = getelementptr float, ptr %43, i64 %410
  %421 = getelementptr float, ptr %52, i64 %410
  %422 = getelementptr float, ptr %418, i64 %50
  %423 = icmp slt i64 %.3684864, %spec.select731
  %424 = mul nsw i64 %410, %35
  %425 = getelementptr float, ptr %37, i64 %408
  %426 = getelementptr float, ptr %425, i64 %424
  %427 = mul nsw i64 %410, %44
  %428 = getelementptr float, ptr %46, i64 %408
  %429 = getelementptr float, ptr %428, i64 %427
  br label %430

430:                                              ; preds = %.backedge, %.lr.ph862
  %.3680860 = phi i64 [ %spec.select732, %.lr.ph862 ], [ %.3680860.be, %.backedge ]
  %431 = getelementptr inbounds i64, ptr %53, i64 %.3680860
  %432 = load i64, ptr %431, align 8, !tbaa !5
  %433 = getelementptr i64, ptr %20, i64 %.3680860
  %434 = load i64, ptr %433, align 8, !tbaa !5
  %435 = add nsw i64 %434, -1
  %436 = sub i64 %434, %432
  store i64 %436, ptr %27, align 8, !tbaa !5
  %437 = mul nsw i64 %432, %38
  %438 = getelementptr float, ptr %40, i64 %432
  %439 = getelementptr float, ptr %438, i64 %437
  %440 = mul nsw i64 %432, %41
  %441 = getelementptr float, ptr %415, i64 %440
  %442 = mul nsw i64 %432, %47
  %443 = getelementptr float, ptr %49, i64 %432
  %444 = getelementptr float, ptr %443, i64 %442
  %445 = mul nsw i64 %432, %50
  %446 = getelementptr float, ptr %418, i64 %445
  %447 = call i32 @stgsy2_(ptr noundef %0, ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef %414, ptr noundef nonnull %5, ptr noundef %439, ptr noundef nonnull %7, ptr noundef %441, ptr noundef nonnull %9, ptr noundef %417, ptr noundef nonnull %11, ptr noundef %444, ptr noundef nonnull %13, ptr noundef %446, ptr noundef nonnull %15, ptr noundef nonnull %34, ptr noundef nonnull %29, ptr noundef nonnull %33, ptr noundef %405, ptr noundef nonnull %30, ptr noundef nonnull %32) #5
  %448 = load i64, ptr %32, align 8, !tbaa !5
  %449 = icmp sgt i64 %448, 0
  br i1 %449, label %450, label %451

450:                                              ; preds = %430
  store i64 %448, ptr %21, align 8, !tbaa !5
  br label %451

451:                                              ; preds = %450, %430
  %452 = load float, ptr %34, align 4, !tbaa !9
  %453 = fcmp une float %452, 1.000000e+00
  br i1 %453, label %454, label %490

454:                                              ; preds = %451
  %455 = add nsw i64 %432, -1
  store i64 %455, ptr %24, align 8, !tbaa !5
  %.not710827 = icmp slt i64 %432, 2
  br i1 %.not710827, label %._crit_edge831, label %.lr.ph830

.lr.ph830:                                        ; preds = %454, %.lr.ph830
  %.4828 = phi i64 [ %460, %.lr.ph830 ], [ 1, %454 ]
  %456 = mul nsw i64 %.4828, %41
  %gep = getelementptr float, ptr %invariant.gep824, i64 %456
  %457 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %458 = mul nsw i64 %.4828, %50
  %gep826 = getelementptr float, ptr %invariant.gep825, i64 %458
  %459 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep826, ptr noundef nonnull @c__1) #5
  %460 = add nuw nsw i64 %.4828, 1
  %461 = load i64, ptr %24, align 8, !tbaa !5
  %.not710.not = icmp slt i64 %.4828, %461
  br i1 %.not710.not, label %.lr.ph830, label %._crit_edge831, !llvm.loop !18

._crit_edge831:                                   ; preds = %.lr.ph830, %454
  store i64 %435, ptr %24, align 8, !tbaa !5
  %.not711836.not = icmp slt i64 %432, %434
  br i1 %.not711836.not, label %.lr.ph839, label %._crit_edge845

.lr.ph839:                                        ; preds = %._crit_edge831, %.lr.ph839
  %.5837 = phi i64 [ %466, %.lr.ph839 ], [ %432, %._crit_edge831 ]
  store i64 %419, ptr %25, align 8, !tbaa !5
  %462 = mul nsw i64 %.5837, %41
  %gep833 = getelementptr float, ptr %invariant.gep824, i64 %462
  %463 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep833, ptr noundef nonnull @c__1) #5
  store i64 %419, ptr %25, align 8, !tbaa !5
  %464 = mul nsw i64 %.5837, %50
  %gep835 = getelementptr float, ptr %invariant.gep825, i64 %464
  %465 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep835, ptr noundef nonnull @c__1) #5
  %466 = add nsw i64 %.5837, 1
  %467 = load i64, ptr %24, align 8, !tbaa !5
  %.not711.not = icmp slt i64 %.5837, %467
  br i1 %.not711.not, label %.lr.ph839, label %._crit_edge840, !llvm.loop !19

._crit_edge840:                                   ; preds = %.lr.ph839
  store i64 %435, ptr %24, align 8, !tbaa !5
  br i1 %.not711836.not, label %.lr.ph844, label %._crit_edge845

.lr.ph844:                                        ; preds = %._crit_edge840, %.lr.ph844
  %.6842 = phi i64 [ %478, %.lr.ph844 ], [ %432, %._crit_edge840 ]
  %468 = load i64, ptr %2, align 8, !tbaa !5
  %469 = sub nsw i64 %468, %411
  store i64 %469, ptr %25, align 8, !tbaa !5
  %470 = mul nsw i64 %.6842, %41
  %471 = getelementptr float, ptr %420, i64 %470
  %472 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %471, ptr noundef nonnull @c__1) #5
  %473 = load i64, ptr %2, align 8, !tbaa !5
  %474 = sub nsw i64 %473, %411
  store i64 %474, ptr %25, align 8, !tbaa !5
  %475 = mul nsw i64 %.6842, %50
  %476 = getelementptr float, ptr %421, i64 %475
  %477 = call i32 @f2c_sscal(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %476, ptr noundef nonnull @c__1) #5
  %478 = add nsw i64 %.6842, 1
  %479 = load i64, ptr %24, align 8, !tbaa !5
  %.not712.not = icmp slt i64 %.6842, %479
  br i1 %.not712.not, label %.lr.ph844, label %._crit_edge845, !llvm.loop !20

._crit_edge845:                                   ; preds = %.lr.ph844, %._crit_edge831, %._crit_edge840
  %480 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %480, ptr %24, align 8, !tbaa !5
  %.not713850 = icmp sgt i64 %434, %480
  br i1 %.not713850, label %._crit_edge854, label %.lr.ph853

.lr.ph853:                                        ; preds = %._crit_edge845, %.lr.ph853
  %.7851 = phi i64 [ %485, %.lr.ph853 ], [ %434, %._crit_edge845 ]
  %481 = mul nsw i64 %.7851, %41
  %gep847 = getelementptr float, ptr %invariant.gep824, i64 %481
  %482 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep847, ptr noundef nonnull @c__1) #5
  %483 = mul nsw i64 %.7851, %50
  %gep849 = getelementptr float, ptr %invariant.gep825, i64 %483
  %484 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep849, ptr noundef nonnull @c__1) #5
  %485 = add nsw i64 %.7851, 1
  %486 = load i64, ptr %24, align 8, !tbaa !5
  %.not713.not = icmp slt i64 %.7851, %486
  br i1 %.not713.not, label %.lr.ph853, label %._crit_edge854, !llvm.loop !21

._crit_edge854:                                   ; preds = %.lr.ph853, %._crit_edge845
  %487 = load float, ptr %34, align 4, !tbaa !9
  %488 = load float, ptr %16, align 4, !tbaa !9
  %489 = fmul float %487, %488
  store float %489, ptr %16, align 4, !tbaa !9
  br label %490

490:                                              ; preds = %._crit_edge854, %451
  %491 = icmp sgt i64 %.3680860, %401
  br i1 %491, label %492, label %.thread887

492:                                              ; preds = %490
  %493 = add nsw i64 %432, -1
  store i64 %493, ptr %24, align 8, !tbaa !5
  %gep856 = getelementptr float, ptr %invariant.gep855, i64 %437
  %494 = call i32 @f2c_sgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %26, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull @c_b52, ptr noundef %441, ptr noundef nonnull %9, ptr noundef %gep856, ptr noundef nonnull %7, ptr noundef nonnull @c_b52, ptr noundef %422, ptr noundef nonnull %15) #5
  store i64 %493, ptr %24, align 8, !tbaa !5
  %gep858 = getelementptr float, ptr %invariant.gep857, i64 %442
  %495 = call i32 @f2c_sgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %26, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull @c_b52, ptr noundef %446, ptr noundef nonnull %15, ptr noundef %gep858, ptr noundef nonnull %13, ptr noundef nonnull @c_b52, ptr noundef %422, ptr noundef nonnull %15) #5
  br i1 %423, label %496, label %.backedge

.thread887:                                       ; preds = %490
  br i1 %423, label %496, label %.loopexit752

496:                                              ; preds = %.thread887, %492
  %497 = load i64, ptr %2, align 8, !tbaa !5
  %498 = sub nsw i64 %497, %411
  store i64 %498, ptr %24, align 8, !tbaa !5
  %499 = getelementptr float, ptr %420, i64 %440
  %500 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull @c_b51, ptr noundef %426, ptr noundef nonnull %5, ptr noundef %441, ptr noundef nonnull %9, ptr noundef nonnull @c_b52, ptr noundef %499, ptr noundef nonnull %9) #5
  %501 = load i64, ptr %2, align 8, !tbaa !5
  %502 = sub nsw i64 %501, %411
  store i64 %502, ptr %24, align 8, !tbaa !5
  %503 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull @c_b51, ptr noundef %429, ptr noundef nonnull %11, ptr noundef %446, ptr noundef nonnull %15, ptr noundef nonnull @c_b52, ptr noundef %499, ptr noundef nonnull %9) #5
  br i1 %491, label %.backedge, label %..loopexit751_crit_edge

.backedge:                                        ; preds = %492, %496
  %.3680860.be = add nsw i64 %.3680860, -1
  br label %430, !llvm.loop !22

.loopexit752:                                     ; preds = %398, %.thread887, %.lr.ph866, %400
  store float %93, ptr %18, align 4, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %154, %175, %176, %.thread736, %.loopexit752, %.thread741
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  ret i32 0
}

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

declare i64 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @xerbla_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i64 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @slaset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @stgsy2_(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) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #3

declare i32 @slacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @f2c_sscal(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @f2c_sgemm(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #4

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 = { mustprogress nofree nounwind willreturn memory(write) "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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind }

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass