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

; 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 [5 x i8], align 1
@c__4 = external hidden global i64, align 8
@c_b5 = external hidden global float, align 4
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b42 = external hidden global float, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b48 = external hidden global float, align 4
@c__0 = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [6 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @stgex2_(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) #0 {
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %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 i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca float, align 4
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  %51 = alloca [16 x float], align 16
  %52 = alloca [16 x float], align 16
  %53 = alloca [2 x float], align 4
  %54 = alloca [2 x float], align 4
  %55 = alloca [2 x float], align 4
  %56 = alloca float, align 4
  %57 = alloca float, align 4
  %58 = alloca [16 x float], align 16
  %59 = alloca [16 x float], align 16
  %60 = alloca float, align 4
  %61 = alloca float, align 4
  %62 = alloca float, align 4
  %63 = alloca i64, align 8
  %64 = alloca float, align 4
  %65 = alloca i64, align 8
  %66 = alloca [4 x float], align 16
  %67 = alloca float, align 4
  %68 = alloca [4 x float], align 16
  %69 = alloca [16 x float], align 16
  %70 = alloca [16 x float], align 16
  %71 = alloca float, align 4
  %72 = alloca float, align 4
  %73 = alloca float, align 4
  %74 = alloca [16 x float], align 16
  %75 = alloca i64, align 8
  %76 = alloca [16 x float], align 16
  %77 = alloca float, align 4
  %78 = alloca [4 x i64], align 16
  %79 = alloca float, align 4
  %80 = alloca float, align 4
  %81 = alloca float, align 4
  %82 = alloca i64, align 8
  %83 = alloca i32, align 4
  store ptr %0, ptr %19, align 8, !tbaa !5
  store ptr %1, ptr %20, align 8, !tbaa !5
  store ptr %2, ptr %21, align 8, !tbaa !5
  store ptr %3, ptr %22, align 8, !tbaa !5
  store ptr %4, ptr %23, align 8, !tbaa !5
  store ptr %5, ptr %24, align 8, !tbaa !5
  store ptr %6, ptr %25, align 8, !tbaa !5
  store ptr %7, ptr %26, align 8, !tbaa !5
  store ptr %8, ptr %27, align 8, !tbaa !5
  store ptr %9, ptr %28, align 8, !tbaa !5
  store ptr %10, ptr %29, align 8, !tbaa !5
  store ptr %11, ptr %30, align 8, !tbaa !5
  store ptr %12, ptr %31, align 8, !tbaa !5
  store ptr %13, ptr %32, align 8, !tbaa !5
  store ptr %14, ptr %33, align 8, !tbaa !5
  store ptr %15, ptr %34, align 8, !tbaa !5
  store ptr %16, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  %84 = load ptr, ptr %23, align 8, !tbaa !5
  %85 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %85, ptr %36, align 8, !tbaa !9
  %86 = load i64, ptr %36, align 8, !tbaa !9
  %87 = add nsw i64 1, %86
  store i64 %87, ptr %37, align 8, !tbaa !9
  %88 = load i64, ptr %37, align 8, !tbaa !9
  %89 = load ptr, ptr %22, align 8, !tbaa !5
  %90 = sub i64 0, %88
  %91 = getelementptr inbounds float, ptr %89, i64 %90
  store ptr %91, ptr %22, align 8, !tbaa !5
  %92 = load ptr, ptr %25, align 8, !tbaa !5
  %93 = load i64, ptr %92, align 8, !tbaa !9
  store i64 %93, ptr %38, align 8, !tbaa !9
  %94 = load i64, ptr %38, align 8, !tbaa !9
  %95 = add nsw i64 1, %94
  store i64 %95, ptr %39, align 8, !tbaa !9
  %96 = load i64, ptr %39, align 8, !tbaa !9
  %97 = load ptr, ptr %24, align 8, !tbaa !5
  %98 = sub i64 0, %96
  %99 = getelementptr inbounds float, ptr %97, i64 %98
  store ptr %99, ptr %24, align 8, !tbaa !5
  %100 = load ptr, ptr %27, align 8, !tbaa !5
  %101 = load i64, ptr %100, align 8, !tbaa !9
  store i64 %101, ptr %40, align 8, !tbaa !9
  %102 = load i64, ptr %40, align 8, !tbaa !9
  %103 = add nsw i64 1, %102
  store i64 %103, ptr %41, align 8, !tbaa !9
  %104 = load i64, ptr %41, align 8, !tbaa !9
  %105 = load ptr, ptr %26, align 8, !tbaa !5
  %106 = sub i64 0, %104
  %107 = getelementptr inbounds float, ptr %105, i64 %106
  store ptr %107, ptr %26, align 8, !tbaa !5
  %108 = load ptr, ptr %29, align 8, !tbaa !5
  %109 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %109, ptr %42, align 8, !tbaa !9
  %110 = load i64, ptr %42, align 8, !tbaa !9
  %111 = add nsw i64 1, %110
  store i64 %111, ptr %43, align 8, !tbaa !9
  %112 = load i64, ptr %43, align 8, !tbaa !9
  %113 = load ptr, ptr %28, align 8, !tbaa !5
  %114 = sub i64 0, %112
  %115 = getelementptr inbounds float, ptr %113, i64 %114
  store ptr %115, ptr %28, align 8, !tbaa !5
  %116 = load ptr, ptr %33, align 8, !tbaa !5
  %117 = getelementptr inbounds float, ptr %116, i32 -1
  store ptr %117, ptr %33, align 8, !tbaa !5
  %118 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 0, ptr %118, align 8, !tbaa !9
  %119 = load ptr, ptr %21, align 8, !tbaa !5
  %120 = load i64, ptr %119, align 8, !tbaa !9
  %121 = icmp sle i64 %120, 1
  br i1 %121, label %130, label %122

122:                                              ; preds = %17
  %123 = load ptr, ptr %31, align 8, !tbaa !5
  %124 = load i64, ptr %123, align 8, !tbaa !9
  %125 = icmp sle i64 %124, 0
  br i1 %125, label %130, label %126

126:                                              ; preds = %122
  %127 = load ptr, ptr %32, align 8, !tbaa !5
  %128 = load i64, ptr %127, align 8, !tbaa !9
  %129 = icmp sle i64 %128, 0
  br i1 %129, label %130, label %131

130:                                              ; preds = %126, %122, %17
  store i32 0, ptr %18, align 4
  store i32 1, ptr %83, align 4
  br label %1824

131:                                              ; preds = %126
  %132 = load ptr, ptr %31, align 8, !tbaa !5
  %133 = load i64, ptr %132, align 8, !tbaa !9
  %134 = load ptr, ptr %21, align 8, !tbaa !5
  %135 = load i64, ptr %134, align 8, !tbaa !9
  %136 = icmp sgt i64 %133, %135
  br i1 %136, label %146, label %137

137:                                              ; preds = %131
  %138 = load ptr, ptr %30, align 8, !tbaa !5
  %139 = load i64, ptr %138, align 8, !tbaa !9
  %140 = load ptr, ptr %31, align 8, !tbaa !5
  %141 = load i64, ptr %140, align 8, !tbaa !9
  %142 = add nsw i64 %139, %141
  %143 = load ptr, ptr %21, align 8, !tbaa !5
  %144 = load i64, ptr %143, align 8, !tbaa !9
  %145 = icmp sgt i64 %142, %144
  br i1 %145, label %146, label %147

146:                                              ; preds = %137, %131
  store i32 0, ptr %18, align 4
  store i32 1, ptr %83, align 4
  br label %1824

147:                                              ; preds = %137
  %148 = load ptr, ptr %31, align 8, !tbaa !5
  %149 = load i64, ptr %148, align 8, !tbaa !9
  %150 = load ptr, ptr %32, align 8, !tbaa !5
  %151 = load i64, ptr %150, align 8, !tbaa !9
  %152 = add nsw i64 %149, %151
  store i64 %152, ptr %50, align 8, !tbaa !9
  %153 = load ptr, ptr %21, align 8, !tbaa !5
  %154 = load i64, ptr %153, align 8, !tbaa !9
  %155 = load i64, ptr %50, align 8, !tbaa !9
  %156 = mul nsw i64 %154, %155
  store i64 %156, ptr %44, align 8, !tbaa !9
  %157 = load i64, ptr %50, align 8, !tbaa !9
  %158 = load i64, ptr %50, align 8, !tbaa !9
  %159 = mul nsw i64 %157, %158
  %160 = shl i64 %159, 1
  store i64 %160, ptr %45, align 8, !tbaa !9
  %161 = load ptr, ptr %34, align 8, !tbaa !5
  %162 = load i64, ptr %161, align 8, !tbaa !9
  %163 = load i64, ptr %44, align 8, !tbaa !9
  %164 = load i64, ptr %45, align 8, !tbaa !9
  %165 = icmp sge i64 %163, %164
  br i1 %165, label %166, label %168

166:                                              ; preds = %147
  %167 = load i64, ptr %44, align 8, !tbaa !9
  br label %170

168:                                              ; preds = %147
  %169 = load i64, ptr %45, align 8, !tbaa !9
  br label %170

170:                                              ; preds = %168, %166
  %171 = phi i64 [ %167, %166 ], [ %169, %168 ]
  %172 = icmp slt i64 %162, %171
  br i1 %172, label %173, label %195

173:                                              ; preds = %170
  %174 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 -16, ptr %174, align 8, !tbaa !9
  %175 = load ptr, ptr %21, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = load i64, ptr %50, align 8, !tbaa !9
  %178 = mul nsw i64 %176, %177
  store i64 %178, ptr %44, align 8, !tbaa !9
  %179 = load i64, ptr %50, align 8, !tbaa !9
  %180 = load i64, ptr %50, align 8, !tbaa !9
  %181 = mul nsw i64 %179, %180
  %182 = shl i64 %181, 1
  store i64 %182, ptr %45, align 8, !tbaa !9
  %183 = load i64, ptr %44, align 8, !tbaa !9
  %184 = load i64, ptr %45, align 8, !tbaa !9
  %185 = icmp sge i64 %183, %184
  br i1 %185, label %186, label %188

186:                                              ; preds = %173
  %187 = load i64, ptr %44, align 8, !tbaa !9
  br label %190

188:                                              ; preds = %173
  %189 = load i64, ptr %45, align 8, !tbaa !9
  br label %190

190:                                              ; preds = %188, %186
  %191 = phi i64 [ %187, %186 ], [ %189, %188 ]
  %192 = sitofp i64 %191 to float
  %193 = load ptr, ptr %33, align 8, !tbaa !5
  %194 = getelementptr inbounds float, ptr %193, i64 1
  store float %192, ptr %194, align 4, !tbaa !11
  store i32 0, ptr %18, align 4
  store i32 1, ptr %83, align 4
  br label %1824

195:                                              ; preds = %170
  store i64 0, ptr %63, align 8, !tbaa !9
  store i64 0, ptr %82, align 8, !tbaa !9
  %196 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %197 = call i32 @slaset_(ptr noundef @.str, ptr noundef @c__4, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %196, ptr noundef @c__4)
  %198 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %199 = call i32 @slaset_(ptr noundef @.str, ptr noundef @c__4, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %198, ptr noundef @c__4)
  %200 = load ptr, ptr %22, align 8, !tbaa !5
  %201 = load ptr, ptr %30, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  %203 = load ptr, ptr %30, align 8, !tbaa !5
  %204 = load i64, ptr %203, align 8, !tbaa !9
  %205 = load i64, ptr %36, align 8, !tbaa !9
  %206 = mul nsw i64 %204, %205
  %207 = add nsw i64 %202, %206
  %208 = getelementptr inbounds float, ptr %200, i64 %207
  %209 = load ptr, ptr %23, align 8, !tbaa !5
  %210 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %211 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %208, ptr noundef %209, ptr noundef %210, ptr noundef @c__4)
  %212 = load ptr, ptr %24, align 8, !tbaa !5
  %213 = load ptr, ptr %30, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  %215 = load ptr, ptr %30, align 8, !tbaa !5
  %216 = load i64, ptr %215, align 8, !tbaa !9
  %217 = load i64, ptr %38, align 8, !tbaa !9
  %218 = mul nsw i64 %216, %217
  %219 = add nsw i64 %214, %218
  %220 = getelementptr inbounds float, ptr %212, i64 %219
  %221 = load ptr, ptr %25, align 8, !tbaa !5
  %222 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %223 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %220, ptr noundef %221, ptr noundef %222, ptr noundef @c__4)
  %224 = call double @slamch_(ptr noundef @.str.1)
  %225 = fptrunc double %224 to float
  store float %225, ptr %62, align 4, !tbaa !11
  %226 = call double @slamch_(ptr noundef @.str.2)
  %227 = load float, ptr %62, align 4, !tbaa !11
  %228 = fpext float %227 to double
  %229 = fdiv double %226, %228
  %230 = fptrunc double %229 to float
  store float %230, ptr %81, align 4, !tbaa !11
  store float 0.000000e+00, ptr %79, align 4, !tbaa !11
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %231 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %232 = load ptr, ptr %33, align 8, !tbaa !5
  %233 = getelementptr inbounds float, ptr %232, i64 1
  %234 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %231, ptr noundef @c__4, ptr noundef %233, ptr noundef %50)
  %235 = load i64, ptr %50, align 8, !tbaa !9
  %236 = load i64, ptr %50, align 8, !tbaa !9
  %237 = mul nsw i64 %235, %236
  store i64 %237, ptr %44, align 8, !tbaa !9
  %238 = load ptr, ptr %33, align 8, !tbaa !5
  %239 = getelementptr inbounds float, ptr %238, i64 1
  %240 = call i32 @slassq_(ptr noundef %44, ptr noundef %239, ptr noundef @c__1, ptr noundef %79, ptr noundef %67)
  %241 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %242 = load ptr, ptr %33, align 8, !tbaa !5
  %243 = getelementptr inbounds float, ptr %242, i64 1
  %244 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %241, ptr noundef @c__4, ptr noundef %243, ptr noundef %50)
  %245 = load i64, ptr %50, align 8, !tbaa !9
  %246 = load i64, ptr %50, align 8, !tbaa !9
  %247 = mul nsw i64 %245, %246
  store i64 %247, ptr %44, align 8, !tbaa !9
  %248 = load ptr, ptr %33, align 8, !tbaa !5
  %249 = getelementptr inbounds float, ptr %248, i64 1
  %250 = call i32 @slassq_(ptr noundef %44, ptr noundef %249, ptr noundef @c__1, ptr noundef %79, ptr noundef %67)
  %251 = load float, ptr %79, align 4, !tbaa !11
  %252 = fpext float %251 to double
  %253 = load float, ptr %67, align 4, !tbaa !11
  %254 = fpext float %253 to double
  %255 = call double @sqrt(double noundef %254) #5
  %256 = fmul double %252, %255
  %257 = fptrunc double %256 to float
  store float %257, ptr %77, align 4, !tbaa !11
  %258 = load float, ptr %62, align 4, !tbaa !11
  %259 = fmul float %258, 1.000000e+01
  %260 = load float, ptr %77, align 4, !tbaa !11
  %261 = fmul float %259, %260
  store float %261, ptr %46, align 4, !tbaa !11
  %262 = load float, ptr %46, align 4, !tbaa !11
  %263 = load float, ptr %81, align 4, !tbaa !11
  %264 = fcmp oge float %262, %263
  br i1 %264, label %265, label %267

265:                                              ; preds = %195
  %266 = load float, ptr %46, align 4, !tbaa !11
  br label %269

267:                                              ; preds = %195
  %268 = load float, ptr %81, align 4, !tbaa !11
  br label %269

269:                                              ; preds = %267, %265
  %270 = phi float [ %266, %265 ], [ %268, %267 ]
  %271 = fpext float %270 to double
  %272 = fptrunc double %271 to float
  store float %272, ptr %80, align 4, !tbaa !11
  %273 = load i64, ptr %50, align 8, !tbaa !9
  %274 = icmp eq i64 %273, 2
  br i1 %274, label %275, label %686

275:                                              ; preds = %269
  %276 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 5
  %277 = load float, ptr %276, align 4, !tbaa !11
  %278 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %279 = load float, ptr %278, align 16, !tbaa !11
  %280 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 5
  %281 = load float, ptr %280, align 4, !tbaa !11
  %282 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %283 = load float, ptr %282, align 16, !tbaa !11
  %284 = fmul float %281, %283
  %285 = fneg float %284
  %286 = call float @llvm.fmuladd.f32(float %277, float %279, float %285)
  store float %286, ptr %47, align 4, !tbaa !11
  %287 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 5
  %288 = load float, ptr %287, align 4, !tbaa !11
  %289 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 4
  %290 = load float, ptr %289, align 16, !tbaa !11
  %291 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 5
  %292 = load float, ptr %291, align 4, !tbaa !11
  %293 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 4
  %294 = load float, ptr %293, align 16, !tbaa !11
  %295 = fmul float %292, %294
  %296 = fneg float %295
  %297 = call float @llvm.fmuladd.f32(float %288, float %290, float %296)
  store float %297, ptr %48, align 4, !tbaa !11
  %298 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 5
  %299 = load float, ptr %298, align 4, !tbaa !11
  %300 = fcmp oge float %299, 0.000000e+00
  br i1 %300, label %301, label %304

301:                                              ; preds = %275
  %302 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 5
  %303 = load float, ptr %302, align 4, !tbaa !11
  br label %308

304:                                              ; preds = %275
  %305 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 5
  %306 = load float, ptr %305, align 4, !tbaa !11
  %307 = fneg float %306
  br label %308

308:                                              ; preds = %304, %301
  %309 = phi float [ %303, %301 ], [ %307, %304 ]
  %310 = fpext float %309 to double
  %311 = fptrunc double %310 to float
  store float %311, ptr %57, align 4, !tbaa !11
  %312 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 5
  %313 = load float, ptr %312, align 4, !tbaa !11
  %314 = fcmp oge float %313, 0.000000e+00
  br i1 %314, label %315, label %318

315:                                              ; preds = %308
  %316 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 5
  %317 = load float, ptr %316, align 4, !tbaa !11
  br label %322

318:                                              ; preds = %308
  %319 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 5
  %320 = load float, ptr %319, align 4, !tbaa !11
  %321 = fneg float %320
  br label %322

322:                                              ; preds = %318, %315
  %323 = phi float [ %317, %315 ], [ %321, %318 ]
  %324 = fpext float %323 to double
  %325 = fptrunc double %324 to float
  store float %325, ptr %56, align 4, !tbaa !11
  %326 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 4
  %327 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %328 = call i32 @slartg_(ptr noundef %47, ptr noundef %48, ptr noundef %326, ptr noundef %327, ptr noundef %64)
  %329 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 4
  %330 = load float, ptr %329, align 16, !tbaa !11
  %331 = fneg float %330
  %332 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  store float %331, ptr %332, align 4, !tbaa !11
  %333 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %334 = load float, ptr %333, align 16, !tbaa !11
  %335 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 5
  store float %334, ptr %335, align 4, !tbaa !11
  %336 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %337 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 4
  %338 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %339 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %340 = call i32 @f2c_srot(ptr noundef @c__2, ptr noundef %336, ptr noundef @c__1, ptr noundef %337, ptr noundef @c__1, ptr noundef %338, ptr noundef %339)
  %341 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %342 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 4
  %343 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %344 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %345 = call i32 @f2c_srot(ptr noundef @c__2, ptr noundef %341, ptr noundef @c__1, ptr noundef %342, ptr noundef @c__1, ptr noundef %343, ptr noundef %344)
  %346 = load float, ptr %56, align 4, !tbaa !11
  %347 = load float, ptr %57, align 4, !tbaa !11
  %348 = fcmp oge float %346, %347
  br i1 %348, label %349, label %355

349:                                              ; preds = %322
  %350 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %351 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 1
  %352 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %353 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %354 = call i32 @slartg_(ptr noundef %350, ptr noundef %351, ptr noundef %352, ptr noundef %353, ptr noundef %64)
  br label %361

355:                                              ; preds = %322
  %356 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %357 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 1
  %358 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %359 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %360 = call i32 @slartg_(ptr noundef %356, ptr noundef %357, ptr noundef %358, ptr noundef %359, ptr noundef %64)
  br label %361

361:                                              ; preds = %355, %349
  %362 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %363 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 1
  %364 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %365 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %366 = call i32 @f2c_srot(ptr noundef @c__2, ptr noundef %362, ptr noundef @c__4, ptr noundef %363, ptr noundef @c__4, ptr noundef %364, ptr noundef %365)
  %367 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %368 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 1
  %369 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %370 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %371 = call i32 @f2c_srot(ptr noundef @c__2, ptr noundef %367, ptr noundef @c__4, ptr noundef %368, ptr noundef @c__4, ptr noundef %369, ptr noundef %370)
  %372 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %373 = load float, ptr %372, align 16, !tbaa !11
  %374 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 5
  store float %373, ptr %374, align 4, !tbaa !11
  %375 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %376 = load float, ptr %375, align 4, !tbaa !11
  %377 = fneg float %376
  %378 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 4
  store float %377, ptr %378, align 16, !tbaa !11
  %379 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 1
  %380 = load float, ptr %379, align 4, !tbaa !11
  %381 = fcmp oge float %380, 0.000000e+00
  br i1 %381, label %382, label %385

382:                                              ; preds = %361
  %383 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 1
  %384 = load float, ptr %383, align 4, !tbaa !11
  br label %389

385:                                              ; preds = %361
  %386 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 1
  %387 = load float, ptr %386, align 4, !tbaa !11
  %388 = fneg float %387
  br label %389

389:                                              ; preds = %385, %382
  %390 = phi float [ %384, %382 ], [ %388, %385 ]
  %391 = fpext float %390 to double
  %392 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 1
  %393 = load float, ptr %392, align 4, !tbaa !11
  %394 = fcmp oge float %393, 0.000000e+00
  br i1 %394, label %395, label %398

395:                                              ; preds = %389
  %396 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 1
  %397 = load float, ptr %396, align 4, !tbaa !11
  br label %402

398:                                              ; preds = %389
  %399 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 1
  %400 = load float, ptr %399, align 4, !tbaa !11
  %401 = fneg float %400
  br label %402

402:                                              ; preds = %398, %395
  %403 = phi float [ %397, %395 ], [ %401, %398 ]
  %404 = fpext float %403 to double
  %405 = fadd double %391, %404
  %406 = fptrunc double %405 to float
  store float %406, ptr %61, align 4, !tbaa !11
  %407 = load float, ptr %61, align 4, !tbaa !11
  %408 = load float, ptr %80, align 4, !tbaa !11
  %409 = fcmp ole float %407, %408
  %410 = zext i1 %409 to i32
  %411 = sext i32 %410 to i64
  store i64 %411, ptr %63, align 8, !tbaa !9
  %412 = load i64, ptr %63, align 8, !tbaa !9
  %413 = icmp ne i64 %412, 0
  br i1 %413, label %415, label %414

414:                                              ; preds = %402
  br label %1822

415:                                              ; preds = %402
  %416 = load ptr, ptr %22, align 8, !tbaa !5
  %417 = load ptr, ptr %30, align 8, !tbaa !5
  %418 = load i64, ptr %417, align 8, !tbaa !9
  %419 = load ptr, ptr %30, align 8, !tbaa !5
  %420 = load i64, ptr %419, align 8, !tbaa !9
  %421 = load i64, ptr %36, align 8, !tbaa !9
  %422 = mul nsw i64 %420, %421
  %423 = add nsw i64 %418, %422
  %424 = getelementptr inbounds float, ptr %416, i64 %423
  %425 = load ptr, ptr %23, align 8, !tbaa !5
  %426 = load ptr, ptr %33, align 8, !tbaa !5
  %427 = load i64, ptr %50, align 8, !tbaa !9
  %428 = load i64, ptr %50, align 8, !tbaa !9
  %429 = mul nsw i64 %427, %428
  %430 = add nsw i64 %429, 1
  %431 = getelementptr inbounds float, ptr %426, i64 %430
  %432 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %424, ptr noundef %425, ptr noundef %431, ptr noundef %50)
  %433 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %434 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %435 = load ptr, ptr %33, align 8, !tbaa !5
  %436 = getelementptr inbounds float, ptr %435, i64 1
  %437 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %433, ptr noundef @c__4, ptr noundef %434, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %436, ptr noundef %50)
  %438 = load ptr, ptr %33, align 8, !tbaa !5
  %439 = getelementptr inbounds float, ptr %438, i64 1
  %440 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %441 = load ptr, ptr %33, align 8, !tbaa !5
  %442 = load i64, ptr %50, align 8, !tbaa !9
  %443 = load i64, ptr %50, align 8, !tbaa !9
  %444 = mul nsw i64 %442, %443
  %445 = add nsw i64 %444, 1
  %446 = getelementptr inbounds float, ptr %441, i64 %445
  %447 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b48, ptr noundef %439, ptr noundef %50, ptr noundef %440, ptr noundef @c__4, ptr noundef @c_b42, ptr noundef %446, ptr noundef %50)
  store float 0.000000e+00, ptr %79, align 4, !tbaa !11
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %448 = load i64, ptr %50, align 8, !tbaa !9
  %449 = load i64, ptr %50, align 8, !tbaa !9
  %450 = mul nsw i64 %448, %449
  store i64 %450, ptr %44, align 8, !tbaa !9
  %451 = load ptr, ptr %33, align 8, !tbaa !5
  %452 = load i64, ptr %50, align 8, !tbaa !9
  %453 = load i64, ptr %50, align 8, !tbaa !9
  %454 = mul nsw i64 %452, %453
  %455 = add nsw i64 %454, 1
  %456 = getelementptr inbounds float, ptr %451, i64 %455
  %457 = call i32 @slassq_(ptr noundef %44, ptr noundef %456, ptr noundef @c__1, ptr noundef %79, ptr noundef %67)
  %458 = load ptr, ptr %24, align 8, !tbaa !5
  %459 = load ptr, ptr %30, align 8, !tbaa !5
  %460 = load i64, ptr %459, align 8, !tbaa !9
  %461 = load ptr, ptr %30, align 8, !tbaa !5
  %462 = load i64, ptr %461, align 8, !tbaa !9
  %463 = load i64, ptr %38, align 8, !tbaa !9
  %464 = mul nsw i64 %462, %463
  %465 = add nsw i64 %460, %464
  %466 = getelementptr inbounds float, ptr %458, i64 %465
  %467 = load ptr, ptr %25, align 8, !tbaa !5
  %468 = load ptr, ptr %33, align 8, !tbaa !5
  %469 = load i64, ptr %50, align 8, !tbaa !9
  %470 = load i64, ptr %50, align 8, !tbaa !9
  %471 = mul nsw i64 %469, %470
  %472 = add nsw i64 %471, 1
  %473 = getelementptr inbounds float, ptr %468, i64 %472
  %474 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %466, ptr noundef %467, ptr noundef %473, ptr noundef %50)
  %475 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %476 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %477 = load ptr, ptr %33, align 8, !tbaa !5
  %478 = getelementptr inbounds float, ptr %477, i64 1
  %479 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %475, ptr noundef @c__4, ptr noundef %476, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %478, ptr noundef %50)
  %480 = load ptr, ptr %33, align 8, !tbaa !5
  %481 = getelementptr inbounds float, ptr %480, i64 1
  %482 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %483 = load ptr, ptr %33, align 8, !tbaa !5
  %484 = load i64, ptr %50, align 8, !tbaa !9
  %485 = load i64, ptr %50, align 8, !tbaa !9
  %486 = mul nsw i64 %484, %485
  %487 = add nsw i64 %486, 1
  %488 = getelementptr inbounds float, ptr %483, i64 %487
  %489 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b48, ptr noundef %481, ptr noundef %50, ptr noundef %482, ptr noundef @c__4, ptr noundef @c_b42, ptr noundef %488, ptr noundef %50)
  %490 = load i64, ptr %50, align 8, !tbaa !9
  %491 = load i64, ptr %50, align 8, !tbaa !9
  %492 = mul nsw i64 %490, %491
  store i64 %492, ptr %44, align 8, !tbaa !9
  %493 = load ptr, ptr %33, align 8, !tbaa !5
  %494 = load i64, ptr %50, align 8, !tbaa !9
  %495 = load i64, ptr %50, align 8, !tbaa !9
  %496 = mul nsw i64 %494, %495
  %497 = add nsw i64 %496, 1
  %498 = getelementptr inbounds float, ptr %493, i64 %497
  %499 = call i32 @slassq_(ptr noundef %44, ptr noundef %498, ptr noundef @c__1, ptr noundef %79, ptr noundef %67)
  %500 = load float, ptr %79, align 4, !tbaa !11
  %501 = fpext float %500 to double
  %502 = load float, ptr %67, align 4, !tbaa !11
  %503 = fpext float %502 to double
  %504 = call double @sqrt(double noundef %503) #5
  %505 = fmul double %501, %504
  %506 = fptrunc double %505 to float
  store float %506, ptr %60, align 4, !tbaa !11
  %507 = load float, ptr %60, align 4, !tbaa !11
  %508 = load float, ptr %80, align 4, !tbaa !11
  %509 = fcmp ole float %507, %508
  %510 = zext i1 %509 to i32
  %511 = sext i32 %510 to i64
  store i64 %511, ptr %82, align 8, !tbaa !9
  %512 = load i64, ptr %82, align 8, !tbaa !9
  %513 = icmp ne i64 %512, 0
  br i1 %513, label %515, label %514

514:                                              ; preds = %415
  br label %1822

515:                                              ; preds = %415
  %516 = load ptr, ptr %30, align 8, !tbaa !5
  %517 = load i64, ptr %516, align 8, !tbaa !9
  %518 = add nsw i64 %517, 1
  store i64 %518, ptr %44, align 8, !tbaa !9
  %519 = load ptr, ptr %22, align 8, !tbaa !5
  %520 = load ptr, ptr %30, align 8, !tbaa !5
  %521 = load i64, ptr %520, align 8, !tbaa !9
  %522 = load i64, ptr %36, align 8, !tbaa !9
  %523 = mul nsw i64 %521, %522
  %524 = add nsw i64 %523, 1
  %525 = getelementptr inbounds float, ptr %519, i64 %524
  %526 = load ptr, ptr %22, align 8, !tbaa !5
  %527 = load ptr, ptr %30, align 8, !tbaa !5
  %528 = load i64, ptr %527, align 8, !tbaa !9
  %529 = add nsw i64 %528, 1
  %530 = load i64, ptr %36, align 8, !tbaa !9
  %531 = mul nsw i64 %529, %530
  %532 = add nsw i64 %531, 1
  %533 = getelementptr inbounds float, ptr %526, i64 %532
  %534 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %535 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %536 = call i32 @f2c_srot(ptr noundef %44, ptr noundef %525, ptr noundef @c__1, ptr noundef %533, ptr noundef @c__1, ptr noundef %534, ptr noundef %535)
  %537 = load ptr, ptr %30, align 8, !tbaa !5
  %538 = load i64, ptr %537, align 8, !tbaa !9
  %539 = add nsw i64 %538, 1
  store i64 %539, ptr %44, align 8, !tbaa !9
  %540 = load ptr, ptr %24, align 8, !tbaa !5
  %541 = load ptr, ptr %30, align 8, !tbaa !5
  %542 = load i64, ptr %541, align 8, !tbaa !9
  %543 = load i64, ptr %38, align 8, !tbaa !9
  %544 = mul nsw i64 %542, %543
  %545 = add nsw i64 %544, 1
  %546 = getelementptr inbounds float, ptr %540, i64 %545
  %547 = load ptr, ptr %24, align 8, !tbaa !5
  %548 = load ptr, ptr %30, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = add nsw i64 %549, 1
  %551 = load i64, ptr %38, align 8, !tbaa !9
  %552 = mul nsw i64 %550, %551
  %553 = add nsw i64 %552, 1
  %554 = getelementptr inbounds float, ptr %547, i64 %553
  %555 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %556 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %557 = call i32 @f2c_srot(ptr noundef %44, ptr noundef %546, ptr noundef @c__1, ptr noundef %554, ptr noundef @c__1, ptr noundef %555, ptr noundef %556)
  %558 = load ptr, ptr %21, align 8, !tbaa !5
  %559 = load i64, ptr %558, align 8, !tbaa !9
  %560 = load ptr, ptr %30, align 8, !tbaa !5
  %561 = load i64, ptr %560, align 8, !tbaa !9
  %562 = sub nsw i64 %559, %561
  %563 = add nsw i64 %562, 1
  store i64 %563, ptr %44, align 8, !tbaa !9
  %564 = load ptr, ptr %22, align 8, !tbaa !5
  %565 = load ptr, ptr %30, align 8, !tbaa !5
  %566 = load i64, ptr %565, align 8, !tbaa !9
  %567 = load ptr, ptr %30, align 8, !tbaa !5
  %568 = load i64, ptr %567, align 8, !tbaa !9
  %569 = load i64, ptr %36, align 8, !tbaa !9
  %570 = mul nsw i64 %568, %569
  %571 = add nsw i64 %566, %570
  %572 = getelementptr inbounds float, ptr %564, i64 %571
  %573 = load ptr, ptr %23, align 8, !tbaa !5
  %574 = load ptr, ptr %22, align 8, !tbaa !5
  %575 = load ptr, ptr %30, align 8, !tbaa !5
  %576 = load i64, ptr %575, align 8, !tbaa !9
  %577 = add nsw i64 %576, 1
  %578 = load ptr, ptr %30, align 8, !tbaa !5
  %579 = load i64, ptr %578, align 8, !tbaa !9
  %580 = load i64, ptr %36, align 8, !tbaa !9
  %581 = mul nsw i64 %579, %580
  %582 = add nsw i64 %577, %581
  %583 = getelementptr inbounds float, ptr %574, i64 %582
  %584 = load ptr, ptr %23, align 8, !tbaa !5
  %585 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %586 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %587 = call i32 @f2c_srot(ptr noundef %44, ptr noundef %572, ptr noundef %573, ptr noundef %583, ptr noundef %584, ptr noundef %585, ptr noundef %586)
  %588 = load ptr, ptr %21, align 8, !tbaa !5
  %589 = load i64, ptr %588, align 8, !tbaa !9
  %590 = load ptr, ptr %30, align 8, !tbaa !5
  %591 = load i64, ptr %590, align 8, !tbaa !9
  %592 = sub nsw i64 %589, %591
  %593 = add nsw i64 %592, 1
  store i64 %593, ptr %44, align 8, !tbaa !9
  %594 = load ptr, ptr %24, align 8, !tbaa !5
  %595 = load ptr, ptr %30, align 8, !tbaa !5
  %596 = load i64, ptr %595, align 8, !tbaa !9
  %597 = load ptr, ptr %30, align 8, !tbaa !5
  %598 = load i64, ptr %597, align 8, !tbaa !9
  %599 = load i64, ptr %38, align 8, !tbaa !9
  %600 = mul nsw i64 %598, %599
  %601 = add nsw i64 %596, %600
  %602 = getelementptr inbounds float, ptr %594, i64 %601
  %603 = load ptr, ptr %25, align 8, !tbaa !5
  %604 = load ptr, ptr %24, align 8, !tbaa !5
  %605 = load ptr, ptr %30, align 8, !tbaa !5
  %606 = load i64, ptr %605, align 8, !tbaa !9
  %607 = add nsw i64 %606, 1
  %608 = load ptr, ptr %30, align 8, !tbaa !5
  %609 = load i64, ptr %608, align 8, !tbaa !9
  %610 = load i64, ptr %38, align 8, !tbaa !9
  %611 = mul nsw i64 %609, %610
  %612 = add nsw i64 %607, %611
  %613 = getelementptr inbounds float, ptr %604, i64 %612
  %614 = load ptr, ptr %25, align 8, !tbaa !5
  %615 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %616 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %617 = call i32 @f2c_srot(ptr noundef %44, ptr noundef %602, ptr noundef %603, ptr noundef %613, ptr noundef %614, ptr noundef %615, ptr noundef %616)
  %618 = load ptr, ptr %22, align 8, !tbaa !5
  %619 = load ptr, ptr %30, align 8, !tbaa !5
  %620 = load i64, ptr %619, align 8, !tbaa !9
  %621 = add nsw i64 %620, 1
  %622 = load ptr, ptr %30, align 8, !tbaa !5
  %623 = load i64, ptr %622, align 8, !tbaa !9
  %624 = load i64, ptr %36, align 8, !tbaa !9
  %625 = mul nsw i64 %623, %624
  %626 = add nsw i64 %621, %625
  %627 = getelementptr inbounds float, ptr %618, i64 %626
  store float 0.000000e+00, ptr %627, align 4, !tbaa !11
  %628 = load ptr, ptr %24, align 8, !tbaa !5
  %629 = load ptr, ptr %30, align 8, !tbaa !5
  %630 = load i64, ptr %629, align 8, !tbaa !9
  %631 = add nsw i64 %630, 1
  %632 = load ptr, ptr %30, align 8, !tbaa !5
  %633 = load i64, ptr %632, align 8, !tbaa !9
  %634 = load i64, ptr %38, align 8, !tbaa !9
  %635 = mul nsw i64 %633, %634
  %636 = add nsw i64 %631, %635
  %637 = getelementptr inbounds float, ptr %628, i64 %636
  store float 0.000000e+00, ptr %637, align 4, !tbaa !11
  %638 = load ptr, ptr %20, align 8, !tbaa !5
  %639 = load i64, ptr %638, align 8, !tbaa !9
  %640 = icmp ne i64 %639, 0
  br i1 %640, label %641, label %661

641:                                              ; preds = %515
  %642 = load ptr, ptr %21, align 8, !tbaa !5
  %643 = load ptr, ptr %28, align 8, !tbaa !5
  %644 = load ptr, ptr %30, align 8, !tbaa !5
  %645 = load i64, ptr %644, align 8, !tbaa !9
  %646 = load i64, ptr %42, align 8, !tbaa !9
  %647 = mul nsw i64 %645, %646
  %648 = add nsw i64 %647, 1
  %649 = getelementptr inbounds float, ptr %643, i64 %648
  %650 = load ptr, ptr %28, align 8, !tbaa !5
  %651 = load ptr, ptr %30, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = add nsw i64 %652, 1
  %654 = load i64, ptr %42, align 8, !tbaa !9
  %655 = mul nsw i64 %653, %654
  %656 = add nsw i64 %655, 1
  %657 = getelementptr inbounds float, ptr %650, i64 %656
  %658 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %659 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %660 = call i32 @f2c_srot(ptr noundef %642, ptr noundef %649, ptr noundef @c__1, ptr noundef %657, ptr noundef @c__1, ptr noundef %658, ptr noundef %659)
  br label %661

661:                                              ; preds = %641, %515
  %662 = load ptr, ptr %19, align 8, !tbaa !5
  %663 = load i64, ptr %662, align 8, !tbaa !9
  %664 = icmp ne i64 %663, 0
  br i1 %664, label %665, label %685

665:                                              ; preds = %661
  %666 = load ptr, ptr %21, align 8, !tbaa !5
  %667 = load ptr, ptr %26, align 8, !tbaa !5
  %668 = load ptr, ptr %30, align 8, !tbaa !5
  %669 = load i64, ptr %668, align 8, !tbaa !9
  %670 = load i64, ptr %40, align 8, !tbaa !9
  %671 = mul nsw i64 %669, %670
  %672 = add nsw i64 %671, 1
  %673 = getelementptr inbounds float, ptr %667, i64 %672
  %674 = load ptr, ptr %26, align 8, !tbaa !5
  %675 = load ptr, ptr %30, align 8, !tbaa !5
  %676 = load i64, ptr %675, align 8, !tbaa !9
  %677 = add nsw i64 %676, 1
  %678 = load i64, ptr %40, align 8, !tbaa !9
  %679 = mul nsw i64 %677, %678
  %680 = add nsw i64 %679, 1
  %681 = getelementptr inbounds float, ptr %674, i64 %680
  %682 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %683 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %684 = call i32 @f2c_srot(ptr noundef %666, ptr noundef %673, ptr noundef @c__1, ptr noundef %681, ptr noundef @c__1, ptr noundef %682, ptr noundef %683)
  br label %685

685:                                              ; preds = %665, %661
  store i32 0, ptr %18, align 4
  store i32 1, ptr %83, align 4
  br label %1824

686:                                              ; preds = %269
  %687 = load ptr, ptr %31, align 8, !tbaa !5
  %688 = load ptr, ptr %32, align 8, !tbaa !5
  %689 = load ptr, ptr %31, align 8, !tbaa !5
  %690 = load i64, ptr %689, align 8, !tbaa !9
  %691 = add nsw i64 %690, 1
  %692 = shl i64 %691, 2
  %693 = sub nsw i64 %692, 4
  %694 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %693
  %695 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %696 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %687, ptr noundef %688, ptr noundef %694, ptr noundef @c__4, ptr noundef %695, ptr noundef @c__4)
  %697 = load ptr, ptr %31, align 8, !tbaa !5
  %698 = load ptr, ptr %32, align 8, !tbaa !5
  %699 = load ptr, ptr %31, align 8, !tbaa !5
  %700 = load i64, ptr %699, align 8, !tbaa !9
  %701 = add nsw i64 %700, 1
  %702 = shl i64 %701, 2
  %703 = sub nsw i64 %702, 4
  %704 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 %703
  %705 = load ptr, ptr %32, align 8, !tbaa !5
  %706 = load i64, ptr %705, align 8, !tbaa !9
  %707 = add nsw i64 %706, 1
  %708 = load ptr, ptr %31, align 8, !tbaa !5
  %709 = load i64, ptr %708, align 8, !tbaa !9
  %710 = add nsw i64 %709, 1
  %711 = shl i64 %710, 2
  %712 = add nsw i64 %707, %711
  %713 = sub nsw i64 %712, 5
  %714 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %713
  %715 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %697, ptr noundef %698, ptr noundef %704, ptr noundef @c__4, ptr noundef %714, ptr noundef @c__4)
  %716 = load ptr, ptr %31, align 8, !tbaa !5
  %717 = load ptr, ptr %32, align 8, !tbaa !5
  %718 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %719 = load ptr, ptr %31, align 8, !tbaa !5
  %720 = load i64, ptr %719, align 8, !tbaa !9
  %721 = add nsw i64 %720, 1
  %722 = load ptr, ptr %31, align 8, !tbaa !5
  %723 = load i64, ptr %722, align 8, !tbaa !9
  %724 = add nsw i64 %723, 1
  %725 = shl i64 %724, 2
  %726 = add nsw i64 %721, %725
  %727 = sub nsw i64 %726, 5
  %728 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 %727
  %729 = load ptr, ptr %32, align 8, !tbaa !5
  %730 = load i64, ptr %729, align 8, !tbaa !9
  %731 = add nsw i64 %730, 1
  %732 = load ptr, ptr %31, align 8, !tbaa !5
  %733 = load i64, ptr %732, align 8, !tbaa !9
  %734 = add nsw i64 %733, 1
  %735 = shl i64 %734, 2
  %736 = add nsw i64 %731, %735
  %737 = sub nsw i64 %736, 5
  %738 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %737
  %739 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %740 = load ptr, ptr %31, align 8, !tbaa !5
  %741 = load i64, ptr %740, align 8, !tbaa !9
  %742 = add nsw i64 %741, 1
  %743 = load ptr, ptr %31, align 8, !tbaa !5
  %744 = load i64, ptr %743, align 8, !tbaa !9
  %745 = add nsw i64 %744, 1
  %746 = shl i64 %745, 2
  %747 = add nsw i64 %742, %746
  %748 = sub nsw i64 %747, 5
  %749 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %748
  %750 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %751 = getelementptr inbounds [4 x i64], ptr %78, i64 0, i64 0
  %752 = call i32 @stgsy2_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef %716, ptr noundef %717, ptr noundef %718, ptr noundef @c__4, ptr noundef %728, ptr noundef @c__4, ptr noundef %738, ptr noundef @c__4, ptr noundef %739, ptr noundef @c__4, ptr noundef %749, ptr noundef @c__4, ptr noundef %750, ptr noundef @c__4, ptr noundef %71, ptr noundef %67, ptr noundef %79, ptr noundef %751, ptr noundef %65, ptr noundef %75)
  %753 = load ptr, ptr %32, align 8, !tbaa !5
  %754 = load i64, ptr %753, align 8, !tbaa !9
  store i64 %754, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %49, align 8, !tbaa !9
  br label %755

755:                                              ; preds = %776, %686
  %756 = load i64, ptr %49, align 8, !tbaa !9
  %757 = load i64, ptr %44, align 8, !tbaa !9
  %758 = icmp sle i64 %756, %757
  br i1 %758, label %759, label %779

759:                                              ; preds = %755
  %760 = load ptr, ptr %31, align 8, !tbaa !5
  %761 = load i64, ptr %49, align 8, !tbaa !9
  %762 = shl i64 %761, 2
  %763 = sub nsw i64 %762, 4
  %764 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 %763
  %765 = call i32 @f2c_sscal(ptr noundef %760, ptr noundef @c_b48, ptr noundef %764, ptr noundef @c__1)
  %766 = load float, ptr %71, align 4, !tbaa !11
  %767 = load ptr, ptr %31, align 8, !tbaa !5
  %768 = load i64, ptr %767, align 8, !tbaa !9
  %769 = load i64, ptr %49, align 8, !tbaa !9
  %770 = add nsw i64 %768, %769
  %771 = load i64, ptr %49, align 8, !tbaa !9
  %772 = shl i64 %771, 2
  %773 = add nsw i64 %770, %772
  %774 = sub nsw i64 %773, 5
  %775 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 %774
  store float %766, ptr %775, align 4, !tbaa !11
  br label %776

776:                                              ; preds = %759
  %777 = load i64, ptr %49, align 8, !tbaa !9
  %778 = add nsw i64 %777, 1
  store i64 %778, ptr %49, align 8, !tbaa !9
  br label %755, !llvm.loop !13

779:                                              ; preds = %755
  %780 = load ptr, ptr %32, align 8, !tbaa !5
  %781 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %782 = getelementptr inbounds [4 x float], ptr %66, i64 0, i64 0
  %783 = load ptr, ptr %33, align 8, !tbaa !5
  %784 = getelementptr inbounds float, ptr %783, i64 1
  %785 = call i32 @sgeqr2_(ptr noundef %50, ptr noundef %780, ptr noundef %781, ptr noundef @c__4, ptr noundef %782, ptr noundef %784, ptr noundef %75)
  %786 = load i64, ptr %75, align 8, !tbaa !9
  %787 = icmp ne i64 %786, 0
  br i1 %787, label %788, label %789

788:                                              ; preds = %779
  br label %1822

789:                                              ; preds = %779
  %790 = load ptr, ptr %32, align 8, !tbaa !5
  %791 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %792 = getelementptr inbounds [4 x float], ptr %66, i64 0, i64 0
  %793 = load ptr, ptr %33, align 8, !tbaa !5
  %794 = getelementptr inbounds float, ptr %793, i64 1
  %795 = call i32 @sorg2r_(ptr noundef %50, ptr noundef %50, ptr noundef %790, ptr noundef %791, ptr noundef @c__4, ptr noundef %792, ptr noundef %794, ptr noundef %75)
  %796 = load i64, ptr %75, align 8, !tbaa !9
  %797 = icmp ne i64 %796, 0
  br i1 %797, label %798, label %799

798:                                              ; preds = %789
  br label %1822

799:                                              ; preds = %789
  %800 = load ptr, ptr %31, align 8, !tbaa !5
  %801 = load i64, ptr %800, align 8, !tbaa !9
  store i64 %801, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %49, align 8, !tbaa !9
  br label %802

802:                                              ; preds = %817, %799
  %803 = load i64, ptr %49, align 8, !tbaa !9
  %804 = load i64, ptr %44, align 8, !tbaa !9
  %805 = icmp sle i64 %803, %804
  br i1 %805, label %806, label %820

806:                                              ; preds = %802
  %807 = load float, ptr %71, align 4, !tbaa !11
  %808 = load ptr, ptr %32, align 8, !tbaa !5
  %809 = load i64, ptr %808, align 8, !tbaa !9
  %810 = load i64, ptr %49, align 8, !tbaa !9
  %811 = add nsw i64 %809, %810
  %812 = load i64, ptr %49, align 8, !tbaa !9
  %813 = shl i64 %812, 2
  %814 = add nsw i64 %811, %813
  %815 = sub nsw i64 %814, 5
  %816 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %815
  store float %807, ptr %816, align 4, !tbaa !11
  br label %817

817:                                              ; preds = %806
  %818 = load i64, ptr %49, align 8, !tbaa !9
  %819 = add nsw i64 %818, 1
  store i64 %819, ptr %49, align 8, !tbaa !9
  br label %802, !llvm.loop !15

820:                                              ; preds = %802
  %821 = load ptr, ptr %31, align 8, !tbaa !5
  %822 = load ptr, ptr %32, align 8, !tbaa !5
  %823 = load i64, ptr %822, align 8, !tbaa !9
  %824 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %823
  %825 = getelementptr inbounds [4 x float], ptr %68, i64 0, i64 0
  %826 = load ptr, ptr %33, align 8, !tbaa !5
  %827 = getelementptr inbounds float, ptr %826, i64 1
  %828 = call i32 @sgerq2_(ptr noundef %821, ptr noundef %50, ptr noundef %824, ptr noundef @c__4, ptr noundef %825, ptr noundef %827, ptr noundef %75)
  %829 = load i64, ptr %75, align 8, !tbaa !9
  %830 = icmp ne i64 %829, 0
  br i1 %830, label %831, label %832

831:                                              ; preds = %820
  br label %1822

832:                                              ; preds = %820
  %833 = load ptr, ptr %31, align 8, !tbaa !5
  %834 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %835 = getelementptr inbounds [4 x float], ptr %68, i64 0, i64 0
  %836 = load ptr, ptr %33, align 8, !tbaa !5
  %837 = getelementptr inbounds float, ptr %836, i64 1
  %838 = call i32 @sorgr2_(ptr noundef %50, ptr noundef %50, ptr noundef %833, ptr noundef %834, ptr noundef @c__4, ptr noundef %835, ptr noundef %837, ptr noundef %75)
  %839 = load i64, ptr %75, align 8, !tbaa !9
  %840 = icmp ne i64 %839, 0
  br i1 %840, label %841, label %842

841:                                              ; preds = %832
  br label %1822

842:                                              ; preds = %832
  %843 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %844 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %845 = load ptr, ptr %33, align 8, !tbaa !5
  %846 = getelementptr inbounds float, ptr %845, i64 1
  %847 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %843, ptr noundef @c__4, ptr noundef %844, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %846, ptr noundef %50)
  %848 = load ptr, ptr %33, align 8, !tbaa !5
  %849 = getelementptr inbounds float, ptr %848, i64 1
  %850 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %851 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %852 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %849, ptr noundef %50, ptr noundef %850, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %851, ptr noundef @c__4)
  %853 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %854 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %855 = load ptr, ptr %33, align 8, !tbaa !5
  %856 = getelementptr inbounds float, ptr %855, i64 1
  %857 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %853, ptr noundef @c__4, ptr noundef %854, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %856, ptr noundef %50)
  %858 = load ptr, ptr %33, align 8, !tbaa !5
  %859 = getelementptr inbounds float, ptr %858, i64 1
  %860 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %861 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %862 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %859, ptr noundef %50, ptr noundef %860, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %861, ptr noundef @c__4)
  %863 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %864 = getelementptr inbounds [16 x float], ptr %69, i64 0, i64 0
  %865 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %863, ptr noundef @c__4, ptr noundef %864, ptr noundef @c__4)
  %866 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %867 = getelementptr inbounds [16 x float], ptr %70, i64 0, i64 0
  %868 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %866, ptr noundef @c__4, ptr noundef %867, ptr noundef @c__4)
  %869 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %870 = getelementptr inbounds [16 x float], ptr %76, i64 0, i64 0
  %871 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %869, ptr noundef @c__4, ptr noundef %870, ptr noundef @c__4)
  %872 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %873 = getelementptr inbounds [16 x float], ptr %74, i64 0, i64 0
  %874 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %872, ptr noundef @c__4, ptr noundef %873, ptr noundef @c__4)
  %875 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %876 = getelementptr inbounds [4 x float], ptr %68, i64 0, i64 0
  %877 = load ptr, ptr %33, align 8, !tbaa !5
  %878 = getelementptr inbounds float, ptr %877, i64 1
  %879 = call i32 @sgerq2_(ptr noundef %50, ptr noundef %50, ptr noundef %875, ptr noundef @c__4, ptr noundef %876, ptr noundef %878, ptr noundef %75)
  %880 = load i64, ptr %75, align 8, !tbaa !9
  %881 = icmp ne i64 %880, 0
  br i1 %881, label %882, label %883

882:                                              ; preds = %842
  br label %1822

883:                                              ; preds = %842
  %884 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %885 = getelementptr inbounds [4 x float], ptr %68, i64 0, i64 0
  %886 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %887 = load ptr, ptr %33, align 8, !tbaa !5
  %888 = getelementptr inbounds float, ptr %887, i64 1
  %889 = call i32 @sormr2_(ptr noundef @.str.6, ptr noundef @.str.4, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef %884, ptr noundef @c__4, ptr noundef %885, ptr noundef %886, ptr noundef @c__4, ptr noundef %888, ptr noundef %75)
  %890 = load i64, ptr %75, align 8, !tbaa !9
  %891 = icmp ne i64 %890, 0
  br i1 %891, label %892, label %893

892:                                              ; preds = %883
  br label %1822

893:                                              ; preds = %883
  %894 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %895 = getelementptr inbounds [4 x float], ptr %68, i64 0, i64 0
  %896 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %897 = load ptr, ptr %33, align 8, !tbaa !5
  %898 = getelementptr inbounds float, ptr %897, i64 1
  %899 = call i32 @sormr2_(ptr noundef @.str.7, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef %894, ptr noundef @c__4, ptr noundef %895, ptr noundef %896, ptr noundef @c__4, ptr noundef %898, ptr noundef %75)
  %900 = load i64, ptr %75, align 8, !tbaa !9
  %901 = icmp ne i64 %900, 0
  br i1 %901, label %902, label %903

902:                                              ; preds = %893
  br label %1822

903:                                              ; preds = %893
  store float 0.000000e+00, ptr %79, align 4, !tbaa !11
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %904 = load ptr, ptr %32, align 8, !tbaa !5
  %905 = load i64, ptr %904, align 8, !tbaa !9
  store i64 %905, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %49, align 8, !tbaa !9
  br label %906

906:                                              ; preds = %921, %903
  %907 = load i64, ptr %49, align 8, !tbaa !9
  %908 = load i64, ptr %44, align 8, !tbaa !9
  %909 = icmp sle i64 %907, %908
  br i1 %909, label %910, label %924

910:                                              ; preds = %906
  %911 = load ptr, ptr %31, align 8, !tbaa !5
  %912 = load ptr, ptr %32, align 8, !tbaa !5
  %913 = load i64, ptr %912, align 8, !tbaa !9
  %914 = add nsw i64 %913, 1
  %915 = load i64, ptr %49, align 8, !tbaa !9
  %916 = shl i64 %915, 2
  %917 = add nsw i64 %914, %916
  %918 = sub nsw i64 %917, 5
  %919 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 %918
  %920 = call i32 @slassq_(ptr noundef %911, ptr noundef %919, ptr noundef @c__1, ptr noundef %79, ptr noundef %67)
  br label %921

921:                                              ; preds = %910
  %922 = load i64, ptr %49, align 8, !tbaa !9
  %923 = add nsw i64 %922, 1
  store i64 %923, ptr %49, align 8, !tbaa !9
  br label %906, !llvm.loop !16

924:                                              ; preds = %906
  %925 = load float, ptr %79, align 4, !tbaa !11
  %926 = fpext float %925 to double
  %927 = load float, ptr %67, align 4, !tbaa !11
  %928 = fpext float %927 to double
  %929 = call double @sqrt(double noundef %928) #5
  %930 = fmul double %926, %929
  %931 = fptrunc double %930 to float
  store float %931, ptr %73, align 4, !tbaa !11
  %932 = getelementptr inbounds [16 x float], ptr %70, i64 0, i64 0
  %933 = getelementptr inbounds [4 x float], ptr %66, i64 0, i64 0
  %934 = load ptr, ptr %33, align 8, !tbaa !5
  %935 = getelementptr inbounds float, ptr %934, i64 1
  %936 = call i32 @sgeqr2_(ptr noundef %50, ptr noundef %50, ptr noundef %932, ptr noundef @c__4, ptr noundef %933, ptr noundef %935, ptr noundef %75)
  %937 = load i64, ptr %75, align 8, !tbaa !9
  %938 = icmp ne i64 %937, 0
  br i1 %938, label %939, label %940

939:                                              ; preds = %924
  br label %1822

940:                                              ; preds = %924
  %941 = getelementptr inbounds [16 x float], ptr %70, i64 0, i64 0
  %942 = getelementptr inbounds [4 x float], ptr %66, i64 0, i64 0
  %943 = getelementptr inbounds [16 x float], ptr %69, i64 0, i64 0
  %944 = load ptr, ptr %33, align 8, !tbaa !5
  %945 = getelementptr inbounds float, ptr %944, i64 1
  %946 = load ptr, ptr %35, align 8, !tbaa !5
  %947 = call i32 @sorm2r_(ptr noundef @.str.7, ptr noundef @.str.4, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef %941, ptr noundef @c__4, ptr noundef %942, ptr noundef %943, ptr noundef @c__4, ptr noundef %945, ptr noundef %946)
  %948 = getelementptr inbounds [16 x float], ptr %70, i64 0, i64 0
  %949 = getelementptr inbounds [4 x float], ptr %66, i64 0, i64 0
  %950 = getelementptr inbounds [16 x float], ptr %74, i64 0, i64 0
  %951 = load ptr, ptr %33, align 8, !tbaa !5
  %952 = getelementptr inbounds float, ptr %951, i64 1
  %953 = load ptr, ptr %35, align 8, !tbaa !5
  %954 = call i32 @sorm2r_(ptr noundef @.str.6, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef %948, ptr noundef @c__4, ptr noundef %949, ptr noundef %950, ptr noundef @c__4, ptr noundef %952, ptr noundef %953)
  %955 = load i64, ptr %75, align 8, !tbaa !9
  %956 = icmp ne i64 %955, 0
  br i1 %956, label %957, label %958

957:                                              ; preds = %940
  br label %1822

958:                                              ; preds = %940
  store float 0.000000e+00, ptr %79, align 4, !tbaa !11
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %959 = load ptr, ptr %32, align 8, !tbaa !5
  %960 = load i64, ptr %959, align 8, !tbaa !9
  store i64 %960, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %49, align 8, !tbaa !9
  br label %961

961:                                              ; preds = %976, %958
  %962 = load i64, ptr %49, align 8, !tbaa !9
  %963 = load i64, ptr %44, align 8, !tbaa !9
  %964 = icmp sle i64 %962, %963
  br i1 %964, label %965, label %979

965:                                              ; preds = %961
  %966 = load ptr, ptr %31, align 8, !tbaa !5
  %967 = load ptr, ptr %32, align 8, !tbaa !5
  %968 = load i64, ptr %967, align 8, !tbaa !9
  %969 = add nsw i64 %968, 1
  %970 = load i64, ptr %49, align 8, !tbaa !9
  %971 = shl i64 %970, 2
  %972 = add nsw i64 %969, %971
  %973 = sub nsw i64 %972, 5
  %974 = getelementptr inbounds [16 x float], ptr %69, i64 0, i64 %973
  %975 = call i32 @slassq_(ptr noundef %966, ptr noundef %974, ptr noundef @c__1, ptr noundef %79, ptr noundef %67)
  br label %976

976:                                              ; preds = %965
  %977 = load i64, ptr %49, align 8, !tbaa !9
  %978 = add nsw i64 %977, 1
  store i64 %978, ptr %49, align 8, !tbaa !9
  br label %961, !llvm.loop !17

979:                                              ; preds = %961
  %980 = load float, ptr %79, align 4, !tbaa !11
  %981 = fpext float %980 to double
  %982 = load float, ptr %67, align 4, !tbaa !11
  %983 = fpext float %982 to double
  %984 = call double @sqrt(double noundef %983) #5
  %985 = fmul double %981, %984
  %986 = fptrunc double %985 to float
  store float %986, ptr %72, align 4, !tbaa !11
  %987 = load float, ptr %72, align 4, !tbaa !11
  %988 = load float, ptr %73, align 4, !tbaa !11
  %989 = fcmp ole float %987, %988
  br i1 %989, label %990, label %1007

990:                                              ; preds = %979
  %991 = load float, ptr %72, align 4, !tbaa !11
  %992 = load float, ptr %80, align 4, !tbaa !11
  %993 = fcmp ole float %991, %992
  br i1 %993, label %994, label %1007

994:                                              ; preds = %990
  %995 = getelementptr inbounds [16 x float], ptr %69, i64 0, i64 0
  %996 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %997 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %995, ptr noundef @c__4, ptr noundef %996, ptr noundef @c__4)
  %998 = getelementptr inbounds [16 x float], ptr %70, i64 0, i64 0
  %999 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %1000 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %998, ptr noundef @c__4, ptr noundef %999, ptr noundef @c__4)
  %1001 = getelementptr inbounds [16 x float], ptr %76, i64 0, i64 0
  %1002 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1003 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %1001, ptr noundef @c__4, ptr noundef %1002, ptr noundef @c__4)
  %1004 = getelementptr inbounds [16 x float], ptr %74, i64 0, i64 0
  %1005 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1006 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %1004, ptr noundef @c__4, ptr noundef %1005, ptr noundef @c__4)
  br label %1013

1007:                                             ; preds = %990, %979
  %1008 = load float, ptr %73, align 4, !tbaa !11
  %1009 = load float, ptr %80, align 4, !tbaa !11
  %1010 = fcmp oge float %1008, %1009
  br i1 %1010, label %1011, label %1012

1011:                                             ; preds = %1007
  br label %1822

1012:                                             ; preds = %1007
  br label %1013

1013:                                             ; preds = %1012, %994
  %1014 = load i64, ptr %50, align 8, !tbaa !9
  %1015 = sub nsw i64 %1014, 1
  store i64 %1015, ptr %44, align 8, !tbaa !9
  %1016 = load i64, ptr %50, align 8, !tbaa !9
  %1017 = sub nsw i64 %1016, 1
  store i64 %1017, ptr %45, align 8, !tbaa !9
  %1018 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 1
  %1019 = call i32 @slaset_(ptr noundef @.str.8, ptr noundef %44, ptr noundef %45, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %1018, ptr noundef @c__4)
  %1020 = load ptr, ptr %22, align 8, !tbaa !5
  %1021 = load ptr, ptr %30, align 8, !tbaa !5
  %1022 = load i64, ptr %1021, align 8, !tbaa !9
  %1023 = load ptr, ptr %30, align 8, !tbaa !5
  %1024 = load i64, ptr %1023, align 8, !tbaa !9
  %1025 = load i64, ptr %36, align 8, !tbaa !9
  %1026 = mul nsw i64 %1024, %1025
  %1027 = add nsw i64 %1022, %1026
  %1028 = getelementptr inbounds float, ptr %1020, i64 %1027
  %1029 = load ptr, ptr %23, align 8, !tbaa !5
  %1030 = load ptr, ptr %33, align 8, !tbaa !5
  %1031 = load i64, ptr %50, align 8, !tbaa !9
  %1032 = load i64, ptr %50, align 8, !tbaa !9
  %1033 = mul nsw i64 %1031, %1032
  %1034 = add nsw i64 %1033, 1
  %1035 = getelementptr inbounds float, ptr %1030, i64 %1034
  %1036 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %1028, ptr noundef %1029, ptr noundef %1035, ptr noundef %50)
  %1037 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1038 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %1039 = load ptr, ptr %33, align 8, !tbaa !5
  %1040 = getelementptr inbounds float, ptr %1039, i64 1
  %1041 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1037, ptr noundef @c__4, ptr noundef %1038, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1040, ptr noundef %50)
  %1042 = load ptr, ptr %33, align 8, !tbaa !5
  %1043 = getelementptr inbounds float, ptr %1042, i64 1
  %1044 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1045 = load ptr, ptr %33, align 8, !tbaa !5
  %1046 = load i64, ptr %50, align 8, !tbaa !9
  %1047 = load i64, ptr %50, align 8, !tbaa !9
  %1048 = mul nsw i64 %1046, %1047
  %1049 = add nsw i64 %1048, 1
  %1050 = getelementptr inbounds float, ptr %1045, i64 %1049
  %1051 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b48, ptr noundef %1043, ptr noundef %50, ptr noundef %1044, ptr noundef @c__4, ptr noundef @c_b42, ptr noundef %1050, ptr noundef %50)
  store float 0.000000e+00, ptr %79, align 4, !tbaa !11
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %1052 = load i64, ptr %50, align 8, !tbaa !9
  %1053 = load i64, ptr %50, align 8, !tbaa !9
  %1054 = mul nsw i64 %1052, %1053
  store i64 %1054, ptr %44, align 8, !tbaa !9
  %1055 = load ptr, ptr %33, align 8, !tbaa !5
  %1056 = load i64, ptr %50, align 8, !tbaa !9
  %1057 = load i64, ptr %50, align 8, !tbaa !9
  %1058 = mul nsw i64 %1056, %1057
  %1059 = add nsw i64 %1058, 1
  %1060 = getelementptr inbounds float, ptr %1055, i64 %1059
  %1061 = call i32 @slassq_(ptr noundef %44, ptr noundef %1060, ptr noundef @c__1, ptr noundef %79, ptr noundef %67)
  %1062 = load ptr, ptr %24, align 8, !tbaa !5
  %1063 = load ptr, ptr %30, align 8, !tbaa !5
  %1064 = load i64, ptr %1063, align 8, !tbaa !9
  %1065 = load ptr, ptr %30, align 8, !tbaa !5
  %1066 = load i64, ptr %1065, align 8, !tbaa !9
  %1067 = load i64, ptr %38, align 8, !tbaa !9
  %1068 = mul nsw i64 %1066, %1067
  %1069 = add nsw i64 %1064, %1068
  %1070 = getelementptr inbounds float, ptr %1062, i64 %1069
  %1071 = load ptr, ptr %25, align 8, !tbaa !5
  %1072 = load ptr, ptr %33, align 8, !tbaa !5
  %1073 = load i64, ptr %50, align 8, !tbaa !9
  %1074 = load i64, ptr %50, align 8, !tbaa !9
  %1075 = mul nsw i64 %1073, %1074
  %1076 = add nsw i64 %1075, 1
  %1077 = getelementptr inbounds float, ptr %1072, i64 %1076
  %1078 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %1070, ptr noundef %1071, ptr noundef %1077, ptr noundef %50)
  %1079 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1080 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %1081 = load ptr, ptr %33, align 8, !tbaa !5
  %1082 = getelementptr inbounds float, ptr %1081, i64 1
  %1083 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1079, ptr noundef @c__4, ptr noundef %1080, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1082, ptr noundef %50)
  %1084 = load ptr, ptr %33, align 8, !tbaa !5
  %1085 = getelementptr inbounds float, ptr %1084, i64 1
  %1086 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1087 = load ptr, ptr %33, align 8, !tbaa !5
  %1088 = load i64, ptr %50, align 8, !tbaa !9
  %1089 = load i64, ptr %50, align 8, !tbaa !9
  %1090 = mul nsw i64 %1088, %1089
  %1091 = add nsw i64 %1090, 1
  %1092 = getelementptr inbounds float, ptr %1087, i64 %1091
  %1093 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b48, ptr noundef %1085, ptr noundef %50, ptr noundef %1086, ptr noundef @c__4, ptr noundef @c_b42, ptr noundef %1092, ptr noundef %50)
  %1094 = load i64, ptr %50, align 8, !tbaa !9
  %1095 = load i64, ptr %50, align 8, !tbaa !9
  %1096 = mul nsw i64 %1094, %1095
  store i64 %1096, ptr %44, align 8, !tbaa !9
  %1097 = load ptr, ptr %33, align 8, !tbaa !5
  %1098 = load i64, ptr %50, align 8, !tbaa !9
  %1099 = load i64, ptr %50, align 8, !tbaa !9
  %1100 = mul nsw i64 %1098, %1099
  %1101 = add nsw i64 %1100, 1
  %1102 = getelementptr inbounds float, ptr %1097, i64 %1101
  %1103 = call i32 @slassq_(ptr noundef %44, ptr noundef %1102, ptr noundef @c__1, ptr noundef %79, ptr noundef %67)
  %1104 = load float, ptr %79, align 4, !tbaa !11
  %1105 = fpext float %1104 to double
  %1106 = load float, ptr %67, align 4, !tbaa !11
  %1107 = fpext float %1106 to double
  %1108 = call double @sqrt(double noundef %1107) #5
  %1109 = fmul double %1105, %1108
  %1110 = fptrunc double %1109 to float
  store float %1110, ptr %60, align 4, !tbaa !11
  %1111 = load float, ptr %60, align 4, !tbaa !11
  %1112 = load float, ptr %80, align 4, !tbaa !11
  %1113 = fcmp ole float %1111, %1112
  %1114 = zext i1 %1113 to i32
  %1115 = sext i32 %1114 to i64
  store i64 %1115, ptr %82, align 8, !tbaa !9
  %1116 = load i64, ptr %82, align 8, !tbaa !9
  %1117 = icmp ne i64 %1116, 0
  br i1 %1117, label %1119, label %1118

1118:                                             ; preds = %1013
  br label %1822

1119:                                             ; preds = %1013
  %1120 = load ptr, ptr %31, align 8, !tbaa !5
  %1121 = load ptr, ptr %32, align 8, !tbaa !5
  %1122 = load ptr, ptr %32, align 8, !tbaa !5
  %1123 = load i64, ptr %1122, align 8, !tbaa !9
  %1124 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 %1123
  %1125 = call i32 @slaset_(ptr noundef @.str, ptr noundef %1120, ptr noundef %1121, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %1124, ptr noundef @c__4)
  %1126 = getelementptr inbounds [16 x float], ptr %51, i64 0, i64 0
  %1127 = load ptr, ptr %22, align 8, !tbaa !5
  %1128 = load ptr, ptr %30, align 8, !tbaa !5
  %1129 = load i64, ptr %1128, align 8, !tbaa !9
  %1130 = load ptr, ptr %30, align 8, !tbaa !5
  %1131 = load i64, ptr %1130, align 8, !tbaa !9
  %1132 = load i64, ptr %36, align 8, !tbaa !9
  %1133 = mul nsw i64 %1131, %1132
  %1134 = add nsw i64 %1129, %1133
  %1135 = getelementptr inbounds float, ptr %1127, i64 %1134
  %1136 = load ptr, ptr %23, align 8, !tbaa !5
  %1137 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %1126, ptr noundef @c__4, ptr noundef %1135, ptr noundef %1136)
  %1138 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %1139 = load ptr, ptr %24, align 8, !tbaa !5
  %1140 = load ptr, ptr %30, align 8, !tbaa !5
  %1141 = load i64, ptr %1140, align 8, !tbaa !9
  %1142 = load ptr, ptr %30, align 8, !tbaa !5
  %1143 = load i64, ptr %1142, align 8, !tbaa !9
  %1144 = load i64, ptr %38, align 8, !tbaa !9
  %1145 = mul nsw i64 %1143, %1144
  %1146 = add nsw i64 %1141, %1145
  %1147 = getelementptr inbounds float, ptr %1139, i64 %1146
  %1148 = load ptr, ptr %25, align 8, !tbaa !5
  %1149 = call i32 @slacpy_(ptr noundef @.str.5, ptr noundef %50, ptr noundef %50, ptr noundef %1138, ptr noundef @c__4, ptr noundef %1147, ptr noundef %1148)
  %1150 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %1151 = call i32 @slaset_(ptr noundef @.str, ptr noundef @c__4, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %1150, ptr noundef @c__4)
  %1152 = load i64, ptr %50, align 8, !tbaa !9
  %1153 = load i64, ptr %50, align 8, !tbaa !9
  %1154 = mul nsw i64 %1152, %1153
  store i64 %1154, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %49, align 8, !tbaa !9
  br label %1155

1155:                                             ; preds = %1163, %1119
  %1156 = load i64, ptr %49, align 8, !tbaa !9
  %1157 = load i64, ptr %44, align 8, !tbaa !9
  %1158 = icmp sle i64 %1156, %1157
  br i1 %1158, label %1159, label %1166

1159:                                             ; preds = %1155
  %1160 = load ptr, ptr %33, align 8, !tbaa !5
  %1161 = load i64, ptr %49, align 8, !tbaa !9
  %1162 = getelementptr inbounds float, ptr %1160, i64 %1161
  store float 0.000000e+00, ptr %1162, align 4, !tbaa !11
  br label %1163

1163:                                             ; preds = %1159
  %1164 = load i64, ptr %49, align 8, !tbaa !9
  %1165 = add nsw i64 %1164, 1
  store i64 %1165, ptr %49, align 8, !tbaa !9
  br label %1155, !llvm.loop !18

1166:                                             ; preds = %1155
  %1167 = load ptr, ptr %33, align 8, !tbaa !5
  %1168 = getelementptr inbounds float, ptr %1167, i64 1
  store float 1.000000e+00, ptr %1168, align 4, !tbaa !11
  %1169 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  store float 1.000000e+00, ptr %1169, align 16, !tbaa !11
  %1170 = load ptr, ptr %34, align 8, !tbaa !5
  %1171 = load i64, ptr %1170, align 8, !tbaa !9
  %1172 = load i64, ptr %50, align 8, !tbaa !9
  %1173 = load i64, ptr %50, align 8, !tbaa !9
  %1174 = mul nsw i64 %1172, %1173
  %1175 = sub nsw i64 %1171, %1174
  %1176 = sub nsw i64 %1175, 2
  store i64 %1176, ptr %65, align 8, !tbaa !9
  %1177 = load ptr, ptr %32, align 8, !tbaa !5
  %1178 = load i64, ptr %1177, align 8, !tbaa !9
  %1179 = icmp sgt i64 %1178, 1
  br i1 %1179, label %1180, label %1240

1180:                                             ; preds = %1166
  %1181 = load ptr, ptr %22, align 8, !tbaa !5
  %1182 = load ptr, ptr %30, align 8, !tbaa !5
  %1183 = load i64, ptr %1182, align 8, !tbaa !9
  %1184 = load ptr, ptr %30, align 8, !tbaa !5
  %1185 = load i64, ptr %1184, align 8, !tbaa !9
  %1186 = load i64, ptr %36, align 8, !tbaa !9
  %1187 = mul nsw i64 %1185, %1186
  %1188 = add nsw i64 %1183, %1187
  %1189 = getelementptr inbounds float, ptr %1181, i64 %1188
  %1190 = load ptr, ptr %23, align 8, !tbaa !5
  %1191 = load ptr, ptr %24, align 8, !tbaa !5
  %1192 = load ptr, ptr %30, align 8, !tbaa !5
  %1193 = load i64, ptr %1192, align 8, !tbaa !9
  %1194 = load ptr, ptr %30, align 8, !tbaa !5
  %1195 = load i64, ptr %1194, align 8, !tbaa !9
  %1196 = load i64, ptr %38, align 8, !tbaa !9
  %1197 = mul nsw i64 %1195, %1196
  %1198 = add nsw i64 %1193, %1197
  %1199 = getelementptr inbounds float, ptr %1191, i64 %1198
  %1200 = load ptr, ptr %25, align 8, !tbaa !5
  %1201 = getelementptr inbounds [2 x float], ptr %55, i64 0, i64 0
  %1202 = getelementptr inbounds [2 x float], ptr %54, i64 0, i64 0
  %1203 = getelementptr inbounds [2 x float], ptr %53, i64 0, i64 0
  %1204 = load ptr, ptr %33, align 8, !tbaa !5
  %1205 = getelementptr inbounds float, ptr %1204, i64 1
  %1206 = load ptr, ptr %33, align 8, !tbaa !5
  %1207 = getelementptr inbounds float, ptr %1206, i64 2
  %1208 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %1209 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 1
  %1210 = call i32 @slagv2_(ptr noundef %1189, ptr noundef %1190, ptr noundef %1199, ptr noundef %1200, ptr noundef %1201, ptr noundef %1202, ptr noundef %1203, ptr noundef %1205, ptr noundef %1207, ptr noundef %1208, ptr noundef %1209)
  %1211 = load ptr, ptr %33, align 8, !tbaa !5
  %1212 = getelementptr inbounds float, ptr %1211, i64 2
  %1213 = load float, ptr %1212, align 4, !tbaa !11
  %1214 = fneg float %1213
  %1215 = load ptr, ptr %33, align 8, !tbaa !5
  %1216 = load i64, ptr %50, align 8, !tbaa !9
  %1217 = add nsw i64 %1216, 1
  %1218 = getelementptr inbounds float, ptr %1215, i64 %1217
  store float %1214, ptr %1218, align 4, !tbaa !11
  %1219 = load ptr, ptr %33, align 8, !tbaa !5
  %1220 = getelementptr inbounds float, ptr %1219, i64 1
  %1221 = load float, ptr %1220, align 4, !tbaa !11
  %1222 = load ptr, ptr %33, align 8, !tbaa !5
  %1223 = load i64, ptr %50, align 8, !tbaa !9
  %1224 = add nsw i64 %1223, 2
  %1225 = getelementptr inbounds float, ptr %1222, i64 %1224
  store float %1221, ptr %1225, align 4, !tbaa !11
  %1226 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %1227 = load float, ptr %1226, align 16, !tbaa !11
  %1228 = load ptr, ptr %32, align 8, !tbaa !5
  %1229 = load i64, ptr %1228, align 8, !tbaa !9
  %1230 = load ptr, ptr %32, align 8, !tbaa !5
  %1231 = load i64, ptr %1230, align 8, !tbaa !9
  %1232 = shl i64 %1231, 2
  %1233 = add nsw i64 %1229, %1232
  %1234 = sub nsw i64 %1233, 5
  %1235 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1234
  store float %1227, ptr %1235, align 4, !tbaa !11
  %1236 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 1
  %1237 = load float, ptr %1236, align 4, !tbaa !11
  %1238 = fneg float %1237
  %1239 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 4
  store float %1238, ptr %1239, align 16, !tbaa !11
  br label %1240

1240:                                             ; preds = %1180, %1166
  %1241 = load ptr, ptr %33, align 8, !tbaa !5
  %1242 = load i64, ptr %50, align 8, !tbaa !9
  %1243 = load i64, ptr %50, align 8, !tbaa !9
  %1244 = mul nsw i64 %1242, %1243
  %1245 = getelementptr inbounds float, ptr %1241, i64 %1244
  store float 1.000000e+00, ptr %1245, align 4, !tbaa !11
  %1246 = load i64, ptr %50, align 8, !tbaa !9
  %1247 = load i64, ptr %50, align 8, !tbaa !9
  %1248 = shl i64 %1247, 2
  %1249 = add nsw i64 %1246, %1248
  %1250 = sub nsw i64 %1249, 5
  %1251 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1250
  store float 1.000000e+00, ptr %1251, align 4, !tbaa !11
  %1252 = load ptr, ptr %31, align 8, !tbaa !5
  %1253 = load i64, ptr %1252, align 8, !tbaa !9
  %1254 = icmp sgt i64 %1253, 1
  br i1 %1254, label %1255, label %1401

1255:                                             ; preds = %1240
  %1256 = load ptr, ptr %22, align 8, !tbaa !5
  %1257 = load ptr, ptr %30, align 8, !tbaa !5
  %1258 = load i64, ptr %1257, align 8, !tbaa !9
  %1259 = load ptr, ptr %32, align 8, !tbaa !5
  %1260 = load i64, ptr %1259, align 8, !tbaa !9
  %1261 = add nsw i64 %1258, %1260
  %1262 = load ptr, ptr %30, align 8, !tbaa !5
  %1263 = load i64, ptr %1262, align 8, !tbaa !9
  %1264 = load ptr, ptr %32, align 8, !tbaa !5
  %1265 = load i64, ptr %1264, align 8, !tbaa !9
  %1266 = add nsw i64 %1263, %1265
  %1267 = load i64, ptr %36, align 8, !tbaa !9
  %1268 = mul nsw i64 %1266, %1267
  %1269 = add nsw i64 %1261, %1268
  %1270 = getelementptr inbounds float, ptr %1256, i64 %1269
  %1271 = load ptr, ptr %23, align 8, !tbaa !5
  %1272 = load ptr, ptr %24, align 8, !tbaa !5
  %1273 = load ptr, ptr %30, align 8, !tbaa !5
  %1274 = load i64, ptr %1273, align 8, !tbaa !9
  %1275 = load ptr, ptr %32, align 8, !tbaa !5
  %1276 = load i64, ptr %1275, align 8, !tbaa !9
  %1277 = add nsw i64 %1274, %1276
  %1278 = load ptr, ptr %30, align 8, !tbaa !5
  %1279 = load i64, ptr %1278, align 8, !tbaa !9
  %1280 = load ptr, ptr %32, align 8, !tbaa !5
  %1281 = load i64, ptr %1280, align 8, !tbaa !9
  %1282 = add nsw i64 %1279, %1281
  %1283 = load i64, ptr %38, align 8, !tbaa !9
  %1284 = mul nsw i64 %1282, %1283
  %1285 = add nsw i64 %1277, %1284
  %1286 = getelementptr inbounds float, ptr %1272, i64 %1285
  %1287 = load ptr, ptr %25, align 8, !tbaa !5
  %1288 = getelementptr inbounds [4 x float], ptr %68, i64 0, i64 0
  %1289 = getelementptr inbounds [4 x float], ptr %66, i64 0, i64 0
  %1290 = load ptr, ptr %33, align 8, !tbaa !5
  %1291 = load i64, ptr %50, align 8, !tbaa !9
  %1292 = load i64, ptr %50, align 8, !tbaa !9
  %1293 = mul nsw i64 %1291, %1292
  %1294 = add nsw i64 %1293, 1
  %1295 = getelementptr inbounds float, ptr %1290, i64 %1294
  %1296 = load ptr, ptr %33, align 8, !tbaa !5
  %1297 = load ptr, ptr %32, align 8, !tbaa !5
  %1298 = load i64, ptr %1297, align 8, !tbaa !9
  %1299 = load i64, ptr %50, align 8, !tbaa !9
  %1300 = mul nsw i64 %1298, %1299
  %1301 = load ptr, ptr %32, align 8, !tbaa !5
  %1302 = load i64, ptr %1301, align 8, !tbaa !9
  %1303 = add nsw i64 %1300, %1302
  %1304 = add nsw i64 %1303, 1
  %1305 = getelementptr inbounds float, ptr %1296, i64 %1304
  %1306 = load ptr, ptr %33, align 8, !tbaa !5
  %1307 = load ptr, ptr %32, align 8, !tbaa !5
  %1308 = load i64, ptr %1307, align 8, !tbaa !9
  %1309 = load i64, ptr %50, align 8, !tbaa !9
  %1310 = mul nsw i64 %1308, %1309
  %1311 = load ptr, ptr %32, align 8, !tbaa !5
  %1312 = load i64, ptr %1311, align 8, !tbaa !9
  %1313 = add nsw i64 %1310, %1312
  %1314 = add nsw i64 %1313, 2
  %1315 = getelementptr inbounds float, ptr %1306, i64 %1314
  %1316 = load ptr, ptr %32, align 8, !tbaa !5
  %1317 = load i64, ptr %1316, align 8, !tbaa !9
  %1318 = add nsw i64 %1317, 1
  %1319 = load ptr, ptr %32, align 8, !tbaa !5
  %1320 = load i64, ptr %1319, align 8, !tbaa !9
  %1321 = add nsw i64 %1320, 1
  %1322 = shl i64 %1321, 2
  %1323 = add nsw i64 %1318, %1322
  %1324 = sub nsw i64 %1323, 5
  %1325 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1324
  %1326 = load i64, ptr %50, align 8, !tbaa !9
  %1327 = load i64, ptr %50, align 8, !tbaa !9
  %1328 = sub nsw i64 %1327, 1
  %1329 = shl i64 %1328, 2
  %1330 = add nsw i64 %1326, %1329
  %1331 = sub nsw i64 %1330, 5
  %1332 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1331
  %1333 = call i32 @slagv2_(ptr noundef %1270, ptr noundef %1271, ptr noundef %1286, ptr noundef %1287, ptr noundef %1288, ptr noundef %1289, ptr noundef %1295, ptr noundef %1305, ptr noundef %1315, ptr noundef %1325, ptr noundef %1332)
  %1334 = load ptr, ptr %33, align 8, !tbaa !5
  %1335 = load ptr, ptr %32, align 8, !tbaa !5
  %1336 = load i64, ptr %1335, align 8, !tbaa !9
  %1337 = load i64, ptr %50, align 8, !tbaa !9
  %1338 = mul nsw i64 %1336, %1337
  %1339 = load ptr, ptr %32, align 8, !tbaa !5
  %1340 = load i64, ptr %1339, align 8, !tbaa !9
  %1341 = add nsw i64 %1338, %1340
  %1342 = add nsw i64 %1341, 1
  %1343 = getelementptr inbounds float, ptr %1334, i64 %1342
  %1344 = load float, ptr %1343, align 4, !tbaa !11
  %1345 = load ptr, ptr %33, align 8, !tbaa !5
  %1346 = load i64, ptr %50, align 8, !tbaa !9
  %1347 = load i64, ptr %50, align 8, !tbaa !9
  %1348 = mul nsw i64 %1346, %1347
  %1349 = getelementptr inbounds float, ptr %1345, i64 %1348
  store float %1344, ptr %1349, align 4, !tbaa !11
  %1350 = load ptr, ptr %33, align 8, !tbaa !5
  %1351 = load ptr, ptr %32, align 8, !tbaa !5
  %1352 = load i64, ptr %1351, align 8, !tbaa !9
  %1353 = load i64, ptr %50, align 8, !tbaa !9
  %1354 = mul nsw i64 %1352, %1353
  %1355 = load ptr, ptr %32, align 8, !tbaa !5
  %1356 = load i64, ptr %1355, align 8, !tbaa !9
  %1357 = add nsw i64 %1354, %1356
  %1358 = add nsw i64 %1357, 2
  %1359 = getelementptr inbounds float, ptr %1350, i64 %1358
  %1360 = load float, ptr %1359, align 4, !tbaa !11
  %1361 = fneg float %1360
  %1362 = load ptr, ptr %33, align 8, !tbaa !5
  %1363 = load i64, ptr %50, align 8, !tbaa !9
  %1364 = load i64, ptr %50, align 8, !tbaa !9
  %1365 = mul nsw i64 %1363, %1364
  %1366 = sub nsw i64 %1365, 1
  %1367 = getelementptr inbounds float, ptr %1362, i64 %1366
  store float %1361, ptr %1367, align 4, !tbaa !11
  %1368 = load ptr, ptr %32, align 8, !tbaa !5
  %1369 = load i64, ptr %1368, align 8, !tbaa !9
  %1370 = add nsw i64 %1369, 1
  %1371 = load ptr, ptr %32, align 8, !tbaa !5
  %1372 = load i64, ptr %1371, align 8, !tbaa !9
  %1373 = add nsw i64 %1372, 1
  %1374 = shl i64 %1373, 2
  %1375 = add nsw i64 %1370, %1374
  %1376 = sub nsw i64 %1375, 5
  %1377 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1376
  %1378 = load float, ptr %1377, align 4, !tbaa !11
  %1379 = load i64, ptr %50, align 8, !tbaa !9
  %1380 = load i64, ptr %50, align 8, !tbaa !9
  %1381 = shl i64 %1380, 2
  %1382 = add nsw i64 %1379, %1381
  %1383 = sub nsw i64 %1382, 5
  %1384 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1383
  store float %1378, ptr %1384, align 4, !tbaa !11
  %1385 = load i64, ptr %50, align 8, !tbaa !9
  %1386 = load i64, ptr %50, align 8, !tbaa !9
  %1387 = sub nsw i64 %1386, 1
  %1388 = shl i64 %1387, 2
  %1389 = add nsw i64 %1385, %1388
  %1390 = sub nsw i64 %1389, 5
  %1391 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1390
  %1392 = load float, ptr %1391, align 4, !tbaa !11
  %1393 = fneg float %1392
  %1394 = load i64, ptr %50, align 8, !tbaa !9
  %1395 = sub nsw i64 %1394, 1
  %1396 = load i64, ptr %50, align 8, !tbaa !9
  %1397 = shl i64 %1396, 2
  %1398 = add nsw i64 %1395, %1397
  %1399 = sub nsw i64 %1398, 5
  %1400 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1399
  store float %1393, ptr %1400, align 4, !tbaa !11
  br label %1401

1401:                                             ; preds = %1255, %1240
  %1402 = load ptr, ptr %32, align 8, !tbaa !5
  %1403 = load ptr, ptr %31, align 8, !tbaa !5
  %1404 = load ptr, ptr %32, align 8, !tbaa !5
  %1405 = load ptr, ptr %33, align 8, !tbaa !5
  %1406 = getelementptr inbounds float, ptr %1405, i64 1
  %1407 = load ptr, ptr %22, align 8, !tbaa !5
  %1408 = load ptr, ptr %30, align 8, !tbaa !5
  %1409 = load i64, ptr %1408, align 8, !tbaa !9
  %1410 = load ptr, ptr %30, align 8, !tbaa !5
  %1411 = load i64, ptr %1410, align 8, !tbaa !9
  %1412 = load ptr, ptr %32, align 8, !tbaa !5
  %1413 = load i64, ptr %1412, align 8, !tbaa !9
  %1414 = add nsw i64 %1411, %1413
  %1415 = load i64, ptr %36, align 8, !tbaa !9
  %1416 = mul nsw i64 %1414, %1415
  %1417 = add nsw i64 %1409, %1416
  %1418 = getelementptr inbounds float, ptr %1407, i64 %1417
  %1419 = load ptr, ptr %23, align 8, !tbaa !5
  %1420 = load ptr, ptr %33, align 8, !tbaa !5
  %1421 = load i64, ptr %50, align 8, !tbaa !9
  %1422 = load i64, ptr %50, align 8, !tbaa !9
  %1423 = mul nsw i64 %1421, %1422
  %1424 = add nsw i64 %1423, 1
  %1425 = getelementptr inbounds float, ptr %1420, i64 %1424
  %1426 = load ptr, ptr %32, align 8, !tbaa !5
  %1427 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %1402, ptr noundef %1403, ptr noundef %1404, ptr noundef @c_b42, ptr noundef %1406, ptr noundef %50, ptr noundef %1418, ptr noundef %1419, ptr noundef @c_b5, ptr noundef %1425, ptr noundef %1426)
  %1428 = load ptr, ptr %32, align 8, !tbaa !5
  %1429 = load ptr, ptr %31, align 8, !tbaa !5
  %1430 = load ptr, ptr %33, align 8, !tbaa !5
  %1431 = load i64, ptr %50, align 8, !tbaa !9
  %1432 = load i64, ptr %50, align 8, !tbaa !9
  %1433 = mul nsw i64 %1431, %1432
  %1434 = add nsw i64 %1433, 1
  %1435 = getelementptr inbounds float, ptr %1430, i64 %1434
  %1436 = load ptr, ptr %32, align 8, !tbaa !5
  %1437 = load ptr, ptr %22, align 8, !tbaa !5
  %1438 = load ptr, ptr %30, align 8, !tbaa !5
  %1439 = load i64, ptr %1438, align 8, !tbaa !9
  %1440 = load ptr, ptr %30, align 8, !tbaa !5
  %1441 = load i64, ptr %1440, align 8, !tbaa !9
  %1442 = load ptr, ptr %32, align 8, !tbaa !5
  %1443 = load i64, ptr %1442, align 8, !tbaa !9
  %1444 = add nsw i64 %1441, %1443
  %1445 = load i64, ptr %36, align 8, !tbaa !9
  %1446 = mul nsw i64 %1444, %1445
  %1447 = add nsw i64 %1439, %1446
  %1448 = getelementptr inbounds float, ptr %1437, i64 %1447
  %1449 = load ptr, ptr %23, align 8, !tbaa !5
  %1450 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %1428, ptr noundef %1429, ptr noundef %1435, ptr noundef %1436, ptr noundef %1448, ptr noundef %1449)
  %1451 = load ptr, ptr %32, align 8, !tbaa !5
  %1452 = load ptr, ptr %31, align 8, !tbaa !5
  %1453 = load ptr, ptr %32, align 8, !tbaa !5
  %1454 = load ptr, ptr %33, align 8, !tbaa !5
  %1455 = getelementptr inbounds float, ptr %1454, i64 1
  %1456 = load ptr, ptr %24, align 8, !tbaa !5
  %1457 = load ptr, ptr %30, align 8, !tbaa !5
  %1458 = load i64, ptr %1457, align 8, !tbaa !9
  %1459 = load ptr, ptr %30, align 8, !tbaa !5
  %1460 = load i64, ptr %1459, align 8, !tbaa !9
  %1461 = load ptr, ptr %32, align 8, !tbaa !5
  %1462 = load i64, ptr %1461, align 8, !tbaa !9
  %1463 = add nsw i64 %1460, %1462
  %1464 = load i64, ptr %38, align 8, !tbaa !9
  %1465 = mul nsw i64 %1463, %1464
  %1466 = add nsw i64 %1458, %1465
  %1467 = getelementptr inbounds float, ptr %1456, i64 %1466
  %1468 = load ptr, ptr %25, align 8, !tbaa !5
  %1469 = load ptr, ptr %33, align 8, !tbaa !5
  %1470 = load i64, ptr %50, align 8, !tbaa !9
  %1471 = load i64, ptr %50, align 8, !tbaa !9
  %1472 = mul nsw i64 %1470, %1471
  %1473 = add nsw i64 %1472, 1
  %1474 = getelementptr inbounds float, ptr %1469, i64 %1473
  %1475 = load ptr, ptr %32, align 8, !tbaa !5
  %1476 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %1451, ptr noundef %1452, ptr noundef %1453, ptr noundef @c_b42, ptr noundef %1455, ptr noundef %50, ptr noundef %1467, ptr noundef %1468, ptr noundef @c_b5, ptr noundef %1474, ptr noundef %1475)
  %1477 = load ptr, ptr %32, align 8, !tbaa !5
  %1478 = load ptr, ptr %31, align 8, !tbaa !5
  %1479 = load ptr, ptr %33, align 8, !tbaa !5
  %1480 = load i64, ptr %50, align 8, !tbaa !9
  %1481 = load i64, ptr %50, align 8, !tbaa !9
  %1482 = mul nsw i64 %1480, %1481
  %1483 = add nsw i64 %1482, 1
  %1484 = getelementptr inbounds float, ptr %1479, i64 %1483
  %1485 = load ptr, ptr %32, align 8, !tbaa !5
  %1486 = load ptr, ptr %24, align 8, !tbaa !5
  %1487 = load ptr, ptr %30, align 8, !tbaa !5
  %1488 = load i64, ptr %1487, align 8, !tbaa !9
  %1489 = load ptr, ptr %30, align 8, !tbaa !5
  %1490 = load i64, ptr %1489, align 8, !tbaa !9
  %1491 = load ptr, ptr %32, align 8, !tbaa !5
  %1492 = load i64, ptr %1491, align 8, !tbaa !9
  %1493 = add nsw i64 %1490, %1492
  %1494 = load i64, ptr %38, align 8, !tbaa !9
  %1495 = mul nsw i64 %1493, %1494
  %1496 = add nsw i64 %1488, %1495
  %1497 = getelementptr inbounds float, ptr %1486, i64 %1496
  %1498 = load ptr, ptr %25, align 8, !tbaa !5
  %1499 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %1477, ptr noundef %1478, ptr noundef %1484, ptr noundef %1485, ptr noundef %1497, ptr noundef %1498)
  %1500 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1501 = load ptr, ptr %33, align 8, !tbaa !5
  %1502 = getelementptr inbounds float, ptr %1501, i64 1
  %1503 = load ptr, ptr %33, align 8, !tbaa !5
  %1504 = load i64, ptr %50, align 8, !tbaa !9
  %1505 = load i64, ptr %50, align 8, !tbaa !9
  %1506 = mul nsw i64 %1504, %1505
  %1507 = add nsw i64 %1506, 1
  %1508 = getelementptr inbounds float, ptr %1503, i64 %1507
  %1509 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1500, ptr noundef @c__4, ptr noundef %1502, ptr noundef %50, ptr noundef @c_b5, ptr noundef %1508, ptr noundef %50)
  %1510 = load ptr, ptr %33, align 8, !tbaa !5
  %1511 = load i64, ptr %50, align 8, !tbaa !9
  %1512 = load i64, ptr %50, align 8, !tbaa !9
  %1513 = mul nsw i64 %1511, %1512
  %1514 = add nsw i64 %1513, 1
  %1515 = getelementptr inbounds float, ptr %1510, i64 %1514
  %1516 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1517 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %1515, ptr noundef %50, ptr noundef %1516, ptr noundef @c__4)
  %1518 = load ptr, ptr %32, align 8, !tbaa !5
  %1519 = load ptr, ptr %31, align 8, !tbaa !5
  %1520 = load ptr, ptr %31, align 8, !tbaa !5
  %1521 = load ptr, ptr %22, align 8, !tbaa !5
  %1522 = load ptr, ptr %30, align 8, !tbaa !5
  %1523 = load i64, ptr %1522, align 8, !tbaa !9
  %1524 = load ptr, ptr %30, align 8, !tbaa !5
  %1525 = load i64, ptr %1524, align 8, !tbaa !9
  %1526 = load ptr, ptr %32, align 8, !tbaa !5
  %1527 = load i64, ptr %1526, align 8, !tbaa !9
  %1528 = add nsw i64 %1525, %1527
  %1529 = load i64, ptr %36, align 8, !tbaa !9
  %1530 = mul nsw i64 %1528, %1529
  %1531 = add nsw i64 %1523, %1530
  %1532 = getelementptr inbounds float, ptr %1521, i64 %1531
  %1533 = load ptr, ptr %23, align 8, !tbaa !5
  %1534 = load ptr, ptr %32, align 8, !tbaa !5
  %1535 = load i64, ptr %1534, align 8, !tbaa !9
  %1536 = add nsw i64 %1535, 1
  %1537 = load ptr, ptr %32, align 8, !tbaa !5
  %1538 = load i64, ptr %1537, align 8, !tbaa !9
  %1539 = add nsw i64 %1538, 1
  %1540 = shl i64 %1539, 2
  %1541 = add nsw i64 %1536, %1540
  %1542 = sub nsw i64 %1541, 5
  %1543 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1542
  %1544 = load ptr, ptr %33, align 8, !tbaa !5
  %1545 = getelementptr inbounds float, ptr %1544, i64 1
  %1546 = load ptr, ptr %32, align 8, !tbaa !5
  %1547 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %1518, ptr noundef %1519, ptr noundef %1520, ptr noundef @c_b42, ptr noundef %1532, ptr noundef %1533, ptr noundef %1543, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1545, ptr noundef %1546)
  %1548 = load ptr, ptr %32, align 8, !tbaa !5
  %1549 = load ptr, ptr %31, align 8, !tbaa !5
  %1550 = load ptr, ptr %33, align 8, !tbaa !5
  %1551 = getelementptr inbounds float, ptr %1550, i64 1
  %1552 = load ptr, ptr %32, align 8, !tbaa !5
  %1553 = load ptr, ptr %22, align 8, !tbaa !5
  %1554 = load ptr, ptr %30, align 8, !tbaa !5
  %1555 = load i64, ptr %1554, align 8, !tbaa !9
  %1556 = load ptr, ptr %30, align 8, !tbaa !5
  %1557 = load i64, ptr %1556, align 8, !tbaa !9
  %1558 = load ptr, ptr %32, align 8, !tbaa !5
  %1559 = load i64, ptr %1558, align 8, !tbaa !9
  %1560 = add nsw i64 %1557, %1559
  %1561 = load i64, ptr %36, align 8, !tbaa !9
  %1562 = mul nsw i64 %1560, %1561
  %1563 = add nsw i64 %1555, %1562
  %1564 = getelementptr inbounds float, ptr %1553, i64 %1563
  %1565 = load ptr, ptr %23, align 8, !tbaa !5
  %1566 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %1548, ptr noundef %1549, ptr noundef %1551, ptr noundef %1552, ptr noundef %1564, ptr noundef %1565)
  %1567 = load ptr, ptr %32, align 8, !tbaa !5
  %1568 = load ptr, ptr %31, align 8, !tbaa !5
  %1569 = load ptr, ptr %31, align 8, !tbaa !5
  %1570 = load ptr, ptr %24, align 8, !tbaa !5
  %1571 = load ptr, ptr %30, align 8, !tbaa !5
  %1572 = load i64, ptr %1571, align 8, !tbaa !9
  %1573 = load ptr, ptr %30, align 8, !tbaa !5
  %1574 = load i64, ptr %1573, align 8, !tbaa !9
  %1575 = load ptr, ptr %32, align 8, !tbaa !5
  %1576 = load i64, ptr %1575, align 8, !tbaa !9
  %1577 = add nsw i64 %1574, %1576
  %1578 = load i64, ptr %38, align 8, !tbaa !9
  %1579 = mul nsw i64 %1577, %1578
  %1580 = add nsw i64 %1572, %1579
  %1581 = getelementptr inbounds float, ptr %1570, i64 %1580
  %1582 = load ptr, ptr %25, align 8, !tbaa !5
  %1583 = load ptr, ptr %32, align 8, !tbaa !5
  %1584 = load i64, ptr %1583, align 8, !tbaa !9
  %1585 = add nsw i64 %1584, 1
  %1586 = load ptr, ptr %32, align 8, !tbaa !5
  %1587 = load i64, ptr %1586, align 8, !tbaa !9
  %1588 = add nsw i64 %1587, 1
  %1589 = shl i64 %1588, 2
  %1590 = add nsw i64 %1585, %1589
  %1591 = sub nsw i64 %1590, 5
  %1592 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %1591
  %1593 = load ptr, ptr %33, align 8, !tbaa !5
  %1594 = getelementptr inbounds float, ptr %1593, i64 1
  %1595 = load ptr, ptr %32, align 8, !tbaa !5
  %1596 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %1567, ptr noundef %1568, ptr noundef %1569, ptr noundef @c_b42, ptr noundef %1581, ptr noundef %1582, ptr noundef %1592, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1594, ptr noundef %1595)
  %1597 = load ptr, ptr %32, align 8, !tbaa !5
  %1598 = load ptr, ptr %31, align 8, !tbaa !5
  %1599 = load ptr, ptr %33, align 8, !tbaa !5
  %1600 = getelementptr inbounds float, ptr %1599, i64 1
  %1601 = load ptr, ptr %32, align 8, !tbaa !5
  %1602 = load ptr, ptr %24, align 8, !tbaa !5
  %1603 = load ptr, ptr %30, align 8, !tbaa !5
  %1604 = load i64, ptr %1603, align 8, !tbaa !9
  %1605 = load ptr, ptr %30, align 8, !tbaa !5
  %1606 = load i64, ptr %1605, align 8, !tbaa !9
  %1607 = load ptr, ptr %32, align 8, !tbaa !5
  %1608 = load i64, ptr %1607, align 8, !tbaa !9
  %1609 = add nsw i64 %1606, %1608
  %1610 = load i64, ptr %38, align 8, !tbaa !9
  %1611 = mul nsw i64 %1609, %1610
  %1612 = add nsw i64 %1604, %1611
  %1613 = getelementptr inbounds float, ptr %1602, i64 %1612
  %1614 = load ptr, ptr %25, align 8, !tbaa !5
  %1615 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %1597, ptr noundef %1598, ptr noundef %1600, ptr noundef %1601, ptr noundef %1613, ptr noundef %1614)
  %1616 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1617 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %1618 = load ptr, ptr %33, align 8, !tbaa !5
  %1619 = getelementptr inbounds float, ptr %1618, i64 1
  %1620 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %50, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1616, ptr noundef @c__4, ptr noundef %1617, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1619, ptr noundef %50)
  %1621 = load ptr, ptr %33, align 8, !tbaa !5
  %1622 = getelementptr inbounds float, ptr %1621, i64 1
  %1623 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1624 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %50, ptr noundef %1622, ptr noundef %50, ptr noundef %1623, ptr noundef @c__4)
  %1625 = load ptr, ptr %19, align 8, !tbaa !5
  %1626 = load i64, ptr %1625, align 8, !tbaa !9
  %1627 = icmp ne i64 %1626, 0
  br i1 %1627, label %1628, label %1656

1628:                                             ; preds = %1401
  %1629 = load ptr, ptr %21, align 8, !tbaa !5
  %1630 = load ptr, ptr %26, align 8, !tbaa !5
  %1631 = load ptr, ptr %30, align 8, !tbaa !5
  %1632 = load i64, ptr %1631, align 8, !tbaa !9
  %1633 = load i64, ptr %40, align 8, !tbaa !9
  %1634 = mul nsw i64 %1632, %1633
  %1635 = add nsw i64 %1634, 1
  %1636 = getelementptr inbounds float, ptr %1630, i64 %1635
  %1637 = load ptr, ptr %27, align 8, !tbaa !5
  %1638 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1639 = load ptr, ptr %33, align 8, !tbaa !5
  %1640 = getelementptr inbounds float, ptr %1639, i64 1
  %1641 = load ptr, ptr %21, align 8, !tbaa !5
  %1642 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %1629, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1636, ptr noundef %1637, ptr noundef %1638, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1640, ptr noundef %1641)
  %1643 = load ptr, ptr %21, align 8, !tbaa !5
  %1644 = load ptr, ptr %33, align 8, !tbaa !5
  %1645 = getelementptr inbounds float, ptr %1644, i64 1
  %1646 = load ptr, ptr %21, align 8, !tbaa !5
  %1647 = load ptr, ptr %26, align 8, !tbaa !5
  %1648 = load ptr, ptr %30, align 8, !tbaa !5
  %1649 = load i64, ptr %1648, align 8, !tbaa !9
  %1650 = load i64, ptr %40, align 8, !tbaa !9
  %1651 = mul nsw i64 %1649, %1650
  %1652 = add nsw i64 %1651, 1
  %1653 = getelementptr inbounds float, ptr %1647, i64 %1652
  %1654 = load ptr, ptr %27, align 8, !tbaa !5
  %1655 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %1643, ptr noundef %50, ptr noundef %1645, ptr noundef %1646, ptr noundef %1653, ptr noundef %1654)
  br label %1656

1656:                                             ; preds = %1628, %1401
  %1657 = load ptr, ptr %20, align 8, !tbaa !5
  %1658 = load i64, ptr %1657, align 8, !tbaa !9
  %1659 = icmp ne i64 %1658, 0
  br i1 %1659, label %1660, label %1688

1660:                                             ; preds = %1656
  %1661 = load ptr, ptr %21, align 8, !tbaa !5
  %1662 = load ptr, ptr %28, align 8, !tbaa !5
  %1663 = load ptr, ptr %30, align 8, !tbaa !5
  %1664 = load i64, ptr %1663, align 8, !tbaa !9
  %1665 = load i64, ptr %42, align 8, !tbaa !9
  %1666 = mul nsw i64 %1664, %1665
  %1667 = add nsw i64 %1666, 1
  %1668 = getelementptr inbounds float, ptr %1662, i64 %1667
  %1669 = load ptr, ptr %29, align 8, !tbaa !5
  %1670 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1671 = load ptr, ptr %33, align 8, !tbaa !5
  %1672 = getelementptr inbounds float, ptr %1671, i64 1
  %1673 = load ptr, ptr %21, align 8, !tbaa !5
  %1674 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %1661, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1668, ptr noundef %1669, ptr noundef %1670, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1672, ptr noundef %1673)
  %1675 = load ptr, ptr %21, align 8, !tbaa !5
  %1676 = load ptr, ptr %33, align 8, !tbaa !5
  %1677 = getelementptr inbounds float, ptr %1676, i64 1
  %1678 = load ptr, ptr %21, align 8, !tbaa !5
  %1679 = load ptr, ptr %28, align 8, !tbaa !5
  %1680 = load ptr, ptr %30, align 8, !tbaa !5
  %1681 = load i64, ptr %1680, align 8, !tbaa !9
  %1682 = load i64, ptr %42, align 8, !tbaa !9
  %1683 = mul nsw i64 %1681, %1682
  %1684 = add nsw i64 %1683, 1
  %1685 = getelementptr inbounds float, ptr %1679, i64 %1684
  %1686 = load ptr, ptr %29, align 8, !tbaa !5
  %1687 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %1675, ptr noundef %50, ptr noundef %1677, ptr noundef %1678, ptr noundef %1685, ptr noundef %1686)
  br label %1688

1688:                                             ; preds = %1660, %1656
  %1689 = load ptr, ptr %30, align 8, !tbaa !5
  %1690 = load i64, ptr %1689, align 8, !tbaa !9
  %1691 = load i64, ptr %50, align 8, !tbaa !9
  %1692 = add nsw i64 %1690, %1691
  store i64 %1692, ptr %49, align 8, !tbaa !9
  %1693 = load i64, ptr %49, align 8, !tbaa !9
  %1694 = load ptr, ptr %21, align 8, !tbaa !5
  %1695 = load i64, ptr %1694, align 8, !tbaa !9
  %1696 = icmp sle i64 %1693, %1695
  br i1 %1696, label %1697, label %1768

1697:                                             ; preds = %1688
  %1698 = load ptr, ptr %21, align 8, !tbaa !5
  %1699 = load i64, ptr %1698, align 8, !tbaa !9
  %1700 = load i64, ptr %49, align 8, !tbaa !9
  %1701 = sub nsw i64 %1699, %1700
  %1702 = add nsw i64 %1701, 1
  store i64 %1702, ptr %44, align 8, !tbaa !9
  %1703 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1704 = load ptr, ptr %22, align 8, !tbaa !5
  %1705 = load ptr, ptr %30, align 8, !tbaa !5
  %1706 = load i64, ptr %1705, align 8, !tbaa !9
  %1707 = load i64, ptr %49, align 8, !tbaa !9
  %1708 = load i64, ptr %36, align 8, !tbaa !9
  %1709 = mul nsw i64 %1707, %1708
  %1710 = add nsw i64 %1706, %1709
  %1711 = getelementptr inbounds float, ptr %1704, i64 %1710
  %1712 = load ptr, ptr %23, align 8, !tbaa !5
  %1713 = load ptr, ptr %33, align 8, !tbaa !5
  %1714 = getelementptr inbounds float, ptr %1713, i64 1
  %1715 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %50, ptr noundef %44, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1703, ptr noundef @c__4, ptr noundef %1711, ptr noundef %1712, ptr noundef @c_b5, ptr noundef %1714, ptr noundef %50)
  %1716 = load ptr, ptr %21, align 8, !tbaa !5
  %1717 = load i64, ptr %1716, align 8, !tbaa !9
  %1718 = load i64, ptr %49, align 8, !tbaa !9
  %1719 = sub nsw i64 %1717, %1718
  %1720 = add nsw i64 %1719, 1
  store i64 %1720, ptr %44, align 8, !tbaa !9
  %1721 = load ptr, ptr %33, align 8, !tbaa !5
  %1722 = getelementptr inbounds float, ptr %1721, i64 1
  %1723 = load ptr, ptr %22, align 8, !tbaa !5
  %1724 = load ptr, ptr %30, align 8, !tbaa !5
  %1725 = load i64, ptr %1724, align 8, !tbaa !9
  %1726 = load i64, ptr %49, align 8, !tbaa !9
  %1727 = load i64, ptr %36, align 8, !tbaa !9
  %1728 = mul nsw i64 %1726, %1727
  %1729 = add nsw i64 %1725, %1728
  %1730 = getelementptr inbounds float, ptr %1723, i64 %1729
  %1731 = load ptr, ptr %23, align 8, !tbaa !5
  %1732 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %44, ptr noundef %1722, ptr noundef %50, ptr noundef %1730, ptr noundef %1731)
  %1733 = load ptr, ptr %21, align 8, !tbaa !5
  %1734 = load i64, ptr %1733, align 8, !tbaa !9
  %1735 = load i64, ptr %49, align 8, !tbaa !9
  %1736 = sub nsw i64 %1734, %1735
  %1737 = add nsw i64 %1736, 1
  store i64 %1737, ptr %44, align 8, !tbaa !9
  %1738 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1739 = load ptr, ptr %24, align 8, !tbaa !5
  %1740 = load ptr, ptr %30, align 8, !tbaa !5
  %1741 = load i64, ptr %1740, align 8, !tbaa !9
  %1742 = load i64, ptr %49, align 8, !tbaa !9
  %1743 = load i64, ptr %38, align 8, !tbaa !9
  %1744 = mul nsw i64 %1742, %1743
  %1745 = add nsw i64 %1741, %1744
  %1746 = getelementptr inbounds float, ptr %1739, i64 %1745
  %1747 = load ptr, ptr %25, align 8, !tbaa !5
  %1748 = load ptr, ptr %33, align 8, !tbaa !5
  %1749 = getelementptr inbounds float, ptr %1748, i64 1
  %1750 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %50, ptr noundef %44, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1738, ptr noundef @c__4, ptr noundef %1746, ptr noundef %1747, ptr noundef @c_b5, ptr noundef %1749, ptr noundef %50)
  %1751 = load ptr, ptr %21, align 8, !tbaa !5
  %1752 = load i64, ptr %1751, align 8, !tbaa !9
  %1753 = load i64, ptr %49, align 8, !tbaa !9
  %1754 = sub nsw i64 %1752, %1753
  %1755 = add nsw i64 %1754, 1
  store i64 %1755, ptr %44, align 8, !tbaa !9
  %1756 = load ptr, ptr %33, align 8, !tbaa !5
  %1757 = getelementptr inbounds float, ptr %1756, i64 1
  %1758 = load ptr, ptr %24, align 8, !tbaa !5
  %1759 = load ptr, ptr %30, align 8, !tbaa !5
  %1760 = load i64, ptr %1759, align 8, !tbaa !9
  %1761 = load i64, ptr %49, align 8, !tbaa !9
  %1762 = load i64, ptr %38, align 8, !tbaa !9
  %1763 = mul nsw i64 %1761, %1762
  %1764 = add nsw i64 %1760, %1763
  %1765 = getelementptr inbounds float, ptr %1758, i64 %1764
  %1766 = load ptr, ptr %25, align 8, !tbaa !5
  %1767 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %50, ptr noundef %44, ptr noundef %1757, ptr noundef %50, ptr noundef %1765, ptr noundef %1766)
  br label %1768

1768:                                             ; preds = %1697, %1688
  %1769 = load ptr, ptr %30, align 8, !tbaa !5
  %1770 = load i64, ptr %1769, align 8, !tbaa !9
  %1771 = sub nsw i64 %1770, 1
  store i64 %1771, ptr %49, align 8, !tbaa !9
  %1772 = load i64, ptr %49, align 8, !tbaa !9
  %1773 = icmp sgt i64 %1772, 0
  br i1 %1773, label %1774, label %1821

1774:                                             ; preds = %1768
  %1775 = load ptr, ptr %22, align 8, !tbaa !5
  %1776 = load ptr, ptr %30, align 8, !tbaa !5
  %1777 = load i64, ptr %1776, align 8, !tbaa !9
  %1778 = load i64, ptr %36, align 8, !tbaa !9
  %1779 = mul nsw i64 %1777, %1778
  %1780 = add nsw i64 %1779, 1
  %1781 = getelementptr inbounds float, ptr %1775, i64 %1780
  %1782 = load ptr, ptr %23, align 8, !tbaa !5
  %1783 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1784 = load ptr, ptr %33, align 8, !tbaa !5
  %1785 = getelementptr inbounds float, ptr %1784, i64 1
  %1786 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %49, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1781, ptr noundef %1782, ptr noundef %1783, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1785, ptr noundef %49)
  %1787 = load ptr, ptr %33, align 8, !tbaa !5
  %1788 = getelementptr inbounds float, ptr %1787, i64 1
  %1789 = load ptr, ptr %22, align 8, !tbaa !5
  %1790 = load ptr, ptr %30, align 8, !tbaa !5
  %1791 = load i64, ptr %1790, align 8, !tbaa !9
  %1792 = load i64, ptr %36, align 8, !tbaa !9
  %1793 = mul nsw i64 %1791, %1792
  %1794 = add nsw i64 %1793, 1
  %1795 = getelementptr inbounds float, ptr %1789, i64 %1794
  %1796 = load ptr, ptr %23, align 8, !tbaa !5
  %1797 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %49, ptr noundef %50, ptr noundef %1788, ptr noundef %49, ptr noundef %1795, ptr noundef %1796)
  %1798 = load ptr, ptr %24, align 8, !tbaa !5
  %1799 = load ptr, ptr %30, align 8, !tbaa !5
  %1800 = load i64, ptr %1799, align 8, !tbaa !9
  %1801 = load i64, ptr %38, align 8, !tbaa !9
  %1802 = mul nsw i64 %1800, %1801
  %1803 = add nsw i64 %1802, 1
  %1804 = getelementptr inbounds float, ptr %1798, i64 %1803
  %1805 = load ptr, ptr %25, align 8, !tbaa !5
  %1806 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1807 = load ptr, ptr %33, align 8, !tbaa !5
  %1808 = getelementptr inbounds float, ptr %1807, i64 1
  %1809 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %49, ptr noundef %50, ptr noundef %50, ptr noundef @c_b42, ptr noundef %1804, ptr noundef %1805, ptr noundef %1806, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1808, ptr noundef %49)
  %1810 = load ptr, ptr %33, align 8, !tbaa !5
  %1811 = getelementptr inbounds float, ptr %1810, i64 1
  %1812 = load ptr, ptr %24, align 8, !tbaa !5
  %1813 = load ptr, ptr %30, align 8, !tbaa !5
  %1814 = load i64, ptr %1813, align 8, !tbaa !9
  %1815 = load i64, ptr %38, align 8, !tbaa !9
  %1816 = mul nsw i64 %1814, %1815
  %1817 = add nsw i64 %1816, 1
  %1818 = getelementptr inbounds float, ptr %1812, i64 %1817
  %1819 = load ptr, ptr %25, align 8, !tbaa !5
  %1820 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %49, ptr noundef %50, ptr noundef %1811, ptr noundef %49, ptr noundef %1818, ptr noundef %1819)
  br label %1821

1821:                                             ; preds = %1774, %1768
  store i32 0, ptr %18, align 4
  store i32 1, ptr %83, align 4
  br label %1824

1822:                                             ; preds = %1118, %1011, %957, %939, %902, %892, %882, %841, %831, %798, %788, %514, %414
  %1823 = load ptr, ptr %35, align 8, !tbaa !5
  store i64 1, ptr %1823, align 8, !tbaa !9
  store i32 0, ptr %18, align 4
  store i32 1, ptr %83, align 4
  br label %1824

1824:                                             ; preds = %1822, %1821, %685, %190, %146, %130
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  %1825 = load i32, ptr %18, align 4
  ret i32 %1825
}

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare i32 @slagv2_(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 = { 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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}


; 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 [5 x i8], align 1
@c__4 = external hidden global i64, align 8
@c_b5 = external hidden global float, align 4
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b42 = external hidden global float, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b48 = external hidden global float, align 4
@c__0 = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [6 x i8], align 1

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

59:                                               ; preds = %17
  %60 = load i64, ptr %12, align 8, !tbaa !5
  %61 = icmp slt i64 %60, 1
  br i1 %61, label %736, label %62

62:                                               ; preds = %59
  %63 = load i64, ptr %13, align 8, !tbaa !5
  %64 = icmp slt i64 %63, 1
  %65 = icmp ugt i64 %60, %57
  %or.cond498 = or i1 %65, %64
  br i1 %or.cond498, label %736, label %66

66:                                               ; preds = %62
  %67 = load i64, ptr %11, align 8, !tbaa !5
  %68 = add nsw i64 %67, %60
  %69 = icmp sgt i64 %68, %57
  br i1 %69, label %736, label %70

70:                                               ; preds = %66
  %71 = add nuw nsw i64 %63, %60
  store i64 %71, ptr %23, align 8, !tbaa !5
  %72 = mul nuw nsw i64 %71, %57
  store i64 %72, ptr %18, align 8, !tbaa !5
  %73 = shl nuw i64 %71, 1
  %74 = mul i64 %73, %71
  store i64 %74, ptr %19, align 8, !tbaa !5
  %75 = load i64, ptr %15, align 8, !tbaa !5
  %76 = tail call i64 @llvm.smax.i64(i64 %72, i64 %74)
  %77 = icmp slt i64 %75, %76
  br i1 %77, label %78, label %83

78:                                               ; preds = %70
  store i64 -16, ptr %16, align 8, !tbaa !5
  %79 = load i64, ptr %2, align 8, !tbaa !5
  %80 = mul nsw i64 %79, %71
  %81 = tail call i64 @llvm.smax.i64(i64 %80, i64 %74)
  %82 = sitofp i64 %81 to float
  store float %82, ptr %14, align 4, !tbaa !9
  br label %736

83:                                               ; preds = %70
  %84 = call i32 @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull @c__4, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef nonnull %29, ptr noundef nonnull @c__4) #7
  %85 = call i32 @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull @c__4, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef nonnull %30, ptr noundef nonnull @c__4) #7
  %86 = load i64, ptr %11, align 8, !tbaa !5
  %87 = add i64 %44, 1
  %88 = mul i64 %86, %87
  %89 = getelementptr inbounds float, ptr %46, i64 %88
  %90 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef %89, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull @c__4) #7
  %91 = load i64, ptr %11, align 8, !tbaa !5
  %92 = add i64 %47, 1
  %93 = mul i64 %91, %92
  %94 = getelementptr inbounds float, ptr %49, i64 %93
  %95 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef %94, ptr noundef nonnull %6, ptr noundef nonnull %25, ptr noundef nonnull @c__4) #7
  %96 = call double @slamch_(ptr noundef nonnull @.str.1) #7
  %97 = fptrunc double %96 to float
  %98 = call double @slamch_(ptr noundef nonnull @.str.2) #7
  %99 = fpext float %97 to double
  %100 = fdiv double %98, %99
  %101 = fptrunc double %100 to float
  store float 0.000000e+00, ptr %43, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %102 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %23) #7
  %103 = load i64, ptr %23, align 8, !tbaa !5
  %104 = mul nsw i64 %103, %103
  store i64 %104, ptr %18, align 8, !tbaa !5
  %105 = call i32 @slassq_(ptr noundef nonnull %18, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %34) #7
  %106 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %23) #7
  %107 = load i64, ptr %23, align 8, !tbaa !5
  %108 = mul nsw i64 %107, %107
  store i64 %108, ptr %18, align 8, !tbaa !5
  %109 = call i32 @slassq_(ptr noundef nonnull %18, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %34) #7
  %110 = load float, ptr %43, align 4, !tbaa !9
  %111 = fpext float %110 to double
  %112 = load float, ptr %34, align 4, !tbaa !9
  %113 = fpext float %112 to double
  %114 = call double @sqrt(double noundef %113) #7
  %115 = fmul double %114, %111
  %116 = fptrunc double %115 to float
  %117 = fmul float %97, 1.000000e+01
  %118 = fmul float %117, %116
  %119 = fcmp oge float %118, %101
  %120 = select i1 %119, float %118, float %101
  %121 = load i64, ptr %23, align 8, !tbaa !5
  %122 = icmp eq i64 %121, 2
  br i1 %122, label %123, label %287

123:                                              ; preds = %83
  %124 = getelementptr inbounds i8, ptr %24, i64 20
  %125 = load float, ptr %124, align 4
  %126 = load float, ptr %25, align 16, !tbaa !9
  %127 = getelementptr inbounds i8, ptr %25, i64 20
  %128 = load float, ptr %127, align 4
  %129 = load float, ptr %24, align 16, !tbaa !9
  %130 = fneg float %128
  %131 = fmul float %129, %130
  %132 = call float @llvm.fmuladd.f32(float %125, float %126, float %131)
  store float %132, ptr %20, align 4, !tbaa !9
  %133 = getelementptr inbounds i8, ptr %25, i64 16
  %134 = load float, ptr %133, align 16, !tbaa !9
  %135 = getelementptr inbounds i8, ptr %24, i64 16
  %136 = load float, ptr %135, align 16, !tbaa !9
  %137 = fmul float %136, %130
  %138 = call float @llvm.fmuladd.f32(float %125, float %134, float %137)
  store float %138, ptr %21, align 4, !tbaa !9
  %139 = fcmp oge float %128, 0.000000e+00
  %140 = select i1 %139, float %128, float %130
  %141 = fcmp oge float %125, 0.000000e+00
  %142 = fneg float %125
  %143 = select i1 %141, float %125, float %142
  %144 = getelementptr inbounds i8, ptr %30, i64 16
  %145 = call i32 @slartg_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %144, ptr noundef nonnull %30, ptr noundef nonnull %31) #7
  %146 = load float, ptr %144, align 16, !tbaa !9
  %147 = fneg float %146
  %148 = getelementptr inbounds i8, ptr %30, i64 4
  store float %147, ptr %148, align 4, !tbaa !9
  %149 = load float, ptr %30, align 16, !tbaa !9
  %150 = getelementptr inbounds i8, ptr %30, i64 20
  store float %149, ptr %150, align 4, !tbaa !9
  %151 = call i32 @f2c_srot(ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %135, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %148) #7
  %152 = call i32 @f2c_srot(ptr noundef nonnull @c__2, ptr noundef nonnull %25, ptr noundef nonnull @c__1, ptr noundef nonnull %133, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %148) #7
  %153 = fcmp ult float %143, %140
  %154 = getelementptr inbounds i8, ptr %29, i64 4
  %. = select i1 %153, ptr %25, ptr %24
  %..sroa.sel.v = select i1 %153, ptr %25, ptr %24
  %..sroa.sel = getelementptr inbounds i8, ptr %..sroa.sel.v, i64 4
  %155 = call i32 @slartg_(ptr noundef nonnull %., ptr noundef nonnull %..sroa.sel, ptr noundef nonnull %29, ptr noundef nonnull %154, ptr noundef nonnull %31) #7
  %156 = getelementptr inbounds i8, ptr %24, i64 4
  %157 = getelementptr inbounds i8, ptr %29, i64 4
  %158 = call i32 @f2c_srot(ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef nonnull %156, ptr noundef nonnull @c__4, ptr noundef nonnull %29, ptr noundef nonnull %157) #7
  %159 = getelementptr inbounds i8, ptr %25, i64 4
  %160 = call i32 @f2c_srot(ptr noundef nonnull @c__2, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull %159, ptr noundef nonnull @c__4, ptr noundef nonnull %29, ptr noundef nonnull %157) #7
  %161 = load float, ptr %29, align 16, !tbaa !9
  %162 = getelementptr inbounds i8, ptr %29, i64 20
  store float %161, ptr %162, align 4, !tbaa !9
  %163 = load float, ptr %157, align 4, !tbaa !9
  %164 = fneg float %163
  %165 = getelementptr inbounds i8, ptr %29, i64 16
  store float %164, ptr %165, align 16, !tbaa !9
  %166 = load float, ptr %156, align 4
  %167 = fcmp oge float %166, 0.000000e+00
  %168 = fneg float %166
  %169 = select i1 %167, float %166, float %168
  %170 = load float, ptr %159, align 4
  %171 = fcmp oge float %170, 0.000000e+00
  %172 = fneg float %170
  %173 = select i1 %171, float %170, float %172
  %174 = fadd float %169, %173
  %175 = fcmp ugt float %174, %120
  br i1 %175, label %735, label %176

176:                                              ; preds = %123
  %177 = load i64, ptr %11, align 8, !tbaa !5
  %178 = mul i64 %177, %87
  %179 = getelementptr inbounds float, ptr %46, i64 %178
  %180 = load i64, ptr %23, align 8, !tbaa !5
  %181 = mul nsw i64 %180, %180
  %182 = getelementptr float, ptr %14, i64 %181
  %183 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef %179, ptr noundef nonnull %4, ptr noundef %182, ptr noundef nonnull %23) #7
  %184 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %23) #7
  %185 = load i64, ptr %23, align 8, !tbaa !5
  %186 = mul nsw i64 %185, %185
  %187 = getelementptr float, ptr %14, i64 %186
  %188 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b48, ptr noundef %14, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b42, ptr noundef %187, ptr noundef nonnull %23) #7
  store float 0.000000e+00, ptr %43, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %189 = load i64, ptr %23, align 8, !tbaa !5
  %190 = mul nsw i64 %189, %189
  store i64 %190, ptr %18, align 8, !tbaa !5
  %191 = getelementptr float, ptr %14, i64 %190
  %192 = call i32 @slassq_(ptr noundef nonnull %18, ptr noundef %191, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %34) #7
  %193 = load i64, ptr %11, align 8, !tbaa !5
  %194 = mul i64 %193, %92
  %195 = getelementptr inbounds float, ptr %49, i64 %194
  %196 = load i64, ptr %23, align 8, !tbaa !5
  %197 = mul nsw i64 %196, %196
  %198 = getelementptr float, ptr %14, i64 %197
  %199 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef %195, ptr noundef nonnull %6, ptr noundef %198, ptr noundef nonnull %23) #7
  %200 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %23) #7
  %201 = load i64, ptr %23, align 8, !tbaa !5
  %202 = mul nsw i64 %201, %201
  %203 = getelementptr float, ptr %14, i64 %202
  %204 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b48, ptr noundef %14, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b42, ptr noundef %203, ptr noundef nonnull %23) #7
  %205 = load i64, ptr %23, align 8, !tbaa !5
  %206 = mul nsw i64 %205, %205
  store i64 %206, ptr %18, align 8, !tbaa !5
  %207 = getelementptr float, ptr %14, i64 %206
  %208 = call i32 @slassq_(ptr noundef nonnull %18, ptr noundef %207, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %34) #7
  %209 = load float, ptr %43, align 4, !tbaa !9
  %210 = fpext float %209 to double
  %211 = load float, ptr %34, align 4, !tbaa !9
  %212 = fpext float %211 to double
  %213 = call double @sqrt(double noundef %212) #7
  %214 = fmul double %213, %210
  %215 = fptrunc double %214 to float
  %216 = fcmp ult float %120, %215
  br i1 %216, label %735, label %217

217:                                              ; preds = %176
  %218 = load i64, ptr %11, align 8, !tbaa !5
  %219 = add nsw i64 %218, 1
  store i64 %219, ptr %18, align 8, !tbaa !5
  %220 = mul nsw i64 %218, %44
  %221 = getelementptr float, ptr %46, i64 %220
  %222 = getelementptr i8, ptr %221, i64 4
  %223 = mul nsw i64 %219, %44
  %224 = getelementptr float, ptr %46, i64 %223
  %225 = getelementptr i8, ptr %224, i64 4
  %226 = call i32 @f2c_srot(ptr noundef nonnull %18, ptr noundef %222, ptr noundef nonnull @c__1, ptr noundef %225, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %148) #7
  %227 = load i64, ptr %11, align 8, !tbaa !5
  %228 = add nsw i64 %227, 1
  store i64 %228, ptr %18, align 8, !tbaa !5
  %229 = mul nsw i64 %227, %47
  %230 = getelementptr float, ptr %49, i64 %229
  %231 = getelementptr i8, ptr %230, i64 4
  %232 = mul nsw i64 %228, %47
  %233 = getelementptr float, ptr %49, i64 %232
  %234 = getelementptr i8, ptr %233, i64 4
  %235 = call i32 @f2c_srot(ptr noundef nonnull %18, ptr noundef %231, ptr noundef nonnull @c__1, ptr noundef %234, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %148) #7
  %236 = load i64, ptr %2, align 8, !tbaa !5
  %237 = load i64, ptr %11, align 8, !tbaa !5
  %238 = add i64 %236, 1
  %239 = sub i64 %238, %237
  store i64 %239, ptr %18, align 8, !tbaa !5
  %240 = mul nsw i64 %237, %44
  %241 = getelementptr float, ptr %46, i64 %237
  %242 = getelementptr float, ptr %241, i64 %240
  %243 = getelementptr i8, ptr %241, i64 4
  %244 = getelementptr float, ptr %243, i64 %240
  %245 = call i32 @f2c_srot(ptr noundef nonnull %18, ptr noundef %242, ptr noundef nonnull %4, ptr noundef %244, ptr noundef nonnull %4, ptr noundef nonnull %29, ptr noundef nonnull %157) #7
  %246 = load i64, ptr %2, align 8, !tbaa !5
  %247 = load i64, ptr %11, align 8, !tbaa !5
  %248 = add i64 %246, 1
  %249 = sub i64 %248, %247
  store i64 %249, ptr %18, align 8, !tbaa !5
  %250 = mul nsw i64 %247, %47
  %251 = getelementptr float, ptr %49, i64 %247
  %252 = getelementptr float, ptr %251, i64 %250
  %253 = getelementptr i8, ptr %251, i64 4
  %254 = getelementptr float, ptr %253, i64 %250
  %255 = call i32 @f2c_srot(ptr noundef nonnull %18, ptr noundef %252, ptr noundef nonnull %6, ptr noundef %254, ptr noundef nonnull %6, ptr noundef nonnull %29, ptr noundef nonnull %157) #7
  %256 = load i64, ptr %11, align 8, !tbaa !5
  %257 = mul nsw i64 %256, %44
  %258 = getelementptr float, ptr %46, i64 %256
  %259 = getelementptr i8, ptr %258, i64 4
  %260 = getelementptr float, ptr %259, i64 %257
  store float 0.000000e+00, ptr %260, align 4, !tbaa !9
  %261 = mul nsw i64 %256, %47
  %262 = getelementptr float, ptr %49, i64 %256
  %263 = getelementptr i8, ptr %262, i64 4
  %264 = getelementptr float, ptr %263, i64 %261
  store float 0.000000e+00, ptr %264, align 4, !tbaa !9
  %265 = load i64, ptr %1, align 8, !tbaa !5
  %.not495 = icmp eq i64 %265, 0
  br i1 %.not495, label %275, label %266

266:                                              ; preds = %217
  %267 = mul nsw i64 %256, %53
  %268 = getelementptr float, ptr %55, i64 %267
  %269 = getelementptr i8, ptr %268, i64 4
  %270 = add nsw i64 %256, 1
  %271 = mul nsw i64 %270, %53
  %272 = getelementptr float, ptr %55, i64 %271
  %273 = getelementptr i8, ptr %272, i64 4
  %274 = call i32 @f2c_srot(ptr noundef nonnull %2, ptr noundef %269, ptr noundef nonnull @c__1, ptr noundef %273, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull %148) #7
  br label %275

275:                                              ; preds = %266, %217
  %276 = load i64, ptr %0, align 8, !tbaa !5
  %.not496 = icmp eq i64 %276, 0
  br i1 %.not496, label %736, label %277

277:                                              ; preds = %275
  %278 = load i64, ptr %11, align 8, !tbaa !5
  %279 = mul nsw i64 %278, %50
  %280 = getelementptr float, ptr %52, i64 %279
  %281 = getelementptr i8, ptr %280, i64 4
  %282 = add nsw i64 %278, 1
  %283 = mul nsw i64 %282, %50
  %284 = getelementptr float, ptr %52, i64 %283
  %285 = getelementptr i8, ptr %284, i64 4
  %286 = call i32 @f2c_srot(ptr noundef nonnull %2, ptr noundef %281, ptr noundef nonnull @c__1, ptr noundef %285, ptr noundef nonnull @c__1, ptr noundef nonnull %29, ptr noundef nonnull %157) #7
  br label %736

287:                                              ; preds = %83
  %288 = load i64, ptr %12, align 8, !tbaa !5
  %289 = shl i64 %288, 2
  %290 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %289
  %291 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %290, ptr noundef nonnull @c__4, ptr noundef nonnull %29, ptr noundef nonnull @c__4) #7
  %292 = load i64, ptr %12, align 8, !tbaa !5
  %293 = shl i64 %292, 2
  %294 = getelementptr inbounds [16 x float], ptr %24, i64 0, i64 %293
  %295 = load i64, ptr %13, align 8, !tbaa !5
  %296 = add i64 %295, %293
  %297 = getelementptr inbounds [16 x float], ptr %30, i64 0, i64 %296
  %298 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %294, ptr noundef nonnull @c__4, ptr noundef nonnull %297, ptr noundef nonnull @c__4) #7
  %299 = load i64, ptr %12, align 8, !tbaa !5
  %300 = add nsw i64 %299, 1
  %301 = shl i64 %300, 2
  %302 = mul i64 %300, 5
  %303 = add nsw i64 %302, -5
  %304 = getelementptr inbounds [16 x float], ptr %24, i64 0, i64 %303
  %305 = load i64, ptr %13, align 8, !tbaa !5
  %306 = add i64 %305, -4
  %307 = add i64 %306, %301
  %308 = getelementptr inbounds [16 x float], ptr %30, i64 0, i64 %307
  %309 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %303
  %310 = call i32 @stgsy2_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef nonnull %304, ptr noundef nonnull @c__4, ptr noundef nonnull %308, ptr noundef nonnull @c__4, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull %309, ptr noundef nonnull @c__4, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %38, ptr noundef nonnull %34, ptr noundef nonnull %43, ptr noundef nonnull %42, ptr noundef nonnull %32, ptr noundef nonnull %40) #7
  %311 = load i64, ptr %13, align 8, !tbaa !5
  store i64 %311, ptr %18, align 8, !tbaa !5
  %.not505 = icmp slt i64 %311, 1
  br i1 %.not505, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %287, %.lr.ph
  %312 = phi i64 [ %323, %.lr.ph ], [ 1, %287 ]
  %313 = shl i64 %312, 2
  %314 = add nsw i64 %313, -4
  %315 = getelementptr inbounds [16 x float], ptr %29, i64 0, i64 %314
  %316 = call i32 @f2c_sscal(ptr noundef nonnull %12, ptr noundef nonnull @c_b48, ptr noundef nonnull %315, ptr noundef nonnull @c__1) #7
  %317 = load float, ptr %38, align 4, !tbaa !9
  %318 = load i64, ptr %12, align 8, !tbaa !5
  %319 = add i64 %318, -5
  %320 = add i64 %319, %312
  %321 = add i64 %320, %313
  %322 = getelementptr inbounds [16 x float], ptr %29, i64 0, i64 %321
  store float %317, ptr %322, align 4, !tbaa !9
  %323 = add nuw nsw i64 %312, 1
  %324 = load i64, ptr %18, align 8, !tbaa !5
  %.not.not = icmp slt i64 %312, %324
  br i1 %.not.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %287
  %325 = call i32 @sgeqr2_(ptr noundef nonnull %23, ptr noundef nonnull %13, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %33, ptr noundef %14, ptr noundef nonnull %40) #7
  %326 = load i64, ptr %40, align 8, !tbaa !5
  %.not475 = icmp eq i64 %326, 0
  br i1 %.not475, label %327, label %735

327:                                              ; preds = %._crit_edge
  %328 = call i32 @sorg2r_(ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %13, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %33, ptr noundef %14, ptr noundef nonnull %40) #7
  %329 = load i64, ptr %40, align 8, !tbaa !5
  %.not476 = icmp eq i64 %329, 0
  br i1 %.not476, label %330, label %735

330:                                              ; preds = %327
  %331 = load i64, ptr %12, align 8, !tbaa !5
  store i64 %331, ptr %18, align 8, !tbaa !5
  %.not478507 = icmp slt i64 %331, 1
  %.pre = load i64, ptr %13, align 8, !tbaa !5
  br i1 %.not478507, label %._crit_edge511, label %.lr.ph510

.lr.ph510:                                        ; preds = %330
  %332 = load float, ptr %38, align 4, !tbaa !9
  %333 = add nuw i64 %331, 1
  %xtraiter = and i64 %331, 1
  %334 = icmp eq i64 %331, 1
  br i1 %334, label %._crit_edge511.loopexit.unr-lcssa, label %.lr.ph510.new

.lr.ph510.new:                                    ; preds = %.lr.ph510
  %unroll_iter = and i64 %331, 9223372036854775806
  br label %335

335:                                              ; preds = %335, %.lr.ph510.new
  %storemerge477508 = phi i64 [ 1, %.lr.ph510.new ], [ %344, %335 ]
  %niter = phi i64 [ 0, %.lr.ph510.new ], [ %niter.next.1, %335 ]
  %336 = shl i64 %storemerge477508, 2
  %337 = add nsw i64 %storemerge477508, -5
  %338 = add i64 %337, %336
  %339 = add i64 %338, %.pre
  %340 = getelementptr inbounds [16 x float], ptr %30, i64 0, i64 %339
  store float %332, ptr %340, align 4, !tbaa !9
  %341 = mul i64 %storemerge477508, 5
  %342 = add i64 %341, %.pre
  %343 = getelementptr inbounds [16 x float], ptr %30, i64 0, i64 %342
  store float %332, ptr %343, align 4, !tbaa !9
  %344 = add nuw i64 %storemerge477508, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge511.loopexit.unr-lcssa, label %335, !llvm.loop !13

._crit_edge511.loopexit.unr-lcssa:                ; preds = %335, %.lr.ph510
  %storemerge477508.unr = phi i64 [ 1, %.lr.ph510 ], [ %344, %335 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge511, label %._crit_edge511.loopexit.epilog-lcssa

._crit_edge511.loopexit.epilog-lcssa:             ; preds = %._crit_edge511.loopexit.unr-lcssa
  %345 = shl i64 %storemerge477508.unr, 2
  %346 = add nsw i64 %storemerge477508.unr, -5
  %347 = add i64 %346, %345
  %348 = add i64 %347, %.pre
  %349 = getelementptr inbounds [16 x float], ptr %30, i64 0, i64 %348
  store float %332, ptr %349, align 4, !tbaa !9
  br label %._crit_edge511

._crit_edge511:                                   ; preds = %._crit_edge511.loopexit.epilog-lcssa, %._crit_edge511.loopexit.unr-lcssa, %330
  %storemerge477.lcssa = phi i64 [ 1, %330 ], [ %333, %._crit_edge511.loopexit.unr-lcssa ], [ %333, %._crit_edge511.loopexit.epilog-lcssa ]
  store i64 %storemerge477.lcssa, ptr %22, align 8, !tbaa !5
  %350 = getelementptr inbounds [16 x float], ptr %30, i64 0, i64 %.pre
  %351 = call i32 @sgerq2_(ptr noundef nonnull %12, ptr noundef nonnull %23, ptr noundef nonnull %350, ptr noundef nonnull @c__4, ptr noundef nonnull %35, ptr noundef %14, ptr noundef nonnull %40) #7
  %352 = load i64, ptr %40, align 8, !tbaa !5
  %.not479 = icmp eq i64 %352, 0
  br i1 %.not479, label %353, label %735

353:                                              ; preds = %._crit_edge511
  %354 = call i32 @sorgr2_(ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %12, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull %35, ptr noundef %14, ptr noundef nonnull %40) #7
  %355 = load i64, ptr %40, align 8, !tbaa !5
  %.not480 = icmp eq i64 %355, 0
  br i1 %.not480, label %356, label %735

356:                                              ; preds = %353
  %357 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %23) #7
  %358 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef %14, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %24, ptr noundef nonnull @c__4) #7
  %359 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %23) #7
  %360 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef %14, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %25, ptr noundef nonnull @c__4) #7
  %361 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef nonnull %36, ptr noundef nonnull @c__4) #7
  %362 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull %37, ptr noundef nonnull @c__4) #7
  %363 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull %41, ptr noundef nonnull @c__4) #7
  %364 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %39, ptr noundef nonnull @c__4) #7
  %365 = call i32 @sgerq2_(ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull %35, ptr noundef %14, ptr noundef nonnull %40) #7
  %366 = load i64, ptr %40, align 8, !tbaa !5
  %.not481 = icmp eq i64 %366, 0
  br i1 %.not481, label %367, label %735

367:                                              ; preds = %356
  %368 = call i32 @sormr2_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.4, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull %35, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %40) #7
  %369 = load i64, ptr %40, align 8, !tbaa !5
  %.not482 = icmp eq i64 %369, 0
  br i1 %.not482, label %370, label %735

370:                                              ; preds = %367
  %371 = call i32 @sormr2_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull %35, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %40) #7
  %372 = load i64, ptr %40, align 8, !tbaa !5
  %.not483 = icmp eq i64 %372, 0
  br i1 %.not483, label %373, label %735

373:                                              ; preds = %370
  store float 0.000000e+00, ptr %43, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %374 = load i64, ptr %13, align 8, !tbaa !5
  store i64 %374, ptr %18, align 8, !tbaa !5
  %.not485512 = icmp slt i64 %374, 1
  br i1 %.not485512, label %._crit_edge516, label %.lr.ph515

.lr.ph515:                                        ; preds = %373, %.lr.ph515
  %375 = phi i64 [ %382, %.lr.ph515 ], [ 1, %373 ]
  %376 = load i64, ptr %13, align 8, !tbaa !5
  %377 = shl i64 %375, 2
  %378 = add i64 %377, -4
  %379 = add i64 %378, %376
  %380 = getelementptr inbounds [16 x float], ptr %24, i64 0, i64 %379
  %381 = call i32 @slassq_(ptr noundef nonnull %12, ptr noundef nonnull %380, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %34) #7
  %382 = add nuw nsw i64 %375, 1
  store i64 %382, ptr %22, align 8, !tbaa !5
  %383 = load i64, ptr %18, align 8, !tbaa !5
  %.not485.not = icmp slt i64 %375, %383
  br i1 %.not485.not, label %.lr.ph515, label %._crit_edge516.loopexit, !llvm.loop !14

._crit_edge516.loopexit:                          ; preds = %.lr.ph515
  %.pre531 = load float, ptr %43, align 4, !tbaa !9
  %.pre532 = load float, ptr %34, align 4, !tbaa !9
  %384 = fpext float %.pre531 to double
  %385 = fpext float %.pre532 to double
  br label %._crit_edge516

._crit_edge516:                                   ; preds = %._crit_edge516.loopexit, %373
  %386 = phi double [ %385, %._crit_edge516.loopexit ], [ 1.000000e+00, %373 ]
  %387 = phi double [ %384, %._crit_edge516.loopexit ], [ 0.000000e+00, %373 ]
  %388 = call double @sqrt(double noundef %386) #7
  %389 = fmul double %388, %387
  %390 = fptrunc double %389 to float
  %391 = call i32 @sgeqr2_(ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %37, ptr noundef nonnull @c__4, ptr noundef nonnull %33, ptr noundef %14, ptr noundef nonnull %40) #7
  %392 = load i64, ptr %40, align 8, !tbaa !5
  %.not486 = icmp eq i64 %392, 0
  br i1 %.not486, label %393, label %735

393:                                              ; preds = %._crit_edge516
  %394 = call i32 @sorm2r_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.4, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %37, ptr noundef nonnull @c__4, ptr noundef nonnull %33, ptr noundef nonnull %36, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %16) #7
  %395 = call i32 @sorm2r_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %37, ptr noundef nonnull @c__4, ptr noundef nonnull %33, ptr noundef nonnull %39, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %16) #7
  %396 = load i64, ptr %40, align 8, !tbaa !5
  %.not487 = icmp eq i64 %396, 0
  br i1 %.not487, label %397, label %735

397:                                              ; preds = %393
  store float 0.000000e+00, ptr %43, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %398 = load i64, ptr %13, align 8, !tbaa !5
  store i64 %398, ptr %18, align 8, !tbaa !5
  %.not489517 = icmp slt i64 %398, 1
  br i1 %.not489517, label %._crit_edge521, label %.lr.ph520

.lr.ph520:                                        ; preds = %397, %.lr.ph520
  %399 = phi i64 [ %406, %.lr.ph520 ], [ 1, %397 ]
  %400 = load i64, ptr %13, align 8, !tbaa !5
  %401 = shl i64 %399, 2
  %402 = add i64 %401, -4
  %403 = add i64 %402, %400
  %404 = getelementptr inbounds [16 x float], ptr %36, i64 0, i64 %403
  %405 = call i32 @slassq_(ptr noundef nonnull %12, ptr noundef nonnull %404, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %34) #7
  %406 = add nuw nsw i64 %399, 1
  store i64 %406, ptr %22, align 8, !tbaa !5
  %407 = load i64, ptr %18, align 8, !tbaa !5
  %.not489.not = icmp slt i64 %399, %407
  br i1 %.not489.not, label %.lr.ph520, label %._crit_edge521.loopexit, !llvm.loop !15

._crit_edge521.loopexit:                          ; preds = %.lr.ph520
  %.pre533 = load float, ptr %43, align 4, !tbaa !9
  %.pre534 = load float, ptr %34, align 4, !tbaa !9
  %408 = fpext float %.pre533 to double
  %409 = fpext float %.pre534 to double
  br label %._crit_edge521

._crit_edge521:                                   ; preds = %._crit_edge521.loopexit, %397
  %410 = phi double [ %409, %._crit_edge521.loopexit ], [ 1.000000e+00, %397 ]
  %411 = phi double [ %408, %._crit_edge521.loopexit ], [ 0.000000e+00, %397 ]
  %412 = call double @sqrt(double noundef %410) #7
  %413 = fmul double %412, %411
  %414 = fptrunc double %413 to float
  %415 = fcmp ugt float %414, %390
  %416 = fcmp ult float %120, %414
  %or.cond = select i1 %415, i1 true, i1 %416
  br i1 %or.cond, label %422, label %417

417:                                              ; preds = %._crit_edge521
  %418 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %36, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef nonnull @c__4) #7
  %419 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %37, ptr noundef nonnull @c__4, ptr noundef nonnull %25, ptr noundef nonnull @c__4) #7
  %420 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %30, ptr noundef nonnull @c__4) #7
  %421 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %39, ptr noundef nonnull @c__4, ptr noundef nonnull %29, ptr noundef nonnull @c__4) #7
  br label %424

422:                                              ; preds = %._crit_edge521
  %423 = fcmp ugt float %120, %390
  br i1 %423, label %424, label %735

424:                                              ; preds = %422, %417
  %425 = load i64, ptr %23, align 8, !tbaa !5
  %426 = add nsw i64 %425, -1
  store i64 %426, ptr %18, align 8, !tbaa !5
  store i64 %426, ptr %19, align 8, !tbaa !5
  %427 = getelementptr inbounds i8, ptr %25, i64 4
  %428 = call i32 @slaset_(ptr noundef nonnull @.str.8, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef nonnull %427, ptr noundef nonnull @c__4) #7
  %429 = load i64, ptr %11, align 8, !tbaa !5
  %430 = mul i64 %429, %87
  %431 = getelementptr inbounds float, ptr %46, i64 %430
  %432 = load i64, ptr %23, align 8, !tbaa !5
  %433 = mul nsw i64 %432, %432
  %434 = getelementptr float, ptr %14, i64 %433
  %435 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef %431, ptr noundef nonnull %4, ptr noundef %434, ptr noundef nonnull %23) #7
  %436 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %23) #7
  %437 = load i64, ptr %23, align 8, !tbaa !5
  %438 = mul nsw i64 %437, %437
  %439 = getelementptr float, ptr %14, i64 %438
  %440 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b48, ptr noundef %14, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b42, ptr noundef %439, ptr noundef nonnull %23) #7
  store float 0.000000e+00, ptr %43, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %441 = load i64, ptr %23, align 8, !tbaa !5
  %442 = mul nsw i64 %441, %441
  store i64 %442, ptr %18, align 8, !tbaa !5
  %443 = getelementptr float, ptr %14, i64 %442
  %444 = call i32 @slassq_(ptr noundef nonnull %18, ptr noundef %443, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %34) #7
  %445 = load i64, ptr %11, align 8, !tbaa !5
  %446 = mul i64 %445, %92
  %447 = getelementptr inbounds float, ptr %49, i64 %446
  %448 = load i64, ptr %23, align 8, !tbaa !5
  %449 = mul nsw i64 %448, %448
  %450 = getelementptr float, ptr %14, i64 %449
  %451 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef %447, ptr noundef nonnull %6, ptr noundef %450, ptr noundef nonnull %23) #7
  %452 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %23) #7
  %453 = load i64, ptr %23, align 8, !tbaa !5
  %454 = mul nsw i64 %453, %453
  %455 = getelementptr float, ptr %14, i64 %454
  %456 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b48, ptr noundef %14, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b42, ptr noundef %455, ptr noundef nonnull %23) #7
  %457 = load i64, ptr %23, align 8, !tbaa !5
  %458 = mul nsw i64 %457, %457
  store i64 %458, ptr %18, align 8, !tbaa !5
  %459 = getelementptr float, ptr %14, i64 %458
  %460 = call i32 @slassq_(ptr noundef nonnull %18, ptr noundef %459, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %34) #7
  %461 = load float, ptr %43, align 4, !tbaa !9
  %462 = fpext float %461 to double
  %463 = load float, ptr %34, align 4, !tbaa !9
  %464 = fpext float %463 to double
  %465 = call double @sqrt(double noundef %464) #7
  %466 = fmul double %465, %462
  %467 = fptrunc double %466 to float
  %468 = fcmp ult float %120, %467
  br i1 %468, label %735, label %469

469:                                              ; preds = %424
  %470 = load i64, ptr %13, align 8, !tbaa !5
  %471 = getelementptr inbounds [16 x float], ptr %24, i64 0, i64 %470
  %472 = call i32 @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef nonnull %471, ptr noundef nonnull @c__4) #7
  %473 = load i64, ptr %11, align 8, !tbaa !5
  %474 = mul i64 %473, %87
  %475 = getelementptr inbounds float, ptr %46, i64 %474
  %476 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull @c__4, ptr noundef %475, ptr noundef nonnull %4) #7
  %477 = load i64, ptr %11, align 8, !tbaa !5
  %478 = mul i64 %477, %92
  %479 = getelementptr inbounds float, ptr %49, i64 %478
  %480 = call i32 @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef %479, ptr noundef nonnull %6) #7
  %481 = call i32 @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull @c__4, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef nonnull %25, ptr noundef nonnull @c__4) #7
  %482 = load i64, ptr %23, align 8, !tbaa !5
  %483 = mul i64 %482, %482
  store i64 %483, ptr %18, align 8, !tbaa !5
  %.not491522 = icmp eq i64 %482, 0
  br i1 %.not491522, label %._crit_edge526, label %.lr.ph525.preheader

.lr.ph525.preheader:                              ; preds = %469
  %umax = call i64 @llvm.umax.i64(i64 %483, i64 1)
  %484 = shl nuw i64 %umax, 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %14, i8 0, i64 %484, i1 false), !tbaa !9
  %485 = add i64 %umax, 1
  br label %._crit_edge526

._crit_edge526:                                   ; preds = %.lr.ph525.preheader, %469
  %storemerge490.lcssa = phi i64 [ 1, %469 ], [ %485, %.lr.ph525.preheader ]
  store i64 %storemerge490.lcssa, ptr %22, align 8, !tbaa !5
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  store float 1.000000e+00, ptr %25, align 16, !tbaa !9
  %486 = load i64, ptr %15, align 8, !tbaa !5
  %reass.sub = sub i64 %486, %483
  %487 = add i64 %reass.sub, -2
  store i64 %487, ptr %32, align 8, !tbaa !5
  %488 = load i64, ptr %13, align 8, !tbaa !5
  %489 = icmp sgt i64 %488, 1
  br i1 %489, label %490, label %513

490:                                              ; preds = %._crit_edge526
  %491 = load i64, ptr %11, align 8, !tbaa !5
  %492 = mul i64 %491, %87
  %493 = getelementptr inbounds float, ptr %46, i64 %492
  %494 = mul i64 %491, %92
  %495 = getelementptr inbounds float, ptr %49, i64 %494
  %496 = getelementptr inbounds i8, ptr %14, i64 4
  %497 = call i32 @slagv2_(ptr noundef %493, ptr noundef nonnull %4, ptr noundef %495, ptr noundef nonnull %6, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull %14, ptr noundef nonnull %496, ptr noundef nonnull %25, ptr noundef nonnull %427) #7
  %498 = load float, ptr %496, align 4, !tbaa !9
  %499 = fneg float %498
  %500 = load i64, ptr %23, align 8, !tbaa !5
  %501 = getelementptr float, ptr %14, i64 %500
  store float %499, ptr %501, align 4, !tbaa !9
  %502 = load float, ptr %14, align 4, !tbaa !9
  %503 = getelementptr float, ptr %56, i64 %500
  %504 = getelementptr i8, ptr %503, i64 8
  store float %502, ptr %504, align 4, !tbaa !9
  %505 = load float, ptr %25, align 16, !tbaa !9
  %506 = load i64, ptr %13, align 8, !tbaa !5
  %507 = mul i64 %506, 5
  %508 = add nsw i64 %507, -5
  %509 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %508
  store float %505, ptr %509, align 4, !tbaa !9
  %510 = load float, ptr %427, align 4, !tbaa !9
  %511 = fneg float %510
  %512 = getelementptr inbounds i8, ptr %25, i64 16
  store float %511, ptr %512, align 16, !tbaa !9
  %.pre536 = mul nsw i64 %500, %500
  br label %513

513:                                              ; preds = %490, %._crit_edge526
  %.pre-phi = phi i64 [ %.pre536, %490 ], [ %483, %._crit_edge526 ]
  %514 = phi i64 [ %506, %490 ], [ %488, %._crit_edge526 ]
  %515 = phi i64 [ %500, %490 ], [ %482, %._crit_edge526 ]
  %516 = getelementptr inbounds float, ptr %56, i64 %.pre-phi
  store float 1.000000e+00, ptr %516, align 4, !tbaa !9
  %517 = mul i64 %515, 5
  %518 = add nsw i64 %517, -5
  %519 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %518
  store float 1.000000e+00, ptr %519, align 4, !tbaa !9
  %520 = load i64, ptr %12, align 8, !tbaa !5
  %521 = icmp sgt i64 %520, 1
  br i1 %521, label %522, label %572

522:                                              ; preds = %513
  %523 = load i64, ptr %11, align 8, !tbaa !5
  %524 = add nsw i64 %514, %523
  %525 = mul i64 %524, %87
  %526 = getelementptr inbounds float, ptr %46, i64 %525
  %527 = mul i64 %524, %92
  %528 = getelementptr inbounds float, ptr %49, i64 %527
  %529 = getelementptr float, ptr %14, i64 %.pre-phi
  %530 = add i64 %515, 1
  %531 = mul i64 %514, %530
  %532 = getelementptr float, ptr %14, i64 %531
  %533 = getelementptr float, ptr %56, i64 %531
  %534 = getelementptr i8, ptr %533, i64 8
  %535 = mul i64 %514, 5
  %536 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %535
  %537 = shl i64 %515, 2
  %538 = add i64 %515, -9
  %539 = add i64 %538, %537
  %540 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %539
  %541 = call i32 @slagv2_(ptr noundef %526, ptr noundef nonnull %4, ptr noundef %528, ptr noundef nonnull %6, ptr noundef nonnull %35, ptr noundef nonnull %33, ptr noundef %529, ptr noundef %532, ptr noundef %534, ptr noundef nonnull %536, ptr noundef nonnull %540) #7
  %542 = load i64, ptr %13, align 8, !tbaa !5
  %543 = load i64, ptr %23, align 8, !tbaa !5
  %544 = add i64 %543, 1
  %545 = mul i64 %544, %542
  %546 = getelementptr float, ptr %14, i64 %545
  %547 = load float, ptr %546, align 4, !tbaa !9
  %548 = mul nsw i64 %543, %543
  %549 = getelementptr inbounds float, ptr %56, i64 %548
  store float %547, ptr %549, align 4, !tbaa !9
  %550 = getelementptr float, ptr %56, i64 %545
  %551 = getelementptr i8, ptr %550, i64 8
  %552 = load float, ptr %551, align 4, !tbaa !9
  %553 = fneg float %552
  %554 = getelementptr i8, ptr %549, i64 -4
  store float %553, ptr %554, align 4, !tbaa !9
  %555 = mul i64 %542, 5
  %556 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %555
  %557 = load float, ptr %556, align 4, !tbaa !9
  %558 = mul i64 %543, 5
  %559 = add nsw i64 %558, -5
  %560 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %559
  store float %557, ptr %560, align 4, !tbaa !9
  %561 = add nsw i64 %543, -1
  %562 = shl i64 %561, 2
  %563 = add i64 %543, -5
  %564 = add i64 %563, %562
  %565 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %564
  %566 = load float, ptr %565, align 4, !tbaa !9
  %567 = fneg float %566
  %568 = shl i64 %543, 2
  %569 = add i64 %568, -5
  %570 = add i64 %569, %561
  %571 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %570
  store float %567, ptr %571, align 4, !tbaa !9
  br label %572

572:                                              ; preds = %522, %513
  %.pre-phi537 = phi i64 [ %548, %522 ], [ %.pre-phi, %513 ]
  %573 = phi i64 [ %542, %522 ], [ %514, %513 ]
  %574 = load i64, ptr %11, align 8, !tbaa !5
  %575 = add nsw i64 %573, %574
  %576 = mul nsw i64 %575, %44
  %577 = getelementptr float, ptr %46, i64 %574
  %578 = getelementptr float, ptr %577, i64 %576
  %579 = getelementptr float, ptr %14, i64 %.pre-phi537
  %580 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull @c_b42, ptr noundef nonnull %14, ptr noundef nonnull %23, ptr noundef %578, ptr noundef nonnull %4, ptr noundef nonnull @c_b5, ptr noundef %579, ptr noundef nonnull %13) #7
  %581 = load i64, ptr %23, align 8, !tbaa !5
  %582 = mul nsw i64 %581, %581
  %583 = getelementptr float, ptr %14, i64 %582
  %584 = load i64, ptr %11, align 8, !tbaa !5
  %585 = load i64, ptr %13, align 8, !tbaa !5
  %586 = add nsw i64 %585, %584
  %587 = mul nsw i64 %586, %44
  %588 = getelementptr float, ptr %46, i64 %584
  %589 = getelementptr float, ptr %588, i64 %587
  %590 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef %583, ptr noundef nonnull %13, ptr noundef %589, ptr noundef nonnull %4) #7
  %591 = load i64, ptr %11, align 8, !tbaa !5
  %592 = load i64, ptr %13, align 8, !tbaa !5
  %593 = add nsw i64 %592, %591
  %594 = mul nsw i64 %593, %47
  %595 = getelementptr float, ptr %49, i64 %591
  %596 = getelementptr float, ptr %595, i64 %594
  %597 = load i64, ptr %23, align 8, !tbaa !5
  %598 = mul nsw i64 %597, %597
  %599 = getelementptr float, ptr %14, i64 %598
  %600 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull @c_b42, ptr noundef nonnull %14, ptr noundef nonnull %23, ptr noundef %596, ptr noundef nonnull %6, ptr noundef nonnull @c_b5, ptr noundef %599, ptr noundef nonnull %13) #7
  %601 = load i64, ptr %23, align 8, !tbaa !5
  %602 = mul nsw i64 %601, %601
  %603 = getelementptr float, ptr %14, i64 %602
  %604 = load i64, ptr %11, align 8, !tbaa !5
  %605 = load i64, ptr %13, align 8, !tbaa !5
  %606 = add nsw i64 %605, %604
  %607 = mul nsw i64 %606, %47
  %608 = getelementptr float, ptr %49, i64 %604
  %609 = getelementptr float, ptr %608, i64 %607
  %610 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef %603, ptr noundef nonnull %13, ptr noundef %609, ptr noundef nonnull %6) #7
  %611 = load i64, ptr %23, align 8, !tbaa !5
  %612 = mul nsw i64 %611, %611
  %613 = getelementptr float, ptr %14, i64 %612
  %614 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull %14, ptr noundef nonnull %23, ptr noundef nonnull @c_b5, ptr noundef %613, ptr noundef nonnull %23) #7
  %615 = load i64, ptr %23, align 8, !tbaa !5
  %616 = mul nsw i64 %615, %615
  %617 = getelementptr float, ptr %14, i64 %616
  %618 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef %617, ptr noundef nonnull %23, ptr noundef nonnull %29, ptr noundef nonnull @c__4) #7
  %619 = load i64, ptr %11, align 8, !tbaa !5
  %620 = load i64, ptr %13, align 8, !tbaa !5
  %621 = add nsw i64 %620, %619
  %622 = mul nsw i64 %621, %44
  %623 = getelementptr float, ptr %46, i64 %619
  %624 = getelementptr float, ptr %623, i64 %622
  %625 = mul i64 %620, 5
  %626 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %625
  %627 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %12, ptr noundef nonnull @c_b42, ptr noundef %624, ptr noundef nonnull %4, ptr noundef nonnull %626, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %13) #7
  %628 = load i64, ptr %11, align 8, !tbaa !5
  %629 = load i64, ptr %13, align 8, !tbaa !5
  %630 = add nsw i64 %629, %628
  %631 = mul nsw i64 %630, %44
  %632 = getelementptr float, ptr %46, i64 %628
  %633 = getelementptr float, ptr %632, i64 %631
  %634 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %13, ptr noundef %633, ptr noundef nonnull %4) #7
  %635 = load i64, ptr %11, align 8, !tbaa !5
  %636 = load i64, ptr %13, align 8, !tbaa !5
  %637 = add nsw i64 %636, %635
  %638 = mul nsw i64 %637, %47
  %639 = getelementptr float, ptr %49, i64 %635
  %640 = getelementptr float, ptr %639, i64 %638
  %641 = mul i64 %636, 5
  %642 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %641
  %643 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %12, ptr noundef nonnull @c_b42, ptr noundef %640, ptr noundef nonnull %6, ptr noundef nonnull %642, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %13) #7
  %644 = load i64, ptr %11, align 8, !tbaa !5
  %645 = load i64, ptr %13, align 8, !tbaa !5
  %646 = add nsw i64 %645, %644
  %647 = mul nsw i64 %646, %47
  %648 = getelementptr float, ptr %49, i64 %644
  %649 = getelementptr float, ptr %648, i64 %647
  %650 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %13, ptr noundef %649, ptr noundef nonnull %6) #7
  %651 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %23) #7
  %652 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull %14, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef nonnull @c__4) #7
  %653 = load i64, ptr %0, align 8, !tbaa !5
  %.not492 = icmp eq i64 %653, 0
  br i1 %.not492, label %665, label %654

654:                                              ; preds = %572
  %655 = load i64, ptr %11, align 8, !tbaa !5
  %656 = mul nsw i64 %655, %50
  %657 = getelementptr float, ptr %52, i64 %656
  %658 = getelementptr i8, ptr %657, i64 4
  %659 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef %658, ptr noundef nonnull %8, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %2) #7
  %660 = load i64, ptr %11, align 8, !tbaa !5
  %661 = mul nsw i64 %660, %50
  %662 = getelementptr float, ptr %52, i64 %661
  %663 = getelementptr i8, ptr %662, i64 4
  %664 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull %23, ptr noundef nonnull %14, ptr noundef nonnull %2, ptr noundef %663, ptr noundef nonnull %8) #7
  br label %665

665:                                              ; preds = %654, %572
  %666 = load i64, ptr %1, align 8, !tbaa !5
  %.not493 = icmp eq i64 %666, 0
  br i1 %.not493, label %678, label %667

667:                                              ; preds = %665
  %668 = load i64, ptr %11, align 8, !tbaa !5
  %669 = mul nsw i64 %668, %53
  %670 = getelementptr float, ptr %55, i64 %669
  %671 = getelementptr i8, ptr %670, i64 4
  %672 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef %671, ptr noundef nonnull %10, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %2) #7
  %673 = load i64, ptr %11, align 8, !tbaa !5
  %674 = mul nsw i64 %673, %53
  %675 = getelementptr float, ptr %55, i64 %674
  %676 = getelementptr i8, ptr %675, i64 4
  %677 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull %23, ptr noundef nonnull %14, ptr noundef nonnull %2, ptr noundef %676, ptr noundef nonnull %10) #7
  br label %678

678:                                              ; preds = %667, %665
  %679 = load i64, ptr %11, align 8, !tbaa !5
  %680 = load i64, ptr %23, align 8, !tbaa !5
  %681 = add nsw i64 %680, %679
  %682 = load i64, ptr %2, align 8, !tbaa !5
  %.not494 = icmp sgt i64 %681, %682
  br i1 %.not494, label %711, label %683

683:                                              ; preds = %678
  %reass.sub528 = sub i64 %682, %681
  %684 = add i64 %reass.sub528, 1
  store i64 %684, ptr %18, align 8, !tbaa !5
  %685 = mul nsw i64 %681, %44
  %686 = getelementptr float, ptr %46, i64 %679
  %687 = getelementptr float, ptr %686, i64 %685
  %688 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %18, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef %687, ptr noundef nonnull %4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %23) #7
  %689 = load i64, ptr %2, align 8, !tbaa !5
  %690 = add i64 %689, 1
  %691 = sub i64 %690, %681
  store i64 %691, ptr %18, align 8, !tbaa !5
  %692 = load i64, ptr %11, align 8, !tbaa !5
  %693 = getelementptr float, ptr %46, i64 %692
  %694 = getelementptr float, ptr %693, i64 %685
  %695 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %18, ptr noundef nonnull %14, ptr noundef nonnull %23, ptr noundef %694, ptr noundef nonnull %4) #7
  %696 = load i64, ptr %2, align 8, !tbaa !5
  %697 = add i64 %696, 1
  %698 = sub i64 %697, %681
  store i64 %698, ptr %18, align 8, !tbaa !5
  %699 = load i64, ptr %11, align 8, !tbaa !5
  %700 = mul nsw i64 %681, %47
  %701 = getelementptr float, ptr %49, i64 %699
  %702 = getelementptr float, ptr %701, i64 %700
  %703 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %23, ptr noundef nonnull %18, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %29, ptr noundef nonnull @c__4, ptr noundef %702, ptr noundef nonnull %6, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %23) #7
  %704 = load i64, ptr %2, align 8, !tbaa !5
  %705 = add i64 %704, 1
  %706 = sub i64 %705, %681
  store i64 %706, ptr %18, align 8, !tbaa !5
  %707 = load i64, ptr %11, align 8, !tbaa !5
  %708 = getelementptr float, ptr %49, i64 %707
  %709 = getelementptr float, ptr %708, i64 %700
  %710 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %23, ptr noundef nonnull %18, ptr noundef nonnull %14, ptr noundef nonnull %23, ptr noundef %709, ptr noundef nonnull %6) #7
  %.pre535 = load i64, ptr %11, align 8, !tbaa !5
  br label %711

711:                                              ; preds = %683, %678
  %712 = phi i64 [ %.pre535, %683 ], [ %679, %678 ]
  %713 = add nsw i64 %712, -1
  store i64 %713, ptr %22, align 8, !tbaa !5
  %714 = icmp sgt i64 %712, 1
  br i1 %714, label %715, label %736

715:                                              ; preds = %711
  %716 = mul nsw i64 %712, %44
  %717 = getelementptr float, ptr %46, i64 %716
  %718 = getelementptr i8, ptr %717, i64 4
  %719 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef %718, ptr noundef nonnull %4, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %22) #7
  %720 = load i64, ptr %11, align 8, !tbaa !5
  %721 = mul nsw i64 %720, %44
  %722 = getelementptr float, ptr %46, i64 %721
  %723 = getelementptr i8, ptr %722, i64 4
  %724 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %14, ptr noundef nonnull %22, ptr noundef %723, ptr noundef nonnull %4) #7
  %725 = load i64, ptr %11, align 8, !tbaa !5
  %726 = mul nsw i64 %725, %47
  %727 = getelementptr float, ptr %49, i64 %726
  %728 = getelementptr i8, ptr %727, i64 4
  %729 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef %728, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %22) #7
  %730 = load i64, ptr %11, align 8, !tbaa !5
  %731 = mul nsw i64 %730, %47
  %732 = getelementptr float, ptr %49, i64 %731
  %733 = getelementptr i8, ptr %732, i64 4
  %734 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %14, ptr noundef nonnull %22, ptr noundef %733, ptr noundef nonnull %6) #7
  br label %736

735:                                              ; preds = %424, %422, %393, %._crit_edge516, %370, %367, %356, %353, %._crit_edge511, %327, %._crit_edge, %176, %123
  store i64 1, ptr %16, align 8, !tbaa !5
  br label %736

736:                                              ; preds = %711, %715, %275, %277, %66, %17, %59, %62, %735, %78
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  ret i32 0
}

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}


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