; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@c_n1 = external hidden global i32, align 4
@c__5 = external hidden global i32, align 4
@.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 i32, align 4
@c_b51 = external hidden global float, align 4
@c_b52 = external hidden global float, align 4

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

159:                                              ; preds = %22
  %160 = load ptr, ptr %23, align 8, !tbaa !5
  %161 = call i32 @lsame_(ptr noundef %160, ptr noundef @.str.1)
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %165, label %163

163:                                              ; preds = %159
  %164 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -1, ptr %164, align 4, !tbaa !9
  br label %180

165:                                              ; preds = %159, %22
  %166 = load i32, ptr %82, align 4, !tbaa !9
  %167 = icmp ne i32 %166, 0
  br i1 %167, label %168, label %179

168:                                              ; preds = %165
  %169 = load ptr, ptr %24, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = icmp slt i32 %170, 0
  br i1 %171, label %176, label %172

172:                                              ; preds = %168
  %173 = load ptr, ptr %24, align 8, !tbaa !5
  %174 = load i32, ptr %173, align 4, !tbaa !9
  %175 = icmp sgt i32 %174, 4
  br i1 %175, label %176, label %178

176:                                              ; preds = %172, %168
  %177 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -2, ptr %177, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %176, %172
  br label %179

179:                                              ; preds = %178, %165
  br label %180

180:                                              ; preds = %179, %163
  %181 = load ptr, ptr %44, align 8, !tbaa !5
  %182 = load i32, ptr %181, align 4, !tbaa !9
  %183 = icmp eq i32 %182, 0
  br i1 %183, label %184, label %294

184:                                              ; preds = %180
  %185 = load ptr, ptr %25, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  %187 = icmp sle i32 %186, 0
  br i1 %187, label %188, label %190

188:                                              ; preds = %184
  %189 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -3, ptr %189, align 4, !tbaa !9
  br label %293

190:                                              ; preds = %184
  %191 = load ptr, ptr %26, align 8, !tbaa !5
  %192 = load i32, ptr %191, align 4, !tbaa !9
  %193 = icmp sle i32 %192, 0
  br i1 %193, label %194, label %196

194:                                              ; preds = %190
  %195 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -4, ptr %195, align 4, !tbaa !9
  br label %292

196:                                              ; preds = %190
  %197 = load ptr, ptr %28, align 8, !tbaa !5
  %198 = load i32, ptr %197, align 4, !tbaa !9
  %199 = load ptr, ptr %25, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = icmp sge i32 1, %200
  br i1 %201, label %202, label %203

202:                                              ; preds = %196
  br label %206

203:                                              ; preds = %196
  %204 = load ptr, ptr %25, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  br label %206

206:                                              ; preds = %203, %202
  %207 = phi i32 [ 1, %202 ], [ %205, %203 ]
  %208 = icmp slt i32 %198, %207
  br i1 %208, label %209, label %211

209:                                              ; preds = %206
  %210 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -6, ptr %210, align 4, !tbaa !9
  br label %291

211:                                              ; preds = %206
  %212 = load ptr, ptr %30, align 8, !tbaa !5
  %213 = load i32, ptr %212, align 4, !tbaa !9
  %214 = load ptr, ptr %26, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = icmp sge i32 1, %215
  br i1 %216, label %217, label %218

217:                                              ; preds = %211
  br label %221

218:                                              ; preds = %211
  %219 = load ptr, ptr %26, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  br label %221

221:                                              ; preds = %218, %217
  %222 = phi i32 [ 1, %217 ], [ %220, %218 ]
  %223 = icmp slt i32 %213, %222
  br i1 %223, label %224, label %226

224:                                              ; preds = %221
  %225 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -8, ptr %225, align 4, !tbaa !9
  br label %290

226:                                              ; preds = %221
  %227 = load ptr, ptr %32, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = load ptr, ptr %25, align 8, !tbaa !5
  %230 = load i32, ptr %229, align 4, !tbaa !9
  %231 = icmp sge i32 1, %230
  br i1 %231, label %232, label %233

232:                                              ; preds = %226
  br label %236

233:                                              ; preds = %226
  %234 = load ptr, ptr %25, align 8, !tbaa !5
  %235 = load i32, ptr %234, align 4, !tbaa !9
  br label %236

236:                                              ; preds = %233, %232
  %237 = phi i32 [ 1, %232 ], [ %235, %233 ]
  %238 = icmp slt i32 %228, %237
  br i1 %238, label %239, label %241

239:                                              ; preds = %236
  %240 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -10, ptr %240, align 4, !tbaa !9
  br label %289

241:                                              ; preds = %236
  %242 = load ptr, ptr %34, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = load ptr, ptr %25, align 8, !tbaa !5
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = icmp sge i32 1, %245
  br i1 %246, label %247, label %248

247:                                              ; preds = %241
  br label %251

248:                                              ; preds = %241
  %249 = load ptr, ptr %25, align 8, !tbaa !5
  %250 = load i32, ptr %249, align 4, !tbaa !9
  br label %251

251:                                              ; preds = %248, %247
  %252 = phi i32 [ 1, %247 ], [ %250, %248 ]
  %253 = icmp slt i32 %243, %252
  br i1 %253, label %254, label %256

254:                                              ; preds = %251
  %255 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -12, ptr %255, align 4, !tbaa !9
  br label %288

256:                                              ; preds = %251
  %257 = load ptr, ptr %36, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = load ptr, ptr %26, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp sge i32 1, %260
  br i1 %261, label %262, label %263

262:                                              ; preds = %256
  br label %266

263:                                              ; preds = %256
  %264 = load ptr, ptr %26, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  br label %266

266:                                              ; preds = %263, %262
  %267 = phi i32 [ 1, %262 ], [ %265, %263 ]
  %268 = icmp slt i32 %258, %267
  br i1 %268, label %269, label %271

269:                                              ; preds = %266
  %270 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -14, ptr %270, align 4, !tbaa !9
  br label %287

271:                                              ; preds = %266
  %272 = load ptr, ptr %38, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = load ptr, ptr %25, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = icmp sge i32 1, %275
  br i1 %276, label %277, label %278

277:                                              ; preds = %271
  br label %281

278:                                              ; preds = %271
  %279 = load ptr, ptr %25, align 8, !tbaa !5
  %280 = load i32, ptr %279, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %278, %277
  %282 = phi i32 [ 1, %277 ], [ %280, %278 ]
  %283 = icmp slt i32 %273, %282
  br i1 %283, label %284, label %286

284:                                              ; preds = %281
  %285 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -16, ptr %285, align 4, !tbaa !9
  br label %286

286:                                              ; preds = %284, %281
  br label %287

287:                                              ; preds = %286, %269
  br label %288

288:                                              ; preds = %287, %254
  br label %289

289:                                              ; preds = %288, %239
  br label %290

290:                                              ; preds = %289, %224
  br label %291

291:                                              ; preds = %290, %209
  br label %292

292:                                              ; preds = %291, %194
  br label %293

293:                                              ; preds = %292, %188
  br label %294

294:                                              ; preds = %293, %180
  %295 = load ptr, ptr %44, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  %297 = icmp eq i32 %296, 0
  br i1 %297, label %298, label %343

298:                                              ; preds = %294
  %299 = load i32, ptr %82, align 4, !tbaa !9
  %300 = icmp ne i32 %299, 0
  br i1 %300, label %301, label %327

301:                                              ; preds = %298
  %302 = load ptr, ptr %24, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = icmp eq i32 %303, 1
  br i1 %304, label %309, label %305

305:                                              ; preds = %301
  %306 = load ptr, ptr %24, align 8, !tbaa !5
  %307 = load i32, ptr %306, align 4, !tbaa !9
  %308 = icmp eq i32 %307, 2
  br i1 %308, label %309, label %325

309:                                              ; preds = %305, %301
  store i32 1, ptr %57, align 4, !tbaa !9
  %310 = load ptr, ptr %25, align 8, !tbaa !5
  %311 = load i32, ptr %310, align 4, !tbaa !9
  %312 = shl i32 %311, 1
  %313 = load ptr, ptr %26, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !9
  %315 = mul nsw i32 %312, %314
  store i32 %315, ptr %58, align 4, !tbaa !9
  %316 = load i32, ptr %57, align 4, !tbaa !9
  %317 = load i32, ptr %58, align 4, !tbaa !9
  %318 = icmp sge i32 %316, %317
  br i1 %318, label %319, label %321

319:                                              ; preds = %309
  %320 = load i32, ptr %57, align 4, !tbaa !9
  br label %323

321:                                              ; preds = %309
  %322 = load i32, ptr %58, align 4, !tbaa !9
  br label %323

323:                                              ; preds = %321, %319
  %324 = phi i32 [ %320, %319 ], [ %322, %321 ]
  store i32 %324, ptr %70, align 4, !tbaa !9
  br label %326

325:                                              ; preds = %305
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %326

326:                                              ; preds = %325, %323
  br label %328

327:                                              ; preds = %298
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %327, %326
  %329 = load i32, ptr %70, align 4, !tbaa !9
  %330 = sitofp i32 %329 to float
  %331 = load ptr, ptr %41, align 8, !tbaa !5
  %332 = getelementptr inbounds float, ptr %331, i64 1
  store float %330, ptr %332, align 4, !tbaa !11
  %333 = load ptr, ptr %42, align 8, !tbaa !5
  %334 = load i32, ptr %333, align 4, !tbaa !9
  %335 = load i32, ptr %70, align 4, !tbaa !9
  %336 = icmp slt i32 %334, %335
  br i1 %336, label %337, label %342

337:                                              ; preds = %328
  %338 = load i32, ptr %84, align 4, !tbaa !9
  %339 = icmp ne i32 %338, 0
  br i1 %339, label %342, label %340

340:                                              ; preds = %337
  %341 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -20, ptr %341, align 4, !tbaa !9
  br label %342

342:                                              ; preds = %340, %337, %328
  br label %343

343:                                              ; preds = %342, %294
  %344 = load ptr, ptr %44, align 8, !tbaa !5
  %345 = load i32, ptr %344, align 4, !tbaa !9
  %346 = icmp ne i32 %345, 0
  br i1 %346, label %347, label %352

347:                                              ; preds = %343
  %348 = load ptr, ptr %44, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = sub nsw i32 0, %349
  store i32 %350, ptr %57, align 4, !tbaa !9
  %351 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %57, i32 noundef 6)
  store i32 1, ptr %85, align 4
  br label %1670

352:                                              ; preds = %343
  %353 = load i32, ptr %84, align 4, !tbaa !9
  %354 = icmp ne i32 %353, 0
  br i1 %354, label %355, label %356

355:                                              ; preds = %352
  store i32 1, ptr %85, align 4
  br label %1670

356:                                              ; preds = %352
  br label %357

357:                                              ; preds = %356
  %358 = load ptr, ptr %25, align 8, !tbaa !5
  %359 = load i32, ptr %358, align 4, !tbaa !9
  %360 = icmp eq i32 %359, 0
  br i1 %360, label %365, label %361

361:                                              ; preds = %357
  %362 = load ptr, ptr %26, align 8, !tbaa !5
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %377

365:                                              ; preds = %361, %357
  %366 = load ptr, ptr %39, align 8, !tbaa !5
  store float 1.000000e+00, ptr %366, align 4, !tbaa !11
  %367 = load i32, ptr %82, align 4, !tbaa !9
  %368 = icmp ne i32 %367, 0
  br i1 %368, label %369, label %376

369:                                              ; preds = %365
  %370 = load ptr, ptr %24, align 8, !tbaa !5
  %371 = load i32, ptr %370, align 4, !tbaa !9
  %372 = icmp ne i32 %371, 0
  br i1 %372, label %373, label %375

373:                                              ; preds = %369
  %374 = load ptr, ptr %40, align 8, !tbaa !5
  store float 0.000000e+00, ptr %374, align 4, !tbaa !11
  br label %375

375:                                              ; preds = %373, %369
  br label %376

376:                                              ; preds = %375, %365
  store i32 1, ptr %85, align 4
  br label %1670

377:                                              ; preds = %361
  %378 = load ptr, ptr %23, align 8, !tbaa !5
  %379 = load ptr, ptr %25, align 8, !tbaa !5
  %380 = load ptr, ptr %26, align 8, !tbaa !5
  %381 = call i32 @ilaenv_(ptr noundef @c__2, ptr noundef @.str.2, ptr noundef %378, ptr noundef %379, ptr noundef %380, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %381, ptr %74, align 4, !tbaa !9
  %382 = load ptr, ptr %23, align 8, !tbaa !5
  %383 = load ptr, ptr %25, align 8, !tbaa !5
  %384 = load ptr, ptr %26, align 8, !tbaa !5
  %385 = call i32 @ilaenv_(ptr noundef @c__5, ptr noundef @.str.2, ptr noundef %382, ptr noundef %383, ptr noundef %384, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %385, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %68, align 4, !tbaa !9
  %386 = load i32, ptr %82, align 4, !tbaa !9
  %387 = icmp ne i32 %386, 0
  br i1 %387, label %388, label %420

388:                                              ; preds = %377
  %389 = load ptr, ptr %24, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = icmp sge i32 %390, 3
  br i1 %391, label %392, label %410

392:                                              ; preds = %388
  %393 = load ptr, ptr %24, align 8, !tbaa !5
  %394 = load i32, ptr %393, align 4, !tbaa !9
  %395 = sub nsw i32 %394, 2
  store i32 %395, ptr %68, align 4, !tbaa !9
  %396 = load ptr, ptr %25, align 8, !tbaa !5
  %397 = load ptr, ptr %26, align 8, !tbaa !5
  %398 = load ptr, ptr %31, align 8, !tbaa !5
  %399 = load i32, ptr %50, align 4, !tbaa !9
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds float, ptr %398, i64 %400
  %402 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.3, ptr noundef %396, ptr noundef %397, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %401, ptr noundef %402)
  %403 = load ptr, ptr %25, align 8, !tbaa !5
  %404 = load ptr, ptr %26, align 8, !tbaa !5
  %405 = load ptr, ptr %37, align 8, !tbaa !5
  %406 = load i32, ptr %56, align 4, !tbaa !9
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds float, ptr %405, i64 %407
  %409 = load ptr, ptr %38, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.3, ptr noundef %403, ptr noundef %404, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %408, ptr noundef %409)
  br label %419

410:                                              ; preds = %388
  %411 = load ptr, ptr %24, align 8, !tbaa !5
  %412 = load i32, ptr %411, align 4, !tbaa !9
  %413 = icmp sge i32 %412, 1
  br i1 %413, label %414, label %418

414:                                              ; preds = %410
  %415 = load i32, ptr %82, align 4, !tbaa !9
  %416 = icmp ne i32 %415, 0
  br i1 %416, label %417, label %418

417:                                              ; preds = %414
  store i32 2, ptr %83, align 4, !tbaa !9
  br label %418

418:                                              ; preds = %417, %414, %410
  br label %419

419:                                              ; preds = %418, %392
  br label %420

420:                                              ; preds = %419, %377
  %421 = load i32, ptr %74, align 4, !tbaa !9
  %422 = icmp sle i32 %421, 1
  br i1 %422, label %423, label %426

423:                                              ; preds = %420
  %424 = load i32, ptr %75, align 4, !tbaa !9
  %425 = icmp sle i32 %424, 1
  br i1 %425, label %436, label %426

426:                                              ; preds = %423, %420
  %427 = load i32, ptr %74, align 4, !tbaa !9
  %428 = load ptr, ptr %25, align 8, !tbaa !5
  %429 = load i32, ptr %428, align 4, !tbaa !9
  %430 = icmp sge i32 %427, %429
  br i1 %430, label %431, label %622

431:                                              ; preds = %426
  %432 = load i32, ptr %75, align 4, !tbaa !9
  %433 = load ptr, ptr %26, align 8, !tbaa !5
  %434 = load i32, ptr %433, align 4, !tbaa !9
  %435 = icmp sge i32 %432, %434
  br i1 %435, label %436, label %622

436:                                              ; preds = %431, %423
  %437 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %437, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %438

438:                                              ; preds = %618, %436
  %439 = load i32, ptr %81, align 4, !tbaa !9
  %440 = load i32, ptr %57, align 4, !tbaa !9
  %441 = icmp sle i32 %439, %440
  br i1 %441, label %442, label %621

442:                                              ; preds = %438
  store float 0.000000e+00, ptr %76, align 4, !tbaa !11
  store float 1.000000e+00, ptr %61, align 4, !tbaa !11
  store i32 0, ptr %79, align 4, !tbaa !9
  %443 = load ptr, ptr %23, align 8, !tbaa !5
  %444 = load ptr, ptr %25, align 8, !tbaa !5
  %445 = load ptr, ptr %26, align 8, !tbaa !5
  %446 = load ptr, ptr %27, align 8, !tbaa !5
  %447 = load i32, ptr %46, align 4, !tbaa !9
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %446, i64 %448
  %450 = load ptr, ptr %28, align 8, !tbaa !5
  %451 = load ptr, ptr %29, align 8, !tbaa !5
  %452 = load i32, ptr %48, align 4, !tbaa !9
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %451, i64 %453
  %455 = load ptr, ptr %30, align 8, !tbaa !5
  %456 = load ptr, ptr %31, align 8, !tbaa !5
  %457 = load i32, ptr %50, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds float, ptr %456, i64 %458
  %460 = load ptr, ptr %32, align 8, !tbaa !5
  %461 = load ptr, ptr %33, align 8, !tbaa !5
  %462 = load i32, ptr %52, align 4, !tbaa !9
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds float, ptr %461, i64 %463
  %465 = load ptr, ptr %34, align 8, !tbaa !5
  %466 = load ptr, ptr %35, align 8, !tbaa !5
  %467 = load i32, ptr %54, align 4, !tbaa !9
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds float, ptr %466, i64 %468
  %470 = load ptr, ptr %36, align 8, !tbaa !5
  %471 = load ptr, ptr %37, align 8, !tbaa !5
  %472 = load i32, ptr %56, align 4, !tbaa !9
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds float, ptr %471, i64 %473
  %475 = load ptr, ptr %38, align 8, !tbaa !5
  %476 = load ptr, ptr %39, align 8, !tbaa !5
  %477 = load ptr, ptr %43, align 8, !tbaa !5
  %478 = getelementptr inbounds i32, ptr %477, i64 1
  %479 = load ptr, ptr %44, align 8, !tbaa !5
  call void @stgsy2_(ptr noundef %443, ptr noundef %68, ptr noundef %444, ptr noundef %445, ptr noundef %449, ptr noundef %450, ptr noundef %454, ptr noundef %455, ptr noundef %459, ptr noundef %460, ptr noundef %464, ptr noundef %465, ptr noundef %469, ptr noundef %470, ptr noundef %474, ptr noundef %475, ptr noundef %476, ptr noundef %61, ptr noundef %76, ptr noundef %478, ptr noundef %79, ptr noundef %479)
  %480 = load float, ptr %76, align 4, !tbaa !11
  %481 = fcmp une float %480, 0.000000e+00
  br i1 %481, label %482, label %524

482:                                              ; preds = %442
  %483 = load ptr, ptr %24, align 8, !tbaa !5
  %484 = load i32, ptr %483, align 4, !tbaa !9
  %485 = icmp eq i32 %484, 1
  br i1 %485, label %490, label %486

486:                                              ; preds = %482
  %487 = load ptr, ptr %24, align 8, !tbaa !5
  %488 = load i32, ptr %487, align 4, !tbaa !9
  %489 = icmp eq i32 %488, 3
  br i1 %489, label %490, label %509

490:                                              ; preds = %486, %482
  %491 = load ptr, ptr %25, align 8, !tbaa !5
  %492 = load i32, ptr %491, align 4, !tbaa !9
  %493 = shl i32 %492, 1
  %494 = load ptr, ptr %26, align 8, !tbaa !5
  %495 = load i32, ptr %494, align 4, !tbaa !9
  %496 = mul nsw i32 %493, %495
  %497 = sitofp i32 %496 to float
  %498 = fpext float %497 to double
  %499 = call double @sqrt(double noundef %498) #4
  %500 = load float, ptr %76, align 4, !tbaa !11
  %501 = fpext float %500 to double
  %502 = load float, ptr %61, align 4, !tbaa !11
  %503 = fpext float %502 to double
  %504 = call double @sqrt(double noundef %503) #4
  %505 = fmul double %501, %504
  %506 = fdiv double %499, %505
  %507 = fptrunc double %506 to float
  %508 = load ptr, ptr %40, align 8, !tbaa !5
  store float %507, ptr %508, align 4, !tbaa !11
  br label %523

509:                                              ; preds = %486
  %510 = load i32, ptr %79, align 4, !tbaa !9
  %511 = sitofp i32 %510 to float
  %512 = fpext float %511 to double
  %513 = call double @sqrt(double noundef %512) #4
  %514 = load float, ptr %76, align 4, !tbaa !11
  %515 = fpext float %514 to double
  %516 = load float, ptr %61, align 4, !tbaa !11
  %517 = fpext float %516 to double
  %518 = call double @sqrt(double noundef %517) #4
  %519 = fmul double %515, %518
  %520 = fdiv double %513, %519
  %521 = fptrunc double %520 to float
  %522 = load ptr, ptr %40, align 8, !tbaa !5
  store float %521, ptr %522, align 4, !tbaa !11
  br label %523

523:                                              ; preds = %509, %490
  br label %524

524:                                              ; preds = %523, %442
  %525 = load i32, ptr %83, align 4, !tbaa !9
  %526 = icmp eq i32 %525, 2
  br i1 %526, label %527, label %580

527:                                              ; preds = %524
  %528 = load i32, ptr %81, align 4, !tbaa !9
  %529 = icmp eq i32 %528, 1
  br i1 %529, label %530, label %580

530:                                              ; preds = %527
  %531 = load i32, ptr %82, align 4, !tbaa !9
  %532 = icmp ne i32 %531, 0
  br i1 %532, label %533, label %536

533:                                              ; preds = %530
  %534 = load ptr, ptr %24, align 8, !tbaa !5
  %535 = load i32, ptr %534, align 4, !tbaa !9
  store i32 %535, ptr %68, align 4, !tbaa !9
  br label %536

536:                                              ; preds = %533, %530
  %537 = load ptr, ptr %39, align 8, !tbaa !5
  %538 = load float, ptr %537, align 4, !tbaa !11
  store float %538, ptr %71, align 4, !tbaa !11
  %539 = load ptr, ptr %25, align 8, !tbaa !5
  %540 = load ptr, ptr %26, align 8, !tbaa !5
  %541 = load ptr, ptr %31, align 8, !tbaa !5
  %542 = load i32, ptr %50, align 4, !tbaa !9
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds float, ptr %541, i64 %543
  %545 = load ptr, ptr %32, align 8, !tbaa !5
  %546 = load ptr, ptr %41, align 8, !tbaa !5
  %547 = getelementptr inbounds float, ptr %546, i64 1
  %548 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %539, ptr noundef %540, ptr noundef %544, ptr noundef %545, ptr noundef %547, ptr noundef %548)
  %549 = load ptr, ptr %25, align 8, !tbaa !5
  %550 = load ptr, ptr %26, align 8, !tbaa !5
  %551 = load ptr, ptr %37, align 8, !tbaa !5
  %552 = load i32, ptr %56, align 4, !tbaa !9
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds float, ptr %551, i64 %553
  %555 = load ptr, ptr %38, align 8, !tbaa !5
  %556 = load ptr, ptr %41, align 8, !tbaa !5
  %557 = load ptr, ptr %25, align 8, !tbaa !5
  %558 = load i32, ptr %557, align 4, !tbaa !9
  %559 = load ptr, ptr %26, align 8, !tbaa !5
  %560 = load i32, ptr %559, align 4, !tbaa !9
  %561 = mul nsw i32 %558, %560
  %562 = add nsw i32 %561, 1
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds float, ptr %556, i64 %563
  %565 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %549, ptr noundef %550, ptr noundef %554, ptr noundef %555, ptr noundef %564, ptr noundef %565)
  %566 = load ptr, ptr %25, align 8, !tbaa !5
  %567 = load ptr, ptr %26, align 8, !tbaa !5
  %568 = load ptr, ptr %31, align 8, !tbaa !5
  %569 = load i32, ptr %50, align 4, !tbaa !9
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds float, ptr %568, i64 %570
  %572 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.3, ptr noundef %566, ptr noundef %567, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %571, ptr noundef %572)
  %573 = load ptr, ptr %25, align 8, !tbaa !5
  %574 = load ptr, ptr %26, align 8, !tbaa !5
  %575 = load ptr, ptr %37, align 8, !tbaa !5
  %576 = load i32, ptr %56, align 4, !tbaa !9
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds float, ptr %575, i64 %577
  %579 = load ptr, ptr %38, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.3, ptr noundef %573, ptr noundef %574, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %578, ptr noundef %579)
  br label %617

580:                                              ; preds = %527, %524
  %581 = load i32, ptr %83, align 4, !tbaa !9
  %582 = icmp eq i32 %581, 2
  br i1 %582, label %583, label %616

583:                                              ; preds = %580
  %584 = load i32, ptr %81, align 4, !tbaa !9
  %585 = icmp eq i32 %584, 2
  br i1 %585, label %586, label %616

586:                                              ; preds = %583
  %587 = load ptr, ptr %25, align 8, !tbaa !5
  %588 = load ptr, ptr %26, align 8, !tbaa !5
  %589 = load ptr, ptr %41, align 8, !tbaa !5
  %590 = getelementptr inbounds float, ptr %589, i64 1
  %591 = load ptr, ptr %25, align 8, !tbaa !5
  %592 = load ptr, ptr %31, align 8, !tbaa !5
  %593 = load i32, ptr %50, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  %596 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %587, ptr noundef %588, ptr noundef %590, ptr noundef %591, ptr noundef %595, ptr noundef %596)
  %597 = load ptr, ptr %25, align 8, !tbaa !5
  %598 = load ptr, ptr %26, align 8, !tbaa !5
  %599 = load ptr, ptr %41, align 8, !tbaa !5
  %600 = load ptr, ptr %25, align 8, !tbaa !5
  %601 = load i32, ptr %600, align 4, !tbaa !9
  %602 = load ptr, ptr %26, align 8, !tbaa !5
  %603 = load i32, ptr %602, align 4, !tbaa !9
  %604 = mul nsw i32 %601, %603
  %605 = add nsw i32 %604, 1
  %606 = sext i32 %605 to i64
  %607 = getelementptr inbounds float, ptr %599, i64 %606
  %608 = load ptr, ptr %25, align 8, !tbaa !5
  %609 = load ptr, ptr %37, align 8, !tbaa !5
  %610 = load i32, ptr %56, align 4, !tbaa !9
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds float, ptr %609, i64 %611
  %613 = load ptr, ptr %38, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %597, ptr noundef %598, ptr noundef %607, ptr noundef %608, ptr noundef %612, ptr noundef %613)
  %614 = load float, ptr %71, align 4, !tbaa !11
  %615 = load ptr, ptr %39, align 8, !tbaa !5
  store float %614, ptr %615, align 4, !tbaa !11
  br label %616

616:                                              ; preds = %586, %583, %580
  br label %617

617:                                              ; preds = %616, %536
  br label %618

618:                                              ; preds = %617
  %619 = load i32, ptr %81, align 4, !tbaa !9
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr %81, align 4, !tbaa !9
  br label %438, !llvm.loop !13

621:                                              ; preds = %438
  store i32 1, ptr %85, align 4
  br label %1670

622:                                              ; preds = %431, %426
  store i32 0, ptr %66, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %623

623:                                              ; preds = %660, %622
  %624 = load i32, ptr %63, align 4, !tbaa !9
  %625 = load ptr, ptr %25, align 8, !tbaa !5
  %626 = load i32, ptr %625, align 4, !tbaa !9
  %627 = icmp sgt i32 %624, %626
  br i1 %627, label %628, label %629

628:                                              ; preds = %623
  br label %661

629:                                              ; preds = %623
  %630 = load i32, ptr %66, align 4, !tbaa !9
  %631 = add nsw i32 %630, 1
  store i32 %631, ptr %66, align 4, !tbaa !9
  %632 = load i32, ptr %63, align 4, !tbaa !9
  %633 = load ptr, ptr %43, align 8, !tbaa !5
  %634 = load i32, ptr %66, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds i32, ptr %633, i64 %635
  store i32 %632, ptr %636, align 4, !tbaa !9
  %637 = load i32, ptr %74, align 4, !tbaa !9
  %638 = load i32, ptr %63, align 4, !tbaa !9
  %639 = add nsw i32 %638, %637
  store i32 %639, ptr %63, align 4, !tbaa !9
  %640 = load i32, ptr %63, align 4, !tbaa !9
  %641 = load ptr, ptr %25, align 8, !tbaa !5
  %642 = load i32, ptr %641, align 4, !tbaa !9
  %643 = icmp sge i32 %640, %642
  br i1 %643, label %644, label %645

644:                                              ; preds = %629
  br label %661

645:                                              ; preds = %629
  %646 = load ptr, ptr %27, align 8, !tbaa !5
  %647 = load i32, ptr %63, align 4, !tbaa !9
  %648 = load i32, ptr %63, align 4, !tbaa !9
  %649 = sub nsw i32 %648, 1
  %650 = load i32, ptr %45, align 4, !tbaa !9
  %651 = mul nsw i32 %649, %650
  %652 = add nsw i32 %647, %651
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds float, ptr %646, i64 %653
  %655 = load float, ptr %654, align 4, !tbaa !11
  %656 = fcmp une float %655, 0.000000e+00
  br i1 %656, label %657, label %660

657:                                              ; preds = %645
  %658 = load i32, ptr %63, align 4, !tbaa !9
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr %63, align 4, !tbaa !9
  br label %660

660:                                              ; preds = %657, %645
  br label %623

661:                                              ; preds = %644, %628
  %662 = load ptr, ptr %25, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  %664 = add nsw i32 %663, 1
  %665 = load ptr, ptr %43, align 8, !tbaa !5
  %666 = load i32, ptr %66, align 4, !tbaa !9
  %667 = add nsw i32 %666, 1
  %668 = sext i32 %667 to i64
  %669 = getelementptr inbounds i32, ptr %665, i64 %668
  store i32 %664, ptr %669, align 4, !tbaa !9
  %670 = load ptr, ptr %43, align 8, !tbaa !5
  %671 = load i32, ptr %66, align 4, !tbaa !9
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds i32, ptr %670, i64 %672
  %674 = load i32, ptr %673, align 4, !tbaa !9
  %675 = load ptr, ptr %43, align 8, !tbaa !5
  %676 = load i32, ptr %66, align 4, !tbaa !9
  %677 = add nsw i32 %676, 1
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds i32, ptr %675, i64 %678
  %680 = load i32, ptr %679, align 4, !tbaa !9
  %681 = icmp eq i32 %674, %680
  br i1 %681, label %682, label %685

682:                                              ; preds = %661
  %683 = load i32, ptr %66, align 4, !tbaa !9
  %684 = add nsw i32 %683, -1
  store i32 %684, ptr %66, align 4, !tbaa !9
  br label %685

685:                                              ; preds = %682, %661
  %686 = load i32, ptr %66, align 4, !tbaa !9
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %688

688:                                              ; preds = %725, %685
  %689 = load i32, ptr %64, align 4, !tbaa !9
  %690 = load ptr, ptr %26, align 8, !tbaa !5
  %691 = load i32, ptr %690, align 4, !tbaa !9
  %692 = icmp sgt i32 %689, %691
  br i1 %692, label %693, label %694

693:                                              ; preds = %688
  br label %726

694:                                              ; preds = %688
  %695 = load i32, ptr %67, align 4, !tbaa !9
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr %67, align 4, !tbaa !9
  %697 = load i32, ptr %64, align 4, !tbaa !9
  %698 = load ptr, ptr %43, align 8, !tbaa !5
  %699 = load i32, ptr %67, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds i32, ptr %698, i64 %700
  store i32 %697, ptr %701, align 4, !tbaa !9
  %702 = load i32, ptr %75, align 4, !tbaa !9
  %703 = load i32, ptr %64, align 4, !tbaa !9
  %704 = add nsw i32 %703, %702
  store i32 %704, ptr %64, align 4, !tbaa !9
  %705 = load i32, ptr %64, align 4, !tbaa !9
  %706 = load ptr, ptr %26, align 8, !tbaa !5
  %707 = load i32, ptr %706, align 4, !tbaa !9
  %708 = icmp sge i32 %705, %707
  br i1 %708, label %709, label %710

709:                                              ; preds = %694
  br label %726

710:                                              ; preds = %694
  %711 = load ptr, ptr %29, align 8, !tbaa !5
  %712 = load i32, ptr %64, align 4, !tbaa !9
  %713 = load i32, ptr %64, align 4, !tbaa !9
  %714 = sub nsw i32 %713, 1
  %715 = load i32, ptr %47, align 4, !tbaa !9
  %716 = mul nsw i32 %714, %715
  %717 = add nsw i32 %712, %716
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds float, ptr %711, i64 %718
  %720 = load float, ptr %719, align 4, !tbaa !11
  %721 = fcmp une float %720, 0.000000e+00
  br i1 %721, label %722, label %725

722:                                              ; preds = %710
  %723 = load i32, ptr %64, align 4, !tbaa !9
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr %64, align 4, !tbaa !9
  br label %725

725:                                              ; preds = %722, %710
  br label %688

726:                                              ; preds = %709, %693
  %727 = load ptr, ptr %26, align 8, !tbaa !5
  %728 = load i32, ptr %727, align 4, !tbaa !9
  %729 = add nsw i32 %728, 1
  %730 = load ptr, ptr %43, align 8, !tbaa !5
  %731 = load i32, ptr %67, align 4, !tbaa !9
  %732 = add nsw i32 %731, 1
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds i32, ptr %730, i64 %733
  store i32 %729, ptr %734, align 4, !tbaa !9
  %735 = load ptr, ptr %43, align 8, !tbaa !5
  %736 = load i32, ptr %67, align 4, !tbaa !9
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds i32, ptr %735, i64 %737
  %739 = load i32, ptr %738, align 4, !tbaa !9
  %740 = load ptr, ptr %43, align 8, !tbaa !5
  %741 = load i32, ptr %67, align 4, !tbaa !9
  %742 = add nsw i32 %741, 1
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds i32, ptr %740, i64 %743
  %745 = load i32, ptr %744, align 4, !tbaa !9
  %746 = icmp eq i32 %739, %745
  br i1 %746, label %747, label %750

747:                                              ; preds = %726
  %748 = load i32, ptr %67, align 4, !tbaa !9
  %749 = add nsw i32 %748, -1
  store i32 %749, ptr %67, align 4, !tbaa !9
  br label %750

750:                                              ; preds = %747, %726
  %751 = load i32, ptr %82, align 4, !tbaa !9
  %752 = icmp ne i32 %751, 0
  br i1 %752, label %753, label %1284

753:                                              ; preds = %750
  %754 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %754, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %755

755:                                              ; preds = %1280, %753
  %756 = load i32, ptr %81, align 4, !tbaa !9
  %757 = load i32, ptr %57, align 4, !tbaa !9
  %758 = icmp sle i32 %756, %757
  br i1 %758, label %759, label %1283

759:                                              ; preds = %755
  store float 0.000000e+00, ptr %76, align 4, !tbaa !11
  store float 1.000000e+00, ptr %61, align 4, !tbaa !11
  store i32 0, ptr %79, align 4, !tbaa !9
  %760 = load ptr, ptr %39, align 8, !tbaa !5
  store float 1.000000e+00, ptr %760, align 4, !tbaa !11
  %761 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %761, ptr %58, align 4, !tbaa !9
  %762 = load i32, ptr %66, align 4, !tbaa !9
  %763 = add nsw i32 %762, 2
  store i32 %763, ptr %64, align 4, !tbaa !9
  br label %764

764:                                              ; preds = %1138, %759
  %765 = load i32, ptr %64, align 4, !tbaa !9
  %766 = load i32, ptr %58, align 4, !tbaa !9
  %767 = icmp sle i32 %765, %766
  br i1 %767, label %768, label %1141

768:                                              ; preds = %764
  %769 = load ptr, ptr %43, align 8, !tbaa !5
  %770 = load i32, ptr %64, align 4, !tbaa !9
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds i32, ptr %769, i64 %771
  %773 = load i32, ptr %772, align 4, !tbaa !9
  store i32 %773, ptr %78, align 4, !tbaa !9
  %774 = load ptr, ptr %43, align 8, !tbaa !5
  %775 = load i32, ptr %64, align 4, !tbaa !9
  %776 = add nsw i32 %775, 1
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds i32, ptr %774, i64 %777
  %779 = load i32, ptr %778, align 4, !tbaa !9
  %780 = sub nsw i32 %779, 1
  store i32 %780, ptr %73, align 4, !tbaa !9
  %781 = load i32, ptr %73, align 4, !tbaa !9
  %782 = load i32, ptr %78, align 4, !tbaa !9
  %783 = sub nsw i32 %781, %782
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr %75, align 4, !tbaa !9
  %785 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %785, ptr %63, align 4, !tbaa !9
  br label %786

786:                                              ; preds = %1134, %768
  %787 = load i32, ptr %63, align 4, !tbaa !9
  %788 = icmp sge i32 %787, 1
  br i1 %788, label %789, label %1137

789:                                              ; preds = %786
  %790 = load ptr, ptr %43, align 8, !tbaa !5
  %791 = load i32, ptr %63, align 4, !tbaa !9
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds i32, ptr %790, i64 %792
  %794 = load i32, ptr %793, align 4, !tbaa !9
  store i32 %794, ptr %77, align 4, !tbaa !9
  %795 = load ptr, ptr %43, align 8, !tbaa !5
  %796 = load i32, ptr %63, align 4, !tbaa !9
  %797 = add nsw i32 %796, 1
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds i32, ptr %795, i64 %798
  %800 = load i32, ptr %799, align 4, !tbaa !9
  %801 = sub nsw i32 %800, 1
  store i32 %801, ptr %72, align 4, !tbaa !9
  %802 = load i32, ptr %72, align 4, !tbaa !9
  %803 = load i32, ptr %77, align 4, !tbaa !9
  %804 = sub nsw i32 %802, %803
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr %74, align 4, !tbaa !9
  store i32 0, ptr %62, align 4, !tbaa !9
  %806 = load ptr, ptr %23, align 8, !tbaa !5
  %807 = load ptr, ptr %27, align 8, !tbaa !5
  %808 = load i32, ptr %77, align 4, !tbaa !9
  %809 = load i32, ptr %77, align 4, !tbaa !9
  %810 = load i32, ptr %45, align 4, !tbaa !9
  %811 = mul nsw i32 %809, %810
  %812 = add nsw i32 %808, %811
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds float, ptr %807, i64 %813
  %815 = load ptr, ptr %28, align 8, !tbaa !5
  %816 = load ptr, ptr %29, align 8, !tbaa !5
  %817 = load i32, ptr %78, align 4, !tbaa !9
  %818 = load i32, ptr %78, align 4, !tbaa !9
  %819 = load i32, ptr %47, align 4, !tbaa !9
  %820 = mul nsw i32 %818, %819
  %821 = add nsw i32 %817, %820
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %816, i64 %822
  %824 = load ptr, ptr %30, align 8, !tbaa !5
  %825 = load ptr, ptr %31, align 8, !tbaa !5
  %826 = load i32, ptr %77, align 4, !tbaa !9
  %827 = load i32, ptr %78, align 4, !tbaa !9
  %828 = load i32, ptr %49, align 4, !tbaa !9
  %829 = mul nsw i32 %827, %828
  %830 = add nsw i32 %826, %829
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds float, ptr %825, i64 %831
  %833 = load ptr, ptr %32, align 8, !tbaa !5
  %834 = load ptr, ptr %33, align 8, !tbaa !5
  %835 = load i32, ptr %77, align 4, !tbaa !9
  %836 = load i32, ptr %77, align 4, !tbaa !9
  %837 = load i32, ptr %51, align 4, !tbaa !9
  %838 = mul nsw i32 %836, %837
  %839 = add nsw i32 %835, %838
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds float, ptr %834, i64 %840
  %842 = load ptr, ptr %34, align 8, !tbaa !5
  %843 = load ptr, ptr %35, align 8, !tbaa !5
  %844 = load i32, ptr %78, align 4, !tbaa !9
  %845 = load i32, ptr %78, align 4, !tbaa !9
  %846 = load i32, ptr %53, align 4, !tbaa !9
  %847 = mul nsw i32 %845, %846
  %848 = add nsw i32 %844, %847
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds float, ptr %843, i64 %849
  %851 = load ptr, ptr %36, align 8, !tbaa !5
  %852 = load ptr, ptr %37, align 8, !tbaa !5
  %853 = load i32, ptr %77, align 4, !tbaa !9
  %854 = load i32, ptr %78, align 4, !tbaa !9
  %855 = load i32, ptr %55, align 4, !tbaa !9
  %856 = mul nsw i32 %854, %855
  %857 = add nsw i32 %853, %856
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds float, ptr %852, i64 %858
  %860 = load ptr, ptr %38, align 8, !tbaa !5
  %861 = load ptr, ptr %43, align 8, !tbaa !5
  %862 = load i32, ptr %67, align 4, !tbaa !9
  %863 = add nsw i32 %862, 2
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds i32, ptr %861, i64 %864
  call void @stgsy2_(ptr noundef %806, ptr noundef %68, ptr noundef %74, ptr noundef %75, ptr noundef %814, ptr noundef %815, ptr noundef %823, ptr noundef %824, ptr noundef %832, ptr noundef %833, ptr noundef %841, ptr noundef %842, ptr noundef %850, ptr noundef %851, ptr noundef %859, ptr noundef %860, ptr noundef %80, ptr noundef %61, ptr noundef %76, ptr noundef %865, ptr noundef %62, ptr noundef %69)
  %866 = load i32, ptr %69, align 4, !tbaa !9
  %867 = icmp sgt i32 %866, 0
  br i1 %867, label %868, label %871

868:                                              ; preds = %789
  %869 = load i32, ptr %69, align 4, !tbaa !9
  %870 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 %869, ptr %870, align 4, !tbaa !9
  br label %871

871:                                              ; preds = %868, %789
  %872 = load i32, ptr %62, align 4, !tbaa !9
  %873 = load i32, ptr %79, align 4, !tbaa !9
  %874 = add nsw i32 %873, %872
  store i32 %874, ptr %79, align 4, !tbaa !9
  %875 = load float, ptr %80, align 4, !tbaa !11
  %876 = fcmp une float %875, 1.000000e+00
  br i1 %876, label %877, label %1004

877:                                              ; preds = %871
  %878 = load i32, ptr %78, align 4, !tbaa !9
  %879 = sub nsw i32 %878, 1
  store i32 %879, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %880

880:                                              ; preds = %901, %877
  %881 = load i32, ptr %65, align 4, !tbaa !9
  %882 = load i32, ptr %59, align 4, !tbaa !9
  %883 = icmp sle i32 %881, %882
  br i1 %883, label %884, label %904

884:                                              ; preds = %880
  %885 = load ptr, ptr %25, align 8, !tbaa !5
  %886 = load ptr, ptr %31, align 8, !tbaa !5
  %887 = load i32, ptr %65, align 4, !tbaa !9
  %888 = load i32, ptr %49, align 4, !tbaa !9
  %889 = mul nsw i32 %887, %888
  %890 = add nsw i32 %889, 1
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds float, ptr %886, i64 %891
  call void @sscal_(ptr noundef %885, ptr noundef %80, ptr noundef %892, ptr noundef @c__1)
  %893 = load ptr, ptr %25, align 8, !tbaa !5
  %894 = load ptr, ptr %37, align 8, !tbaa !5
  %895 = load i32, ptr %65, align 4, !tbaa !9
  %896 = load i32, ptr %55, align 4, !tbaa !9
  %897 = mul nsw i32 %895, %896
  %898 = add nsw i32 %897, 1
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds float, ptr %894, i64 %899
  call void @sscal_(ptr noundef %893, ptr noundef %80, ptr noundef %900, ptr noundef @c__1)
  br label %901

901:                                              ; preds = %884
  %902 = load i32, ptr %65, align 4, !tbaa !9
  %903 = add nsw i32 %902, 1
  store i32 %903, ptr %65, align 4, !tbaa !9
  br label %880, !llvm.loop !15

904:                                              ; preds = %880
  %905 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %905, ptr %59, align 4, !tbaa !9
  %906 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %906, ptr %65, align 4, !tbaa !9
  br label %907

907:                                              ; preds = %930, %904
  %908 = load i32, ptr %65, align 4, !tbaa !9
  %909 = load i32, ptr %59, align 4, !tbaa !9
  %910 = icmp sle i32 %908, %909
  br i1 %910, label %911, label %933

911:                                              ; preds = %907
  %912 = load i32, ptr %77, align 4, !tbaa !9
  %913 = sub nsw i32 %912, 1
  store i32 %913, ptr %60, align 4, !tbaa !9
  %914 = load ptr, ptr %31, align 8, !tbaa !5
  %915 = load i32, ptr %65, align 4, !tbaa !9
  %916 = load i32, ptr %49, align 4, !tbaa !9
  %917 = mul nsw i32 %915, %916
  %918 = add nsw i32 %917, 1
  %919 = sext i32 %918 to i64
  %920 = getelementptr inbounds float, ptr %914, i64 %919
  call void @sscal_(ptr noundef %60, ptr noundef %80, ptr noundef %920, ptr noundef @c__1)
  %921 = load i32, ptr %77, align 4, !tbaa !9
  %922 = sub nsw i32 %921, 1
  store i32 %922, ptr %60, align 4, !tbaa !9
  %923 = load ptr, ptr %37, align 8, !tbaa !5
  %924 = load i32, ptr %65, align 4, !tbaa !9
  %925 = load i32, ptr %55, align 4, !tbaa !9
  %926 = mul nsw i32 %924, %925
  %927 = add nsw i32 %926, 1
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds float, ptr %923, i64 %928
  call void @sscal_(ptr noundef %60, ptr noundef %80, ptr noundef %929, ptr noundef @c__1)
  br label %930

930:                                              ; preds = %911
  %931 = load i32, ptr %65, align 4, !tbaa !9
  %932 = add nsw i32 %931, 1
  store i32 %932, ptr %65, align 4, !tbaa !9
  br label %907, !llvm.loop !16

933:                                              ; preds = %907
  %934 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %934, ptr %59, align 4, !tbaa !9
  %935 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %935, ptr %65, align 4, !tbaa !9
  br label %936

936:                                              ; preds = %967, %933
  %937 = load i32, ptr %65, align 4, !tbaa !9
  %938 = load i32, ptr %59, align 4, !tbaa !9
  %939 = icmp sle i32 %937, %938
  br i1 %939, label %940, label %970

940:                                              ; preds = %936
  %941 = load ptr, ptr %25, align 8, !tbaa !5
  %942 = load i32, ptr %941, align 4, !tbaa !9
  %943 = load i32, ptr %72, align 4, !tbaa !9
  %944 = sub nsw i32 %942, %943
  store i32 %944, ptr %60, align 4, !tbaa !9
  %945 = load ptr, ptr %31, align 8, !tbaa !5
  %946 = load i32, ptr %72, align 4, !tbaa !9
  %947 = add nsw i32 %946, 1
  %948 = load i32, ptr %65, align 4, !tbaa !9
  %949 = load i32, ptr %49, align 4, !tbaa !9
  %950 = mul nsw i32 %948, %949
  %951 = add nsw i32 %947, %950
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds float, ptr %945, i64 %952
  call void @sscal_(ptr noundef %60, ptr noundef %80, ptr noundef %953, ptr noundef @c__1)
  %954 = load ptr, ptr %25, align 8, !tbaa !5
  %955 = load i32, ptr %954, align 4, !tbaa !9
  %956 = load i32, ptr %72, align 4, !tbaa !9
  %957 = sub nsw i32 %955, %956
  store i32 %957, ptr %60, align 4, !tbaa !9
  %958 = load ptr, ptr %37, align 8, !tbaa !5
  %959 = load i32, ptr %72, align 4, !tbaa !9
  %960 = add nsw i32 %959, 1
  %961 = load i32, ptr %65, align 4, !tbaa !9
  %962 = load i32, ptr %55, align 4, !tbaa !9
  %963 = mul nsw i32 %961, %962
  %964 = add nsw i32 %960, %963
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds float, ptr %958, i64 %965
  call void @sscal_(ptr noundef %60, ptr noundef %80, ptr noundef %966, ptr noundef @c__1)
  br label %967

967:                                              ; preds = %940
  %968 = load i32, ptr %65, align 4, !tbaa !9
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr %65, align 4, !tbaa !9
  br label %936, !llvm.loop !17

970:                                              ; preds = %936
  %971 = load ptr, ptr %26, align 8, !tbaa !5
  %972 = load i32, ptr %971, align 4, !tbaa !9
  store i32 %972, ptr %59, align 4, !tbaa !9
  %973 = load i32, ptr %73, align 4, !tbaa !9
  %974 = add nsw i32 %973, 1
  store i32 %974, ptr %65, align 4, !tbaa !9
  br label %975

975:                                              ; preds = %996, %970
  %976 = load i32, ptr %65, align 4, !tbaa !9
  %977 = load i32, ptr %59, align 4, !tbaa !9
  %978 = icmp sle i32 %976, %977
  br i1 %978, label %979, label %999

979:                                              ; preds = %975
  %980 = load ptr, ptr %25, align 8, !tbaa !5
  %981 = load ptr, ptr %31, align 8, !tbaa !5
  %982 = load i32, ptr %65, align 4, !tbaa !9
  %983 = load i32, ptr %49, align 4, !tbaa !9
  %984 = mul nsw i32 %982, %983
  %985 = add nsw i32 %984, 1
  %986 = sext i32 %985 to i64
  %987 = getelementptr inbounds float, ptr %981, i64 %986
  call void @sscal_(ptr noundef %980, ptr noundef %80, ptr noundef %987, ptr noundef @c__1)
  %988 = load ptr, ptr %25, align 8, !tbaa !5
  %989 = load ptr, ptr %37, align 8, !tbaa !5
  %990 = load i32, ptr %65, align 4, !tbaa !9
  %991 = load i32, ptr %55, align 4, !tbaa !9
  %992 = mul nsw i32 %990, %991
  %993 = add nsw i32 %992, 1
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds float, ptr %989, i64 %994
  call void @sscal_(ptr noundef %988, ptr noundef %80, ptr noundef %995, ptr noundef @c__1)
  br label %996

996:                                              ; preds = %979
  %997 = load i32, ptr %65, align 4, !tbaa !9
  %998 = add nsw i32 %997, 1
  store i32 %998, ptr %65, align 4, !tbaa !9
  br label %975, !llvm.loop !18

999:                                              ; preds = %975
  %1000 = load float, ptr %80, align 4, !tbaa !11
  %1001 = load ptr, ptr %39, align 8, !tbaa !5
  %1002 = load float, ptr %1001, align 4, !tbaa !11
  %1003 = fmul float %1002, %1000
  store float %1003, ptr %1001, align 4, !tbaa !11
  br label %1004

1004:                                             ; preds = %999, %871
  %1005 = load i32, ptr %63, align 4, !tbaa !9
  %1006 = icmp sgt i32 %1005, 1
  br i1 %1006, label %1007, label %1062

1007:                                             ; preds = %1004
  %1008 = load i32, ptr %77, align 4, !tbaa !9
  %1009 = sub nsw i32 %1008, 1
  store i32 %1009, ptr %59, align 4, !tbaa !9
  %1010 = load ptr, ptr %27, align 8, !tbaa !5
  %1011 = load i32, ptr %77, align 4, !tbaa !9
  %1012 = load i32, ptr %45, align 4, !tbaa !9
  %1013 = mul nsw i32 %1011, %1012
  %1014 = add nsw i32 %1013, 1
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds float, ptr %1010, i64 %1015
  %1017 = load ptr, ptr %28, align 8, !tbaa !5
  %1018 = load ptr, ptr %31, align 8, !tbaa !5
  %1019 = load i32, ptr %77, align 4, !tbaa !9
  %1020 = load i32, ptr %78, align 4, !tbaa !9
  %1021 = load i32, ptr %49, align 4, !tbaa !9
  %1022 = mul nsw i32 %1020, %1021
  %1023 = add nsw i32 %1019, %1022
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds float, ptr %1018, i64 %1024
  %1026 = load ptr, ptr %32, align 8, !tbaa !5
  %1027 = load ptr, ptr %31, align 8, !tbaa !5
  %1028 = load i32, ptr %78, align 4, !tbaa !9
  %1029 = load i32, ptr %49, align 4, !tbaa !9
  %1030 = mul nsw i32 %1028, %1029
  %1031 = add nsw i32 %1030, 1
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds float, ptr %1027, i64 %1032
  %1034 = load ptr, ptr %32, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %59, ptr noundef %75, ptr noundef %74, ptr noundef @c_b51, ptr noundef %1016, ptr noundef %1017, ptr noundef %1025, ptr noundef %1026, ptr noundef @c_b52, ptr noundef %1033, ptr noundef %1034)
  %1035 = load i32, ptr %77, align 4, !tbaa !9
  %1036 = sub nsw i32 %1035, 1
  store i32 %1036, ptr %59, align 4, !tbaa !9
  %1037 = load ptr, ptr %33, align 8, !tbaa !5
  %1038 = load i32, ptr %77, align 4, !tbaa !9
  %1039 = load i32, ptr %51, align 4, !tbaa !9
  %1040 = mul nsw i32 %1038, %1039
  %1041 = add nsw i32 %1040, 1
  %1042 = sext i32 %1041 to i64
  %1043 = getelementptr inbounds float, ptr %1037, i64 %1042
  %1044 = load ptr, ptr %34, align 8, !tbaa !5
  %1045 = load ptr, ptr %31, align 8, !tbaa !5
  %1046 = load i32, ptr %77, align 4, !tbaa !9
  %1047 = load i32, ptr %78, align 4, !tbaa !9
  %1048 = load i32, ptr %49, align 4, !tbaa !9
  %1049 = mul nsw i32 %1047, %1048
  %1050 = add nsw i32 %1046, %1049
  %1051 = sext i32 %1050 to i64
  %1052 = getelementptr inbounds float, ptr %1045, i64 %1051
  %1053 = load ptr, ptr %32, align 8, !tbaa !5
  %1054 = load ptr, ptr %37, align 8, !tbaa !5
  %1055 = load i32, ptr %78, align 4, !tbaa !9
  %1056 = load i32, ptr %55, align 4, !tbaa !9
  %1057 = mul nsw i32 %1055, %1056
  %1058 = add nsw i32 %1057, 1
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds float, ptr %1054, i64 %1059
  %1061 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %59, ptr noundef %75, ptr noundef %74, ptr noundef @c_b51, ptr noundef %1043, ptr noundef %1044, ptr noundef %1052, ptr noundef %1053, ptr noundef @c_b52, ptr noundef %1060, ptr noundef %1061)
  br label %1062

1062:                                             ; preds = %1007, %1004
  %1063 = load i32, ptr %64, align 4, !tbaa !9
  %1064 = load i32, ptr %67, align 4, !tbaa !9
  %1065 = icmp slt i32 %1063, %1064
  br i1 %1065, label %1066, label %1133

1066:                                             ; preds = %1062
  %1067 = load ptr, ptr %26, align 8, !tbaa !5
  %1068 = load i32, ptr %1067, align 4, !tbaa !9
  %1069 = load i32, ptr %73, align 4, !tbaa !9
  %1070 = sub nsw i32 %1068, %1069
  store i32 %1070, ptr %59, align 4, !tbaa !9
  %1071 = load ptr, ptr %37, align 8, !tbaa !5
  %1072 = load i32, ptr %77, align 4, !tbaa !9
  %1073 = load i32, ptr %78, align 4, !tbaa !9
  %1074 = load i32, ptr %55, align 4, !tbaa !9
  %1075 = mul nsw i32 %1073, %1074
  %1076 = add nsw i32 %1072, %1075
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds float, ptr %1071, i64 %1077
  %1079 = load ptr, ptr %38, align 8, !tbaa !5
  %1080 = load ptr, ptr %29, align 8, !tbaa !5
  %1081 = load i32, ptr %78, align 4, !tbaa !9
  %1082 = load i32, ptr %73, align 4, !tbaa !9
  %1083 = add nsw i32 %1082, 1
  %1084 = load i32, ptr %47, align 4, !tbaa !9
  %1085 = mul nsw i32 %1083, %1084
  %1086 = add nsw i32 %1081, %1085
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds float, ptr %1080, i64 %1087
  %1089 = load ptr, ptr %30, align 8, !tbaa !5
  %1090 = load ptr, ptr %31, align 8, !tbaa !5
  %1091 = load i32, ptr %77, align 4, !tbaa !9
  %1092 = load i32, ptr %73, align 4, !tbaa !9
  %1093 = add nsw i32 %1092, 1
  %1094 = load i32, ptr %49, align 4, !tbaa !9
  %1095 = mul nsw i32 %1093, %1094
  %1096 = add nsw i32 %1091, %1095
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds float, ptr %1090, i64 %1097
  %1099 = load ptr, ptr %32, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %74, ptr noundef %59, ptr noundef %75, ptr noundef @c_b52, ptr noundef %1078, ptr noundef %1079, ptr noundef %1088, ptr noundef %1089, ptr noundef @c_b52, ptr noundef %1098, ptr noundef %1099)
  %1100 = load ptr, ptr %26, align 8, !tbaa !5
  %1101 = load i32, ptr %1100, align 4, !tbaa !9
  %1102 = load i32, ptr %73, align 4, !tbaa !9
  %1103 = sub nsw i32 %1101, %1102
  store i32 %1103, ptr %59, align 4, !tbaa !9
  %1104 = load ptr, ptr %37, align 8, !tbaa !5
  %1105 = load i32, ptr %77, align 4, !tbaa !9
  %1106 = load i32, ptr %78, align 4, !tbaa !9
  %1107 = load i32, ptr %55, align 4, !tbaa !9
  %1108 = mul nsw i32 %1106, %1107
  %1109 = add nsw i32 %1105, %1108
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds float, ptr %1104, i64 %1110
  %1112 = load ptr, ptr %38, align 8, !tbaa !5
  %1113 = load ptr, ptr %35, align 8, !tbaa !5
  %1114 = load i32, ptr %78, align 4, !tbaa !9
  %1115 = load i32, ptr %73, align 4, !tbaa !9
  %1116 = add nsw i32 %1115, 1
  %1117 = load i32, ptr %53, align 4, !tbaa !9
  %1118 = mul nsw i32 %1116, %1117
  %1119 = add nsw i32 %1114, %1118
  %1120 = sext i32 %1119 to i64
  %1121 = getelementptr inbounds float, ptr %1113, i64 %1120
  %1122 = load ptr, ptr %36, align 8, !tbaa !5
  %1123 = load ptr, ptr %37, align 8, !tbaa !5
  %1124 = load i32, ptr %77, align 4, !tbaa !9
  %1125 = load i32, ptr %73, align 4, !tbaa !9
  %1126 = add nsw i32 %1125, 1
  %1127 = load i32, ptr %55, align 4, !tbaa !9
  %1128 = mul nsw i32 %1126, %1127
  %1129 = add nsw i32 %1124, %1128
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds float, ptr %1123, i64 %1130
  %1132 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str, ptr noundef @.str, ptr noundef %74, ptr noundef %59, ptr noundef %75, ptr noundef @c_b52, ptr noundef %1111, ptr noundef %1112, ptr noundef %1121, ptr noundef %1122, ptr noundef @c_b52, ptr noundef %1131, ptr noundef %1132)
  br label %1133

1133:                                             ; preds = %1066, %1062
  br label %1134

1134:                                             ; preds = %1133
  %1135 = load i32, ptr %63, align 4, !tbaa !9
  %1136 = add nsw i32 %1135, -1
  store i32 %1136, ptr %63, align 4, !tbaa !9
  br label %786, !llvm.loop !19

1137:                                             ; preds = %786
  br label %1138

1138:                                             ; preds = %1137
  %1139 = load i32, ptr %64, align 4, !tbaa !9
  %1140 = add nsw i32 %1139, 1
  store i32 %1140, ptr %64, align 4, !tbaa !9
  br label %764, !llvm.loop !20

1141:                                             ; preds = %764
  %1142 = load float, ptr %76, align 4, !tbaa !11
  %1143 = fcmp une float %1142, 0.000000e+00
  br i1 %1143, label %1144, label %1186

1144:                                             ; preds = %1141
  %1145 = load ptr, ptr %24, align 8, !tbaa !5
  %1146 = load i32, ptr %1145, align 4, !tbaa !9
  %1147 = icmp eq i32 %1146, 1
  br i1 %1147, label %1152, label %1148

1148:                                             ; preds = %1144
  %1149 = load ptr, ptr %24, align 8, !tbaa !5
  %1150 = load i32, ptr %1149, align 4, !tbaa !9
  %1151 = icmp eq i32 %1150, 3
  br i1 %1151, label %1152, label %1171

1152:                                             ; preds = %1148, %1144
  %1153 = load ptr, ptr %25, align 8, !tbaa !5
  %1154 = load i32, ptr %1153, align 4, !tbaa !9
  %1155 = shl i32 %1154, 1
  %1156 = load ptr, ptr %26, align 8, !tbaa !5
  %1157 = load i32, ptr %1156, align 4, !tbaa !9
  %1158 = mul nsw i32 %1155, %1157
  %1159 = sitofp i32 %1158 to float
  %1160 = fpext float %1159 to double
  %1161 = call double @sqrt(double noundef %1160) #4
  %1162 = load float, ptr %76, align 4, !tbaa !11
  %1163 = fpext float %1162 to double
  %1164 = load float, ptr %61, align 4, !tbaa !11
  %1165 = fpext float %1164 to double
  %1166 = call double @sqrt(double noundef %1165) #4
  %1167 = fmul double %1163, %1166
  %1168 = fdiv double %1161, %1167
  %1169 = fptrunc double %1168 to float
  %1170 = load ptr, ptr %40, align 8, !tbaa !5
  store float %1169, ptr %1170, align 4, !tbaa !11
  br label %1185

1171:                                             ; preds = %1148
  %1172 = load i32, ptr %79, align 4, !tbaa !9
  %1173 = sitofp i32 %1172 to float
  %1174 = fpext float %1173 to double
  %1175 = call double @sqrt(double noundef %1174) #4
  %1176 = load float, ptr %76, align 4, !tbaa !11
  %1177 = fpext float %1176 to double
  %1178 = load float, ptr %61, align 4, !tbaa !11
  %1179 = fpext float %1178 to double
  %1180 = call double @sqrt(double noundef %1179) #4
  %1181 = fmul double %1177, %1180
  %1182 = fdiv double %1175, %1181
  %1183 = fptrunc double %1182 to float
  %1184 = load ptr, ptr %40, align 8, !tbaa !5
  store float %1183, ptr %1184, align 4, !tbaa !11
  br label %1185

1185:                                             ; preds = %1171, %1152
  br label %1186

1186:                                             ; preds = %1185, %1141
  %1187 = load i32, ptr %83, align 4, !tbaa !9
  %1188 = icmp eq i32 %1187, 2
  br i1 %1188, label %1189, label %1242

1189:                                             ; preds = %1186
  %1190 = load i32, ptr %81, align 4, !tbaa !9
  %1191 = icmp eq i32 %1190, 1
  br i1 %1191, label %1192, label %1242

1192:                                             ; preds = %1189
  %1193 = load i32, ptr %82, align 4, !tbaa !9
  %1194 = icmp ne i32 %1193, 0
  br i1 %1194, label %1195, label %1198

1195:                                             ; preds = %1192
  %1196 = load ptr, ptr %24, align 8, !tbaa !5
  %1197 = load i32, ptr %1196, align 4, !tbaa !9
  store i32 %1197, ptr %68, align 4, !tbaa !9
  br label %1198

1198:                                             ; preds = %1195, %1192
  %1199 = load ptr, ptr %39, align 8, !tbaa !5
  %1200 = load float, ptr %1199, align 4, !tbaa !11
  store float %1200, ptr %71, align 4, !tbaa !11
  %1201 = load ptr, ptr %25, align 8, !tbaa !5
  %1202 = load ptr, ptr %26, align 8, !tbaa !5
  %1203 = load ptr, ptr %31, align 8, !tbaa !5
  %1204 = load i32, ptr %50, align 4, !tbaa !9
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds float, ptr %1203, i64 %1205
  %1207 = load ptr, ptr %32, align 8, !tbaa !5
  %1208 = load ptr, ptr %41, align 8, !tbaa !5
  %1209 = getelementptr inbounds float, ptr %1208, i64 1
  %1210 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %1201, ptr noundef %1202, ptr noundef %1206, ptr noundef %1207, ptr noundef %1209, ptr noundef %1210)
  %1211 = load ptr, ptr %25, align 8, !tbaa !5
  %1212 = load ptr, ptr %26, align 8, !tbaa !5
  %1213 = load ptr, ptr %37, align 8, !tbaa !5
  %1214 = load i32, ptr %56, align 4, !tbaa !9
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds float, ptr %1213, i64 %1215
  %1217 = load ptr, ptr %38, align 8, !tbaa !5
  %1218 = load ptr, ptr %41, align 8, !tbaa !5
  %1219 = load ptr, ptr %25, align 8, !tbaa !5
  %1220 = load i32, ptr %1219, align 4, !tbaa !9
  %1221 = load ptr, ptr %26, align 8, !tbaa !5
  %1222 = load i32, ptr %1221, align 4, !tbaa !9
  %1223 = mul nsw i32 %1220, %1222
  %1224 = add nsw i32 %1223, 1
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds float, ptr %1218, i64 %1225
  %1227 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %1211, ptr noundef %1212, ptr noundef %1216, ptr noundef %1217, ptr noundef %1226, ptr noundef %1227)
  %1228 = load ptr, ptr %25, align 8, !tbaa !5
  %1229 = load ptr, ptr %26, align 8, !tbaa !5
  %1230 = load ptr, ptr %31, align 8, !tbaa !5
  %1231 = load i32, ptr %50, align 4, !tbaa !9
  %1232 = sext i32 %1231 to i64
  %1233 = getelementptr inbounds float, ptr %1230, i64 %1232
  %1234 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.3, ptr noundef %1228, ptr noundef %1229, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %1233, ptr noundef %1234)
  %1235 = load ptr, ptr %25, align 8, !tbaa !5
  %1236 = load ptr, ptr %26, align 8, !tbaa !5
  %1237 = load ptr, ptr %37, align 8, !tbaa !5
  %1238 = load i32, ptr %56, align 4, !tbaa !9
  %1239 = sext i32 %1238 to i64
  %1240 = getelementptr inbounds float, ptr %1237, i64 %1239
  %1241 = load ptr, ptr %38, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.3, ptr noundef %1235, ptr noundef %1236, ptr noundef @c_b14, ptr noundef @c_b14, ptr noundef %1240, ptr noundef %1241)
  br label %1279

1242:                                             ; preds = %1189, %1186
  %1243 = load i32, ptr %83, align 4, !tbaa !9
  %1244 = icmp eq i32 %1243, 2
  br i1 %1244, label %1245, label %1278

1245:                                             ; preds = %1242
  %1246 = load i32, ptr %81, align 4, !tbaa !9
  %1247 = icmp eq i32 %1246, 2
  br i1 %1247, label %1248, label %1278

1248:                                             ; preds = %1245
  %1249 = load ptr, ptr %25, align 8, !tbaa !5
  %1250 = load ptr, ptr %26, align 8, !tbaa !5
  %1251 = load ptr, ptr %41, align 8, !tbaa !5
  %1252 = getelementptr inbounds float, ptr %1251, i64 1
  %1253 = load ptr, ptr %25, align 8, !tbaa !5
  %1254 = load ptr, ptr %31, align 8, !tbaa !5
  %1255 = load i32, ptr %50, align 4, !tbaa !9
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds float, ptr %1254, i64 %1256
  %1258 = load ptr, ptr %32, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %1249, ptr noundef %1250, ptr noundef %1252, ptr noundef %1253, ptr noundef %1257, ptr noundef %1258)
  %1259 = load ptr, ptr %25, align 8, !tbaa !5
  %1260 = load ptr, ptr %26, align 8, !tbaa !5
  %1261 = load ptr, ptr %41, align 8, !tbaa !5
  %1262 = load ptr, ptr %25, align 8, !tbaa !5
  %1263 = load i32, ptr %1262, align 4, !tbaa !9
  %1264 = load ptr, ptr %26, align 8, !tbaa !5
  %1265 = load i32, ptr %1264, align 4, !tbaa !9
  %1266 = mul nsw i32 %1263, %1265
  %1267 = add nsw i32 %1266, 1
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds float, ptr %1261, i64 %1268
  %1270 = load ptr, ptr %25, align 8, !tbaa !5
  %1271 = load ptr, ptr %37, align 8, !tbaa !5
  %1272 = load i32, ptr %56, align 4, !tbaa !9
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds float, ptr %1271, i64 %1273
  %1275 = load ptr, ptr %38, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %1259, ptr noundef %1260, ptr noundef %1269, ptr noundef %1270, ptr noundef %1274, ptr noundef %1275)
  %1276 = load float, ptr %71, align 4, !tbaa !11
  %1277 = load ptr, ptr %39, align 8, !tbaa !5
  store float %1276, ptr %1277, align 4, !tbaa !11
  br label %1278

1278:                                             ; preds = %1248, %1245, %1242
  br label %1279

1279:                                             ; preds = %1278, %1198
  br label %1280

1280:                                             ; preds = %1279
  %1281 = load i32, ptr %81, align 4, !tbaa !9
  %1282 = add nsw i32 %1281, 1
  store i32 %1282, ptr %81, align 4, !tbaa !9
  br label %755, !llvm.loop !21

1283:                                             ; preds = %755
  br label %1665

1284:                                             ; preds = %750
  %1285 = load ptr, ptr %39, align 8, !tbaa !5
  store float 1.000000e+00, ptr %1285, align 4, !tbaa !11
  %1286 = load i32, ptr %66, align 4, !tbaa !9
  store i32 %1286, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %1287

1287:                                             ; preds = %1661, %1284
  %1288 = load i32, ptr %63, align 4, !tbaa !9
  %1289 = load i32, ptr %57, align 4, !tbaa !9
  %1290 = icmp sle i32 %1288, %1289
  br i1 %1290, label %1291, label %1664

1291:                                             ; preds = %1287
  %1292 = load ptr, ptr %43, align 8, !tbaa !5
  %1293 = load i32, ptr %63, align 4, !tbaa !9
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds i32, ptr %1292, i64 %1294
  %1296 = load i32, ptr %1295, align 4, !tbaa !9
  store i32 %1296, ptr %77, align 4, !tbaa !9
  %1297 = load ptr, ptr %43, align 8, !tbaa !5
  %1298 = load i32, ptr %63, align 4, !tbaa !9
  %1299 = add nsw i32 %1298, 1
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds i32, ptr %1297, i64 %1300
  %1302 = load i32, ptr %1301, align 4, !tbaa !9
  %1303 = sub nsw i32 %1302, 1
  store i32 %1303, ptr %72, align 4, !tbaa !9
  %1304 = load i32, ptr %72, align 4, !tbaa !9
  %1305 = load i32, ptr %77, align 4, !tbaa !9
  %1306 = sub nsw i32 %1304, %1305
  %1307 = add nsw i32 %1306, 1
  store i32 %1307, ptr %74, align 4, !tbaa !9
  %1308 = load i32, ptr %66, align 4, !tbaa !9
  %1309 = add nsw i32 %1308, 2
  store i32 %1309, ptr %58, align 4, !tbaa !9
  %1310 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %1310, ptr %64, align 4, !tbaa !9
  br label %1311

1311:                                             ; preds = %1657, %1291
  %1312 = load i32, ptr %64, align 4, !tbaa !9
  %1313 = load i32, ptr %58, align 4, !tbaa !9
  %1314 = icmp sge i32 %1312, %1313
  br i1 %1314, label %1315, label %1660

1315:                                             ; preds = %1311
  %1316 = load ptr, ptr %43, align 8, !tbaa !5
  %1317 = load i32, ptr %64, align 4, !tbaa !9
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds i32, ptr %1316, i64 %1318
  %1320 = load i32, ptr %1319, align 4, !tbaa !9
  store i32 %1320, ptr %78, align 4, !tbaa !9
  %1321 = load ptr, ptr %43, align 8, !tbaa !5
  %1322 = load i32, ptr %64, align 4, !tbaa !9
  %1323 = add nsw i32 %1322, 1
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds i32, ptr %1321, i64 %1324
  %1326 = load i32, ptr %1325, align 4, !tbaa !9
  %1327 = sub nsw i32 %1326, 1
  store i32 %1327, ptr %73, align 4, !tbaa !9
  %1328 = load i32, ptr %73, align 4, !tbaa !9
  %1329 = load i32, ptr %78, align 4, !tbaa !9
  %1330 = sub nsw i32 %1328, %1329
  %1331 = add nsw i32 %1330, 1
  store i32 %1331, ptr %75, align 4, !tbaa !9
  %1332 = load ptr, ptr %23, align 8, !tbaa !5
  %1333 = load ptr, ptr %27, align 8, !tbaa !5
  %1334 = load i32, ptr %77, align 4, !tbaa !9
  %1335 = load i32, ptr %77, align 4, !tbaa !9
  %1336 = load i32, ptr %45, align 4, !tbaa !9
  %1337 = mul nsw i32 %1335, %1336
  %1338 = add nsw i32 %1334, %1337
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds float, ptr %1333, i64 %1339
  %1341 = load ptr, ptr %28, align 8, !tbaa !5
  %1342 = load ptr, ptr %29, align 8, !tbaa !5
  %1343 = load i32, ptr %78, align 4, !tbaa !9
  %1344 = load i32, ptr %78, align 4, !tbaa !9
  %1345 = load i32, ptr %47, align 4, !tbaa !9
  %1346 = mul nsw i32 %1344, %1345
  %1347 = add nsw i32 %1343, %1346
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds float, ptr %1342, i64 %1348
  %1350 = load ptr, ptr %30, align 8, !tbaa !5
  %1351 = load ptr, ptr %31, align 8, !tbaa !5
  %1352 = load i32, ptr %77, align 4, !tbaa !9
  %1353 = load i32, ptr %78, align 4, !tbaa !9
  %1354 = load i32, ptr %49, align 4, !tbaa !9
  %1355 = mul nsw i32 %1353, %1354
  %1356 = add nsw i32 %1352, %1355
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds float, ptr %1351, i64 %1357
  %1359 = load ptr, ptr %32, align 8, !tbaa !5
  %1360 = load ptr, ptr %33, align 8, !tbaa !5
  %1361 = load i32, ptr %77, align 4, !tbaa !9
  %1362 = load i32, ptr %77, align 4, !tbaa !9
  %1363 = load i32, ptr %51, align 4, !tbaa !9
  %1364 = mul nsw i32 %1362, %1363
  %1365 = add nsw i32 %1361, %1364
  %1366 = sext i32 %1365 to i64
  %1367 = getelementptr inbounds float, ptr %1360, i64 %1366
  %1368 = load ptr, ptr %34, align 8, !tbaa !5
  %1369 = load ptr, ptr %35, align 8, !tbaa !5
  %1370 = load i32, ptr %78, align 4, !tbaa !9
  %1371 = load i32, ptr %78, align 4, !tbaa !9
  %1372 = load i32, ptr %53, align 4, !tbaa !9
  %1373 = mul nsw i32 %1371, %1372
  %1374 = add nsw i32 %1370, %1373
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds float, ptr %1369, i64 %1375
  %1377 = load ptr, ptr %36, align 8, !tbaa !5
  %1378 = load ptr, ptr %37, align 8, !tbaa !5
  %1379 = load i32, ptr %77, align 4, !tbaa !9
  %1380 = load i32, ptr %78, align 4, !tbaa !9
  %1381 = load i32, ptr %55, align 4, !tbaa !9
  %1382 = mul nsw i32 %1380, %1381
  %1383 = add nsw i32 %1379, %1382
  %1384 = sext i32 %1383 to i64
  %1385 = getelementptr inbounds float, ptr %1378, i64 %1384
  %1386 = load ptr, ptr %38, align 8, !tbaa !5
  %1387 = load ptr, ptr %43, align 8, !tbaa !5
  %1388 = load i32, ptr %67, align 4, !tbaa !9
  %1389 = add nsw i32 %1388, 2
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds i32, ptr %1387, i64 %1390
  call void @stgsy2_(ptr noundef %1332, ptr noundef %68, ptr noundef %74, ptr noundef %75, ptr noundef %1340, ptr noundef %1341, ptr noundef %1349, ptr noundef %1350, ptr noundef %1358, ptr noundef %1359, ptr noundef %1367, ptr noundef %1368, ptr noundef %1376, ptr noundef %1377, ptr noundef %1385, ptr noundef %1386, ptr noundef %80, ptr noundef %61, ptr noundef %76, ptr noundef %1391, ptr noundef %62, ptr noundef %69)
  %1392 = load i32, ptr %69, align 4, !tbaa !9
  %1393 = icmp sgt i32 %1392, 0
  br i1 %1393, label %1394, label %1397

1394:                                             ; preds = %1315
  %1395 = load i32, ptr %69, align 4, !tbaa !9
  %1396 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 %1395, ptr %1396, align 4, !tbaa !9
  br label %1397

1397:                                             ; preds = %1394, %1315
  %1398 = load float, ptr %80, align 4, !tbaa !11
  %1399 = fcmp une float %1398, 1.000000e+00
  br i1 %1399, label %1400, label %1527

1400:                                             ; preds = %1397
  %1401 = load i32, ptr %78, align 4, !tbaa !9
  %1402 = sub nsw i32 %1401, 1
  store i32 %1402, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %1403

1403:                                             ; preds = %1424, %1400
  %1404 = load i32, ptr %65, align 4, !tbaa !9
  %1405 = load i32, ptr %59, align 4, !tbaa !9
  %1406 = icmp sle i32 %1404, %1405
  br i1 %1406, label %1407, label %1427

1407:                                             ; preds = %1403
  %1408 = load ptr, ptr %25, align 8, !tbaa !5
  %1409 = load ptr, ptr %31, align 8, !tbaa !5
  %1410 = load i32, ptr %65, align 4, !tbaa !9
  %1411 = load i32, ptr %49, align 4, !tbaa !9
  %1412 = mul nsw i32 %1410, %1411
  %1413 = add nsw i32 %1412, 1
  %1414 = sext i32 %1413 to i64
  %1415 = getelementptr inbounds float, ptr %1409, i64 %1414
  call void @sscal_(ptr noundef %1408, ptr noundef %80, ptr noundef %1415, ptr noundef @c__1)
  %1416 = load ptr, ptr %25, align 8, !tbaa !5
  %1417 = load ptr, ptr %37, align 8, !tbaa !5
  %1418 = load i32, ptr %65, align 4, !tbaa !9
  %1419 = load i32, ptr %55, align 4, !tbaa !9
  %1420 = mul nsw i32 %1418, %1419
  %1421 = add nsw i32 %1420, 1
  %1422 = sext i32 %1421 to i64
  %1423 = getelementptr inbounds float, ptr %1417, i64 %1422
  call void @sscal_(ptr noundef %1416, ptr noundef %80, ptr noundef %1423, ptr noundef @c__1)
  br label %1424

1424:                                             ; preds = %1407
  %1425 = load i32, ptr %65, align 4, !tbaa !9
  %1426 = add nsw i32 %1425, 1
  store i32 %1426, ptr %65, align 4, !tbaa !9
  br label %1403, !llvm.loop !22

1427:                                             ; preds = %1403
  %1428 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %1428, ptr %59, align 4, !tbaa !9
  %1429 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1429, ptr %65, align 4, !tbaa !9
  br label %1430

1430:                                             ; preds = %1453, %1427
  %1431 = load i32, ptr %65, align 4, !tbaa !9
  %1432 = load i32, ptr %59, align 4, !tbaa !9
  %1433 = icmp sle i32 %1431, %1432
  br i1 %1433, label %1434, label %1456

1434:                                             ; preds = %1430
  %1435 = load i32, ptr %77, align 4, !tbaa !9
  %1436 = sub nsw i32 %1435, 1
  store i32 %1436, ptr %60, align 4, !tbaa !9
  %1437 = load ptr, ptr %31, align 8, !tbaa !5
  %1438 = load i32, ptr %65, align 4, !tbaa !9
  %1439 = load i32, ptr %49, align 4, !tbaa !9
  %1440 = mul nsw i32 %1438, %1439
  %1441 = add nsw i32 %1440, 1
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds float, ptr %1437, i64 %1442
  call void @sscal_(ptr noundef %60, ptr noundef %80, ptr noundef %1443, ptr noundef @c__1)
  %1444 = load i32, ptr %77, align 4, !tbaa !9
  %1445 = sub nsw i32 %1444, 1
  store i32 %1445, ptr %60, align 4, !tbaa !9
  %1446 = load ptr, ptr %37, align 8, !tbaa !5
  %1447 = load i32, ptr %65, align 4, !tbaa !9
  %1448 = load i32, ptr %55, align 4, !tbaa !9
  %1449 = mul nsw i32 %1447, %1448
  %1450 = add nsw i32 %1449, 1
  %1451 = sext i32 %1450 to i64
  %1452 = getelementptr inbounds float, ptr %1446, i64 %1451
  call void @sscal_(ptr noundef %60, ptr noundef %80, ptr noundef %1452, ptr noundef @c__1)
  br label %1453

1453:                                             ; preds = %1434
  %1454 = load i32, ptr %65, align 4, !tbaa !9
  %1455 = add nsw i32 %1454, 1
  store i32 %1455, ptr %65, align 4, !tbaa !9
  br label %1430, !llvm.loop !23

1456:                                             ; preds = %1430
  %1457 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %1457, ptr %59, align 4, !tbaa !9
  %1458 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1458, ptr %65, align 4, !tbaa !9
  br label %1459

1459:                                             ; preds = %1490, %1456
  %1460 = load i32, ptr %65, align 4, !tbaa !9
  %1461 = load i32, ptr %59, align 4, !tbaa !9
  %1462 = icmp sle i32 %1460, %1461
  br i1 %1462, label %1463, label %1493

1463:                                             ; preds = %1459
  %1464 = load ptr, ptr %25, align 8, !tbaa !5
  %1465 = load i32, ptr %1464, align 4, !tbaa !9
  %1466 = load i32, ptr %72, align 4, !tbaa !9
  %1467 = sub nsw i32 %1465, %1466
  store i32 %1467, ptr %60, align 4, !tbaa !9
  %1468 = load ptr, ptr %31, align 8, !tbaa !5
  %1469 = load i32, ptr %72, align 4, !tbaa !9
  %1470 = add nsw i32 %1469, 1
  %1471 = load i32, ptr %65, align 4, !tbaa !9
  %1472 = load i32, ptr %49, align 4, !tbaa !9
  %1473 = mul nsw i32 %1471, %1472
  %1474 = add nsw i32 %1470, %1473
  %1475 = sext i32 %1474 to i64
  %1476 = getelementptr inbounds float, ptr %1468, i64 %1475
  call void @sscal_(ptr noundef %60, ptr noundef %80, ptr noundef %1476, ptr noundef @c__1)
  %1477 = load ptr, ptr %25, align 8, !tbaa !5
  %1478 = load i32, ptr %1477, align 4, !tbaa !9
  %1479 = load i32, ptr %72, align 4, !tbaa !9
  %1480 = sub nsw i32 %1478, %1479
  store i32 %1480, ptr %60, align 4, !tbaa !9
  %1481 = load ptr, ptr %37, align 8, !tbaa !5
  %1482 = load i32, ptr %72, align 4, !tbaa !9
  %1483 = add nsw i32 %1482, 1
  %1484 = load i32, ptr %65, align 4, !tbaa !9
  %1485 = load i32, ptr %55, align 4, !tbaa !9
  %1486 = mul nsw i32 %1484, %1485
  %1487 = add nsw i32 %1483, %1486
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds float, ptr %1481, i64 %1488
  call void @sscal_(ptr noundef %60, ptr noundef %80, ptr noundef %1489, ptr noundef @c__1)
  br label %1490

1490:                                             ; preds = %1463
  %1491 = load i32, ptr %65, align 4, !tbaa !9
  %1492 = add nsw i32 %1491, 1
  store i32 %1492, ptr %65, align 4, !tbaa !9
  br label %1459, !llvm.loop !24

1493:                                             ; preds = %1459
  %1494 = load ptr, ptr %26, align 8, !tbaa !5
  %1495 = load i32, ptr %1494, align 4, !tbaa !9
  store i32 %1495, ptr %59, align 4, !tbaa !9
  %1496 = load i32, ptr %73, align 4, !tbaa !9
  %1497 = add nsw i32 %1496, 1
  store i32 %1497, ptr %65, align 4, !tbaa !9
  br label %1498

1498:                                             ; preds = %1519, %1493
  %1499 = load i32, ptr %65, align 4, !tbaa !9
  %1500 = load i32, ptr %59, align 4, !tbaa !9
  %1501 = icmp sle i32 %1499, %1500
  br i1 %1501, label %1502, label %1522

1502:                                             ; preds = %1498
  %1503 = load ptr, ptr %25, align 8, !tbaa !5
  %1504 = load ptr, ptr %31, align 8, !tbaa !5
  %1505 = load i32, ptr %65, align 4, !tbaa !9
  %1506 = load i32, ptr %49, align 4, !tbaa !9
  %1507 = mul nsw i32 %1505, %1506
  %1508 = add nsw i32 %1507, 1
  %1509 = sext i32 %1508 to i64
  %1510 = getelementptr inbounds float, ptr %1504, i64 %1509
  call void @sscal_(ptr noundef %1503, ptr noundef %80, ptr noundef %1510, ptr noundef @c__1)
  %1511 = load ptr, ptr %25, align 8, !tbaa !5
  %1512 = load ptr, ptr %37, align 8, !tbaa !5
  %1513 = load i32, ptr %65, align 4, !tbaa !9
  %1514 = load i32, ptr %55, align 4, !tbaa !9
  %1515 = mul nsw i32 %1513, %1514
  %1516 = add nsw i32 %1515, 1
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds float, ptr %1512, i64 %1517
  call void @sscal_(ptr noundef %1511, ptr noundef %80, ptr noundef %1518, ptr noundef @c__1)
  br label %1519

1519:                                             ; preds = %1502
  %1520 = load i32, ptr %65, align 4, !tbaa !9
  %1521 = add nsw i32 %1520, 1
  store i32 %1521, ptr %65, align 4, !tbaa !9
  br label %1498, !llvm.loop !25

1522:                                             ; preds = %1498
  %1523 = load float, ptr %80, align 4, !tbaa !11
  %1524 = load ptr, ptr %39, align 8, !tbaa !5
  %1525 = load float, ptr %1524, align 4, !tbaa !11
  %1526 = fmul float %1525, %1523
  store float %1526, ptr %1524, align 4, !tbaa !11
  br label %1527

1527:                                             ; preds = %1522, %1397
  %1528 = load i32, ptr %64, align 4, !tbaa !9
  %1529 = load i32, ptr %66, align 4, !tbaa !9
  %1530 = add nsw i32 %1529, 2
  %1531 = icmp sgt i32 %1528, %1530
  br i1 %1531, label %1532, label %1585

1532:                                             ; preds = %1527
  %1533 = load i32, ptr %78, align 4, !tbaa !9
  %1534 = sub nsw i32 %1533, 1
  store i32 %1534, ptr %59, align 4, !tbaa !9
  %1535 = load ptr, ptr %31, align 8, !tbaa !5
  %1536 = load i32, ptr %77, align 4, !tbaa !9
  %1537 = load i32, ptr %78, align 4, !tbaa !9
  %1538 = load i32, ptr %49, align 4, !tbaa !9
  %1539 = mul nsw i32 %1537, %1538
  %1540 = add nsw i32 %1536, %1539
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds float, ptr %1535, i64 %1541
  %1543 = load ptr, ptr %32, align 8, !tbaa !5
  %1544 = load ptr, ptr %29, align 8, !tbaa !5
  %1545 = load i32, ptr %78, align 4, !tbaa !9
  %1546 = load i32, ptr %47, align 4, !tbaa !9
  %1547 = mul nsw i32 %1545, %1546
  %1548 = add nsw i32 %1547, 1
  %1549 = sext i32 %1548 to i64
  %1550 = getelementptr inbounds float, ptr %1544, i64 %1549
  %1551 = load ptr, ptr %30, align 8, !tbaa !5
  %1552 = load ptr, ptr %37, align 8, !tbaa !5
  %1553 = load i32, ptr %77, align 4, !tbaa !9
  %1554 = load i32, ptr %55, align 4, !tbaa !9
  %1555 = add nsw i32 %1553, %1554
  %1556 = sext i32 %1555 to i64
  %1557 = getelementptr inbounds float, ptr %1552, i64 %1556
  %1558 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %74, ptr noundef %59, ptr noundef %75, ptr noundef @c_b52, ptr noundef %1542, ptr noundef %1543, ptr noundef %1550, ptr noundef %1551, ptr noundef @c_b52, ptr noundef %1557, ptr noundef %1558)
  %1559 = load i32, ptr %78, align 4, !tbaa !9
  %1560 = sub nsw i32 %1559, 1
  store i32 %1560, ptr %59, align 4, !tbaa !9
  %1561 = load ptr, ptr %37, align 8, !tbaa !5
  %1562 = load i32, ptr %77, align 4, !tbaa !9
  %1563 = load i32, ptr %78, align 4, !tbaa !9
  %1564 = load i32, ptr %55, align 4, !tbaa !9
  %1565 = mul nsw i32 %1563, %1564
  %1566 = add nsw i32 %1562, %1565
  %1567 = sext i32 %1566 to i64
  %1568 = getelementptr inbounds float, ptr %1561, i64 %1567
  %1569 = load ptr, ptr %38, align 8, !tbaa !5
  %1570 = load ptr, ptr %35, align 8, !tbaa !5
  %1571 = load i32, ptr %78, align 4, !tbaa !9
  %1572 = load i32, ptr %53, align 4, !tbaa !9
  %1573 = mul nsw i32 %1571, %1572
  %1574 = add nsw i32 %1573, 1
  %1575 = sext i32 %1574 to i64
  %1576 = getelementptr inbounds float, ptr %1570, i64 %1575
  %1577 = load ptr, ptr %36, align 8, !tbaa !5
  %1578 = load ptr, ptr %37, align 8, !tbaa !5
  %1579 = load i32, ptr %77, align 4, !tbaa !9
  %1580 = load i32, ptr %55, align 4, !tbaa !9
  %1581 = add nsw i32 %1579, %1580
  %1582 = sext i32 %1581 to i64
  %1583 = getelementptr inbounds float, ptr %1578, i64 %1582
  %1584 = load ptr, ptr %38, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %74, ptr noundef %59, ptr noundef %75, ptr noundef @c_b52, ptr noundef %1568, ptr noundef %1569, ptr noundef %1576, ptr noundef %1577, ptr noundef @c_b52, ptr noundef %1583, ptr noundef %1584)
  br label %1585

1585:                                             ; preds = %1532, %1527
  %1586 = load i32, ptr %63, align 4, !tbaa !9
  %1587 = load i32, ptr %66, align 4, !tbaa !9
  %1588 = icmp slt i32 %1586, %1587
  br i1 %1588, label %1589, label %1656

1589:                                             ; preds = %1585
  %1590 = load ptr, ptr %25, align 8, !tbaa !5
  %1591 = load i32, ptr %1590, align 4, !tbaa !9
  %1592 = load i32, ptr %72, align 4, !tbaa !9
  %1593 = sub nsw i32 %1591, %1592
  store i32 %1593, ptr %59, align 4, !tbaa !9
  %1594 = load ptr, ptr %27, align 8, !tbaa !5
  %1595 = load i32, ptr %77, align 4, !tbaa !9
  %1596 = load i32, ptr %72, align 4, !tbaa !9
  %1597 = add nsw i32 %1596, 1
  %1598 = load i32, ptr %45, align 4, !tbaa !9
  %1599 = mul nsw i32 %1597, %1598
  %1600 = add nsw i32 %1595, %1599
  %1601 = sext i32 %1600 to i64
  %1602 = getelementptr inbounds float, ptr %1594, i64 %1601
  %1603 = load ptr, ptr %28, align 8, !tbaa !5
  %1604 = load ptr, ptr %31, align 8, !tbaa !5
  %1605 = load i32, ptr %77, align 4, !tbaa !9
  %1606 = load i32, ptr %78, align 4, !tbaa !9
  %1607 = load i32, ptr %49, align 4, !tbaa !9
  %1608 = mul nsw i32 %1606, %1607
  %1609 = add nsw i32 %1605, %1608
  %1610 = sext i32 %1609 to i64
  %1611 = getelementptr inbounds float, ptr %1604, i64 %1610
  %1612 = load ptr, ptr %32, align 8, !tbaa !5
  %1613 = load ptr, ptr %31, align 8, !tbaa !5
  %1614 = load i32, ptr %72, align 4, !tbaa !9
  %1615 = add nsw i32 %1614, 1
  %1616 = load i32, ptr %78, align 4, !tbaa !9
  %1617 = load i32, ptr %49, align 4, !tbaa !9
  %1618 = mul nsw i32 %1616, %1617
  %1619 = add nsw i32 %1615, %1618
  %1620 = sext i32 %1619 to i64
  %1621 = getelementptr inbounds float, ptr %1613, i64 %1620
  %1622 = load ptr, ptr %32, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %59, ptr noundef %75, ptr noundef %74, ptr noundef @c_b51, ptr noundef %1602, ptr noundef %1603, ptr noundef %1611, ptr noundef %1612, ptr noundef @c_b52, ptr noundef %1621, ptr noundef %1622)
  %1623 = load ptr, ptr %25, align 8, !tbaa !5
  %1624 = load i32, ptr %1623, align 4, !tbaa !9
  %1625 = load i32, ptr %72, align 4, !tbaa !9
  %1626 = sub nsw i32 %1624, %1625
  store i32 %1626, ptr %59, align 4, !tbaa !9
  %1627 = load ptr, ptr %33, align 8, !tbaa !5
  %1628 = load i32, ptr %77, align 4, !tbaa !9
  %1629 = load i32, ptr %72, align 4, !tbaa !9
  %1630 = add nsw i32 %1629, 1
  %1631 = load i32, ptr %51, align 4, !tbaa !9
  %1632 = mul nsw i32 %1630, %1631
  %1633 = add nsw i32 %1628, %1632
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds float, ptr %1627, i64 %1634
  %1636 = load ptr, ptr %34, align 8, !tbaa !5
  %1637 = load ptr, ptr %37, align 8, !tbaa !5
  %1638 = load i32, ptr %77, align 4, !tbaa !9
  %1639 = load i32, ptr %78, align 4, !tbaa !9
  %1640 = load i32, ptr %55, align 4, !tbaa !9
  %1641 = mul nsw i32 %1639, %1640
  %1642 = add nsw i32 %1638, %1641
  %1643 = sext i32 %1642 to i64
  %1644 = getelementptr inbounds float, ptr %1637, i64 %1643
  %1645 = load ptr, ptr %38, align 8, !tbaa !5
  %1646 = load ptr, ptr %31, align 8, !tbaa !5
  %1647 = load i32, ptr %72, align 4, !tbaa !9
  %1648 = add nsw i32 %1647, 1
  %1649 = load i32, ptr %78, align 4, !tbaa !9
  %1650 = load i32, ptr %49, align 4, !tbaa !9
  %1651 = mul nsw i32 %1649, %1650
  %1652 = add nsw i32 %1648, %1651
  %1653 = sext i32 %1652 to i64
  %1654 = getelementptr inbounds float, ptr %1646, i64 %1653
  %1655 = load ptr, ptr %32, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %59, ptr noundef %75, ptr noundef %74, ptr noundef @c_b51, ptr noundef %1635, ptr noundef %1636, ptr noundef %1644, ptr noundef %1645, ptr noundef @c_b52, ptr noundef %1654, ptr noundef %1655)
  br label %1656

1656:                                             ; preds = %1589, %1585
  br label %1657

1657:                                             ; preds = %1656
  %1658 = load i32, ptr %64, align 4, !tbaa !9
  %1659 = add nsw i32 %1658, -1
  store i32 %1659, ptr %64, align 4, !tbaa !9
  br label %1311, !llvm.loop !26

1660:                                             ; preds = %1311
  br label %1661

1661:                                             ; preds = %1660
  %1662 = load i32, ptr %63, align 4, !tbaa !9
  %1663 = add nsw i32 %1662, 1
  store i32 %1663, ptr %63, align 4, !tbaa !9
  br label %1287, !llvm.loop !27

1664:                                             ; preds = %1287
  br label %1665

1665:                                             ; preds = %1664, %1283
  %1666 = load i32, ptr %70, align 4, !tbaa !9
  %1667 = sitofp i32 %1666 to float
  %1668 = load ptr, ptr %41, align 8, !tbaa !5
  %1669 = getelementptr inbounds float, ptr %1668, i64 1
  store float %1667, ptr %1669, align 4, !tbaa !11
  store i32 1, ptr %85, align 4
  br label %1670

1670:                                             ; preds = %1665, %621, %376, %355, %347
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  ret void
}

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

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

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

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

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

declare void @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 void @slacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @sscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @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 = !{!"int", !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 i32, align 4
@c_n1 = external hidden global i32, align 4
@c__5 = external hidden global i32, align 4
@.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 i32, align 4
@c_b51 = external hidden global float, align 4
@c_b52 = external hidden global float, align 4

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

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

.critedge:                                        ; preds = %22
  %59 = load i32, ptr %1, align 4, !tbaa !5
  %or.cond727 = icmp ugt i32 %59, 4
  br i1 %or.cond727, label %.thread745.sink.split, label %60

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

99:                                               ; preds = %.thread740
  %100 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #5
  store i32 %100, ptr %30, align 4, !tbaa !5
  %101 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #5
  store i32 %101, ptr %31, align 4, !tbaa !5
  store i32 0, ptr %28, align 4, !tbaa !5
  br i1 %.not, label %109, label %102

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

105:                                              ; preds = %102
  %106 = add nsw i32 %103, -2
  store i32 %106, ptr %28, align 4, !tbaa !5
  tail call void @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
  tail call void @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 %109

107:                                              ; preds = %102
  %108 = icmp sgt i32 %103, 0
  %spec.select734 = select i1 %108, i32 2, i32 1
  br label %109

109:                                              ; preds = %107, %105, %99
  %110 = phi i1 [ false, %105 ], [ false, %99 ], [ %108, %107 ]
  %111 = phi i32 [ 1, %105 ], [ 1, %99 ], [ %spec.select734, %107 ]
  %112 = icmp slt i32 %100, 2
  %113 = icmp slt i32 %101, 2
  %or.cond5 = select i1 %112, i1 %113, i1 false
  br i1 %or.cond5, label %.lr.ph895.preheader, label %114

114:                                              ; preds = %109
  %115 = load i32, ptr %2, align 4, !tbaa !5
  %.not703 = icmp slt i32 %100, %115
  br i1 %.not703, label %173, label %116

116:                                              ; preds = %114
  %117 = load i32, ptr %3, align 4, !tbaa !5
  %.not704 = icmp slt i32 %101, %117
  br i1 %.not704, label %173, label %.lr.ph895.preheader

.lr.ph895.preheader:                              ; preds = %116, %109
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  store i32 0, ptr %33, align 4, !tbaa !5
  call void @stgsy2_(ptr noundef %0, ptr noundef nonnull %28, 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 %26, ptr noundef nonnull %32, ptr noundef %20, ptr noundef nonnull %33, ptr noundef nonnull %21) #5
  %118 = load float, ptr %32, align 4, !tbaa !9
  %119 = fcmp une float %118, 0.000000e+00
  br i1 %119, label %120, label %137

120:                                              ; preds = %.lr.ph895.preheader
  %121 = load i32, ptr %1, align 4, !tbaa !5
  switch i32 %121, label %127 [
    i32 1, label %122
    i32 3, label %122
  ]

122:                                              ; preds = %120, %120
  %123 = load i32, ptr %2, align 4, !tbaa !5
  %124 = shl i32 %123, 1
  %125 = load i32, ptr %3, align 4, !tbaa !5
  %126 = mul nsw i32 %124, %125
  br label %.sink.split

127:                                              ; preds = %120
  %128 = load i32, ptr %33, align 4, !tbaa !5
  br label %.sink.split

.sink.split:                                      ; preds = %122, %127
  %.sink988 = phi i32 [ %126, %122 ], [ %128, %127 ]
  %129 = sitofp i32 %.sink988 to float
  %130 = fpext float %129 to double
  %131 = call double @sqrt(double noundef %130) #5
  %.sink970.in = load float, ptr %32, align 4, !tbaa !9
  %.sink970 = fpext float %.sink970.in to double
  %.sink972 = load float, ptr %26, align 4, !tbaa !9
  %132 = fpext float %.sink972 to double
  %133 = call double @sqrt(double noundef %132) #5
  %134 = fmul double %133, %.sink970
  %135 = fdiv double %131, %134
  %136 = fptrunc double %135 to float
  store float %136, ptr %17, align 4, !tbaa !9
  br label %137

137:                                              ; preds = %.sink.split, %.lr.ph895.preheader
  br i1 %110, label %138, label %147

138:                                              ; preds = %137
  br i1 %.not, label %141, label %139

139:                                              ; preds = %138
  %140 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %140, ptr %28, align 4, !tbaa !5
  br label %141

141:                                              ; preds = %139, %138
  %142 = load float, ptr %16, align 4, !tbaa !9
  call void @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
  %143 = load i32, ptr %2, align 4, !tbaa !5
  %144 = load i32, ptr %3, align 4, !tbaa !5
  %145 = mul nsw i32 %144, %143
  %146 = sext i32 %145 to i64
  %gep890.peel = getelementptr float, ptr %18, i64 %146
  call void @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %gep890.peel, ptr noundef nonnull %2) #5
  call void @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
  call void @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 %147

147:                                              ; preds = %137, %141
  %.1662.peel = phi float [ %142, %141 ], [ undef, %137 ]
  %.not720.not.peel = icmp ugt i32 %111, 1
  br i1 %.not720.not.peel, label %.lr.ph895, label %.loopexit

.lr.ph895:                                        ; preds = %147
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  store i32 0, ptr %33, align 4, !tbaa !5
  call void @stgsy2_(ptr noundef %0, ptr noundef nonnull %28, 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 %26, ptr noundef nonnull %32, ptr noundef %20, ptr noundef nonnull %33, ptr noundef nonnull %21) #5
  %148 = load float, ptr %32, align 4, !tbaa !9
  %149 = fcmp une float %148, 0.000000e+00
  br i1 %149, label %150, label %167

150:                                              ; preds = %.lr.ph895
  %151 = load i32, ptr %1, align 4, !tbaa !5
  switch i32 %151, label %157 [
    i32 1, label %152
    i32 3, label %152
  ]

152:                                              ; preds = %150, %150
  %153 = load i32, ptr %2, align 4, !tbaa !5
  %154 = shl i32 %153, 1
  %155 = load i32, ptr %3, align 4, !tbaa !5
  %156 = mul nsw i32 %154, %155
  br label %.sink.split973

157:                                              ; preds = %150
  %158 = load i32, ptr %33, align 4, !tbaa !5
  br label %.sink.split973

.sink.split973:                                   ; preds = %152, %157
  %.sink991 = phi i32 [ %156, %152 ], [ %158, %157 ]
  %159 = sitofp i32 %.sink991 to float
  %160 = fpext float %159 to double
  %161 = call double @sqrt(double noundef %160) #5
  %.sink979.in = load float, ptr %32, align 4, !tbaa !9
  %.sink979 = fpext float %.sink979.in to double
  %.sink981 = load float, ptr %26, align 4, !tbaa !9
  %162 = fpext float %.sink981 to double
  %163 = call double @sqrt(double noundef %162) #5
  %164 = fmul double %163, %.sink979
  %165 = fdiv double %161, %164
  %166 = fptrunc double %165 to float
  store float %166, ptr %17, align 4, !tbaa !9
  br label %167

167:                                              ; preds = %.sink.split973, %.lr.ph895
  br i1 %110, label %168, label %.loopexit

168:                                              ; preds = %167
  call void @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
  %169 = load i32, ptr %2, align 4, !tbaa !5
  %170 = load i32, ptr %3, align 4, !tbaa !5
  %171 = mul nsw i32 %170, %169
  %172 = sext i32 %171 to i64
  %gep888 = getelementptr float, ptr %18, i64 %172
  call void @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %gep888, ptr noundef nonnull %2, ptr noundef %14, ptr noundef nonnull %15) #5
  store float %.1662.peel, ptr %16, align 4, !tbaa !9
  br label %.loopexit

173:                                              ; preds = %116, %114
  %174 = icmp slt i32 %115, 1
  br i1 %174, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %173, %178
  %indvars.iv = phi i64 [ %indvars.iv.next, %178 ], [ 0, %173 ]
  %.0679759 = phi i32 [ %.1680, %178 ], [ 1, %173 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %175 = getelementptr i32, ptr %20, i64 %indvars.iv
  store i32 %.0679759, ptr %175, align 4, !tbaa !5
  %176 = add nsw i32 %.0679759, %100
  %177 = load i32, ptr %2, align 4, !tbaa !5
  %.not705 = icmp slt i32 %176, %177
  br i1 %.not705, label %178, label %._crit_edge.loopexit

178:                                              ; preds = %.lr.ph
  %179 = add nsw i32 %176, -1
  %180 = mul nsw i32 %179, %35
  %181 = add nsw i32 %180, %176
  %182 = sext i32 %181 to i64
  %183 = getelementptr inbounds float, ptr %37, i64 %182
  %184 = load float, ptr %183, align 4, !tbaa !9
  %185 = fcmp une float %184, 0.000000e+00
  %186 = zext i1 %185 to i32
  %.1680 = add nsw i32 %176, %186
  %187 = icmp sgt i32 %.1680, %177
  br i1 %187, label %._crit_edge.loopexit, label %.lr.ph

._crit_edge.loopexit:                             ; preds = %.lr.ph, %178
  %188 = trunc nuw nsw i64 %indvars.iv.next to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %173
  %189 = phi i32 [ %115, %173 ], [ %177, %._crit_edge.loopexit ]
  %.1669 = phi i32 [ 0, %173 ], [ %188, %._crit_edge.loopexit ]
  %190 = add nsw i32 %189, 1
  %191 = sext i32 %.1669 to i64
  %192 = getelementptr i32, ptr %53, i64 %191
  %193 = getelementptr i8, ptr %192, i64 4
  store i32 %190, ptr %193, align 4, !tbaa !5
  %194 = load i32, ptr %192, align 4, !tbaa !5
  %195 = icmp eq i32 %194, %190
  %196 = sext i1 %195 to i32
  %spec.select735 = add i32 %.1669, %196
  %197 = add i32 %spec.select735, 1
  %198 = load i32, ptr %3, align 4, !tbaa !5
  %199 = icmp slt i32 %198, 1
  br i1 %199, label %._crit_edge767, label %.lr.ph766.preheader

.lr.ph766.preheader:                              ; preds = %._crit_edge
  %200 = sext i32 %197 to i64
  br label %.lr.ph766

.lr.ph766:                                        ; preds = %.lr.ph766.preheader, %204
  %indvars.iv901 = phi i64 [ %200, %.lr.ph766.preheader ], [ %indvars.iv.next902, %204 ]
  %.0675763 = phi i32 [ 1, %.lr.ph766.preheader ], [ %.1676, %204 ]
  %indvars.iv.next902 = add nsw i64 %indvars.iv901, 1
  %201 = getelementptr i32, ptr %20, i64 %indvars.iv901
  store i32 %.0675763, ptr %201, align 4, !tbaa !5
  %202 = add nsw i32 %.0675763, %101
  %203 = load i32, ptr %3, align 4, !tbaa !5
  %.not706 = icmp slt i32 %202, %203
  br i1 %.not706, label %204, label %._crit_edge767.loopexit

204:                                              ; preds = %.lr.ph766
  %205 = add nsw i32 %202, -1
  %206 = mul nsw i32 %205, %38
  %207 = add nsw i32 %206, %202
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds float, ptr %40, i64 %208
  %210 = load float, ptr %209, align 4, !tbaa !9
  %211 = fcmp une float %210, 0.000000e+00
  %212 = zext i1 %211 to i32
  %.1676 = add nsw i32 %202, %212
  %213 = icmp sgt i32 %.1676, %203
  br i1 %213, label %._crit_edge767.loopexit, label %.lr.ph766

._crit_edge767.loopexit:                          ; preds = %.lr.ph766, %204
  %214 = trunc nsw i64 %indvars.iv.next902 to i32
  br label %._crit_edge767

._crit_edge767:                                   ; preds = %._crit_edge767.loopexit, %._crit_edge
  %215 = phi i32 [ %198, %._crit_edge ], [ %203, %._crit_edge767.loopexit ]
  %.1666 = phi i32 [ %197, %._crit_edge ], [ %214, %._crit_edge767.loopexit ]
  %216 = add nsw i32 %215, 1
  %217 = sext i32 %.1666 to i64
  %218 = getelementptr i32, ptr %53, i64 %217
  %219 = getelementptr i8, ptr %218, i64 4
  store i32 %216, ptr %219, align 4, !tbaa !5
  %220 = load i32, ptr %218, align 4, !tbaa !5
  %221 = icmp eq i32 %220, %216
  %222 = sext i1 %221 to i32
  %spec.select736 = add i32 %.1666, %222
  br i1 %.not, label %398, label %.lr.ph833

.lr.ph833:                                        ; preds = %._crit_edge767
  %223 = add i32 %spec.select735, 2
  %.not714814 = icmp sgt i32 %223, %spec.select736
  %invariant.gep801 = getelementptr i8, ptr %20, i64 4
  %invariant.gep803 = getelementptr i8, ptr %37, i64 4
  %invariant.gep805 = getelementptr i8, ptr %43, i64 4
  %invariant.gep807 = getelementptr i8, ptr %46, i64 4
  %invariant.gep809 = getelementptr i8, ptr %52, i64 4
  %224 = icmp sgt i32 %spec.select735, 0
  %225 = add i32 %38, 1
  %226 = add i32 %47, 1
  %227 = sext i32 %spec.select736 to i64
  %gep802 = getelementptr i32, ptr %invariant.gep801, i64 %227
  %228 = add i32 %spec.select736, 1
  %229 = sext i32 %41 to i64
  %230 = sext i32 %50 to i64
  %231 = zext i32 %spec.select735 to i64
  %232 = sext i32 %223 to i64
  %233 = getelementptr inbounds i32, ptr %53, i64 %227
  %234 = sext i32 %228 to i64
  %235 = getelementptr inbounds i32, ptr %53, i64 %234
  br label %236

236:                                              ; preds = %.lr.ph833, %396
  %.1831 = phi i32 [ 1, %.lr.ph833 ], [ %397, %396 ]
  %.2830 = phi float [ undef, %.lr.ph833 ], [ %.3, %396 ]
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  store float 1.000000e+00, ptr %26, align 4, !tbaa !9
  store float 1.000000e+00, ptr %16, align 4, !tbaa !9
  br i1 %.not714814, label %._crit_edge818.thread, label %.lr.ph817

.lr.ph817:                                        ; preds = %236
  br i1 %224, label %.lr.ph813.us, label %.loopexit757.preheader

.loopexit757.preheader:                           ; preds = %.lr.ph817
  %237 = load i32, ptr %233, align 4, !tbaa !5
  %238 = load i32, ptr %235, align 4, !tbaa !5
  %239 = sub i32 %238, %237
  store i32 %239, ptr %31, align 4, !tbaa !5
  br label %._crit_edge818.thread

.lr.ph813.us:                                     ; preds = %334, %.lr.ph817
  %240 = phi i32 [ 0, %.lr.ph817 ], [ %298, %334 ]
  %indvars.iv919 = phi i64 [ %232, %.lr.ph817 ], [ %indvars.iv.next920, %334 ]
  %241 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv919
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %indvars.iv.next920 = add nsw i64 %indvars.iv919, 1
  %243 = getelementptr i32, ptr %20, i64 %indvars.iv919
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = add nsw i32 %244, -1
  %246 = sub i32 %244, %242
  store i32 %246, ptr %31, align 4, !tbaa !5
  %247 = mul i32 %242, %225
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds float, ptr %40, i64 %248
  %250 = mul nsw i32 %242, %41
  %251 = mul i32 %242, %226
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds float, ptr %49, i64 %252
  %254 = mul nsw i32 %242, %50
  %255 = add nsw i32 %242, -1
  %256 = sext i32 %250 to i64
  %gep806.us = getelementptr float, ptr %invariant.gep805, i64 %256
  %257 = sext i32 %254 to i64
  %gep810.us = getelementptr float, ptr %invariant.gep809, i64 %257
  %258 = icmp slt i64 %indvars.iv919, %227
  %259 = mul nsw i32 %244, %38
  %260 = add nsw i32 %259, %242
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds float, ptr %40, i64 %261
  %263 = mul nsw i32 %244, %41
  %264 = mul nsw i32 %244, %47
  %265 = add nsw i32 %264, %242
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds float, ptr %49, i64 %266
  %268 = mul nsw i32 %244, %50
  %269 = sext i32 %242 to i64
  %270 = sext i32 %244 to i64
  %.not715773.us = icmp slt i32 %242, 2
  %.not716782.us.not = icmp slt i32 %242, %244
  br label %271

271:                                              ; preds = %.backedge951, %.lr.ph813.us
  %272 = phi i32 [ %240, %.lr.ph813.us ], [ %298, %.backedge951 ]
  %indvars.iv916 = phi i64 [ %231, %.lr.ph813.us ], [ %indvars.iv916.be, %.backedge951 ]
  %273 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv916
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = getelementptr inbounds i8, ptr %273, i64 4
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = add nsw i32 %276, -1
  %278 = sub i32 %276, %274
  store i32 %278, ptr %30, align 4, !tbaa !5
  store i32 0, ptr %27, align 4, !tbaa !5
  %279 = mul nsw i32 %274, %35
  %280 = add nsw i32 %279, %274
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds float, ptr %37, i64 %281
  %283 = add nsw i32 %274, %250
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds float, ptr %43, i64 %284
  %286 = mul nsw i32 %274, %44
  %287 = add nsw i32 %286, %274
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds float, ptr %46, i64 %288
  %290 = add nsw i32 %274, %254
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds float, ptr %52, i64 %291
  call void @stgsy2_(ptr noundef %0, ptr noundef nonnull %28, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %282, ptr noundef nonnull %5, ptr noundef %249, ptr noundef nonnull %7, ptr noundef %285, ptr noundef nonnull %9, ptr noundef %289, ptr noundef nonnull %11, ptr noundef %253, ptr noundef nonnull %13, ptr noundef %292, ptr noundef nonnull %15, ptr noundef nonnull %34, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef %gep802, ptr noundef nonnull %27, ptr noundef nonnull %29) #5
  %293 = load i32, ptr %29, align 4, !tbaa !5
  %294 = icmp sgt i32 %293, 0
  br i1 %294, label %295, label %296

295:                                              ; preds = %271
  store i32 %293, ptr %21, align 4, !tbaa !5
  br label %296

296:                                              ; preds = %295, %271
  %297 = load i32, ptr %27, align 4, !tbaa !5
  %298 = add nsw i32 %272, %297
  %299 = load float, ptr %34, align 4, !tbaa !9
  %300 = fcmp une float %299, 1.000000e+00
  br i1 %300, label %301, label %328

301:                                              ; preds = %296
  store i32 %255, ptr %24, align 4, !tbaa !5
  br i1 %.not715773.us, label %._crit_edge777.us, label %.lr.ph776.us

.lr.ph776.us:                                     ; preds = %301, %.lr.ph776.us
  %indvars.iv904 = phi i64 [ %indvars.iv.next905, %.lr.ph776.us ], [ 1, %301 ]
  %302 = mul nsw i64 %indvars.iv904, %229
  %gep.us = getelementptr float, ptr %invariant.gep805, i64 %302
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep.us, ptr noundef nonnull @c__1) #5
  %303 = mul nsw i64 %indvars.iv904, %230
  %gep772.us = getelementptr float, ptr %invariant.gep809, i64 %303
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep772.us, ptr noundef nonnull @c__1) #5
  %indvars.iv.next905 = add nuw nsw i64 %indvars.iv904, 1
  %304 = load i32, ptr %24, align 4, !tbaa !5
  %305 = sext i32 %304 to i64
  %.not715.us.not = icmp slt i64 %indvars.iv904, %305
  br i1 %.not715.us.not, label %.lr.ph776.us, label %._crit_edge777.us, !llvm.loop !11

._crit_edge777.us:                                ; preds = %.lr.ph776.us, %301
  store i32 %245, ptr %24, align 4, !tbaa !5
  br i1 %.not716782.us.not, label %.lr.ph785.us, label %._crit_edge791.us

306:                                              ; preds = %.lr.ph785.us, %306
  %indvars.iv907 = phi i64 [ %269, %.lr.ph785.us ], [ %indvars.iv.next908, %306 ]
  store i32 %349, ptr %25, align 4, !tbaa !5
  %307 = mul nsw i64 %indvars.iv907, %229
  %gep779.us = getelementptr float, ptr %invariant.gep805, i64 %307
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep779.us, ptr noundef nonnull @c__1) #5
  store i32 %349, ptr %25, align 4, !tbaa !5
  %308 = mul nsw i64 %indvars.iv907, %230
  %gep781.us = getelementptr float, ptr %invariant.gep809, i64 %308
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep781.us, ptr noundef nonnull @c__1) #5
  %indvars.iv.next908 = add nsw i64 %indvars.iv907, 1
  %309 = load i32, ptr %24, align 4, !tbaa !5
  %310 = sext i32 %309 to i64
  %.not716.us.not = icmp slt i64 %indvars.iv907, %310
  br i1 %.not716.us.not, label %306, label %._crit_edge786.us, !llvm.loop !13

._crit_edge786.us:                                ; preds = %306
  store i32 %245, ptr %24, align 4, !tbaa !5
  br i1 %.not716782.us.not, label %.lr.ph790.us.preheader, label %._crit_edge791.us

.lr.ph790.us.preheader:                           ; preds = %._crit_edge786.us
  %311 = sext i32 %276 to i64
  %invariant.gep = getelementptr float, ptr %43, i64 %311
  %invariant.gep959 = getelementptr float, ptr %52, i64 %311
  br label %.lr.ph790.us

.lr.ph790.us:                                     ; preds = %.lr.ph790.us.preheader, %.lr.ph790.us
  %indvars.iv910 = phi i64 [ %269, %.lr.ph790.us.preheader ], [ %indvars.iv.next911, %.lr.ph790.us ]
  %312 = load i32, ptr %2, align 4, !tbaa !5
  %313 = sub nsw i32 %312, %277
  store i32 %313, ptr %25, align 4, !tbaa !5
  %314 = mul nsw i64 %indvars.iv910, %229
  %gep958 = getelementptr float, ptr %invariant.gep, i64 %314
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep958, ptr noundef nonnull @c__1) #5
  %315 = load i32, ptr %2, align 4, !tbaa !5
  %316 = sub nsw i32 %315, %277
  store i32 %316, ptr %25, align 4, !tbaa !5
  %317 = mul nsw i64 %indvars.iv910, %230
  %gep960 = getelementptr float, ptr %invariant.gep959, i64 %317
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep960, ptr noundef nonnull @c__1) #5
  %indvars.iv.next911 = add nsw i64 %indvars.iv910, 1
  %318 = load i32, ptr %24, align 4, !tbaa !5
  %319 = sext i32 %318 to i64
  %.not717.us.not = icmp slt i64 %indvars.iv910, %319
  br i1 %.not717.us.not, label %.lr.ph790.us, label %._crit_edge791.us, !llvm.loop !14

._crit_edge791.us:                                ; preds = %.lr.ph790.us, %._crit_edge777.us, %._crit_edge786.us
  %320 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %320, ptr %24, align 4, !tbaa !5
  %.not718796.us = icmp sgt i32 %244, %320
  br i1 %.not718796.us, label %._crit_edge800.us, label %.lr.ph799.us

.lr.ph799.us:                                     ; preds = %._crit_edge791.us, %.lr.ph799.us
  %indvars.iv913 = phi i64 [ %indvars.iv.next914, %.lr.ph799.us ], [ %270, %._crit_edge791.us ]
  %321 = mul nsw i64 %indvars.iv913, %229
  %gep793.us = getelementptr float, ptr %invariant.gep805, i64 %321
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep793.us, ptr noundef nonnull @c__1) #5
  %322 = mul nsw i64 %indvars.iv913, %230
  %gep795.us = getelementptr float, ptr %invariant.gep809, i64 %322
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep795.us, ptr noundef nonnull @c__1) #5
  %indvars.iv.next914 = add nsw i64 %indvars.iv913, 1
  %323 = load i32, ptr %24, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %.not718.us.not = icmp slt i64 %indvars.iv913, %324
  br i1 %.not718.us.not, label %.lr.ph799.us, label %._crit_edge800.us, !llvm.loop !15

._crit_edge800.us:                                ; preds = %.lr.ph799.us, %._crit_edge791.us
  %325 = load float, ptr %34, align 4, !tbaa !9
  %326 = load float, ptr %16, align 4, !tbaa !9
  %327 = fmul float %325, %326
  store float %327, ptr %16, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %._crit_edge800.us, %296
  %.not719.us = icmp eq i64 %indvars.iv916, 1
  br i1 %.not719.us, label %333, label %329

329:                                              ; preds = %328
  %330 = add nsw i32 %274, -1
  store i32 %330, ptr %24, align 4, !tbaa !5
  %331 = sext i32 %279 to i64
  %gep804.us = getelementptr float, ptr %invariant.gep803, i64 %331
  call void @sgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull @c_b51, ptr noundef %gep804.us, ptr noundef nonnull %5, ptr noundef %285, ptr noundef nonnull %9, ptr noundef nonnull @c_b52, ptr noundef %gep806.us, ptr noundef nonnull %9) #5
  store i32 %330, ptr %24, align 4, !tbaa !5
  %332 = sext i32 %286 to i64
  %gep808.us = getelementptr float, ptr %invariant.gep807, i64 %332
  call void @sgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull @c_b51, ptr noundef %gep808.us, ptr noundef nonnull %11, ptr noundef %285, ptr noundef nonnull %9, ptr noundef nonnull @c_b52, ptr noundef %gep810.us, ptr noundef nonnull %15) #5
  br label %333

333:                                              ; preds = %329, %328
  br i1 %258, label %334, label %.thread945

334:                                              ; preds = %333
  %335 = load i32, ptr %3, align 4, !tbaa !5
  %336 = sub nsw i32 %335, %245
  store i32 %336, ptr %24, align 4, !tbaa !5
  %337 = add nsw i32 %274, %263
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds float, ptr %43, i64 %338
  call void @sgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c_b52, ptr noundef %292, ptr noundef nonnull %15, ptr noundef %262, ptr noundef nonnull %7, ptr noundef nonnull @c_b52, ptr noundef %339, ptr noundef nonnull %9) #5
  %340 = load i32, ptr %3, align 4, !tbaa !5
  %341 = sub nsw i32 %340, %245
  store i32 %341, ptr %24, align 4, !tbaa !5
  %342 = add nsw i32 %274, %268
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds float, ptr %52, i64 %343
  call void @sgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c_b52, ptr noundef %292, ptr noundef nonnull %15, ptr noundef %267, ptr noundef nonnull %13, ptr noundef nonnull @c_b52, ptr noundef %344, ptr noundef nonnull %15) #5
  %345 = trunc nuw i64 %indvars.iv916 to i32
  %346 = icmp sgt i32 %345, 1
  br i1 %346, label %.backedge951, label %.lr.ph813.us

.backedge951:                                     ; preds = %334, %.thread945
  %indvars.iv916.be = add nsw i64 %indvars.iv916, -1
  br label %271, !llvm.loop !16

.thread945:                                       ; preds = %333
  %347 = trunc nuw i64 %indvars.iv916 to i32
  %348 = icmp sgt i32 %347, 1
  br i1 %348, label %.backedge951, label %._crit_edge818

.lr.ph785.us:                                     ; preds = %._crit_edge777.us
  %349 = add nsw i32 %274, -1
  br label %306

._crit_edge818:                                   ; preds = %.thread945
  %.pre = load float, ptr %32, align 4, !tbaa !9
  %350 = fcmp une float %.pre, 0.000000e+00
  br i1 %350, label %351, label %._crit_edge818.thread

351:                                              ; preds = %._crit_edge818
  %352 = load i32, ptr %1, align 4, !tbaa !5
  switch i32 %352, label %369 [
    i32 1, label %353
    i32 3, label %353
  ]

353:                                              ; preds = %351, %351
  %354 = load i32, ptr %2, align 4, !tbaa !5
  %355 = shl i32 %354, 1
  %356 = load i32, ptr %3, align 4, !tbaa !5
  %357 = mul nsw i32 %355, %356
  %358 = sitofp i32 %357 to float
  %359 = fpext float %358 to double
  %360 = call double @sqrt(double noundef %359) #5
  %361 = load float, ptr %32, align 4, !tbaa !9
  %362 = fpext float %361 to double
  %363 = load float, ptr %26, align 4, !tbaa !9
  %364 = fpext float %363 to double
  %365 = call double @sqrt(double noundef %364) #5
  %366 = fmul double %365, %362
  %367 = fdiv double %360, %366
  %368 = fptrunc double %367 to float
  store float %368, ptr %17, align 4, !tbaa !9
  br label %._crit_edge818.thread

369:                                              ; preds = %351
  %370 = sitofp i32 %298 to float
  %371 = fpext float %370 to double
  %372 = call double @sqrt(double noundef %371) #5
  %373 = load float, ptr %32, align 4, !tbaa !9
  %374 = fpext float %373 to double
  %375 = load float, ptr %26, align 4, !tbaa !9
  %376 = fpext float %375 to double
  %377 = call double @sqrt(double noundef %376) #5
  %378 = fmul double %377, %374
  %379 = fdiv double %372, %378
  %380 = fptrunc double %379 to float
  store float %380, ptr %17, align 4, !tbaa !9
  br label %._crit_edge818.thread

._crit_edge818.thread:                            ; preds = %236, %.loopexit757.preheader, %353, %369, %._crit_edge818
  %381 = icmp eq i32 %.1831, 1
  %or.cond11 = and i1 %110, %381
  br i1 %or.cond11, label %382, label %389

382:                                              ; preds = %._crit_edge818.thread
  %383 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %383, ptr %28, align 4, !tbaa !5
  %384 = load float, ptr %16, align 4, !tbaa !9
  call void @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
  %385 = load i32, ptr %2, align 4, !tbaa !5
  %386 = load i32, ptr %3, align 4, !tbaa !5
  %387 = mul nsw i32 %386, %385
  %388 = sext i32 %387 to i64
  %gep828 = getelementptr float, ptr %18, i64 %388
  call void @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %gep828, ptr noundef nonnull %2) #5
  call void @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
  call void @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 %396

389:                                              ; preds = %._crit_edge818.thread
  %390 = icmp eq i32 %.1831, 2
  %or.cond13 = and i1 %110, %390
  br i1 %or.cond13, label %391, label %396

391:                                              ; preds = %389
  call void @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
  %392 = load i32, ptr %2, align 4, !tbaa !5
  %393 = load i32, ptr %3, align 4, !tbaa !5
  %394 = mul nsw i32 %393, %392
  %395 = sext i32 %394 to i64
  %gep = getelementptr float, ptr %18, i64 %395
  call void @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull %2, ptr noundef %14, ptr noundef nonnull %15) #5
  store float %.2830, ptr %16, align 4, !tbaa !9
  br label %396

396:                                              ; preds = %382, %391, %389
  %.3 = phi float [ %384, %382 ], [ %.2830, %391 ], [ %.2830, %389 ]
  %397 = add nuw nsw i32 %.1831, 1
  %.not713.not = icmp ult i32 %.1831, %111
  br i1 %.not713.not, label %236, label %.loopexit756, !llvm.loop !17

398:                                              ; preds = %._crit_edge767
  store float 1.000000e+00, ptr %16, align 4, !tbaa !9
  %.not707876 = icmp slt i32 %spec.select735, 1
  br i1 %.not707876, label %.loopexit756, label %.lr.ph879

.lr.ph879:                                        ; preds = %398
  %399 = add nuw nsw i32 %spec.select735, 2
  %invariant.gep866 = getelementptr i8, ptr %20, i64 4
  %invariant.gep868 = getelementptr i8, ptr %40, i64 4
  %invariant.gep870 = getelementptr i8, ptr %49, i64 4
  %.not708872 = icmp slt i32 %spec.select736, %399
  %400 = add i32 %35, 1
  %401 = add i32 %44, 1
  %402 = sext i32 %spec.select736 to i64
  %gep867 = getelementptr i32, ptr %invariant.gep866, i64 %402
  %invariant.gep834 = getelementptr i8, ptr %43, i64 4
  %invariant.gep836 = getelementptr i8, ptr %52, i64 4
  br i1 %.not708872, label %.loopexit756, label %.lr.ph875.preheader

.lr.ph875.preheader:                              ; preds = %.lr.ph879
  %403 = sext i32 %41 to i64
  %404 = sext i32 %50 to i64
  %405 = zext nneg i32 %399 to i64
  %406 = zext nneg i32 %spec.select735 to i64
  br label %.lr.ph875

.lr.ph875:                                        ; preds = %497, %.lr.ph875.preheader
  %indvars.iv937 = phi i64 [ 1, %.lr.ph875.preheader ], [ %indvars.iv.next938, %497 ]
  %407 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv937
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %indvars.iv.next938 = add nuw nsw i64 %indvars.iv937, 1
  %409 = getelementptr i32, ptr %20, i64 %indvars.iv937
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = add nsw i32 %410, -1
  %412 = sub i32 %410, %408
  store i32 %412, ptr %30, align 4, !tbaa !5
  %413 = mul i32 %408, %400
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds float, ptr %37, i64 %414
  %416 = mul i32 %408, %401
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds float, ptr %46, i64 %417
  %419 = add nsw i32 %408, -1
  %420 = add nsw i32 %408, %50
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds float, ptr %52, i64 %421
  %423 = icmp ult i64 %indvars.iv937, %406
  %424 = mul nsw i32 %410, %35
  %425 = add nsw i32 %424, %408
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds float, ptr %37, i64 %426
  %428 = mul nsw i32 %410, %44
  %429 = add nsw i32 %428, %408
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds float, ptr %46, i64 %430
  %432 = sext i32 %410 to i64
  %invariant.gep961 = getelementptr float, ptr %43, i64 %432
  %invariant.gep963 = getelementptr float, ptr %52, i64 %432
  br label %433

433:                                              ; preds = %.backedge, %.lr.ph875
  %indvars.iv934 = phi i64 [ %402, %.lr.ph875 ], [ %indvars.iv934.be, %.backedge ]
  %434 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv934
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = getelementptr i8, ptr %434, i64 4
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = add nsw i32 %437, -1
  %439 = sub i32 %437, %435
  store i32 %439, ptr %31, align 4, !tbaa !5
  %440 = mul nsw i32 %435, %38
  %441 = add nsw i32 %440, %435
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds float, ptr %40, i64 %442
  %444 = mul nsw i32 %435, %41
  %445 = add nsw i32 %444, %408
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds float, ptr %43, i64 %446
  %448 = mul nsw i32 %435, %47
  %449 = add nsw i32 %448, %435
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds float, ptr %49, i64 %450
  %452 = mul nsw i32 %435, %50
  %453 = add nsw i32 %452, %408
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds float, ptr %52, i64 %454
  call void @stgsy2_(ptr noundef %0, ptr noundef nonnull %28, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %415, ptr noundef nonnull %5, ptr noundef %443, ptr noundef nonnull %7, ptr noundef %447, ptr noundef nonnull %9, ptr noundef %418, ptr noundef nonnull %11, ptr noundef %451, ptr noundef nonnull %13, ptr noundef %455, ptr noundef nonnull %15, ptr noundef nonnull %34, ptr noundef nonnull %26, ptr noundef nonnull %32, ptr noundef %gep867, ptr noundef nonnull %27, ptr noundef nonnull %29) #5
  %456 = load i32, ptr %29, align 4, !tbaa !5
  %457 = icmp sgt i32 %456, 0
  br i1 %457, label %458, label %459

458:                                              ; preds = %433
  store i32 %456, ptr %21, align 4, !tbaa !5
  br label %459

459:                                              ; preds = %458, %433
  %460 = load float, ptr %34, align 4, !tbaa !9
  %461 = fcmp une float %460, 1.000000e+00
  br i1 %461, label %462, label %491

462:                                              ; preds = %459
  %463 = add nsw i32 %435, -1
  store i32 %463, ptr %24, align 4, !tbaa !5
  %.not709838 = icmp slt i32 %435, 2
  br i1 %.not709838, label %._crit_edge842, label %.lr.ph841

.lr.ph841:                                        ; preds = %462, %.lr.ph841
  %indvars.iv922 = phi i64 [ %indvars.iv.next923, %.lr.ph841 ], [ 1, %462 ]
  %464 = mul nsw i64 %indvars.iv922, %403
  %gep835 = getelementptr float, ptr %invariant.gep834, i64 %464
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep835, ptr noundef nonnull @c__1) #5
  %465 = mul nsw i64 %indvars.iv922, %404
  %gep837 = getelementptr float, ptr %invariant.gep836, i64 %465
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep837, ptr noundef nonnull @c__1) #5
  %indvars.iv.next923 = add nuw nsw i64 %indvars.iv922, 1
  %466 = load i32, ptr %24, align 4, !tbaa !5
  %467 = sext i32 %466 to i64
  %.not709.not = icmp slt i64 %indvars.iv922, %467
  br i1 %.not709.not, label %.lr.ph841, label %._crit_edge842, !llvm.loop !18

._crit_edge842:                                   ; preds = %.lr.ph841, %462
  store i32 %438, ptr %24, align 4, !tbaa !5
  %.not710847.not = icmp slt i32 %435, %437
  br i1 %.not710847.not, label %.lr.ph850.preheader, label %._crit_edge856

.lr.ph850.preheader:                              ; preds = %._crit_edge842
  %468 = sext i32 %435 to i64
  br label %.lr.ph850

.lr.ph850:                                        ; preds = %.lr.ph850.preheader, %.lr.ph850
  %indvars.iv925 = phi i64 [ %468, %.lr.ph850.preheader ], [ %indvars.iv.next926, %.lr.ph850 ]
  store i32 %419, ptr %25, align 4, !tbaa !5
  %469 = mul nsw i64 %indvars.iv925, %403
  %gep844 = getelementptr float, ptr %invariant.gep834, i64 %469
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep844, ptr noundef nonnull @c__1) #5
  store i32 %419, ptr %25, align 4, !tbaa !5
  %470 = mul nsw i64 %indvars.iv925, %404
  %gep846 = getelementptr float, ptr %invariant.gep836, i64 %470
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep846, ptr noundef nonnull @c__1) #5
  %indvars.iv.next926 = add nsw i64 %indvars.iv925, 1
  %471 = load i32, ptr %24, align 4, !tbaa !5
  %472 = sext i32 %471 to i64
  %.not710.not = icmp slt i64 %indvars.iv925, %472
  br i1 %.not710.not, label %.lr.ph850, label %._crit_edge851, !llvm.loop !19

._crit_edge851:                                   ; preds = %.lr.ph850
  store i32 %438, ptr %24, align 4, !tbaa !5
  br i1 %.not710847.not, label %.lr.ph855.preheader, label %._crit_edge856

.lr.ph855.preheader:                              ; preds = %._crit_edge851
  %473 = sext i32 %435 to i64
  br label %.lr.ph855

.lr.ph855:                                        ; preds = %.lr.ph855.preheader, %.lr.ph855
  %indvars.iv928 = phi i64 [ %473, %.lr.ph855.preheader ], [ %indvars.iv.next929, %.lr.ph855 ]
  %474 = load i32, ptr %2, align 4, !tbaa !5
  %475 = sub nsw i32 %474, %411
  store i32 %475, ptr %25, align 4, !tbaa !5
  %476 = mul nsw i64 %indvars.iv928, %403
  %gep962 = getelementptr float, ptr %invariant.gep961, i64 %476
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep962, ptr noundef nonnull @c__1) #5
  %477 = load i32, ptr %2, align 4, !tbaa !5
  %478 = sub nsw i32 %477, %411
  store i32 %478, ptr %25, align 4, !tbaa !5
  %479 = mul nsw i64 %indvars.iv928, %404
  %gep964 = getelementptr float, ptr %invariant.gep963, i64 %479
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %34, ptr noundef %gep964, ptr noundef nonnull @c__1) #5
  %indvars.iv.next929 = add nsw i64 %indvars.iv928, 1
  %480 = load i32, ptr %24, align 4, !tbaa !5
  %481 = sext i32 %480 to i64
  %.not711.not = icmp slt i64 %indvars.iv928, %481
  br i1 %.not711.not, label %.lr.ph855, label %._crit_edge856, !llvm.loop !20

._crit_edge856:                                   ; preds = %.lr.ph855, %._crit_edge842, %._crit_edge851
  %482 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %482, ptr %24, align 4, !tbaa !5
  %.not712861 = icmp sgt i32 %437, %482
  br i1 %.not712861, label %._crit_edge865, label %.lr.ph864.preheader

.lr.ph864.preheader:                              ; preds = %._crit_edge856
  %483 = sext i32 %437 to i64
  br label %.lr.ph864

.lr.ph864:                                        ; preds = %.lr.ph864.preheader, %.lr.ph864
  %indvars.iv931 = phi i64 [ %483, %.lr.ph864.preheader ], [ %indvars.iv.next932, %.lr.ph864 ]
  %484 = mul nsw i64 %indvars.iv931, %403
  %gep858 = getelementptr float, ptr %invariant.gep834, i64 %484
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep858, ptr noundef nonnull @c__1) #5
  %485 = mul nsw i64 %indvars.iv931, %404
  %gep860 = getelementptr float, ptr %invariant.gep836, i64 %485
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %34, ptr noundef %gep860, ptr noundef nonnull @c__1) #5
  %indvars.iv.next932 = add nsw i64 %indvars.iv931, 1
  %486 = load i32, ptr %24, align 4, !tbaa !5
  %487 = sext i32 %486 to i64
  %.not712.not = icmp slt i64 %indvars.iv931, %487
  br i1 %.not712.not, label %.lr.ph864, label %._crit_edge865, !llvm.loop !21

._crit_edge865:                                   ; preds = %.lr.ph864, %._crit_edge856
  %488 = load float, ptr %34, align 4, !tbaa !9
  %489 = load float, ptr %16, align 4, !tbaa !9
  %490 = fmul float %488, %489
  store float %490, ptr %16, align 4, !tbaa !9
  br label %491

491:                                              ; preds = %._crit_edge865, %459
  %492 = icmp sgt i64 %indvars.iv934, %405
  br i1 %492, label %493, label %.thread949

493:                                              ; preds = %491
  %494 = add nsw i32 %435, -1
  store i32 %494, ptr %24, align 4, !tbaa !5
  %495 = sext i32 %440 to i64
  %gep869 = getelementptr float, ptr %invariant.gep868, i64 %495
  call void @sgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %30, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c_b52, ptr noundef %447, ptr noundef nonnull %9, ptr noundef %gep869, ptr noundef nonnull %7, ptr noundef nonnull @c_b52, ptr noundef %422, ptr noundef nonnull %15) #5
  store i32 %494, ptr %24, align 4, !tbaa !5
  %496 = sext i32 %448 to i64
  %gep871 = getelementptr float, ptr %invariant.gep870, i64 %496
  call void @sgemm_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %30, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c_b52, ptr noundef %455, ptr noundef nonnull %15, ptr noundef %gep871, ptr noundef nonnull %13, ptr noundef nonnull @c_b52, ptr noundef %422, ptr noundef nonnull %15) #5
  br i1 %423, label %497, label %.backedge

.thread949:                                       ; preds = %491
  br i1 %423, label %497, label %.loopexit756

497:                                              ; preds = %.thread949, %493
  %498 = load i32, ptr %2, align 4, !tbaa !5
  %499 = sub nsw i32 %498, %411
  store i32 %499, ptr %24, align 4, !tbaa !5
  %500 = add nsw i32 %444, %410
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds float, ptr %43, i64 %501
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull @c_b51, ptr noundef %427, ptr noundef nonnull %5, ptr noundef %447, ptr noundef nonnull %9, ptr noundef nonnull @c_b52, ptr noundef %502, ptr noundef nonnull %9) #5
  %503 = load i32, ptr %2, align 4, !tbaa !5
  %504 = sub nsw i32 %503, %411
  store i32 %504, ptr %24, align 4, !tbaa !5
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %30, ptr noundef nonnull @c_b51, ptr noundef %431, ptr noundef nonnull %11, ptr noundef %455, ptr noundef nonnull %15, ptr noundef nonnull @c_b52, ptr noundef %502, ptr noundef nonnull %9) #5
  br i1 %492, label %.backedge, label %.lr.ph875

.backedge:                                        ; preds = %493, %497
  %indvars.iv934.be = add nsw i64 %indvars.iv934, -1
  br label %433, !llvm.loop !22

.loopexit756:                                     ; preds = %396, %.thread949, %.lr.ph879, %398
  store float %93, ptr %18, align 4, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %147, %167, %168, %.thread740, %.loopexit756, %.thread745
  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 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  ret void
}

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

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

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

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

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

declare void @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 void @slacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @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 i32 @llvm.smax.i32(i32, i32) #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 = !{!"int", !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