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

129:                                              ; preds = %17
  %130 = load ptr, ptr %30, align 8, !tbaa !5
  %131 = load i32, ptr %130, align 4, !tbaa !9
  %132 = icmp sle i32 %131, 0
  br i1 %132, label %137, label %133

133:                                              ; preds = %129
  %134 = load ptr, ptr %31, align 8, !tbaa !5
  %135 = load i32, ptr %134, align 4, !tbaa !9
  %136 = icmp sle i32 %135, 0
  br i1 %136, label %137, label %138

137:                                              ; preds = %133, %129, %17
  store i32 1, ptr %82, align 4
  br label %1804

138:                                              ; preds = %133
  %139 = load ptr, ptr %30, align 8, !tbaa !5
  %140 = load i32, ptr %139, align 4, !tbaa !9
  %141 = load ptr, ptr %20, align 8, !tbaa !5
  %142 = load i32, ptr %141, align 4, !tbaa !9
  %143 = icmp sgt i32 %140, %142
  br i1 %143, label %153, label %144

144:                                              ; preds = %138
  %145 = load ptr, ptr %29, align 8, !tbaa !5
  %146 = load i32, ptr %145, align 4, !tbaa !9
  %147 = load ptr, ptr %30, align 8, !tbaa !5
  %148 = load i32, ptr %147, align 4, !tbaa !9
  %149 = add nsw i32 %146, %148
  %150 = load ptr, ptr %20, align 8, !tbaa !5
  %151 = load i32, ptr %150, align 4, !tbaa !9
  %152 = icmp sgt i32 %149, %151
  br i1 %152, label %153, label %154

153:                                              ; preds = %144, %138
  store i32 1, ptr %82, align 4
  br label %1804

154:                                              ; preds = %144
  %155 = load ptr, ptr %30, align 8, !tbaa !5
  %156 = load i32, ptr %155, align 4, !tbaa !9
  %157 = load ptr, ptr %31, align 8, !tbaa !5
  %158 = load i32, ptr %157, align 4, !tbaa !9
  %159 = add nsw i32 %156, %158
  store i32 %159, ptr %57, align 4, !tbaa !9
  %160 = load ptr, ptr %20, align 8, !tbaa !5
  %161 = load i32, ptr %160, align 4, !tbaa !9
  %162 = load i32, ptr %57, align 4, !tbaa !9
  %163 = mul nsw i32 %161, %162
  store i32 %163, ptr %43, align 4, !tbaa !9
  %164 = load i32, ptr %57, align 4, !tbaa !9
  %165 = load i32, ptr %57, align 4, !tbaa !9
  %166 = mul nsw i32 %164, %165
  %167 = shl i32 %166, 1
  store i32 %167, ptr %44, align 4, !tbaa !9
  %168 = load ptr, ptr %33, align 8, !tbaa !5
  %169 = load i32, ptr %168, align 4, !tbaa !9
  %170 = load i32, ptr %43, align 4, !tbaa !9
  %171 = load i32, ptr %44, align 4, !tbaa !9
  %172 = icmp sge i32 %170, %171
  br i1 %172, label %173, label %175

173:                                              ; preds = %154
  %174 = load i32, ptr %43, align 4, !tbaa !9
  br label %177

175:                                              ; preds = %154
  %176 = load i32, ptr %44, align 4, !tbaa !9
  br label %177

177:                                              ; preds = %175, %173
  %178 = phi i32 [ %174, %173 ], [ %176, %175 ]
  %179 = icmp slt i32 %169, %178
  br i1 %179, label %180, label %202

180:                                              ; preds = %177
  %181 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -16, ptr %181, align 4, !tbaa !9
  %182 = load ptr, ptr %20, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  %184 = load i32, ptr %57, align 4, !tbaa !9
  %185 = mul nsw i32 %183, %184
  store i32 %185, ptr %43, align 4, !tbaa !9
  %186 = load i32, ptr %57, align 4, !tbaa !9
  %187 = load i32, ptr %57, align 4, !tbaa !9
  %188 = mul nsw i32 %186, %187
  %189 = shl i32 %188, 1
  store i32 %189, ptr %44, align 4, !tbaa !9
  %190 = load i32, ptr %43, align 4, !tbaa !9
  %191 = load i32, ptr %44, align 4, !tbaa !9
  %192 = icmp sge i32 %190, %191
  br i1 %192, label %193, label %195

193:                                              ; preds = %180
  %194 = load i32, ptr %43, align 4, !tbaa !9
  br label %197

195:                                              ; preds = %180
  %196 = load i32, ptr %44, align 4, !tbaa !9
  br label %197

197:                                              ; preds = %195, %193
  %198 = phi i32 [ %194, %193 ], [ %196, %195 ]
  %199 = sitofp i32 %198 to float
  %200 = load ptr, ptr %32, align 8, !tbaa !5
  %201 = getelementptr inbounds float, ptr %200, i64 1
  store float %199, ptr %201, align 4, !tbaa !11
  store i32 1, ptr %82, align 4
  br label %1804

202:                                              ; preds = %177
  store i32 0, ptr %46, align 4, !tbaa !9
  store i32 0, ptr %80, align 4, !tbaa !9
  %203 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  call void @slaset_(ptr noundef @.str, ptr noundef @c__4, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %203, ptr noundef @c__4)
  %204 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  call void @slaset_(ptr noundef @.str, ptr noundef @c__4, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %204, ptr noundef @c__4)
  %205 = load ptr, ptr %21, align 8, !tbaa !5
  %206 = load ptr, ptr %29, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = load ptr, ptr %29, align 8, !tbaa !5
  %209 = load i32, ptr %208, align 4, !tbaa !9
  %210 = load i32, ptr %35, align 4, !tbaa !9
  %211 = mul nsw i32 %209, %210
  %212 = add nsw i32 %207, %211
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds float, ptr %205, i64 %213
  %215 = load ptr, ptr %22, align 8, !tbaa !5
  %216 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %214, ptr noundef %215, ptr noundef %216, ptr noundef @c__4)
  %217 = load ptr, ptr %23, align 8, !tbaa !5
  %218 = load ptr, ptr %29, align 8, !tbaa !5
  %219 = load i32, ptr %218, align 4, !tbaa !9
  %220 = load ptr, ptr %29, align 8, !tbaa !5
  %221 = load i32, ptr %220, align 4, !tbaa !9
  %222 = load i32, ptr %37, align 4, !tbaa !9
  %223 = mul nsw i32 %221, %222
  %224 = add nsw i32 %219, %223
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds float, ptr %217, i64 %225
  %227 = load ptr, ptr %24, align 8, !tbaa !5
  %228 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %226, ptr noundef %227, ptr noundef %228, ptr noundef @c__4)
  %229 = call float @slamch_(ptr noundef @.str.1)
  store float %229, ptr %81, align 4, !tbaa !11
  %230 = call float @slamch_(ptr noundef @.str.2)
  %231 = load float, ptr %81, align 4, !tbaa !11
  %232 = fdiv float %230, %231
  store float %232, ptr %79, align 4, !tbaa !11
  store float 0.000000e+00, ptr %74, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %233 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %234 = load ptr, ptr %32, align 8, !tbaa !5
  %235 = getelementptr inbounds float, ptr %234, i64 1
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %233, ptr noundef @c__4, ptr noundef %235, ptr noundef %57)
  %236 = load i32, ptr %57, align 4, !tbaa !9
  %237 = load i32, ptr %57, align 4, !tbaa !9
  %238 = mul nsw i32 %236, %237
  store i32 %238, ptr %43, align 4, !tbaa !9
  %239 = load ptr, ptr %32, align 8, !tbaa !5
  %240 = getelementptr inbounds float, ptr %239, i64 1
  call void @slassq_(ptr noundef %43, ptr noundef %240, ptr noundef @c__1, ptr noundef %74, ptr noundef %50)
  %241 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %242 = load ptr, ptr %32, align 8, !tbaa !5
  %243 = getelementptr inbounds float, ptr %242, i64 1
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %241, ptr noundef @c__4, ptr noundef %243, ptr noundef %57)
  %244 = load i32, ptr %57, align 4, !tbaa !9
  %245 = load i32, ptr %57, align 4, !tbaa !9
  %246 = mul nsw i32 %244, %245
  store i32 %246, ptr %43, align 4, !tbaa !9
  %247 = load ptr, ptr %32, align 8, !tbaa !5
  %248 = getelementptr inbounds float, ptr %247, i64 1
  call void @slassq_(ptr noundef %43, ptr noundef %248, ptr noundef @c__1, ptr noundef %74, ptr noundef %50)
  %249 = load float, ptr %74, align 4, !tbaa !11
  %250 = fpext float %249 to double
  %251 = load float, ptr %50, align 4, !tbaa !11
  %252 = fpext float %251 to double
  %253 = call double @sqrt(double noundef %252) #5
  %254 = fmul double %250, %253
  %255 = fptrunc double %254 to float
  store float %255, ptr %66, align 4, !tbaa !11
  %256 = load float, ptr %81, align 4, !tbaa !11
  %257 = fmul float %256, 2.000000e+01
  %258 = load float, ptr %66, align 4, !tbaa !11
  %259 = fmul float %257, %258
  store float %259, ptr %45, align 4, !tbaa !11
  %260 = load float, ptr %45, align 4, !tbaa !11
  %261 = load float, ptr %79, align 4, !tbaa !11
  %262 = fcmp oge float %260, %261
  br i1 %262, label %263, label %265

263:                                              ; preds = %202
  %264 = load float, ptr %45, align 4, !tbaa !11
  br label %267

265:                                              ; preds = %202
  %266 = load float, ptr %79, align 4, !tbaa !11
  br label %267

267:                                              ; preds = %265, %263
  %268 = phi float [ %264, %263 ], [ %266, %265 ]
  store float %268, ptr %78, align 4, !tbaa !11
  %269 = load i32, ptr %57, align 4, !tbaa !9
  %270 = icmp eq i32 %269, 2
  br i1 %270, label %271, label %674

271:                                              ; preds = %267
  %272 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 5
  %273 = load float, ptr %272, align 4, !tbaa !11
  %274 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %275 = load float, ptr %274, align 16, !tbaa !11
  %276 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 5
  %277 = load float, ptr %276, align 4, !tbaa !11
  %278 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %279 = load float, ptr %278, align 16, !tbaa !11
  %280 = fmul float %277, %279
  %281 = fneg float %280
  %282 = call float @llvm.fmuladd.f32(float %273, float %275, float %281)
  store float %282, ptr %54, align 4, !tbaa !11
  %283 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 5
  %284 = load float, ptr %283, align 4, !tbaa !11
  %285 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 4
  %286 = load float, ptr %285, align 16, !tbaa !11
  %287 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 5
  %288 = load float, ptr %287, align 4, !tbaa !11
  %289 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 4
  %290 = load float, ptr %289, align 16, !tbaa !11
  %291 = fmul float %288, %290
  %292 = fneg float %291
  %293 = call float @llvm.fmuladd.f32(float %284, float %286, float %292)
  store float %293, ptr %55, align 4, !tbaa !11
  %294 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 5
  %295 = load float, ptr %294, align 4, !tbaa !11
  %296 = fcmp oge float %295, 0.000000e+00
  br i1 %296, label %297, label %300

297:                                              ; preds = %271
  %298 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 5
  %299 = load float, ptr %298, align 4, !tbaa !11
  br label %304

300:                                              ; preds = %271
  %301 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 5
  %302 = load float, ptr %301, align 4, !tbaa !11
  %303 = fneg float %302
  br label %304

304:                                              ; preds = %300, %297
  %305 = phi float [ %299, %297 ], [ %303, %300 ]
  store float %305, ptr %72, align 4, !tbaa !11
  %306 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 5
  %307 = load float, ptr %306, align 4, !tbaa !11
  %308 = fcmp oge float %307, 0.000000e+00
  br i1 %308, label %309, label %312

309:                                              ; preds = %304
  %310 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 5
  %311 = load float, ptr %310, align 4, !tbaa !11
  br label %316

312:                                              ; preds = %304
  %313 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 5
  %314 = load float, ptr %313, align 4, !tbaa !11
  %315 = fneg float %314
  br label %316

316:                                              ; preds = %312, %309
  %317 = phi float [ %311, %309 ], [ %315, %312 ]
  store float %317, ptr %71, align 4, !tbaa !11
  %318 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 4
  %319 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  call void @slartg_(ptr noundef %54, ptr noundef %55, ptr noundef %318, ptr noundef %319, ptr noundef %47)
  %320 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 4
  %321 = load float, ptr %320, align 16, !tbaa !11
  %322 = fneg float %321
  %323 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 1
  store float %322, ptr %323, align 4, !tbaa !11
  %324 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %325 = load float, ptr %324, align 16, !tbaa !11
  %326 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 5
  store float %325, ptr %326, align 4, !tbaa !11
  %327 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %328 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 4
  %329 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %330 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 1
  call void @srot_(ptr noundef @c__2, ptr noundef %327, ptr noundef @c__1, ptr noundef %328, ptr noundef @c__1, ptr noundef %329, ptr noundef %330)
  %331 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %332 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 4
  %333 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %334 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 1
  call void @srot_(ptr noundef @c__2, ptr noundef %331, ptr noundef @c__1, ptr noundef %332, ptr noundef @c__1, ptr noundef %333, ptr noundef %334)
  %335 = load float, ptr %71, align 4, !tbaa !11
  %336 = load float, ptr %72, align 4, !tbaa !11
  %337 = fcmp oge float %335, %336
  br i1 %337, label %338, label %343

338:                                              ; preds = %316
  %339 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %340 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %341 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %342 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 1
  call void @slartg_(ptr noundef %339, ptr noundef %340, ptr noundef %341, ptr noundef %342, ptr noundef %47)
  br label %348

343:                                              ; preds = %316
  %344 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %345 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %346 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %347 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 1
  call void @slartg_(ptr noundef %344, ptr noundef %345, ptr noundef %346, ptr noundef %347, ptr noundef %47)
  br label %348

348:                                              ; preds = %343, %338
  %349 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %350 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %351 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %352 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 1
  call void @srot_(ptr noundef @c__2, ptr noundef %349, ptr noundef @c__4, ptr noundef %350, ptr noundef @c__4, ptr noundef %351, ptr noundef %352)
  %353 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %354 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %355 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %356 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 1
  call void @srot_(ptr noundef @c__2, ptr noundef %353, ptr noundef @c__4, ptr noundef %354, ptr noundef @c__4, ptr noundef %355, ptr noundef %356)
  %357 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %358 = load float, ptr %357, align 16, !tbaa !11
  %359 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 5
  store float %358, ptr %359, align 4, !tbaa !11
  %360 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 1
  %361 = load float, ptr %360, align 4, !tbaa !11
  %362 = fneg float %361
  %363 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 4
  store float %362, ptr %363, align 16, !tbaa !11
  %364 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %365 = load float, ptr %364, align 4, !tbaa !11
  %366 = fcmp oge float %365, 0.000000e+00
  br i1 %366, label %367, label %370

367:                                              ; preds = %348
  %368 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %369 = load float, ptr %368, align 4, !tbaa !11
  br label %374

370:                                              ; preds = %348
  %371 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 1
  %372 = load float, ptr %371, align 4, !tbaa !11
  %373 = fneg float %372
  br label %374

374:                                              ; preds = %370, %367
  %375 = phi float [ %369, %367 ], [ %373, %370 ]
  %376 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %377 = load float, ptr %376, align 4, !tbaa !11
  %378 = fcmp oge float %377, 0.000000e+00
  br i1 %378, label %379, label %382

379:                                              ; preds = %374
  %380 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %381 = load float, ptr %380, align 4, !tbaa !11
  br label %386

382:                                              ; preds = %374
  %383 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %384 = load float, ptr %383, align 4, !tbaa !11
  %385 = fneg float %384
  br label %386

386:                                              ; preds = %382, %379
  %387 = phi float [ %381, %379 ], [ %385, %382 ]
  %388 = fadd float %375, %387
  store float %388, ptr %77, align 4, !tbaa !11
  %389 = load float, ptr %77, align 4, !tbaa !11
  %390 = load float, ptr %78, align 4, !tbaa !11
  %391 = fcmp ole float %389, %390
  %392 = zext i1 %391 to i32
  store i32 %392, ptr %46, align 4, !tbaa !9
  %393 = load i32, ptr %46, align 4, !tbaa !9
  %394 = icmp ne i32 %393, 0
  br i1 %394, label %396, label %395

395:                                              ; preds = %386
  br label %1802

396:                                              ; preds = %386
  %397 = load ptr, ptr %21, align 8, !tbaa !5
  %398 = load ptr, ptr %29, align 8, !tbaa !5
  %399 = load i32, ptr %398, align 4, !tbaa !9
  %400 = load ptr, ptr %29, align 8, !tbaa !5
  %401 = load i32, ptr %400, align 4, !tbaa !9
  %402 = load i32, ptr %35, align 4, !tbaa !9
  %403 = mul nsw i32 %401, %402
  %404 = add nsw i32 %399, %403
  %405 = sext i32 %404 to i64
  %406 = getelementptr inbounds float, ptr %397, i64 %405
  %407 = load ptr, ptr %22, align 8, !tbaa !5
  %408 = load ptr, ptr %32, align 8, !tbaa !5
  %409 = load i32, ptr %57, align 4, !tbaa !9
  %410 = load i32, ptr %57, align 4, !tbaa !9
  %411 = mul nsw i32 %409, %410
  %412 = add nsw i32 %411, 1
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds float, ptr %408, i64 %413
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %406, ptr noundef %407, ptr noundef %414, ptr noundef %57)
  %415 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %416 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %417 = load ptr, ptr %32, align 8, !tbaa !5
  %418 = getelementptr inbounds float, ptr %417, i64 1
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %415, ptr noundef @c__4, ptr noundef %416, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %418, ptr noundef %57)
  %419 = load ptr, ptr %32, align 8, !tbaa !5
  %420 = getelementptr inbounds float, ptr %419, i64 1
  %421 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %422 = load ptr, ptr %32, align 8, !tbaa !5
  %423 = load i32, ptr %57, align 4, !tbaa !9
  %424 = load i32, ptr %57, align 4, !tbaa !9
  %425 = mul nsw i32 %423, %424
  %426 = add nsw i32 %425, 1
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds float, ptr %422, i64 %427
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b48, ptr noundef %420, ptr noundef %57, ptr noundef %421, ptr noundef @c__4, ptr noundef @c_b42, ptr noundef %428, ptr noundef %57)
  store float 0.000000e+00, ptr %74, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %429 = load i32, ptr %57, align 4, !tbaa !9
  %430 = load i32, ptr %57, align 4, !tbaa !9
  %431 = mul nsw i32 %429, %430
  store i32 %431, ptr %43, align 4, !tbaa !9
  %432 = load ptr, ptr %32, align 8, !tbaa !5
  %433 = load i32, ptr %57, align 4, !tbaa !9
  %434 = load i32, ptr %57, align 4, !tbaa !9
  %435 = mul nsw i32 %433, %434
  %436 = add nsw i32 %435, 1
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds float, ptr %432, i64 %437
  call void @slassq_(ptr noundef %43, ptr noundef %438, ptr noundef @c__1, ptr noundef %74, ptr noundef %50)
  %439 = load ptr, ptr %23, align 8, !tbaa !5
  %440 = load ptr, ptr %29, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = load ptr, ptr %29, align 8, !tbaa !5
  %443 = load i32, ptr %442, align 4, !tbaa !9
  %444 = load i32, ptr %37, align 4, !tbaa !9
  %445 = mul nsw i32 %443, %444
  %446 = add nsw i32 %441, %445
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds float, ptr %439, i64 %447
  %449 = load ptr, ptr %24, align 8, !tbaa !5
  %450 = load ptr, ptr %32, align 8, !tbaa !5
  %451 = load i32, ptr %57, align 4, !tbaa !9
  %452 = load i32, ptr %57, align 4, !tbaa !9
  %453 = mul nsw i32 %451, %452
  %454 = add nsw i32 %453, 1
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds float, ptr %450, i64 %455
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %448, ptr noundef %449, ptr noundef %456, ptr noundef %57)
  %457 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %458 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %459 = load ptr, ptr %32, align 8, !tbaa !5
  %460 = getelementptr inbounds float, ptr %459, i64 1
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %457, ptr noundef @c__4, ptr noundef %458, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %460, ptr noundef %57)
  %461 = load ptr, ptr %32, align 8, !tbaa !5
  %462 = getelementptr inbounds float, ptr %461, i64 1
  %463 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %464 = load ptr, ptr %32, align 8, !tbaa !5
  %465 = load i32, ptr %57, align 4, !tbaa !9
  %466 = load i32, ptr %57, align 4, !tbaa !9
  %467 = mul nsw i32 %465, %466
  %468 = add nsw i32 %467, 1
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds float, ptr %464, i64 %469
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b48, ptr noundef %462, ptr noundef %57, ptr noundef %463, ptr noundef @c__4, ptr noundef @c_b42, ptr noundef %470, ptr noundef %57)
  %471 = load i32, ptr %57, align 4, !tbaa !9
  %472 = load i32, ptr %57, align 4, !tbaa !9
  %473 = mul nsw i32 %471, %472
  store i32 %473, ptr %43, align 4, !tbaa !9
  %474 = load ptr, ptr %32, align 8, !tbaa !5
  %475 = load i32, ptr %57, align 4, !tbaa !9
  %476 = load i32, ptr %57, align 4, !tbaa !9
  %477 = mul nsw i32 %475, %476
  %478 = add nsw i32 %477, 1
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds float, ptr %474, i64 %479
  call void @slassq_(ptr noundef %43, ptr noundef %480, ptr noundef @c__1, ptr noundef %74, ptr noundef %50)
  %481 = load float, ptr %74, align 4, !tbaa !11
  %482 = fpext float %481 to double
  %483 = load float, ptr %50, align 4, !tbaa !11
  %484 = fpext float %483 to double
  %485 = call double @sqrt(double noundef %484) #5
  %486 = fmul double %482, %485
  %487 = fptrunc double %486 to float
  store float %487, ptr %76, align 4, !tbaa !11
  %488 = load float, ptr %76, align 4, !tbaa !11
  %489 = load float, ptr %78, align 4, !tbaa !11
  %490 = fcmp ole float %488, %489
  %491 = zext i1 %490 to i32
  store i32 %491, ptr %80, align 4, !tbaa !9
  %492 = load i32, ptr %80, align 4, !tbaa !9
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %495, label %494

494:                                              ; preds = %396
  br label %1802

495:                                              ; preds = %396
  %496 = load ptr, ptr %29, align 8, !tbaa !5
  %497 = load i32, ptr %496, align 4, !tbaa !9
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr %43, align 4, !tbaa !9
  %499 = load ptr, ptr %21, align 8, !tbaa !5
  %500 = load ptr, ptr %29, align 8, !tbaa !5
  %501 = load i32, ptr %500, align 4, !tbaa !9
  %502 = load i32, ptr %35, align 4, !tbaa !9
  %503 = mul nsw i32 %501, %502
  %504 = add nsw i32 %503, 1
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %499, i64 %505
  %507 = load ptr, ptr %21, align 8, !tbaa !5
  %508 = load ptr, ptr %29, align 8, !tbaa !5
  %509 = load i32, ptr %508, align 4, !tbaa !9
  %510 = add nsw i32 %509, 1
  %511 = load i32, ptr %35, align 4, !tbaa !9
  %512 = mul nsw i32 %510, %511
  %513 = add nsw i32 %512, 1
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds float, ptr %507, i64 %514
  %516 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %517 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 1
  call void @srot_(ptr noundef %43, ptr noundef %506, ptr noundef @c__1, ptr noundef %515, ptr noundef @c__1, ptr noundef %516, ptr noundef %517)
  %518 = load ptr, ptr %29, align 8, !tbaa !5
  %519 = load i32, ptr %518, align 4, !tbaa !9
  %520 = add nsw i32 %519, 1
  store i32 %520, ptr %43, align 4, !tbaa !9
  %521 = load ptr, ptr %23, align 8, !tbaa !5
  %522 = load ptr, ptr %29, align 8, !tbaa !5
  %523 = load i32, ptr %522, align 4, !tbaa !9
  %524 = load i32, ptr %37, align 4, !tbaa !9
  %525 = mul nsw i32 %523, %524
  %526 = add nsw i32 %525, 1
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds float, ptr %521, i64 %527
  %529 = load ptr, ptr %23, align 8, !tbaa !5
  %530 = load ptr, ptr %29, align 8, !tbaa !5
  %531 = load i32, ptr %530, align 4, !tbaa !9
  %532 = add nsw i32 %531, 1
  %533 = load i32, ptr %37, align 4, !tbaa !9
  %534 = mul nsw i32 %532, %533
  %535 = add nsw i32 %534, 1
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds float, ptr %529, i64 %536
  %538 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %539 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 1
  call void @srot_(ptr noundef %43, ptr noundef %528, ptr noundef @c__1, ptr noundef %537, ptr noundef @c__1, ptr noundef %538, ptr noundef %539)
  %540 = load ptr, ptr %20, align 8, !tbaa !5
  %541 = load i32, ptr %540, align 4, !tbaa !9
  %542 = load ptr, ptr %29, align 8, !tbaa !5
  %543 = load i32, ptr %542, align 4, !tbaa !9
  %544 = sub nsw i32 %541, %543
  %545 = add nsw i32 %544, 1
  store i32 %545, ptr %43, align 4, !tbaa !9
  %546 = load ptr, ptr %21, align 8, !tbaa !5
  %547 = load ptr, ptr %29, align 8, !tbaa !5
  %548 = load i32, ptr %547, align 4, !tbaa !9
  %549 = load ptr, ptr %29, align 8, !tbaa !5
  %550 = load i32, ptr %549, align 4, !tbaa !9
  %551 = load i32, ptr %35, align 4, !tbaa !9
  %552 = mul nsw i32 %550, %551
  %553 = add nsw i32 %548, %552
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds float, ptr %546, i64 %554
  %556 = load ptr, ptr %22, align 8, !tbaa !5
  %557 = load ptr, ptr %21, align 8, !tbaa !5
  %558 = load ptr, ptr %29, align 8, !tbaa !5
  %559 = load i32, ptr %558, align 4, !tbaa !9
  %560 = add nsw i32 %559, 1
  %561 = load ptr, ptr %29, align 8, !tbaa !5
  %562 = load i32, ptr %561, align 4, !tbaa !9
  %563 = load i32, ptr %35, align 4, !tbaa !9
  %564 = mul nsw i32 %562, %563
  %565 = add nsw i32 %560, %564
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds float, ptr %557, i64 %566
  %568 = load ptr, ptr %22, align 8, !tbaa !5
  %569 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %570 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 1
  call void @srot_(ptr noundef %43, ptr noundef %555, ptr noundef %556, ptr noundef %567, ptr noundef %568, ptr noundef %569, ptr noundef %570)
  %571 = load ptr, ptr %20, align 8, !tbaa !5
  %572 = load i32, ptr %571, align 4, !tbaa !9
  %573 = load ptr, ptr %29, align 8, !tbaa !5
  %574 = load i32, ptr %573, align 4, !tbaa !9
  %575 = sub nsw i32 %572, %574
  %576 = add nsw i32 %575, 1
  store i32 %576, ptr %43, align 4, !tbaa !9
  %577 = load ptr, ptr %23, align 8, !tbaa !5
  %578 = load ptr, ptr %29, align 8, !tbaa !5
  %579 = load i32, ptr %578, align 4, !tbaa !9
  %580 = load ptr, ptr %29, align 8, !tbaa !5
  %581 = load i32, ptr %580, align 4, !tbaa !9
  %582 = load i32, ptr %37, align 4, !tbaa !9
  %583 = mul nsw i32 %581, %582
  %584 = add nsw i32 %579, %583
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds float, ptr %577, i64 %585
  %587 = load ptr, ptr %24, align 8, !tbaa !5
  %588 = load ptr, ptr %23, align 8, !tbaa !5
  %589 = load ptr, ptr %29, align 8, !tbaa !5
  %590 = load i32, ptr %589, align 4, !tbaa !9
  %591 = add nsw i32 %590, 1
  %592 = load ptr, ptr %29, align 8, !tbaa !5
  %593 = load i32, ptr %592, align 4, !tbaa !9
  %594 = load i32, ptr %37, align 4, !tbaa !9
  %595 = mul nsw i32 %593, %594
  %596 = add nsw i32 %591, %595
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds float, ptr %588, i64 %597
  %599 = load ptr, ptr %24, align 8, !tbaa !5
  %600 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %601 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 1
  call void @srot_(ptr noundef %43, ptr noundef %586, ptr noundef %587, ptr noundef %598, ptr noundef %599, ptr noundef %600, ptr noundef %601)
  %602 = load ptr, ptr %21, align 8, !tbaa !5
  %603 = load ptr, ptr %29, align 8, !tbaa !5
  %604 = load i32, ptr %603, align 4, !tbaa !9
  %605 = add nsw i32 %604, 1
  %606 = load ptr, ptr %29, align 8, !tbaa !5
  %607 = load i32, ptr %606, align 4, !tbaa !9
  %608 = load i32, ptr %35, align 4, !tbaa !9
  %609 = mul nsw i32 %607, %608
  %610 = add nsw i32 %605, %609
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds float, ptr %602, i64 %611
  store float 0.000000e+00, ptr %612, align 4, !tbaa !11
  %613 = load ptr, ptr %23, align 8, !tbaa !5
  %614 = load ptr, ptr %29, align 8, !tbaa !5
  %615 = load i32, ptr %614, align 4, !tbaa !9
  %616 = add nsw i32 %615, 1
  %617 = load ptr, ptr %29, align 8, !tbaa !5
  %618 = load i32, ptr %617, align 4, !tbaa !9
  %619 = load i32, ptr %37, align 4, !tbaa !9
  %620 = mul nsw i32 %618, %619
  %621 = add nsw i32 %616, %620
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds float, ptr %613, i64 %622
  store float 0.000000e+00, ptr %623, align 4, !tbaa !11
  %624 = load ptr, ptr %19, align 8, !tbaa !5
  %625 = load i32, ptr %624, align 4, !tbaa !9
  %626 = icmp ne i32 %625, 0
  br i1 %626, label %627, label %648

627:                                              ; preds = %495
  %628 = load ptr, ptr %20, align 8, !tbaa !5
  %629 = load ptr, ptr %27, align 8, !tbaa !5
  %630 = load ptr, ptr %29, align 8, !tbaa !5
  %631 = load i32, ptr %630, align 4, !tbaa !9
  %632 = load i32, ptr %41, align 4, !tbaa !9
  %633 = mul nsw i32 %631, %632
  %634 = add nsw i32 %633, 1
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds float, ptr %629, i64 %635
  %637 = load ptr, ptr %27, align 8, !tbaa !5
  %638 = load ptr, ptr %29, align 8, !tbaa !5
  %639 = load i32, ptr %638, align 4, !tbaa !9
  %640 = add nsw i32 %639, 1
  %641 = load i32, ptr %41, align 4, !tbaa !9
  %642 = mul nsw i32 %640, %641
  %643 = add nsw i32 %642, 1
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds float, ptr %637, i64 %644
  %646 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %647 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 1
  call void @srot_(ptr noundef %628, ptr noundef %636, ptr noundef @c__1, ptr noundef %645, ptr noundef @c__1, ptr noundef %646, ptr noundef %647)
  br label %648

648:                                              ; preds = %627, %495
  %649 = load ptr, ptr %18, align 8, !tbaa !5
  %650 = load i32, ptr %649, align 4, !tbaa !9
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %673

652:                                              ; preds = %648
  %653 = load ptr, ptr %20, align 8, !tbaa !5
  %654 = load ptr, ptr %25, align 8, !tbaa !5
  %655 = load ptr, ptr %29, align 8, !tbaa !5
  %656 = load i32, ptr %655, align 4, !tbaa !9
  %657 = load i32, ptr %39, align 4, !tbaa !9
  %658 = mul nsw i32 %656, %657
  %659 = add nsw i32 %658, 1
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds float, ptr %654, i64 %660
  %662 = load ptr, ptr %25, align 8, !tbaa !5
  %663 = load ptr, ptr %29, align 8, !tbaa !5
  %664 = load i32, ptr %663, align 4, !tbaa !9
  %665 = add nsw i32 %664, 1
  %666 = load i32, ptr %39, align 4, !tbaa !9
  %667 = mul nsw i32 %665, %666
  %668 = add nsw i32 %667, 1
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %662, i64 %669
  %671 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %672 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 1
  call void @srot_(ptr noundef %653, ptr noundef %661, ptr noundef @c__1, ptr noundef %670, ptr noundef @c__1, ptr noundef %671, ptr noundef %672)
  br label %673

673:                                              ; preds = %652, %648
  store i32 1, ptr %82, align 4
  br label %1804

674:                                              ; preds = %267
  %675 = load ptr, ptr %30, align 8, !tbaa !5
  %676 = load ptr, ptr %31, align 8, !tbaa !5
  %677 = load ptr, ptr %30, align 8, !tbaa !5
  %678 = load i32, ptr %677, align 4, !tbaa !9
  %679 = add nsw i32 %678, 1
  %680 = shl i32 %679, 2
  %681 = sub nsw i32 %680, 4
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %682
  %684 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str, ptr noundef %675, ptr noundef %676, ptr noundef %683, ptr noundef @c__4, ptr noundef %684, ptr noundef @c__4)
  %685 = load ptr, ptr %30, align 8, !tbaa !5
  %686 = load ptr, ptr %31, align 8, !tbaa !5
  %687 = load ptr, ptr %30, align 8, !tbaa !5
  %688 = load i32, ptr %687, align 4, !tbaa !9
  %689 = add nsw i32 %688, 1
  %690 = shl i32 %689, 2
  %691 = sub nsw i32 %690, 4
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 %692
  %694 = load ptr, ptr %31, align 8, !tbaa !5
  %695 = load i32, ptr %694, align 4, !tbaa !9
  %696 = add nsw i32 %695, 1
  %697 = load ptr, ptr %30, align 8, !tbaa !5
  %698 = load i32, ptr %697, align 4, !tbaa !9
  %699 = add nsw i32 %698, 1
  %700 = shl i32 %699, 2
  %701 = add nsw i32 %696, %700
  %702 = sub nsw i32 %701, 5
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 %703
  call void @slacpy_(ptr noundef @.str, ptr noundef %685, ptr noundef %686, ptr noundef %693, ptr noundef @c__4, ptr noundef %704, ptr noundef @c__4)
  %705 = load ptr, ptr %30, align 8, !tbaa !5
  %706 = load ptr, ptr %31, align 8, !tbaa !5
  %707 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %708 = load ptr, ptr %30, align 8, !tbaa !5
  %709 = load i32, ptr %708, align 4, !tbaa !9
  %710 = add nsw i32 %709, 1
  %711 = load ptr, ptr %30, align 8, !tbaa !5
  %712 = load i32, ptr %711, align 4, !tbaa !9
  %713 = add nsw i32 %712, 1
  %714 = shl i32 %713, 2
  %715 = add nsw i32 %710, %714
  %716 = sub nsw i32 %715, 5
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 %717
  %719 = load ptr, ptr %31, align 8, !tbaa !5
  %720 = load i32, ptr %719, align 4, !tbaa !9
  %721 = add nsw i32 %720, 1
  %722 = load ptr, ptr %30, align 8, !tbaa !5
  %723 = load i32, ptr %722, align 4, !tbaa !9
  %724 = add nsw i32 %723, 1
  %725 = shl i32 %724, 2
  %726 = add nsw i32 %721, %725
  %727 = sub nsw i32 %726, 5
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 %728
  %730 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %731 = load ptr, ptr %30, align 8, !tbaa !5
  %732 = load i32, ptr %731, align 4, !tbaa !9
  %733 = add nsw i32 %732, 1
  %734 = load ptr, ptr %30, align 8, !tbaa !5
  %735 = load i32, ptr %734, align 4, !tbaa !9
  %736 = add nsw i32 %735, 1
  %737 = shl i32 %736, 2
  %738 = add nsw i32 %733, %737
  %739 = sub nsw i32 %738, 5
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %740
  %742 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %743 = getelementptr inbounds [4 x i32], ptr %67, i64 0, i64 0
  call void @stgsy2_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef %705, ptr noundef %706, ptr noundef %707, ptr noundef @c__4, ptr noundef %718, ptr noundef @c__4, ptr noundef %729, ptr noundef @c__4, ptr noundef %730, ptr noundef @c__4, ptr noundef %741, ptr noundef @c__4, ptr noundef %742, ptr noundef @c__4, ptr noundef %60, ptr noundef %50, ptr noundef %74, ptr noundef %743, ptr noundef %48, ptr noundef %64)
  %744 = load ptr, ptr %31, align 8, !tbaa !5
  %745 = load i32, ptr %744, align 4, !tbaa !9
  store i32 %745, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %746

746:                                              ; preds = %768, %674
  %747 = load i32, ptr %56, align 4, !tbaa !9
  %748 = load i32, ptr %43, align 4, !tbaa !9
  %749 = icmp sle i32 %747, %748
  br i1 %749, label %750, label %771

750:                                              ; preds = %746
  %751 = load ptr, ptr %30, align 8, !tbaa !5
  %752 = load i32, ptr %56, align 4, !tbaa !9
  %753 = shl i32 %752, 2
  %754 = sub nsw i32 %753, 4
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 %755
  call void @sscal_(ptr noundef %751, ptr noundef @c_b48, ptr noundef %756, ptr noundef @c__1)
  %757 = load float, ptr %60, align 4, !tbaa !11
  %758 = load ptr, ptr %30, align 8, !tbaa !5
  %759 = load i32, ptr %758, align 4, !tbaa !9
  %760 = load i32, ptr %56, align 4, !tbaa !9
  %761 = add nsw i32 %759, %760
  %762 = load i32, ptr %56, align 4, !tbaa !9
  %763 = shl i32 %762, 2
  %764 = add nsw i32 %761, %763
  %765 = sub nsw i32 %764, 5
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 %766
  store float %757, ptr %767, align 4, !tbaa !11
  br label %768

768:                                              ; preds = %750
  %769 = load i32, ptr %56, align 4, !tbaa !9
  %770 = add nsw i32 %769, 1
  store i32 %770, ptr %56, align 4, !tbaa !9
  br label %746, !llvm.loop !13

771:                                              ; preds = %746
  %772 = load ptr, ptr %31, align 8, !tbaa !5
  %773 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %774 = getelementptr inbounds [4 x float], ptr %49, i64 0, i64 0
  %775 = load ptr, ptr %32, align 8, !tbaa !5
  %776 = getelementptr inbounds float, ptr %775, i64 1
  call void @sgeqr2_(ptr noundef %57, ptr noundef %772, ptr noundef %773, ptr noundef @c__4, ptr noundef %774, ptr noundef %776, ptr noundef %64)
  %777 = load i32, ptr %64, align 4, !tbaa !9
  %778 = icmp ne i32 %777, 0
  br i1 %778, label %779, label %780

779:                                              ; preds = %771
  br label %1802

780:                                              ; preds = %771
  %781 = load ptr, ptr %31, align 8, !tbaa !5
  %782 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %783 = getelementptr inbounds [4 x float], ptr %49, i64 0, i64 0
  %784 = load ptr, ptr %32, align 8, !tbaa !5
  %785 = getelementptr inbounds float, ptr %784, i64 1
  call void @sorg2r_(ptr noundef %57, ptr noundef %57, ptr noundef %781, ptr noundef %782, ptr noundef @c__4, ptr noundef %783, ptr noundef %785, ptr noundef %64)
  %786 = load i32, ptr %64, align 4, !tbaa !9
  %787 = icmp ne i32 %786, 0
  br i1 %787, label %788, label %789

788:                                              ; preds = %780
  br label %1802

789:                                              ; preds = %780
  %790 = load ptr, ptr %30, align 8, !tbaa !5
  %791 = load i32, ptr %790, align 4, !tbaa !9
  store i32 %791, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %792

792:                                              ; preds = %808, %789
  %793 = load i32, ptr %56, align 4, !tbaa !9
  %794 = load i32, ptr %43, align 4, !tbaa !9
  %795 = icmp sle i32 %793, %794
  br i1 %795, label %796, label %811

796:                                              ; preds = %792
  %797 = load float, ptr %60, align 4, !tbaa !11
  %798 = load ptr, ptr %31, align 8, !tbaa !5
  %799 = load i32, ptr %798, align 4, !tbaa !9
  %800 = load i32, ptr %56, align 4, !tbaa !9
  %801 = add nsw i32 %799, %800
  %802 = load i32, ptr %56, align 4, !tbaa !9
  %803 = shl i32 %802, 2
  %804 = add nsw i32 %801, %803
  %805 = sub nsw i32 %804, 5
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 %806
  store float %797, ptr %807, align 4, !tbaa !11
  br label %808

808:                                              ; preds = %796
  %809 = load i32, ptr %56, align 4, !tbaa !9
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr %56, align 4, !tbaa !9
  br label %792, !llvm.loop !15

811:                                              ; preds = %792
  %812 = load ptr, ptr %30, align 8, !tbaa !5
  %813 = load ptr, ptr %31, align 8, !tbaa !5
  %814 = load i32, ptr %813, align 4, !tbaa !9
  %815 = sext i32 %814 to i64
  %816 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 %815
  %817 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %818 = load ptr, ptr %32, align 8, !tbaa !5
  %819 = getelementptr inbounds float, ptr %818, i64 1
  call void @sgerq2_(ptr noundef %812, ptr noundef %57, ptr noundef %816, ptr noundef @c__4, ptr noundef %817, ptr noundef %819, ptr noundef %64)
  %820 = load i32, ptr %64, align 4, !tbaa !9
  %821 = icmp ne i32 %820, 0
  br i1 %821, label %822, label %823

822:                                              ; preds = %811
  br label %1802

823:                                              ; preds = %811
  %824 = load ptr, ptr %30, align 8, !tbaa !5
  %825 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %826 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %827 = load ptr, ptr %32, align 8, !tbaa !5
  %828 = getelementptr inbounds float, ptr %827, i64 1
  call void @sorgr2_(ptr noundef %57, ptr noundef %57, ptr noundef %824, ptr noundef %825, ptr noundef @c__4, ptr noundef %826, ptr noundef %828, ptr noundef %64)
  %829 = load i32, ptr %64, align 4, !tbaa !9
  %830 = icmp ne i32 %829, 0
  br i1 %830, label %831, label %832

831:                                              ; preds = %823
  br label %1802

832:                                              ; preds = %823
  %833 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %834 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %835 = load ptr, ptr %32, align 8, !tbaa !5
  %836 = getelementptr inbounds float, ptr %835, i64 1
  call void @sgemm_(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %833, ptr noundef @c__4, ptr noundef %834, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %836, ptr noundef %57)
  %837 = load ptr, ptr %32, align 8, !tbaa !5
  %838 = getelementptr inbounds float, ptr %837, i64 1
  %839 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %840 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %838, ptr noundef %57, ptr noundef %839, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %840, ptr noundef @c__4)
  %841 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %842 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %843 = load ptr, ptr %32, align 8, !tbaa !5
  %844 = getelementptr inbounds float, ptr %843, i64 1
  call void @sgemm_(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %841, ptr noundef @c__4, ptr noundef %842, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %844, ptr noundef %57)
  %845 = load ptr, ptr %32, align 8, !tbaa !5
  %846 = getelementptr inbounds float, ptr %845, i64 1
  %847 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %848 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %846, ptr noundef %57, ptr noundef %847, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %848, ptr noundef @c__4)
  %849 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %850 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %849, ptr noundef @c__4, ptr noundef %850, ptr noundef @c__4)
  %851 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %852 = getelementptr inbounds [16 x float], ptr %53, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %851, ptr noundef @c__4, ptr noundef %852, ptr noundef @c__4)
  %853 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %854 = getelementptr inbounds [16 x float], ptr %65, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %853, ptr noundef @c__4, ptr noundef %854, ptr noundef @c__4)
  %855 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %856 = getelementptr inbounds [16 x float], ptr %63, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %855, ptr noundef @c__4, ptr noundef %856, ptr noundef @c__4)
  %857 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %858 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %859 = load ptr, ptr %32, align 8, !tbaa !5
  %860 = getelementptr inbounds float, ptr %859, i64 1
  call void @sgerq2_(ptr noundef %57, ptr noundef %57, ptr noundef %857, ptr noundef @c__4, ptr noundef %858, ptr noundef %860, ptr noundef %64)
  %861 = load i32, ptr %64, align 4, !tbaa !9
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %863, label %864

863:                                              ; preds = %832
  br label %1802

864:                                              ; preds = %832
  %865 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %866 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %867 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %868 = load ptr, ptr %32, align 8, !tbaa !5
  %869 = getelementptr inbounds float, ptr %868, i64 1
  call void @sormr2_(ptr noundef @.str.6, ptr noundef @.str.4, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef %865, ptr noundef @c__4, ptr noundef %866, ptr noundef %867, ptr noundef @c__4, ptr noundef %869, ptr noundef %64)
  %870 = load i32, ptr %64, align 4, !tbaa !9
  %871 = icmp ne i32 %870, 0
  br i1 %871, label %872, label %873

872:                                              ; preds = %864
  br label %1802

873:                                              ; preds = %864
  %874 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %875 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %876 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %877 = load ptr, ptr %32, align 8, !tbaa !5
  %878 = getelementptr inbounds float, ptr %877, i64 1
  call void @sormr2_(ptr noundef @.str.7, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef %874, ptr noundef @c__4, ptr noundef %875, ptr noundef %876, ptr noundef @c__4, ptr noundef %878, ptr noundef %64)
  %879 = load i32, ptr %64, align 4, !tbaa !9
  %880 = icmp ne i32 %879, 0
  br i1 %880, label %881, label %882

881:                                              ; preds = %873
  br label %1802

882:                                              ; preds = %873
  store float 0.000000e+00, ptr %74, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %883 = load ptr, ptr %31, align 8, !tbaa !5
  %884 = load i32, ptr %883, align 4, !tbaa !9
  store i32 %884, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %885

885:                                              ; preds = %900, %882
  %886 = load i32, ptr %56, align 4, !tbaa !9
  %887 = load i32, ptr %43, align 4, !tbaa !9
  %888 = icmp sle i32 %886, %887
  br i1 %888, label %889, label %903

889:                                              ; preds = %885
  %890 = load ptr, ptr %30, align 8, !tbaa !5
  %891 = load ptr, ptr %31, align 8, !tbaa !5
  %892 = load i32, ptr %891, align 4, !tbaa !9
  %893 = add nsw i32 %892, 1
  %894 = load i32, ptr %56, align 4, !tbaa !9
  %895 = shl i32 %894, 2
  %896 = add nsw i32 %893, %895
  %897 = sub nsw i32 %896, 5
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 %898
  call void @slassq_(ptr noundef %890, ptr noundef %899, ptr noundef @c__1, ptr noundef %74, ptr noundef %50)
  br label %900

900:                                              ; preds = %889
  %901 = load i32, ptr %56, align 4, !tbaa !9
  %902 = add nsw i32 %901, 1
  store i32 %902, ptr %56, align 4, !tbaa !9
  br label %885, !llvm.loop !16

903:                                              ; preds = %885
  %904 = load float, ptr %74, align 4, !tbaa !11
  %905 = fpext float %904 to double
  %906 = load float, ptr %50, align 4, !tbaa !11
  %907 = fpext float %906 to double
  %908 = call double @sqrt(double noundef %907) #5
  %909 = fmul double %905, %908
  %910 = fptrunc double %909 to float
  store float %910, ptr %62, align 4, !tbaa !11
  %911 = getelementptr inbounds [16 x float], ptr %53, i64 0, i64 0
  %912 = getelementptr inbounds [4 x float], ptr %49, i64 0, i64 0
  %913 = load ptr, ptr %32, align 8, !tbaa !5
  %914 = getelementptr inbounds float, ptr %913, i64 1
  call void @sgeqr2_(ptr noundef %57, ptr noundef %57, ptr noundef %911, ptr noundef @c__4, ptr noundef %912, ptr noundef %914, ptr noundef %64)
  %915 = load i32, ptr %64, align 4, !tbaa !9
  %916 = icmp ne i32 %915, 0
  br i1 %916, label %917, label %918

917:                                              ; preds = %903
  br label %1802

918:                                              ; preds = %903
  %919 = getelementptr inbounds [16 x float], ptr %53, i64 0, i64 0
  %920 = getelementptr inbounds [4 x float], ptr %49, i64 0, i64 0
  %921 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %922 = load ptr, ptr %32, align 8, !tbaa !5
  %923 = getelementptr inbounds float, ptr %922, i64 1
  %924 = load ptr, ptr %34, align 8, !tbaa !5
  call void @sorm2r_(ptr noundef @.str.7, ptr noundef @.str.4, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef %919, ptr noundef @c__4, ptr noundef %920, ptr noundef %921, ptr noundef @c__4, ptr noundef %923, ptr noundef %924)
  %925 = getelementptr inbounds [16 x float], ptr %53, i64 0, i64 0
  %926 = getelementptr inbounds [4 x float], ptr %49, i64 0, i64 0
  %927 = getelementptr inbounds [16 x float], ptr %63, i64 0, i64 0
  %928 = load ptr, ptr %32, align 8, !tbaa !5
  %929 = getelementptr inbounds float, ptr %928, i64 1
  %930 = load ptr, ptr %34, align 8, !tbaa !5
  call void @sorm2r_(ptr noundef @.str.6, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef %925, ptr noundef @c__4, ptr noundef %926, ptr noundef %927, ptr noundef @c__4, ptr noundef %929, ptr noundef %930)
  %931 = load i32, ptr %64, align 4, !tbaa !9
  %932 = icmp ne i32 %931, 0
  br i1 %932, label %933, label %934

933:                                              ; preds = %918
  br label %1802

934:                                              ; preds = %918
  store float 0.000000e+00, ptr %74, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %935 = load ptr, ptr %31, align 8, !tbaa !5
  %936 = load i32, ptr %935, align 4, !tbaa !9
  store i32 %936, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %937

937:                                              ; preds = %952, %934
  %938 = load i32, ptr %56, align 4, !tbaa !9
  %939 = load i32, ptr %43, align 4, !tbaa !9
  %940 = icmp sle i32 %938, %939
  br i1 %940, label %941, label %955

941:                                              ; preds = %937
  %942 = load ptr, ptr %30, align 8, !tbaa !5
  %943 = load ptr, ptr %31, align 8, !tbaa !5
  %944 = load i32, ptr %943, align 4, !tbaa !9
  %945 = add nsw i32 %944, 1
  %946 = load i32, ptr %56, align 4, !tbaa !9
  %947 = shl i32 %946, 2
  %948 = add nsw i32 %945, %947
  %949 = sub nsw i32 %948, 5
  %950 = sext i32 %949 to i64
  %951 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 %950
  call void @slassq_(ptr noundef %942, ptr noundef %951, ptr noundef @c__1, ptr noundef %74, ptr noundef %50)
  br label %952

952:                                              ; preds = %941
  %953 = load i32, ptr %56, align 4, !tbaa !9
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr %56, align 4, !tbaa !9
  br label %937, !llvm.loop !17

955:                                              ; preds = %937
  %956 = load float, ptr %74, align 4, !tbaa !11
  %957 = fpext float %956 to double
  %958 = load float, ptr %50, align 4, !tbaa !11
  %959 = fpext float %958 to double
  %960 = call double @sqrt(double noundef %959) #5
  %961 = fmul double %957, %960
  %962 = fptrunc double %961 to float
  store float %962, ptr %61, align 4, !tbaa !11
  %963 = load float, ptr %61, align 4, !tbaa !11
  %964 = load float, ptr %62, align 4, !tbaa !11
  %965 = fcmp ole float %963, %964
  br i1 %965, label %966, label %979

966:                                              ; preds = %955
  %967 = load float, ptr %61, align 4, !tbaa !11
  %968 = load float, ptr %78, align 4, !tbaa !11
  %969 = fcmp ole float %967, %968
  br i1 %969, label %970, label %979

970:                                              ; preds = %966
  %971 = getelementptr inbounds [16 x float], ptr %52, i64 0, i64 0
  %972 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %971, ptr noundef @c__4, ptr noundef %972, ptr noundef @c__4)
  %973 = getelementptr inbounds [16 x float], ptr %53, i64 0, i64 0
  %974 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %973, ptr noundef @c__4, ptr noundef %974, ptr noundef @c__4)
  %975 = getelementptr inbounds [16 x float], ptr %65, i64 0, i64 0
  %976 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %975, ptr noundef @c__4, ptr noundef %976, ptr noundef @c__4)
  %977 = getelementptr inbounds [16 x float], ptr %63, i64 0, i64 0
  %978 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %977, ptr noundef @c__4, ptr noundef %978, ptr noundef @c__4)
  br label %985

979:                                              ; preds = %966, %955
  %980 = load float, ptr %62, align 4, !tbaa !11
  %981 = load float, ptr %78, align 4, !tbaa !11
  %982 = fcmp oge float %980, %981
  br i1 %982, label %983, label %984

983:                                              ; preds = %979
  br label %1802

984:                                              ; preds = %979
  br label %985

985:                                              ; preds = %984, %970
  %986 = load i32, ptr %57, align 4, !tbaa !9
  %987 = sub nsw i32 %986, 1
  store i32 %987, ptr %43, align 4, !tbaa !9
  %988 = load i32, ptr %57, align 4, !tbaa !9
  %989 = sub nsw i32 %988, 1
  store i32 %989, ptr %44, align 4, !tbaa !9
  %990 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  call void @slaset_(ptr noundef @.str.8, ptr noundef %43, ptr noundef %44, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %990, ptr noundef @c__4)
  %991 = load ptr, ptr %21, align 8, !tbaa !5
  %992 = load ptr, ptr %29, align 8, !tbaa !5
  %993 = load i32, ptr %992, align 4, !tbaa !9
  %994 = load ptr, ptr %29, align 8, !tbaa !5
  %995 = load i32, ptr %994, align 4, !tbaa !9
  %996 = load i32, ptr %35, align 4, !tbaa !9
  %997 = mul nsw i32 %995, %996
  %998 = add nsw i32 %993, %997
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds float, ptr %991, i64 %999
  %1001 = load ptr, ptr %22, align 8, !tbaa !5
  %1002 = load ptr, ptr %32, align 8, !tbaa !5
  %1003 = load i32, ptr %57, align 4, !tbaa !9
  %1004 = load i32, ptr %57, align 4, !tbaa !9
  %1005 = mul nsw i32 %1003, %1004
  %1006 = add nsw i32 %1005, 1
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds float, ptr %1002, i64 %1007
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %1000, ptr noundef %1001, ptr noundef %1008, ptr noundef %57)
  %1009 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %1010 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1011 = load ptr, ptr %32, align 8, !tbaa !5
  %1012 = getelementptr inbounds float, ptr %1011, i64 1
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1009, ptr noundef @c__4, ptr noundef %1010, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1012, ptr noundef %57)
  %1013 = load ptr, ptr %32, align 8, !tbaa !5
  %1014 = getelementptr inbounds float, ptr %1013, i64 1
  %1015 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %1016 = load ptr, ptr %32, align 8, !tbaa !5
  %1017 = load i32, ptr %57, align 4, !tbaa !9
  %1018 = load i32, ptr %57, align 4, !tbaa !9
  %1019 = mul nsw i32 %1017, %1018
  %1020 = add nsw i32 %1019, 1
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds float, ptr %1016, i64 %1021
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b48, ptr noundef %1014, ptr noundef %57, ptr noundef %1015, ptr noundef @c__4, ptr noundef @c_b42, ptr noundef %1022, ptr noundef %57)
  store float 0.000000e+00, ptr %74, align 4, !tbaa !11
  store float 1.000000e+00, ptr %50, align 4, !tbaa !11
  %1023 = load i32, ptr %57, align 4, !tbaa !9
  %1024 = load i32, ptr %57, align 4, !tbaa !9
  %1025 = mul nsw i32 %1023, %1024
  store i32 %1025, ptr %43, align 4, !tbaa !9
  %1026 = load ptr, ptr %32, align 8, !tbaa !5
  %1027 = load i32, ptr %57, align 4, !tbaa !9
  %1028 = load i32, ptr %57, align 4, !tbaa !9
  %1029 = mul nsw i32 %1027, %1028
  %1030 = add nsw i32 %1029, 1
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds float, ptr %1026, i64 %1031
  call void @slassq_(ptr noundef %43, ptr noundef %1032, ptr noundef @c__1, ptr noundef %74, ptr noundef %50)
  %1033 = load ptr, ptr %23, align 8, !tbaa !5
  %1034 = load ptr, ptr %29, align 8, !tbaa !5
  %1035 = load i32, ptr %1034, align 4, !tbaa !9
  %1036 = load ptr, ptr %29, align 8, !tbaa !5
  %1037 = load i32, ptr %1036, align 4, !tbaa !9
  %1038 = load i32, ptr %37, align 4, !tbaa !9
  %1039 = mul nsw i32 %1037, %1038
  %1040 = add nsw i32 %1035, %1039
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds float, ptr %1033, i64 %1041
  %1043 = load ptr, ptr %24, align 8, !tbaa !5
  %1044 = load ptr, ptr %32, align 8, !tbaa !5
  %1045 = load i32, ptr %57, align 4, !tbaa !9
  %1046 = load i32, ptr %57, align 4, !tbaa !9
  %1047 = mul nsw i32 %1045, %1046
  %1048 = add nsw i32 %1047, 1
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds float, ptr %1044, i64 %1049
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %1042, ptr noundef %1043, ptr noundef %1050, ptr noundef %57)
  %1051 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %1052 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1053 = load ptr, ptr %32, align 8, !tbaa !5
  %1054 = getelementptr inbounds float, ptr %1053, i64 1
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1051, ptr noundef @c__4, ptr noundef %1052, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1054, ptr noundef %57)
  %1055 = load ptr, ptr %32, align 8, !tbaa !5
  %1056 = getelementptr inbounds float, ptr %1055, i64 1
  %1057 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %1058 = load ptr, ptr %32, align 8, !tbaa !5
  %1059 = load i32, ptr %57, align 4, !tbaa !9
  %1060 = load i32, ptr %57, align 4, !tbaa !9
  %1061 = mul nsw i32 %1059, %1060
  %1062 = add nsw i32 %1061, 1
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds float, ptr %1058, i64 %1063
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b48, ptr noundef %1056, ptr noundef %57, ptr noundef %1057, ptr noundef @c__4, ptr noundef @c_b42, ptr noundef %1064, ptr noundef %57)
  %1065 = load i32, ptr %57, align 4, !tbaa !9
  %1066 = load i32, ptr %57, align 4, !tbaa !9
  %1067 = mul nsw i32 %1065, %1066
  store i32 %1067, ptr %43, align 4, !tbaa !9
  %1068 = load ptr, ptr %32, align 8, !tbaa !5
  %1069 = load i32, ptr %57, align 4, !tbaa !9
  %1070 = load i32, ptr %57, align 4, !tbaa !9
  %1071 = mul nsw i32 %1069, %1070
  %1072 = add nsw i32 %1071, 1
  %1073 = sext i32 %1072 to i64
  %1074 = getelementptr inbounds float, ptr %1068, i64 %1073
  call void @slassq_(ptr noundef %43, ptr noundef %1074, ptr noundef @c__1, ptr noundef %74, ptr noundef %50)
  %1075 = load float, ptr %74, align 4, !tbaa !11
  %1076 = fpext float %1075 to double
  %1077 = load float, ptr %50, align 4, !tbaa !11
  %1078 = fpext float %1077 to double
  %1079 = call double @sqrt(double noundef %1078) #5
  %1080 = fmul double %1076, %1079
  %1081 = fptrunc double %1080 to float
  store float %1081, ptr %76, align 4, !tbaa !11
  %1082 = load float, ptr %76, align 4, !tbaa !11
  %1083 = load float, ptr %78, align 4, !tbaa !11
  %1084 = fcmp ole float %1082, %1083
  %1085 = zext i1 %1084 to i32
  store i32 %1085, ptr %80, align 4, !tbaa !9
  %1086 = load i32, ptr %80, align 4, !tbaa !9
  %1087 = icmp ne i32 %1086, 0
  br i1 %1087, label %1089, label %1088

1088:                                             ; preds = %985
  br label %1802

1089:                                             ; preds = %985
  %1090 = load ptr, ptr %30, align 8, !tbaa !5
  %1091 = load ptr, ptr %31, align 8, !tbaa !5
  %1092 = load ptr, ptr %31, align 8, !tbaa !5
  %1093 = load i32, ptr %1092, align 4, !tbaa !9
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 %1094
  call void @slaset_(ptr noundef @.str, ptr noundef %1090, ptr noundef %1091, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %1095, ptr noundef @c__4)
  %1096 = getelementptr inbounds [16 x float], ptr %58, i64 0, i64 0
  %1097 = load ptr, ptr %21, align 8, !tbaa !5
  %1098 = load ptr, ptr %29, align 8, !tbaa !5
  %1099 = load i32, ptr %1098, align 4, !tbaa !9
  %1100 = load ptr, ptr %29, align 8, !tbaa !5
  %1101 = load i32, ptr %1100, align 4, !tbaa !9
  %1102 = load i32, ptr %35, align 4, !tbaa !9
  %1103 = mul nsw i32 %1101, %1102
  %1104 = add nsw i32 %1099, %1103
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds float, ptr %1097, i64 %1105
  %1107 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %1096, ptr noundef @c__4, ptr noundef %1106, ptr noundef %1107)
  %1108 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1109 = load ptr, ptr %23, align 8, !tbaa !5
  %1110 = load ptr, ptr %29, align 8, !tbaa !5
  %1111 = load i32, ptr %1110, align 4, !tbaa !9
  %1112 = load ptr, ptr %29, align 8, !tbaa !5
  %1113 = load i32, ptr %1112, align 4, !tbaa !9
  %1114 = load i32, ptr %37, align 4, !tbaa !9
  %1115 = mul nsw i32 %1113, %1114
  %1116 = add nsw i32 %1111, %1115
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds float, ptr %1109, i64 %1117
  %1119 = load ptr, ptr %24, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.5, ptr noundef %57, ptr noundef %57, ptr noundef %1108, ptr noundef @c__4, ptr noundef %1118, ptr noundef %1119)
  %1120 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  call void @slaset_(ptr noundef @.str, ptr noundef @c__4, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %1120, ptr noundef @c__4)
  %1121 = load ptr, ptr %32, align 8, !tbaa !5
  %1122 = getelementptr inbounds float, ptr %1121, i64 1
  call void @slaset_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %1122, ptr noundef %57)
  %1123 = load ptr, ptr %32, align 8, !tbaa !5
  %1124 = getelementptr inbounds float, ptr %1123, i64 1
  store float 1.000000e+00, ptr %1124, align 4, !tbaa !11
  %1125 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  store float 1.000000e+00, ptr %1125, align 16, !tbaa !11
  %1126 = load ptr, ptr %33, align 8, !tbaa !5
  %1127 = load i32, ptr %1126, align 4, !tbaa !9
  %1128 = load i32, ptr %57, align 4, !tbaa !9
  %1129 = load i32, ptr %57, align 4, !tbaa !9
  %1130 = mul nsw i32 %1128, %1129
  %1131 = sub nsw i32 %1127, %1130
  %1132 = sub nsw i32 %1131, 2
  store i32 %1132, ptr %48, align 4, !tbaa !9
  %1133 = load ptr, ptr %31, align 8, !tbaa !5
  %1134 = load i32, ptr %1133, align 4, !tbaa !9
  %1135 = icmp sgt i32 %1134, 1
  br i1 %1135, label %1136, label %1200

1136:                                             ; preds = %1089
  %1137 = load ptr, ptr %21, align 8, !tbaa !5
  %1138 = load ptr, ptr %29, align 8, !tbaa !5
  %1139 = load i32, ptr %1138, align 4, !tbaa !9
  %1140 = load ptr, ptr %29, align 8, !tbaa !5
  %1141 = load i32, ptr %1140, align 4, !tbaa !9
  %1142 = load i32, ptr %35, align 4, !tbaa !9
  %1143 = mul nsw i32 %1141, %1142
  %1144 = add nsw i32 %1139, %1143
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds float, ptr %1137, i64 %1145
  %1147 = load ptr, ptr %22, align 8, !tbaa !5
  %1148 = load ptr, ptr %23, align 8, !tbaa !5
  %1149 = load ptr, ptr %29, align 8, !tbaa !5
  %1150 = load i32, ptr %1149, align 4, !tbaa !9
  %1151 = load ptr, ptr %29, align 8, !tbaa !5
  %1152 = load i32, ptr %1151, align 4, !tbaa !9
  %1153 = load i32, ptr %37, align 4, !tbaa !9
  %1154 = mul nsw i32 %1152, %1153
  %1155 = add nsw i32 %1150, %1154
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds float, ptr %1148, i64 %1156
  %1158 = load ptr, ptr %24, align 8, !tbaa !5
  %1159 = getelementptr inbounds [2 x float], ptr %70, i64 0, i64 0
  %1160 = getelementptr inbounds [2 x float], ptr %69, i64 0, i64 0
  %1161 = getelementptr inbounds [2 x float], ptr %68, i64 0, i64 0
  %1162 = load ptr, ptr %32, align 8, !tbaa !5
  %1163 = getelementptr inbounds float, ptr %1162, i64 1
  %1164 = load ptr, ptr %32, align 8, !tbaa !5
  %1165 = getelementptr inbounds float, ptr %1164, i64 2
  %1166 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1167 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  call void @slagv2_(ptr noundef %1146, ptr noundef %1147, ptr noundef %1157, ptr noundef %1158, ptr noundef %1159, ptr noundef %1160, ptr noundef %1161, ptr noundef %1163, ptr noundef %1165, ptr noundef %1166, ptr noundef %1167)
  %1168 = load ptr, ptr %32, align 8, !tbaa !5
  %1169 = getelementptr inbounds float, ptr %1168, i64 2
  %1170 = load float, ptr %1169, align 4, !tbaa !11
  %1171 = fneg float %1170
  %1172 = load ptr, ptr %32, align 8, !tbaa !5
  %1173 = load i32, ptr %57, align 4, !tbaa !9
  %1174 = add nsw i32 %1173, 1
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds float, ptr %1172, i64 %1175
  store float %1171, ptr %1176, align 4, !tbaa !11
  %1177 = load ptr, ptr %32, align 8, !tbaa !5
  %1178 = getelementptr inbounds float, ptr %1177, i64 1
  %1179 = load float, ptr %1178, align 4, !tbaa !11
  %1180 = load ptr, ptr %32, align 8, !tbaa !5
  %1181 = load i32, ptr %57, align 4, !tbaa !9
  %1182 = add nsw i32 %1181, 2
  %1183 = sext i32 %1182 to i64
  %1184 = getelementptr inbounds float, ptr %1180, i64 %1183
  store float %1179, ptr %1184, align 4, !tbaa !11
  %1185 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1186 = load float, ptr %1185, align 16, !tbaa !11
  %1187 = load ptr, ptr %31, align 8, !tbaa !5
  %1188 = load i32, ptr %1187, align 4, !tbaa !9
  %1189 = load ptr, ptr %31, align 8, !tbaa !5
  %1190 = load i32, ptr %1189, align 4, !tbaa !9
  %1191 = shl i32 %1190, 2
  %1192 = add nsw i32 %1188, %1191
  %1193 = sub nsw i32 %1192, 5
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1194
  store float %1186, ptr %1195, align 4, !tbaa !11
  %1196 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 1
  %1197 = load float, ptr %1196, align 4, !tbaa !11
  %1198 = fneg float %1197
  %1199 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 4
  store float %1198, ptr %1199, align 16, !tbaa !11
  br label %1200

1200:                                             ; preds = %1136, %1089
  %1201 = load ptr, ptr %32, align 8, !tbaa !5
  %1202 = load i32, ptr %57, align 4, !tbaa !9
  %1203 = load i32, ptr %57, align 4, !tbaa !9
  %1204 = mul nsw i32 %1202, %1203
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds float, ptr %1201, i64 %1205
  store float 1.000000e+00, ptr %1206, align 4, !tbaa !11
  %1207 = load i32, ptr %57, align 4, !tbaa !9
  %1208 = load i32, ptr %57, align 4, !tbaa !9
  %1209 = shl i32 %1208, 2
  %1210 = add nsw i32 %1207, %1209
  %1211 = sub nsw i32 %1210, 5
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1212
  store float 1.000000e+00, ptr %1213, align 4, !tbaa !11
  %1214 = load ptr, ptr %30, align 8, !tbaa !5
  %1215 = load i32, ptr %1214, align 4, !tbaa !9
  %1216 = icmp sgt i32 %1215, 1
  br i1 %1216, label %1217, label %1377

1217:                                             ; preds = %1200
  %1218 = load ptr, ptr %21, align 8, !tbaa !5
  %1219 = load ptr, ptr %29, align 8, !tbaa !5
  %1220 = load i32, ptr %1219, align 4, !tbaa !9
  %1221 = load ptr, ptr %31, align 8, !tbaa !5
  %1222 = load i32, ptr %1221, align 4, !tbaa !9
  %1223 = add nsw i32 %1220, %1222
  %1224 = load ptr, ptr %29, align 8, !tbaa !5
  %1225 = load i32, ptr %1224, align 4, !tbaa !9
  %1226 = load ptr, ptr %31, align 8, !tbaa !5
  %1227 = load i32, ptr %1226, align 4, !tbaa !9
  %1228 = add nsw i32 %1225, %1227
  %1229 = load i32, ptr %35, align 4, !tbaa !9
  %1230 = mul nsw i32 %1228, %1229
  %1231 = add nsw i32 %1223, %1230
  %1232 = sext i32 %1231 to i64
  %1233 = getelementptr inbounds float, ptr %1218, i64 %1232
  %1234 = load ptr, ptr %22, align 8, !tbaa !5
  %1235 = load ptr, ptr %23, align 8, !tbaa !5
  %1236 = load ptr, ptr %29, align 8, !tbaa !5
  %1237 = load i32, ptr %1236, align 4, !tbaa !9
  %1238 = load ptr, ptr %31, align 8, !tbaa !5
  %1239 = load i32, ptr %1238, align 4, !tbaa !9
  %1240 = add nsw i32 %1237, %1239
  %1241 = load ptr, ptr %29, align 8, !tbaa !5
  %1242 = load i32, ptr %1241, align 4, !tbaa !9
  %1243 = load ptr, ptr %31, align 8, !tbaa !5
  %1244 = load i32, ptr %1243, align 4, !tbaa !9
  %1245 = add nsw i32 %1242, %1244
  %1246 = load i32, ptr %37, align 4, !tbaa !9
  %1247 = mul nsw i32 %1245, %1246
  %1248 = add nsw i32 %1240, %1247
  %1249 = sext i32 %1248 to i64
  %1250 = getelementptr inbounds float, ptr %1235, i64 %1249
  %1251 = load ptr, ptr %24, align 8, !tbaa !5
  %1252 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %1253 = getelementptr inbounds [4 x float], ptr %49, i64 0, i64 0
  %1254 = load ptr, ptr %32, align 8, !tbaa !5
  %1255 = load i32, ptr %57, align 4, !tbaa !9
  %1256 = load i32, ptr %57, align 4, !tbaa !9
  %1257 = mul nsw i32 %1255, %1256
  %1258 = add nsw i32 %1257, 1
  %1259 = sext i32 %1258 to i64
  %1260 = getelementptr inbounds float, ptr %1254, i64 %1259
  %1261 = load ptr, ptr %32, align 8, !tbaa !5
  %1262 = load ptr, ptr %31, align 8, !tbaa !5
  %1263 = load i32, ptr %1262, align 4, !tbaa !9
  %1264 = load i32, ptr %57, align 4, !tbaa !9
  %1265 = mul nsw i32 %1263, %1264
  %1266 = load ptr, ptr %31, align 8, !tbaa !5
  %1267 = load i32, ptr %1266, align 4, !tbaa !9
  %1268 = add nsw i32 %1265, %1267
  %1269 = add nsw i32 %1268, 1
  %1270 = sext i32 %1269 to i64
  %1271 = getelementptr inbounds float, ptr %1261, i64 %1270
  %1272 = load ptr, ptr %32, align 8, !tbaa !5
  %1273 = load ptr, ptr %31, align 8, !tbaa !5
  %1274 = load i32, ptr %1273, align 4, !tbaa !9
  %1275 = load i32, ptr %57, align 4, !tbaa !9
  %1276 = mul nsw i32 %1274, %1275
  %1277 = load ptr, ptr %31, align 8, !tbaa !5
  %1278 = load i32, ptr %1277, align 4, !tbaa !9
  %1279 = add nsw i32 %1276, %1278
  %1280 = add nsw i32 %1279, 2
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds float, ptr %1272, i64 %1281
  %1283 = load ptr, ptr %31, align 8, !tbaa !5
  %1284 = load i32, ptr %1283, align 4, !tbaa !9
  %1285 = add nsw i32 %1284, 1
  %1286 = load ptr, ptr %31, align 8, !tbaa !5
  %1287 = load i32, ptr %1286, align 4, !tbaa !9
  %1288 = add nsw i32 %1287, 1
  %1289 = shl i32 %1288, 2
  %1290 = add nsw i32 %1285, %1289
  %1291 = sub nsw i32 %1290, 5
  %1292 = sext i32 %1291 to i64
  %1293 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1292
  %1294 = load i32, ptr %57, align 4, !tbaa !9
  %1295 = load i32, ptr %57, align 4, !tbaa !9
  %1296 = sub nsw i32 %1295, 1
  %1297 = shl i32 %1296, 2
  %1298 = add nsw i32 %1294, %1297
  %1299 = sub nsw i32 %1298, 5
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1300
  call void @slagv2_(ptr noundef %1233, ptr noundef %1234, ptr noundef %1250, ptr noundef %1251, ptr noundef %1252, ptr noundef %1253, ptr noundef %1260, ptr noundef %1271, ptr noundef %1282, ptr noundef %1293, ptr noundef %1301)
  %1302 = load ptr, ptr %32, align 8, !tbaa !5
  %1303 = load ptr, ptr %31, align 8, !tbaa !5
  %1304 = load i32, ptr %1303, align 4, !tbaa !9
  %1305 = load i32, ptr %57, align 4, !tbaa !9
  %1306 = mul nsw i32 %1304, %1305
  %1307 = load ptr, ptr %31, align 8, !tbaa !5
  %1308 = load i32, ptr %1307, align 4, !tbaa !9
  %1309 = add nsw i32 %1306, %1308
  %1310 = add nsw i32 %1309, 1
  %1311 = sext i32 %1310 to i64
  %1312 = getelementptr inbounds float, ptr %1302, i64 %1311
  %1313 = load float, ptr %1312, align 4, !tbaa !11
  %1314 = load ptr, ptr %32, align 8, !tbaa !5
  %1315 = load i32, ptr %57, align 4, !tbaa !9
  %1316 = load i32, ptr %57, align 4, !tbaa !9
  %1317 = mul nsw i32 %1315, %1316
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds float, ptr %1314, i64 %1318
  store float %1313, ptr %1319, align 4, !tbaa !11
  %1320 = load ptr, ptr %32, align 8, !tbaa !5
  %1321 = load ptr, ptr %31, align 8, !tbaa !5
  %1322 = load i32, ptr %1321, align 4, !tbaa !9
  %1323 = load i32, ptr %57, align 4, !tbaa !9
  %1324 = mul nsw i32 %1322, %1323
  %1325 = load ptr, ptr %31, align 8, !tbaa !5
  %1326 = load i32, ptr %1325, align 4, !tbaa !9
  %1327 = add nsw i32 %1324, %1326
  %1328 = add nsw i32 %1327, 2
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds float, ptr %1320, i64 %1329
  %1331 = load float, ptr %1330, align 4, !tbaa !11
  %1332 = fneg float %1331
  %1333 = load ptr, ptr %32, align 8, !tbaa !5
  %1334 = load i32, ptr %57, align 4, !tbaa !9
  %1335 = load i32, ptr %57, align 4, !tbaa !9
  %1336 = mul nsw i32 %1334, %1335
  %1337 = sub nsw i32 %1336, 1
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds float, ptr %1333, i64 %1338
  store float %1332, ptr %1339, align 4, !tbaa !11
  %1340 = load ptr, ptr %31, align 8, !tbaa !5
  %1341 = load i32, ptr %1340, align 4, !tbaa !9
  %1342 = add nsw i32 %1341, 1
  %1343 = load ptr, ptr %31, align 8, !tbaa !5
  %1344 = load i32, ptr %1343, align 4, !tbaa !9
  %1345 = add nsw i32 %1344, 1
  %1346 = shl i32 %1345, 2
  %1347 = add nsw i32 %1342, %1346
  %1348 = sub nsw i32 %1347, 5
  %1349 = sext i32 %1348 to i64
  %1350 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1349
  %1351 = load float, ptr %1350, align 4, !tbaa !11
  %1352 = load i32, ptr %57, align 4, !tbaa !9
  %1353 = load i32, ptr %57, align 4, !tbaa !9
  %1354 = shl i32 %1353, 2
  %1355 = add nsw i32 %1352, %1354
  %1356 = sub nsw i32 %1355, 5
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1357
  store float %1351, ptr %1358, align 4, !tbaa !11
  %1359 = load i32, ptr %57, align 4, !tbaa !9
  %1360 = load i32, ptr %57, align 4, !tbaa !9
  %1361 = sub nsw i32 %1360, 1
  %1362 = shl i32 %1361, 2
  %1363 = add nsw i32 %1359, %1362
  %1364 = sub nsw i32 %1363, 5
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1365
  %1367 = load float, ptr %1366, align 4, !tbaa !11
  %1368 = fneg float %1367
  %1369 = load i32, ptr %57, align 4, !tbaa !9
  %1370 = sub nsw i32 %1369, 1
  %1371 = load i32, ptr %57, align 4, !tbaa !9
  %1372 = shl i32 %1371, 2
  %1373 = add nsw i32 %1370, %1372
  %1374 = sub nsw i32 %1373, 5
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1375
  store float %1368, ptr %1376, align 4, !tbaa !11
  br label %1377

1377:                                             ; preds = %1217, %1200
  %1378 = load ptr, ptr %31, align 8, !tbaa !5
  %1379 = load ptr, ptr %30, align 8, !tbaa !5
  %1380 = load ptr, ptr %31, align 8, !tbaa !5
  %1381 = load ptr, ptr %32, align 8, !tbaa !5
  %1382 = getelementptr inbounds float, ptr %1381, i64 1
  %1383 = load ptr, ptr %21, align 8, !tbaa !5
  %1384 = load ptr, ptr %29, align 8, !tbaa !5
  %1385 = load i32, ptr %1384, align 4, !tbaa !9
  %1386 = load ptr, ptr %29, align 8, !tbaa !5
  %1387 = load i32, ptr %1386, align 4, !tbaa !9
  %1388 = load ptr, ptr %31, align 8, !tbaa !5
  %1389 = load i32, ptr %1388, align 4, !tbaa !9
  %1390 = add nsw i32 %1387, %1389
  %1391 = load i32, ptr %35, align 4, !tbaa !9
  %1392 = mul nsw i32 %1390, %1391
  %1393 = add nsw i32 %1385, %1392
  %1394 = sext i32 %1393 to i64
  %1395 = getelementptr inbounds float, ptr %1383, i64 %1394
  %1396 = load ptr, ptr %22, align 8, !tbaa !5
  %1397 = load ptr, ptr %32, align 8, !tbaa !5
  %1398 = load i32, ptr %57, align 4, !tbaa !9
  %1399 = load i32, ptr %57, align 4, !tbaa !9
  %1400 = mul nsw i32 %1398, %1399
  %1401 = add nsw i32 %1400, 1
  %1402 = sext i32 %1401 to i64
  %1403 = getelementptr inbounds float, ptr %1397, i64 %1402
  %1404 = load ptr, ptr %31, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %1378, ptr noundef %1379, ptr noundef %1380, ptr noundef @c_b42, ptr noundef %1382, ptr noundef %57, ptr noundef %1395, ptr noundef %1396, ptr noundef @c_b5, ptr noundef %1403, ptr noundef %1404)
  %1405 = load ptr, ptr %31, align 8, !tbaa !5
  %1406 = load ptr, ptr %30, align 8, !tbaa !5
  %1407 = load ptr, ptr %32, align 8, !tbaa !5
  %1408 = load i32, ptr %57, align 4, !tbaa !9
  %1409 = load i32, ptr %57, align 4, !tbaa !9
  %1410 = mul nsw i32 %1408, %1409
  %1411 = add nsw i32 %1410, 1
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds float, ptr %1407, i64 %1412
  %1414 = load ptr, ptr %31, align 8, !tbaa !5
  %1415 = load ptr, ptr %21, align 8, !tbaa !5
  %1416 = load ptr, ptr %29, align 8, !tbaa !5
  %1417 = load i32, ptr %1416, align 4, !tbaa !9
  %1418 = load ptr, ptr %29, align 8, !tbaa !5
  %1419 = load i32, ptr %1418, align 4, !tbaa !9
  %1420 = load ptr, ptr %31, align 8, !tbaa !5
  %1421 = load i32, ptr %1420, align 4, !tbaa !9
  %1422 = add nsw i32 %1419, %1421
  %1423 = load i32, ptr %35, align 4, !tbaa !9
  %1424 = mul nsw i32 %1422, %1423
  %1425 = add nsw i32 %1417, %1424
  %1426 = sext i32 %1425 to i64
  %1427 = getelementptr inbounds float, ptr %1415, i64 %1426
  %1428 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %1405, ptr noundef %1406, ptr noundef %1413, ptr noundef %1414, ptr noundef %1427, ptr noundef %1428)
  %1429 = load ptr, ptr %31, align 8, !tbaa !5
  %1430 = load ptr, ptr %30, align 8, !tbaa !5
  %1431 = load ptr, ptr %31, align 8, !tbaa !5
  %1432 = load ptr, ptr %32, align 8, !tbaa !5
  %1433 = getelementptr inbounds float, ptr %1432, i64 1
  %1434 = load ptr, ptr %23, align 8, !tbaa !5
  %1435 = load ptr, ptr %29, align 8, !tbaa !5
  %1436 = load i32, ptr %1435, align 4, !tbaa !9
  %1437 = load ptr, ptr %29, align 8, !tbaa !5
  %1438 = load i32, ptr %1437, align 4, !tbaa !9
  %1439 = load ptr, ptr %31, align 8, !tbaa !5
  %1440 = load i32, ptr %1439, align 4, !tbaa !9
  %1441 = add nsw i32 %1438, %1440
  %1442 = load i32, ptr %37, align 4, !tbaa !9
  %1443 = mul nsw i32 %1441, %1442
  %1444 = add nsw i32 %1436, %1443
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds float, ptr %1434, i64 %1445
  %1447 = load ptr, ptr %24, align 8, !tbaa !5
  %1448 = load ptr, ptr %32, align 8, !tbaa !5
  %1449 = load i32, ptr %57, align 4, !tbaa !9
  %1450 = load i32, ptr %57, align 4, !tbaa !9
  %1451 = mul nsw i32 %1449, %1450
  %1452 = add nsw i32 %1451, 1
  %1453 = sext i32 %1452 to i64
  %1454 = getelementptr inbounds float, ptr %1448, i64 %1453
  %1455 = load ptr, ptr %31, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %1429, ptr noundef %1430, ptr noundef %1431, ptr noundef @c_b42, ptr noundef %1433, ptr noundef %57, ptr noundef %1446, ptr noundef %1447, ptr noundef @c_b5, ptr noundef %1454, ptr noundef %1455)
  %1456 = load ptr, ptr %31, align 8, !tbaa !5
  %1457 = load ptr, ptr %30, align 8, !tbaa !5
  %1458 = load ptr, ptr %32, align 8, !tbaa !5
  %1459 = load i32, ptr %57, align 4, !tbaa !9
  %1460 = load i32, ptr %57, align 4, !tbaa !9
  %1461 = mul nsw i32 %1459, %1460
  %1462 = add nsw i32 %1461, 1
  %1463 = sext i32 %1462 to i64
  %1464 = getelementptr inbounds float, ptr %1458, i64 %1463
  %1465 = load ptr, ptr %31, align 8, !tbaa !5
  %1466 = load ptr, ptr %23, align 8, !tbaa !5
  %1467 = load ptr, ptr %29, align 8, !tbaa !5
  %1468 = load i32, ptr %1467, align 4, !tbaa !9
  %1469 = load ptr, ptr %29, align 8, !tbaa !5
  %1470 = load i32, ptr %1469, align 4, !tbaa !9
  %1471 = load ptr, ptr %31, align 8, !tbaa !5
  %1472 = load i32, ptr %1471, align 4, !tbaa !9
  %1473 = add nsw i32 %1470, %1472
  %1474 = load i32, ptr %37, align 4, !tbaa !9
  %1475 = mul nsw i32 %1473, %1474
  %1476 = add nsw i32 %1468, %1475
  %1477 = sext i32 %1476 to i64
  %1478 = getelementptr inbounds float, ptr %1466, i64 %1477
  %1479 = load ptr, ptr %24, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %1456, ptr noundef %1457, ptr noundef %1464, ptr noundef %1465, ptr noundef %1478, ptr noundef %1479)
  %1480 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %1481 = load ptr, ptr %32, align 8, !tbaa !5
  %1482 = getelementptr inbounds float, ptr %1481, i64 1
  %1483 = load ptr, ptr %32, align 8, !tbaa !5
  %1484 = load i32, ptr %57, align 4, !tbaa !9
  %1485 = load i32, ptr %57, align 4, !tbaa !9
  %1486 = mul nsw i32 %1484, %1485
  %1487 = add nsw i32 %1486, 1
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds float, ptr %1483, i64 %1488
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1480, ptr noundef @c__4, ptr noundef %1482, ptr noundef %57, ptr noundef @c_b5, ptr noundef %1489, ptr noundef %57)
  %1490 = load ptr, ptr %32, align 8, !tbaa !5
  %1491 = load i32, ptr %57, align 4, !tbaa !9
  %1492 = load i32, ptr %57, align 4, !tbaa !9
  %1493 = mul nsw i32 %1491, %1492
  %1494 = add nsw i32 %1493, 1
  %1495 = sext i32 %1494 to i64
  %1496 = getelementptr inbounds float, ptr %1490, i64 %1495
  %1497 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %1496, ptr noundef %57, ptr noundef %1497, ptr noundef @c__4)
  %1498 = load ptr, ptr %31, align 8, !tbaa !5
  %1499 = load ptr, ptr %30, align 8, !tbaa !5
  %1500 = load ptr, ptr %30, align 8, !tbaa !5
  %1501 = load ptr, ptr %21, align 8, !tbaa !5
  %1502 = load ptr, ptr %29, align 8, !tbaa !5
  %1503 = load i32, ptr %1502, align 4, !tbaa !9
  %1504 = load ptr, ptr %29, align 8, !tbaa !5
  %1505 = load i32, ptr %1504, align 4, !tbaa !9
  %1506 = load ptr, ptr %31, align 8, !tbaa !5
  %1507 = load i32, ptr %1506, align 4, !tbaa !9
  %1508 = add nsw i32 %1505, %1507
  %1509 = load i32, ptr %35, align 4, !tbaa !9
  %1510 = mul nsw i32 %1508, %1509
  %1511 = add nsw i32 %1503, %1510
  %1512 = sext i32 %1511 to i64
  %1513 = getelementptr inbounds float, ptr %1501, i64 %1512
  %1514 = load ptr, ptr %22, align 8, !tbaa !5
  %1515 = load ptr, ptr %31, align 8, !tbaa !5
  %1516 = load i32, ptr %1515, align 4, !tbaa !9
  %1517 = add nsw i32 %1516, 1
  %1518 = load ptr, ptr %31, align 8, !tbaa !5
  %1519 = load i32, ptr %1518, align 4, !tbaa !9
  %1520 = add nsw i32 %1519, 1
  %1521 = shl i32 %1520, 2
  %1522 = add nsw i32 %1517, %1521
  %1523 = sub nsw i32 %1522, 5
  %1524 = sext i32 %1523 to i64
  %1525 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1524
  %1526 = load ptr, ptr %32, align 8, !tbaa !5
  %1527 = getelementptr inbounds float, ptr %1526, i64 1
  %1528 = load ptr, ptr %31, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %1498, ptr noundef %1499, ptr noundef %1500, ptr noundef @c_b42, ptr noundef %1513, ptr noundef %1514, ptr noundef %1525, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1527, ptr noundef %1528)
  %1529 = load ptr, ptr %31, align 8, !tbaa !5
  %1530 = load ptr, ptr %30, align 8, !tbaa !5
  %1531 = load ptr, ptr %32, align 8, !tbaa !5
  %1532 = getelementptr inbounds float, ptr %1531, i64 1
  %1533 = load ptr, ptr %31, align 8, !tbaa !5
  %1534 = load ptr, ptr %21, align 8, !tbaa !5
  %1535 = load ptr, ptr %29, align 8, !tbaa !5
  %1536 = load i32, ptr %1535, align 4, !tbaa !9
  %1537 = load ptr, ptr %29, align 8, !tbaa !5
  %1538 = load i32, ptr %1537, align 4, !tbaa !9
  %1539 = load ptr, ptr %31, align 8, !tbaa !5
  %1540 = load i32, ptr %1539, align 4, !tbaa !9
  %1541 = add nsw i32 %1538, %1540
  %1542 = load i32, ptr %35, align 4, !tbaa !9
  %1543 = mul nsw i32 %1541, %1542
  %1544 = add nsw i32 %1536, %1543
  %1545 = sext i32 %1544 to i64
  %1546 = getelementptr inbounds float, ptr %1534, i64 %1545
  %1547 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %1529, ptr noundef %1530, ptr noundef %1532, ptr noundef %1533, ptr noundef %1546, ptr noundef %1547)
  %1548 = load ptr, ptr %31, align 8, !tbaa !5
  %1549 = load ptr, ptr %30, align 8, !tbaa !5
  %1550 = load ptr, ptr %30, align 8, !tbaa !5
  %1551 = load ptr, ptr %23, align 8, !tbaa !5
  %1552 = load ptr, ptr %29, align 8, !tbaa !5
  %1553 = load i32, ptr %1552, align 4, !tbaa !9
  %1554 = load ptr, ptr %29, align 8, !tbaa !5
  %1555 = load i32, ptr %1554, align 4, !tbaa !9
  %1556 = load ptr, ptr %31, align 8, !tbaa !5
  %1557 = load i32, ptr %1556, align 4, !tbaa !9
  %1558 = add nsw i32 %1555, %1557
  %1559 = load i32, ptr %37, align 4, !tbaa !9
  %1560 = mul nsw i32 %1558, %1559
  %1561 = add nsw i32 %1553, %1560
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds float, ptr %1551, i64 %1562
  %1564 = load ptr, ptr %24, align 8, !tbaa !5
  %1565 = load ptr, ptr %31, align 8, !tbaa !5
  %1566 = load i32, ptr %1565, align 4, !tbaa !9
  %1567 = add nsw i32 %1566, 1
  %1568 = load ptr, ptr %31, align 8, !tbaa !5
  %1569 = load i32, ptr %1568, align 4, !tbaa !9
  %1570 = add nsw i32 %1569, 1
  %1571 = shl i32 %1570, 2
  %1572 = add nsw i32 %1567, %1571
  %1573 = sub nsw i32 %1572, 5
  %1574 = sext i32 %1573 to i64
  %1575 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 %1574
  %1576 = load ptr, ptr %32, align 8, !tbaa !5
  %1577 = getelementptr inbounds float, ptr %1576, i64 1
  %1578 = load ptr, ptr %31, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %1548, ptr noundef %1549, ptr noundef %1550, ptr noundef @c_b42, ptr noundef %1563, ptr noundef %1564, ptr noundef %1575, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1577, ptr noundef %1578)
  %1579 = load ptr, ptr %31, align 8, !tbaa !5
  %1580 = load ptr, ptr %30, align 8, !tbaa !5
  %1581 = load ptr, ptr %32, align 8, !tbaa !5
  %1582 = getelementptr inbounds float, ptr %1581, i64 1
  %1583 = load ptr, ptr %31, align 8, !tbaa !5
  %1584 = load ptr, ptr %23, align 8, !tbaa !5
  %1585 = load ptr, ptr %29, align 8, !tbaa !5
  %1586 = load i32, ptr %1585, align 4, !tbaa !9
  %1587 = load ptr, ptr %29, align 8, !tbaa !5
  %1588 = load i32, ptr %1587, align 4, !tbaa !9
  %1589 = load ptr, ptr %31, align 8, !tbaa !5
  %1590 = load i32, ptr %1589, align 4, !tbaa !9
  %1591 = add nsw i32 %1588, %1590
  %1592 = load i32, ptr %37, align 4, !tbaa !9
  %1593 = mul nsw i32 %1591, %1592
  %1594 = add nsw i32 %1586, %1593
  %1595 = sext i32 %1594 to i64
  %1596 = getelementptr inbounds float, ptr %1584, i64 %1595
  %1597 = load ptr, ptr %24, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %1579, ptr noundef %1580, ptr noundef %1582, ptr noundef %1583, ptr noundef %1596, ptr noundef %1597)
  %1598 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %1599 = getelementptr inbounds [16 x float], ptr %59, i64 0, i64 0
  %1600 = load ptr, ptr %32, align 8, !tbaa !5
  %1601 = getelementptr inbounds float, ptr %1600, i64 1
  call void @sgemm_(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1598, ptr noundef @c__4, ptr noundef %1599, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1601, ptr noundef %57)
  %1602 = load ptr, ptr %32, align 8, !tbaa !5
  %1603 = getelementptr inbounds float, ptr %1602, i64 1
  %1604 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %57, ptr noundef %1603, ptr noundef %57, ptr noundef %1604, ptr noundef @c__4)
  %1605 = load ptr, ptr %18, align 8, !tbaa !5
  %1606 = load i32, ptr %1605, align 4, !tbaa !9
  %1607 = icmp ne i32 %1606, 0
  br i1 %1607, label %1608, label %1636

1608:                                             ; preds = %1377
  %1609 = load ptr, ptr %20, align 8, !tbaa !5
  %1610 = load ptr, ptr %25, align 8, !tbaa !5
  %1611 = load ptr, ptr %29, align 8, !tbaa !5
  %1612 = load i32, ptr %1611, align 4, !tbaa !9
  %1613 = load i32, ptr %39, align 4, !tbaa !9
  %1614 = mul nsw i32 %1612, %1613
  %1615 = add nsw i32 %1614, 1
  %1616 = sext i32 %1615 to i64
  %1617 = getelementptr inbounds float, ptr %1610, i64 %1616
  %1618 = load ptr, ptr %26, align 8, !tbaa !5
  %1619 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %1620 = load ptr, ptr %32, align 8, !tbaa !5
  %1621 = getelementptr inbounds float, ptr %1620, i64 1
  %1622 = load ptr, ptr %20, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %1609, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1617, ptr noundef %1618, ptr noundef %1619, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1621, ptr noundef %1622)
  %1623 = load ptr, ptr %20, align 8, !tbaa !5
  %1624 = load ptr, ptr %32, align 8, !tbaa !5
  %1625 = getelementptr inbounds float, ptr %1624, i64 1
  %1626 = load ptr, ptr %20, align 8, !tbaa !5
  %1627 = load ptr, ptr %25, align 8, !tbaa !5
  %1628 = load ptr, ptr %29, align 8, !tbaa !5
  %1629 = load i32, ptr %1628, align 4, !tbaa !9
  %1630 = load i32, ptr %39, align 4, !tbaa !9
  %1631 = mul nsw i32 %1629, %1630
  %1632 = add nsw i32 %1631, 1
  %1633 = sext i32 %1632 to i64
  %1634 = getelementptr inbounds float, ptr %1627, i64 %1633
  %1635 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %1623, ptr noundef %57, ptr noundef %1625, ptr noundef %1626, ptr noundef %1634, ptr noundef %1635)
  br label %1636

1636:                                             ; preds = %1608, %1377
  %1637 = load ptr, ptr %19, align 8, !tbaa !5
  %1638 = load i32, ptr %1637, align 4, !tbaa !9
  %1639 = icmp ne i32 %1638, 0
  br i1 %1639, label %1640, label %1668

1640:                                             ; preds = %1636
  %1641 = load ptr, ptr %20, align 8, !tbaa !5
  %1642 = load ptr, ptr %27, align 8, !tbaa !5
  %1643 = load ptr, ptr %29, align 8, !tbaa !5
  %1644 = load i32, ptr %1643, align 4, !tbaa !9
  %1645 = load i32, ptr %41, align 4, !tbaa !9
  %1646 = mul nsw i32 %1644, %1645
  %1647 = add nsw i32 %1646, 1
  %1648 = sext i32 %1647 to i64
  %1649 = getelementptr inbounds float, ptr %1642, i64 %1648
  %1650 = load ptr, ptr %28, align 8, !tbaa !5
  %1651 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %1652 = load ptr, ptr %32, align 8, !tbaa !5
  %1653 = getelementptr inbounds float, ptr %1652, i64 1
  %1654 = load ptr, ptr %20, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %1641, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1649, ptr noundef %1650, ptr noundef %1651, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1653, ptr noundef %1654)
  %1655 = load ptr, ptr %20, align 8, !tbaa !5
  %1656 = load ptr, ptr %32, align 8, !tbaa !5
  %1657 = getelementptr inbounds float, ptr %1656, i64 1
  %1658 = load ptr, ptr %20, align 8, !tbaa !5
  %1659 = load ptr, ptr %27, align 8, !tbaa !5
  %1660 = load ptr, ptr %29, align 8, !tbaa !5
  %1661 = load i32, ptr %1660, align 4, !tbaa !9
  %1662 = load i32, ptr %41, align 4, !tbaa !9
  %1663 = mul nsw i32 %1661, %1662
  %1664 = add nsw i32 %1663, 1
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds float, ptr %1659, i64 %1665
  %1667 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %1655, ptr noundef %57, ptr noundef %1657, ptr noundef %1658, ptr noundef %1666, ptr noundef %1667)
  br label %1668

1668:                                             ; preds = %1640, %1636
  %1669 = load ptr, ptr %29, align 8, !tbaa !5
  %1670 = load i32, ptr %1669, align 4, !tbaa !9
  %1671 = load i32, ptr %57, align 4, !tbaa !9
  %1672 = add nsw i32 %1670, %1671
  store i32 %1672, ptr %56, align 4, !tbaa !9
  %1673 = load i32, ptr %56, align 4, !tbaa !9
  %1674 = load ptr, ptr %20, align 8, !tbaa !5
  %1675 = load i32, ptr %1674, align 4, !tbaa !9
  %1676 = icmp sle i32 %1673, %1675
  br i1 %1676, label %1677, label %1748

1677:                                             ; preds = %1668
  %1678 = load ptr, ptr %20, align 8, !tbaa !5
  %1679 = load i32, ptr %1678, align 4, !tbaa !9
  %1680 = load i32, ptr %56, align 4, !tbaa !9
  %1681 = sub nsw i32 %1679, %1680
  %1682 = add nsw i32 %1681, 1
  store i32 %1682, ptr %43, align 4, !tbaa !9
  %1683 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %1684 = load ptr, ptr %21, align 8, !tbaa !5
  %1685 = load ptr, ptr %29, align 8, !tbaa !5
  %1686 = load i32, ptr %1685, align 4, !tbaa !9
  %1687 = load i32, ptr %56, align 4, !tbaa !9
  %1688 = load i32, ptr %35, align 4, !tbaa !9
  %1689 = mul nsw i32 %1687, %1688
  %1690 = add nsw i32 %1686, %1689
  %1691 = sext i32 %1690 to i64
  %1692 = getelementptr inbounds float, ptr %1684, i64 %1691
  %1693 = load ptr, ptr %22, align 8, !tbaa !5
  %1694 = load ptr, ptr %32, align 8, !tbaa !5
  %1695 = getelementptr inbounds float, ptr %1694, i64 1
  call void @sgemm_(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %57, ptr noundef %43, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1683, ptr noundef @c__4, ptr noundef %1692, ptr noundef %1693, ptr noundef @c_b5, ptr noundef %1695, ptr noundef %57)
  %1696 = load ptr, ptr %20, align 8, !tbaa !5
  %1697 = load i32, ptr %1696, align 4, !tbaa !9
  %1698 = load i32, ptr %56, align 4, !tbaa !9
  %1699 = sub nsw i32 %1697, %1698
  %1700 = add nsw i32 %1699, 1
  store i32 %1700, ptr %43, align 4, !tbaa !9
  %1701 = load ptr, ptr %32, align 8, !tbaa !5
  %1702 = getelementptr inbounds float, ptr %1701, i64 1
  %1703 = load ptr, ptr %21, align 8, !tbaa !5
  %1704 = load ptr, ptr %29, align 8, !tbaa !5
  %1705 = load i32, ptr %1704, align 4, !tbaa !9
  %1706 = load i32, ptr %56, align 4, !tbaa !9
  %1707 = load i32, ptr %35, align 4, !tbaa !9
  %1708 = mul nsw i32 %1706, %1707
  %1709 = add nsw i32 %1705, %1708
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds float, ptr %1703, i64 %1710
  %1712 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %43, ptr noundef %1702, ptr noundef %57, ptr noundef %1711, ptr noundef %1712)
  %1713 = load ptr, ptr %20, align 8, !tbaa !5
  %1714 = load i32, ptr %1713, align 4, !tbaa !9
  %1715 = load i32, ptr %56, align 4, !tbaa !9
  %1716 = sub nsw i32 %1714, %1715
  %1717 = add nsw i32 %1716, 1
  store i32 %1717, ptr %43, align 4, !tbaa !9
  %1718 = getelementptr inbounds [16 x float], ptr %73, i64 0, i64 0
  %1719 = load ptr, ptr %23, align 8, !tbaa !5
  %1720 = load ptr, ptr %29, align 8, !tbaa !5
  %1721 = load i32, ptr %1720, align 4, !tbaa !9
  %1722 = load i32, ptr %56, align 4, !tbaa !9
  %1723 = load i32, ptr %37, align 4, !tbaa !9
  %1724 = mul nsw i32 %1722, %1723
  %1725 = add nsw i32 %1721, %1724
  %1726 = sext i32 %1725 to i64
  %1727 = getelementptr inbounds float, ptr %1719, i64 %1726
  %1728 = load ptr, ptr %24, align 8, !tbaa !5
  %1729 = load ptr, ptr %32, align 8, !tbaa !5
  %1730 = getelementptr inbounds float, ptr %1729, i64 1
  call void @sgemm_(ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %57, ptr noundef %43, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1718, ptr noundef @c__4, ptr noundef %1727, ptr noundef %1728, ptr noundef @c_b5, ptr noundef %1730, ptr noundef %57)
  %1731 = load ptr, ptr %20, align 8, !tbaa !5
  %1732 = load i32, ptr %1731, align 4, !tbaa !9
  %1733 = load i32, ptr %56, align 4, !tbaa !9
  %1734 = sub nsw i32 %1732, %1733
  %1735 = add nsw i32 %1734, 1
  store i32 %1735, ptr %43, align 4, !tbaa !9
  %1736 = load ptr, ptr %32, align 8, !tbaa !5
  %1737 = getelementptr inbounds float, ptr %1736, i64 1
  %1738 = load ptr, ptr %23, align 8, !tbaa !5
  %1739 = load ptr, ptr %29, align 8, !tbaa !5
  %1740 = load i32, ptr %1739, align 4, !tbaa !9
  %1741 = load i32, ptr %56, align 4, !tbaa !9
  %1742 = load i32, ptr %37, align 4, !tbaa !9
  %1743 = mul nsw i32 %1741, %1742
  %1744 = add nsw i32 %1740, %1743
  %1745 = sext i32 %1744 to i64
  %1746 = getelementptr inbounds float, ptr %1738, i64 %1745
  %1747 = load ptr, ptr %24, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %57, ptr noundef %43, ptr noundef %1737, ptr noundef %57, ptr noundef %1746, ptr noundef %1747)
  br label %1748

1748:                                             ; preds = %1677, %1668
  %1749 = load ptr, ptr %29, align 8, !tbaa !5
  %1750 = load i32, ptr %1749, align 4, !tbaa !9
  %1751 = sub nsw i32 %1750, 1
  store i32 %1751, ptr %56, align 4, !tbaa !9
  %1752 = load i32, ptr %56, align 4, !tbaa !9
  %1753 = icmp sgt i32 %1752, 0
  br i1 %1753, label %1754, label %1801

1754:                                             ; preds = %1748
  %1755 = load ptr, ptr %21, align 8, !tbaa !5
  %1756 = load ptr, ptr %29, align 8, !tbaa !5
  %1757 = load i32, ptr %1756, align 4, !tbaa !9
  %1758 = load i32, ptr %35, align 4, !tbaa !9
  %1759 = mul nsw i32 %1757, %1758
  %1760 = add nsw i32 %1759, 1
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds float, ptr %1755, i64 %1761
  %1763 = load ptr, ptr %22, align 8, !tbaa !5
  %1764 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %1765 = load ptr, ptr %32, align 8, !tbaa !5
  %1766 = getelementptr inbounds float, ptr %1765, i64 1
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %56, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1762, ptr noundef %1763, ptr noundef %1764, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1766, ptr noundef %56)
  %1767 = load ptr, ptr %32, align 8, !tbaa !5
  %1768 = getelementptr inbounds float, ptr %1767, i64 1
  %1769 = load ptr, ptr %21, align 8, !tbaa !5
  %1770 = load ptr, ptr %29, align 8, !tbaa !5
  %1771 = load i32, ptr %1770, align 4, !tbaa !9
  %1772 = load i32, ptr %35, align 4, !tbaa !9
  %1773 = mul nsw i32 %1771, %1772
  %1774 = add nsw i32 %1773, 1
  %1775 = sext i32 %1774 to i64
  %1776 = getelementptr inbounds float, ptr %1769, i64 %1775
  %1777 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %56, ptr noundef %57, ptr noundef %1768, ptr noundef %56, ptr noundef %1776, ptr noundef %1777)
  %1778 = load ptr, ptr %23, align 8, !tbaa !5
  %1779 = load ptr, ptr %29, align 8, !tbaa !5
  %1780 = load i32, ptr %1779, align 4, !tbaa !9
  %1781 = load i32, ptr %37, align 4, !tbaa !9
  %1782 = mul nsw i32 %1780, %1781
  %1783 = add nsw i32 %1782, 1
  %1784 = sext i32 %1783 to i64
  %1785 = getelementptr inbounds float, ptr %1778, i64 %1784
  %1786 = load ptr, ptr %24, align 8, !tbaa !5
  %1787 = getelementptr inbounds [16 x float], ptr %75, i64 0, i64 0
  %1788 = load ptr, ptr %32, align 8, !tbaa !5
  %1789 = getelementptr inbounds float, ptr %1788, i64 1
  call void @sgemm_(ptr noundef @.str.3, ptr noundef @.str.3, ptr noundef %56, ptr noundef %57, ptr noundef %57, ptr noundef @c_b42, ptr noundef %1785, ptr noundef %1786, ptr noundef %1787, ptr noundef @c__4, ptr noundef @c_b5, ptr noundef %1789, ptr noundef %56)
  %1790 = load ptr, ptr %32, align 8, !tbaa !5
  %1791 = getelementptr inbounds float, ptr %1790, i64 1
  %1792 = load ptr, ptr %23, align 8, !tbaa !5
  %1793 = load ptr, ptr %29, align 8, !tbaa !5
  %1794 = load i32, ptr %1793, align 4, !tbaa !9
  %1795 = load i32, ptr %37, align 4, !tbaa !9
  %1796 = mul nsw i32 %1794, %1795
  %1797 = add nsw i32 %1796, 1
  %1798 = sext i32 %1797 to i64
  %1799 = getelementptr inbounds float, ptr %1792, i64 %1798
  %1800 = load ptr, ptr %24, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str, ptr noundef %56, ptr noundef %57, ptr noundef %1791, ptr noundef %56, ptr noundef %1799, ptr noundef %1800)
  br label %1801

1801:                                             ; preds = %1754, %1748
  store i32 1, ptr %82, align 4
  br label %1804

1802:                                             ; preds = %1088, %983, %933, %917, %881, %872, %863, %831, %822, %788, %779, %494, %395
  %1803 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 1, ptr %1803, align 4, !tbaa !9
  store i32 1, ptr %82, align 4
  br label %1804

1804:                                             ; preds = %1802, %1801, %673, %197, %153, %137
  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 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 64, 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 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 64, 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 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 16, 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 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  ret void
}

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

declare void @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 void @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 void @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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}


; 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 i32, align 4
@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 i32, align 4
@c__2 = external hidden global i32, align 4
@.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 i32, align 4
@.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 void @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 i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca float, align 4
  %21 = alloca i32, align 4
  %22 = alloca [4 x float], align 16
  %23 = alloca float, align 4
  %24 = alloca [4 x float], align 16
  %25 = alloca [16 x float], align 16
  %26 = alloca [16 x float], align 16
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca [16 x float], align 16
  %32 = alloca [16 x float], align 16
  %33 = alloca float, align 4
  %34 = alloca [16 x float], align 16
  %35 = alloca i32, align 4
  %36 = alloca [16 x float], align 16
  %37 = alloca [4 x i32], align 16
  %38 = alloca [2 x float], align 4
  %39 = alloca [2 x float], align 4
  %40 = alloca [2 x float], align 4
  %41 = alloca [16 x float], align 16
  %42 = alloca float, align 4
  %43 = alloca [16 x float], align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %43) #6
  %44 = load i32, ptr %4, align 4, !tbaa !5
  %narrow = xor i32 %44, -1
  %45 = sext i32 %narrow to i64
  %46 = getelementptr inbounds float, ptr %3, i64 %45
  %47 = load i32, ptr %6, align 4, !tbaa !5
  %narrow473 = xor i32 %47, -1
  %48 = sext i32 %narrow473 to i64
  %49 = getelementptr inbounds float, ptr %5, i64 %48
  %50 = load i32, ptr %8, align 4, !tbaa !5
  %narrow474 = xor i32 %50, -1
  %51 = sext i32 %narrow474 to i64
  %52 = getelementptr inbounds float, ptr %7, i64 %51
  %53 = load i32, ptr %10, align 4, !tbaa !5
  %narrow475 = xor i32 %53, -1
  %54 = sext i32 %narrow475 to i64
  %55 = getelementptr inbounds float, ptr %9, i64 %54
  %56 = getelementptr inbounds i8, ptr %14, i64 -4
  store i32 0, ptr %16, align 4, !tbaa !5
  %57 = load i32, ptr %2, align 4, !tbaa !5
  %58 = icmp slt i32 %57, 2
  br i1 %58, label %753, label %59

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

62:                                               ; preds = %59
  %63 = load i32, ptr %13, align 4, !tbaa !5
  %64 = icmp slt i32 %63, 1
  %65 = icmp ugt i32 %60, %57
  %or.cond497 = or i1 %65, %64
  br i1 %or.cond497, label %753, label %66

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

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

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

83:                                               ; preds = %70
  call void @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 %41, ptr noundef nonnull @c__4) #6
  call void @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 %43, ptr noundef nonnull @c__4) #6
  %84 = load i32, ptr %11, align 4, !tbaa !5
  %85 = add i32 %44, 1
  %86 = mul i32 %84, %85
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds float, ptr %46, i64 %87
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %88, ptr noundef nonnull %4, ptr noundef nonnull %31, ptr noundef nonnull @c__4) #6
  %89 = load i32, ptr %11, align 4, !tbaa !5
  %90 = add i32 %47, 1
  %91 = mul i32 %89, %90
  %92 = sext i32 %91 to i64
  %93 = getelementptr inbounds float, ptr %49, i64 %92
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %93, ptr noundef nonnull %6, ptr noundef nonnull %32, ptr noundef nonnull @c__4) #6
  %94 = call float @slamch_(ptr noundef nonnull @.str.1) #6
  %95 = call float @slamch_(ptr noundef nonnull @.str.2) #6
  %96 = fdiv float %95, %94
  store float 0.000000e+00, ptr %42, align 4, !tbaa !9
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %30) #6
  %97 = load i32, ptr %30, align 4, !tbaa !5
  %98 = mul nsw i32 %97, %97
  store i32 %98, ptr %18, align 4, !tbaa !5
  call void @slassq_(ptr noundef nonnull %18, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %23) #6
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %30) #6
  %99 = load i32, ptr %30, align 4, !tbaa !5
  %100 = mul nsw i32 %99, %99
  store i32 %100, ptr %18, align 4, !tbaa !5
  call void @slassq_(ptr noundef nonnull %18, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %23) #6
  %101 = load float, ptr %42, align 4, !tbaa !9
  %102 = fpext float %101 to double
  %103 = load float, ptr %23, align 4, !tbaa !9
  %104 = fpext float %103 to double
  %105 = call double @sqrt(double noundef %104) #6
  %106 = fmul double %105, %102
  %107 = fptrunc double %106 to float
  %108 = fmul float %94, 2.000000e+01
  %109 = fmul float %108, %107
  %110 = fcmp oge float %109, %96
  %111 = select i1 %110, float %109, float %96
  %112 = load i32, ptr %30, align 4, !tbaa !5
  %113 = icmp eq i32 %112, 2
  br i1 %113, label %114, label %284

114:                                              ; preds = %83
  %115 = getelementptr inbounds i8, ptr %31, i64 20
  %116 = load float, ptr %115, align 4
  %117 = load float, ptr %32, align 16, !tbaa !9
  %118 = getelementptr inbounds i8, ptr %32, i64 20
  %119 = load float, ptr %118, align 4
  %120 = load float, ptr %31, align 16, !tbaa !9
  %121 = fneg float %119
  %122 = fmul float %120, %121
  %123 = call float @llvm.fmuladd.f32(float %116, float %117, float %122)
  store float %123, ptr %27, align 4, !tbaa !9
  %124 = getelementptr inbounds i8, ptr %32, i64 16
  %125 = load float, ptr %124, align 16, !tbaa !9
  %126 = getelementptr inbounds i8, ptr %31, i64 16
  %127 = load float, ptr %126, align 16, !tbaa !9
  %128 = fmul float %127, %121
  %129 = call float @llvm.fmuladd.f32(float %116, float %125, float %128)
  store float %129, ptr %28, align 4, !tbaa !9
  %130 = fcmp oge float %119, 0.000000e+00
  %131 = select i1 %130, float %119, float %121
  %132 = fcmp oge float %116, 0.000000e+00
  %133 = fneg float %116
  %134 = select i1 %132, float %116, float %133
  %135 = getelementptr inbounds i8, ptr %43, i64 16
  call void @slartg_(ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef nonnull %135, ptr noundef nonnull %43, ptr noundef nonnull %20) #6
  %136 = load float, ptr %135, align 16, !tbaa !9
  %137 = fneg float %136
  %138 = getelementptr inbounds i8, ptr %43, i64 4
  store float %137, ptr %138, align 4, !tbaa !9
  %139 = load float, ptr %43, align 16, !tbaa !9
  %140 = getelementptr inbounds i8, ptr %43, i64 20
  store float %139, ptr %140, align 4, !tbaa !9
  call void @srot_(ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull @c__1, ptr noundef nonnull %126, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %138) #6
  call void @srot_(ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef nonnull %124, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %138) #6
  %141 = fcmp ult float %134, %131
  %142 = getelementptr inbounds i8, ptr %41, i64 4
  %. = select i1 %141, ptr %32, ptr %31
  %..sroa.sel.v = select i1 %141, ptr %32, ptr %31
  %..sroa.sel = getelementptr inbounds i8, ptr %..sroa.sel.v, i64 4
  call void @slartg_(ptr noundef nonnull %., ptr noundef nonnull %..sroa.sel, ptr noundef nonnull %41, ptr noundef nonnull %142, ptr noundef nonnull %20) #6
  %143 = getelementptr inbounds i8, ptr %31, i64 4
  %144 = getelementptr inbounds i8, ptr %41, i64 4
  call void @srot_(ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef nonnull %143, ptr noundef nonnull @c__4, ptr noundef nonnull %41, ptr noundef nonnull %144) #6
  %145 = getelementptr inbounds i8, ptr %32, i64 4
  call void @srot_(ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull %145, ptr noundef nonnull @c__4, ptr noundef nonnull %41, ptr noundef nonnull %144) #6
  %146 = load float, ptr %41, align 16, !tbaa !9
  %147 = getelementptr inbounds i8, ptr %41, i64 20
  store float %146, ptr %147, align 4, !tbaa !9
  %148 = load float, ptr %144, align 4, !tbaa !9
  %149 = fneg float %148
  %150 = getelementptr inbounds i8, ptr %41, i64 16
  store float %149, ptr %150, align 16, !tbaa !9
  %151 = load float, ptr %143, align 4
  %152 = fcmp oge float %151, 0.000000e+00
  %153 = fneg float %151
  %154 = select i1 %152, float %151, float %153
  %155 = load float, ptr %145, align 4
  %156 = fcmp oge float %155, 0.000000e+00
  %157 = fneg float %155
  %158 = select i1 %156, float %155, float %157
  %159 = fadd float %154, %158
  %160 = fcmp ugt float %159, %111
  br i1 %160, label %752, label %161

161:                                              ; preds = %114
  %162 = load i32, ptr %11, align 4, !tbaa !5
  %163 = mul i32 %162, %85
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds float, ptr %46, i64 %164
  %166 = load i32, ptr %30, align 4, !tbaa !5
  %167 = mul nsw i32 %166, %166
  %168 = zext nneg i32 %167 to i64
  %169 = getelementptr inbounds float, ptr %56, i64 %168
  %170 = getelementptr inbounds i8, ptr %169, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %165, ptr noundef nonnull %4, ptr noundef nonnull %170, ptr noundef nonnull %30) #6
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %30) #6
  %171 = load i32, ptr %30, align 4, !tbaa !5
  %172 = mul nsw i32 %171, %171
  %173 = zext nneg i32 %172 to i64
  %174 = getelementptr inbounds float, ptr %56, i64 %173
  %175 = getelementptr inbounds i8, ptr %174, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b48, ptr noundef %14, ptr noundef nonnull %30, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b42, ptr noundef nonnull %175, ptr noundef nonnull %30) #6
  store float 0.000000e+00, ptr %42, align 4, !tbaa !9
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  %176 = load i32, ptr %30, align 4, !tbaa !5
  %177 = mul nsw i32 %176, %176
  store i32 %177, ptr %18, align 4, !tbaa !5
  %178 = zext nneg i32 %177 to i64
  %179 = getelementptr inbounds float, ptr %56, i64 %178
  %180 = getelementptr inbounds i8, ptr %179, i64 4
  call void @slassq_(ptr noundef nonnull %18, ptr noundef nonnull %180, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %23) #6
  %181 = load i32, ptr %11, align 4, !tbaa !5
  %182 = mul i32 %181, %90
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds float, ptr %49, i64 %183
  %185 = load i32, ptr %30, align 4, !tbaa !5
  %186 = mul nsw i32 %185, %185
  %187 = zext nneg i32 %186 to i64
  %188 = getelementptr inbounds float, ptr %56, i64 %187
  %189 = getelementptr inbounds i8, ptr %188, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %184, ptr noundef nonnull %6, ptr noundef nonnull %189, ptr noundef nonnull %30) #6
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %30) #6
  %190 = load i32, ptr %30, align 4, !tbaa !5
  %191 = mul nsw i32 %190, %190
  %192 = zext nneg i32 %191 to i64
  %193 = getelementptr inbounds float, ptr %56, i64 %192
  %194 = getelementptr inbounds i8, ptr %193, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b48, ptr noundef %14, ptr noundef nonnull %30, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b42, ptr noundef nonnull %194, ptr noundef nonnull %30) #6
  %195 = load i32, ptr %30, align 4, !tbaa !5
  %196 = mul nsw i32 %195, %195
  store i32 %196, ptr %18, align 4, !tbaa !5
  %197 = zext nneg i32 %196 to i64
  %198 = getelementptr inbounds float, ptr %56, i64 %197
  %199 = getelementptr inbounds i8, ptr %198, i64 4
  call void @slassq_(ptr noundef nonnull %18, ptr noundef nonnull %199, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %23) #6
  %200 = load float, ptr %42, align 4, !tbaa !9
  %201 = fpext float %200 to double
  %202 = load float, ptr %23, align 4, !tbaa !9
  %203 = fpext float %202 to double
  %204 = call double @sqrt(double noundef %203) #6
  %205 = fmul double %204, %201
  %206 = fptrunc double %205 to float
  %207 = fcmp ult float %111, %206
  br i1 %207, label %752, label %208

208:                                              ; preds = %161
  %209 = load i32, ptr %11, align 4, !tbaa !5
  %210 = add nsw i32 %209, 1
  store i32 %210, ptr %18, align 4, !tbaa !5
  %211 = mul nsw i32 %209, %44
  %212 = sext i32 %211 to i64
  %213 = getelementptr float, ptr %46, i64 %212
  %214 = getelementptr i8, ptr %213, i64 4
  %215 = mul nsw i32 %210, %44
  %216 = sext i32 %215 to i64
  %217 = getelementptr float, ptr %46, i64 %216
  %218 = getelementptr i8, ptr %217, i64 4
  call void @srot_(ptr noundef nonnull %18, ptr noundef %214, ptr noundef nonnull @c__1, ptr noundef %218, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %138) #6
  %219 = load i32, ptr %11, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr %18, align 4, !tbaa !5
  %221 = mul nsw i32 %219, %47
  %222 = sext i32 %221 to i64
  %223 = getelementptr float, ptr %49, i64 %222
  %224 = getelementptr i8, ptr %223, i64 4
  %225 = mul nsw i32 %220, %47
  %226 = sext i32 %225 to i64
  %227 = getelementptr float, ptr %49, i64 %226
  %228 = getelementptr i8, ptr %227, i64 4
  call void @srot_(ptr noundef nonnull %18, ptr noundef %224, ptr noundef nonnull @c__1, ptr noundef %228, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %138) #6
  %229 = load i32, ptr %2, align 4, !tbaa !5
  %230 = load i32, ptr %11, align 4, !tbaa !5
  %231 = add i32 %229, 1
  %232 = sub i32 %231, %230
  store i32 %232, ptr %18, align 4, !tbaa !5
  %233 = add i32 %44, 1
  %234 = mul i32 %230, %233
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds float, ptr %46, i64 %235
  %237 = add i32 %234, 1
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds float, ptr %46, i64 %238
  call void @srot_(ptr noundef nonnull %18, ptr noundef %236, ptr noundef nonnull %4, ptr noundef %239, ptr noundef nonnull %4, ptr noundef nonnull %41, ptr noundef nonnull %144) #6
  %240 = load i32, ptr %2, align 4, !tbaa !5
  %241 = load i32, ptr %11, align 4, !tbaa !5
  %242 = add i32 %240, 1
  %243 = sub i32 %242, %241
  store i32 %243, ptr %18, align 4, !tbaa !5
  %244 = add i32 %47, 1
  %245 = mul i32 %241, %244
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds float, ptr %49, i64 %246
  %248 = add i32 %245, 1
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds float, ptr %49, i64 %249
  call void @srot_(ptr noundef nonnull %18, ptr noundef %247, ptr noundef nonnull %6, ptr noundef %250, ptr noundef nonnull %6, ptr noundef nonnull %41, ptr noundef nonnull %144) #6
  %251 = load i32, ptr %11, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  %253 = mul nsw i32 %251, %44
  %254 = add nsw i32 %252, %253
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds float, ptr %46, i64 %255
  store float 0.000000e+00, ptr %256, align 4, !tbaa !9
  %257 = mul nsw i32 %251, %47
  %258 = add nsw i32 %252, %257
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds float, ptr %49, i64 %259
  store float 0.000000e+00, ptr %260, align 4, !tbaa !9
  %261 = load i32, ptr %1, align 4, !tbaa !5
  %.not494 = icmp eq i32 %261, 0
  br i1 %.not494, label %271, label %262

262:                                              ; preds = %208
  %263 = mul nsw i32 %251, %53
  %264 = sext i32 %263 to i64
  %265 = getelementptr float, ptr %55, i64 %264
  %266 = getelementptr i8, ptr %265, i64 4
  %267 = mul nsw i32 %252, %53
  %268 = sext i32 %267 to i64
  %269 = getelementptr float, ptr %55, i64 %268
  %270 = getelementptr i8, ptr %269, i64 4
  call void @srot_(ptr noundef nonnull %2, ptr noundef %266, ptr noundef nonnull @c__1, ptr noundef %270, ptr noundef nonnull @c__1, ptr noundef nonnull %43, ptr noundef nonnull %138) #6
  br label %271

271:                                              ; preds = %262, %208
  %272 = load i32, ptr %0, align 4, !tbaa !5
  %.not495 = icmp eq i32 %272, 0
  br i1 %.not495, label %753, label %273

273:                                              ; preds = %271
  %274 = load i32, ptr %11, align 4, !tbaa !5
  %275 = mul nsw i32 %274, %50
  %276 = sext i32 %275 to i64
  %277 = getelementptr float, ptr %52, i64 %276
  %278 = getelementptr i8, ptr %277, i64 4
  %279 = add nsw i32 %274, 1
  %280 = mul nsw i32 %279, %50
  %281 = sext i32 %280 to i64
  %282 = getelementptr float, ptr %52, i64 %281
  %283 = getelementptr i8, ptr %282, i64 4
  call void @srot_(ptr noundef nonnull %2, ptr noundef %278, ptr noundef nonnull @c__1, ptr noundef %283, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef nonnull %144) #6
  br label %753

284:                                              ; preds = %83
  %285 = load i32, ptr %12, align 4, !tbaa !5
  %286 = shl i32 %285, 2
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %287
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %288, ptr noundef nonnull @c__4, ptr noundef nonnull %41, ptr noundef nonnull @c__4) #6
  %289 = load i32, ptr %12, align 4, !tbaa !5
  %290 = shl i32 %289, 2
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds [16 x float], ptr %31, i64 0, i64 %291
  %293 = load i32, ptr %13, align 4, !tbaa !5
  %294 = add i32 %293, %290
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds [16 x float], ptr %43, i64 0, i64 %295
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %292, ptr noundef nonnull @c__4, ptr noundef nonnull %296, ptr noundef nonnull @c__4) #6
  %297 = load i32, ptr %12, align 4, !tbaa !5
  %298 = add nsw i32 %297, 1
  %299 = shl i32 %298, 2
  %300 = mul i32 %298, 5
  %301 = add nsw i32 %300, -5
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds [16 x float], ptr %31, i64 0, i64 %302
  %304 = load i32, ptr %13, align 4, !tbaa !5
  %305 = add i32 %304, -4
  %306 = add i32 %305, %299
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds [16 x float], ptr %43, i64 0, i64 %307
  %309 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %302
  call void @stgsy2_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef nonnull %303, ptr noundef nonnull @c__4, ptr noundef nonnull %308, ptr noundef nonnull @c__4, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull %309, ptr noundef nonnull @c__4, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %33, ptr noundef nonnull %23, ptr noundef nonnull %42, ptr noundef nonnull %37, ptr noundef nonnull %21, ptr noundef nonnull %35) #6
  %310 = load i32, ptr %13, align 4, !tbaa !5
  store i32 %310, ptr %18, align 4, !tbaa !5
  %.not504 = icmp slt i32 %310, 1
  br i1 %.not504, label %._crit_edge, label %.lr.ph

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

._crit_edge:                                      ; preds = %.lr.ph, %284
  call void @sgeqr2_(ptr noundef nonnull %30, ptr noundef nonnull %13, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %22, ptr noundef %14, ptr noundef nonnull %35) #6
  %325 = load i32, ptr %35, align 4, !tbaa !5
  %.not476 = icmp eq i32 %325, 0
  br i1 %.not476, label %326, label %752

326:                                              ; preds = %._crit_edge
  call void @sorg2r_(ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %13, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %22, ptr noundef %14, ptr noundef nonnull %35) #6
  %327 = load i32, ptr %35, align 4, !tbaa !5
  %.not477 = icmp eq i32 %327, 0
  br i1 %.not477, label %328, label %752

328:                                              ; preds = %326
  %329 = load i32, ptr %12, align 4, !tbaa !5
  store i32 %329, ptr %18, align 4, !tbaa !5
  %.not479506 = icmp slt i32 %329, 1
  %.pre = load i32, ptr %13, align 4, !tbaa !5
  br i1 %.not479506, label %._crit_edge510, label %.lr.ph509

.lr.ph509:                                        ; preds = %328
  %330 = load float, ptr %33, align 4, !tbaa !9
  %331 = add nuw i32 %329, 1
  %332 = zext nneg i32 %329 to i64
  %xtraiter = and i64 %332, 1
  %333 = icmp eq i32 %329, 1
  br i1 %333, label %._crit_edge510.loopexit.unr-lcssa, label %.lr.ph509.new

.lr.ph509.new:                                    ; preds = %.lr.ph509
  %unroll_iter = and i64 %332, 2147483646
  br label %334

334:                                              ; preds = %334, %.lr.ph509.new
  %indvars.iv = phi i64 [ 1, %.lr.ph509.new ], [ %indvars.iv.next.1, %334 ]
  %niter = phi i64 [ 0, %.lr.ph509.new ], [ %niter.next.1, %334 ]
  %335 = trunc nuw nsw i64 %indvars.iv to i32
  %336 = shl i32 %335, 2
  %337 = trunc i64 %indvars.iv to i32
  %338 = add i32 %337, -5
  %339 = add i32 %338, %336
  %340 = add i32 %339, %.pre
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds [16 x float], ptr %43, i64 0, i64 %341
  store float %330, ptr %342, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %343 = trunc nuw nsw i64 %indvars.iv.next to i32
  %344 = shl i32 %343, 2
  %345 = trunc i64 %indvars.iv.next to i32
  %346 = add i32 %345, -5
  %347 = add i32 %346, %344
  %348 = add i32 %347, %.pre
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds [16 x float], ptr %43, i64 0, i64 %349
  store float %330, ptr %350, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 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_edge510.loopexit.unr-lcssa, label %334, !llvm.loop !13

._crit_edge510.loopexit.unr-lcssa:                ; preds = %334, %.lr.ph509
  %indvars.iv.unr = phi i64 [ 1, %.lr.ph509 ], [ %indvars.iv.next.1, %334 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge510, label %._crit_edge510.loopexit.epilog-lcssa

._crit_edge510.loopexit.epilog-lcssa:             ; preds = %._crit_edge510.loopexit.unr-lcssa
  %351 = trunc nuw nsw i64 %indvars.iv.unr to i32
  %352 = shl i32 %351, 2
  %353 = trunc i64 %indvars.iv.unr to i32
  %354 = add i32 %353, -5
  %355 = add i32 %354, %352
  %356 = add i32 %355, %.pre
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds [16 x float], ptr %43, i64 0, i64 %357
  store float %330, ptr %358, align 4, !tbaa !9
  br label %._crit_edge510

._crit_edge510:                                   ; preds = %._crit_edge510.loopexit.epilog-lcssa, %._crit_edge510.loopexit.unr-lcssa, %328
  %storemerge478.lcssa = phi i32 [ 1, %328 ], [ %331, %._crit_edge510.loopexit.unr-lcssa ], [ %331, %._crit_edge510.loopexit.epilog-lcssa ]
  store i32 %storemerge478.lcssa, ptr %29, align 4, !tbaa !5
  %359 = sext i32 %.pre to i64
  %360 = getelementptr inbounds [16 x float], ptr %43, i64 0, i64 %359
  call void @sgerq2_(ptr noundef nonnull %12, ptr noundef nonnull %30, ptr noundef nonnull %360, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef %14, ptr noundef nonnull %35) #6
  %361 = load i32, ptr %35, align 4, !tbaa !5
  %.not480 = icmp eq i32 %361, 0
  br i1 %.not480, label %362, label %752

362:                                              ; preds = %._crit_edge510
  call void @sorgr2_(ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %12, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef %14, ptr noundef nonnull %35) #6
  %363 = load i32, ptr %35, align 4, !tbaa !5
  %.not481 = icmp eq i32 %363, 0
  br i1 %.not481, label %364, label %752

364:                                              ; preds = %362
  call void @sgemm_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %30) #6
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef %14, ptr noundef nonnull %30, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %31, ptr noundef nonnull @c__4) #6
  call void @sgemm_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %30) #6
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef %14, ptr noundef nonnull %30, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %32, ptr noundef nonnull @c__4) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef nonnull %25, ptr noundef nonnull @c__4) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull %26, ptr noundef nonnull @c__4) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull %36, ptr noundef nonnull @c__4) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %34, ptr noundef nonnull @c__4) #6
  call void @sgerq2_(ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef %14, ptr noundef nonnull %35) #6
  %365 = load i32, ptr %35, align 4, !tbaa !5
  %.not482 = icmp eq i32 %365, 0
  br i1 %.not482, label %366, label %752

366:                                              ; preds = %364
  call void @sormr2_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.4, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %35) #6
  %367 = load i32, ptr %35, align 4, !tbaa !5
  %.not483 = icmp eq i32 %367, 0
  br i1 %.not483, label %368, label %752

368:                                              ; preds = %366
  call void @sormr2_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull %24, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %35) #6
  %369 = load i32, ptr %35, align 4, !tbaa !5
  %.not484 = icmp eq i32 %369, 0
  br i1 %.not484, label %370, label %752

370:                                              ; preds = %368
  store float 0.000000e+00, ptr %42, align 4, !tbaa !9
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  %371 = load i32, ptr %13, align 4, !tbaa !5
  store i32 %371, ptr %18, align 4, !tbaa !5
  %.not486511 = icmp slt i32 %371, 1
  br i1 %.not486511, label %._crit_edge515, label %.lr.ph514

.lr.ph514:                                        ; preds = %370, %.lr.ph514
  %372 = phi i32 [ %379, %.lr.ph514 ], [ 1, %370 ]
  %373 = load i32, ptr %13, align 4, !tbaa !5
  %374 = shl i32 %372, 2
  %375 = add i32 %374, -4
  %376 = add i32 %375, %373
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds [16 x float], ptr %31, i64 0, i64 %377
  call void @slassq_(ptr noundef nonnull %12, ptr noundef nonnull %378, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %23) #6
  %379 = add nuw nsw i32 %372, 1
  %380 = load i32, ptr %18, align 4, !tbaa !5
  %.not486.not = icmp slt i32 %372, %380
  br i1 %.not486.not, label %.lr.ph514, label %._crit_edge515.loopexit, !llvm.loop !14

._crit_edge515.loopexit:                          ; preds = %.lr.ph514
  %.pre522 = load float, ptr %42, align 4, !tbaa !9
  %.pre523 = load float, ptr %23, align 4, !tbaa !9
  %381 = fpext float %.pre522 to double
  %382 = fpext float %.pre523 to double
  br label %._crit_edge515

._crit_edge515:                                   ; preds = %._crit_edge515.loopexit, %370
  %383 = phi double [ %382, %._crit_edge515.loopexit ], [ 1.000000e+00, %370 ]
  %384 = phi double [ %381, %._crit_edge515.loopexit ], [ 0.000000e+00, %370 ]
  %385 = call double @sqrt(double noundef %383) #6
  %386 = fmul double %385, %384
  %387 = fptrunc double %386 to float
  call void @sgeqr2_(ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %26, ptr noundef nonnull @c__4, ptr noundef nonnull %22, ptr noundef %14, ptr noundef nonnull %35) #6
  %388 = load i32, ptr %35, align 4, !tbaa !5
  %.not487 = icmp eq i32 %388, 0
  br i1 %.not487, label %389, label %752

389:                                              ; preds = %._crit_edge515
  call void @sorm2r_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.4, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %26, ptr noundef nonnull @c__4, ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %16) #6
  call void @sorm2r_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %26, ptr noundef nonnull @c__4, ptr noundef nonnull %22, ptr noundef nonnull %34, ptr noundef nonnull @c__4, ptr noundef %14, ptr noundef nonnull %16) #6
  %390 = load i32, ptr %35, align 4, !tbaa !5
  %.not488 = icmp eq i32 %390, 0
  br i1 %.not488, label %391, label %752

391:                                              ; preds = %389
  store float 0.000000e+00, ptr %42, align 4, !tbaa !9
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  %392 = load i32, ptr %13, align 4, !tbaa !5
  store i32 %392, ptr %18, align 4, !tbaa !5
  store i32 1, ptr %29, align 4, !tbaa !5
  %.not490516 = icmp slt i32 %392, 1
  br i1 %.not490516, label %._crit_edge520, label %.lr.ph519

.lr.ph519:                                        ; preds = %391, %.lr.ph519
  %393 = phi i32 [ %400, %.lr.ph519 ], [ 1, %391 ]
  %394 = load i32, ptr %13, align 4, !tbaa !5
  %395 = shl i32 %393, 2
  %396 = add i32 %395, -4
  %397 = add i32 %396, %394
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds [16 x float], ptr %25, i64 0, i64 %398
  call void @slassq_(ptr noundef nonnull %12, ptr noundef nonnull %399, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %23) #6
  %400 = add nuw nsw i32 %393, 1
  store i32 %400, ptr %29, align 4, !tbaa !5
  %401 = load i32, ptr %18, align 4, !tbaa !5
  %.not490.not = icmp slt i32 %393, %401
  br i1 %.not490.not, label %.lr.ph519, label %._crit_edge520.loopexit, !llvm.loop !15

._crit_edge520.loopexit:                          ; preds = %.lr.ph519
  %.pre524 = load float, ptr %42, align 4, !tbaa !9
  %.pre525 = load float, ptr %23, align 4, !tbaa !9
  %402 = fpext float %.pre524 to double
  %403 = fpext float %.pre525 to double
  br label %._crit_edge520

._crit_edge520:                                   ; preds = %._crit_edge520.loopexit, %391
  %404 = phi double [ %403, %._crit_edge520.loopexit ], [ 1.000000e+00, %391 ]
  %405 = phi double [ %402, %._crit_edge520.loopexit ], [ 0.000000e+00, %391 ]
  %406 = call double @sqrt(double noundef %404) #6
  %407 = fmul double %406, %405
  %408 = fptrunc double %407 to float
  %409 = fcmp ugt float %408, %387
  %410 = fcmp ult float %111, %408
  %or.cond = select i1 %409, i1 true, i1 %410
  br i1 %or.cond, label %412, label %411

411:                                              ; preds = %._crit_edge520
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %25, ptr noundef nonnull @c__4, ptr noundef nonnull %31, ptr noundef nonnull @c__4) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %26, ptr noundef nonnull @c__4, ptr noundef nonnull %32, ptr noundef nonnull @c__4) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %36, ptr noundef nonnull @c__4, ptr noundef nonnull %43, ptr noundef nonnull @c__4) #6
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %34, ptr noundef nonnull @c__4, ptr noundef nonnull %41, ptr noundef nonnull @c__4) #6
  br label %414

412:                                              ; preds = %._crit_edge520
  %413 = fcmp ugt float %111, %387
  br i1 %413, label %414, label %752

414:                                              ; preds = %412, %411
  %415 = load i32, ptr %30, align 4, !tbaa !5
  %416 = add nsw i32 %415, -1
  store i32 %416, ptr %18, align 4, !tbaa !5
  store i32 %416, ptr %19, align 4, !tbaa !5
  %417 = getelementptr inbounds i8, ptr %32, i64 4
  call void @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 %417, ptr noundef nonnull @c__4) #6
  %418 = load i32, ptr %11, align 4, !tbaa !5
  %419 = mul i32 %418, %85
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds float, ptr %46, i64 %420
  %422 = load i32, ptr %30, align 4, !tbaa !5
  %423 = mul nsw i32 %422, %422
  %424 = zext nneg i32 %423 to i64
  %425 = getelementptr inbounds float, ptr %56, i64 %424
  %426 = getelementptr inbounds i8, ptr %425, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %421, ptr noundef nonnull %4, ptr noundef nonnull %426, ptr noundef nonnull %30) #6
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %30) #6
  %427 = load i32, ptr %30, align 4, !tbaa !5
  %428 = mul nsw i32 %427, %427
  %429 = zext nneg i32 %428 to i64
  %430 = getelementptr inbounds float, ptr %56, i64 %429
  %431 = getelementptr inbounds i8, ptr %430, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b48, ptr noundef %14, ptr noundef nonnull %30, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b42, ptr noundef nonnull %431, ptr noundef nonnull %30) #6
  store float 0.000000e+00, ptr %42, align 4, !tbaa !9
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  %432 = load i32, ptr %30, align 4, !tbaa !5
  %433 = mul nsw i32 %432, %432
  store i32 %433, ptr %18, align 4, !tbaa !5
  %434 = zext nneg i32 %433 to i64
  %435 = getelementptr inbounds float, ptr %56, i64 %434
  %436 = getelementptr inbounds i8, ptr %435, i64 4
  call void @slassq_(ptr noundef nonnull %18, ptr noundef nonnull %436, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %23) #6
  %437 = load i32, ptr %11, align 4, !tbaa !5
  %438 = mul i32 %437, %90
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds float, ptr %49, i64 %439
  %441 = load i32, ptr %30, align 4, !tbaa !5
  %442 = mul nsw i32 %441, %441
  %443 = zext nneg i32 %442 to i64
  %444 = getelementptr inbounds float, ptr %56, i64 %443
  %445 = getelementptr inbounds i8, ptr %444, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %440, ptr noundef nonnull %6, ptr noundef nonnull %445, ptr noundef nonnull %30) #6
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %30) #6
  %446 = load i32, ptr %30, align 4, !tbaa !5
  %447 = mul nsw i32 %446, %446
  %448 = zext nneg i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %56, i64 %448
  %450 = getelementptr inbounds i8, ptr %449, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b48, ptr noundef %14, ptr noundef nonnull %30, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b42, ptr noundef nonnull %450, ptr noundef nonnull %30) #6
  %451 = load i32, ptr %30, align 4, !tbaa !5
  %452 = mul nsw i32 %451, %451
  store i32 %452, ptr %18, align 4, !tbaa !5
  %453 = zext nneg i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %56, i64 %453
  %455 = getelementptr inbounds i8, ptr %454, i64 4
  call void @slassq_(ptr noundef nonnull %18, ptr noundef nonnull %455, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %23) #6
  %456 = load float, ptr %42, align 4, !tbaa !9
  %457 = fpext float %456 to double
  %458 = load float, ptr %23, align 4, !tbaa !9
  %459 = fpext float %458 to double
  %460 = call double @sqrt(double noundef %459) #6
  %461 = fmul double %460, %457
  %462 = fptrunc double %461 to float
  %463 = fcmp ult float %111, %462
  br i1 %463, label %752, label %464

464:                                              ; preds = %414
  %465 = load i32, ptr %13, align 4, !tbaa !5
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds [16 x float], ptr %31, i64 0, i64 %466
  call void @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 %467, ptr noundef nonnull @c__4) #6
  %468 = load i32, ptr %11, align 4, !tbaa !5
  %469 = mul i32 %468, %85
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds float, ptr %46, i64 %470
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull @c__4, ptr noundef %471, ptr noundef nonnull %4) #6
  %472 = load i32, ptr %11, align 4, !tbaa !5
  %473 = mul i32 %472, %90
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds float, ptr %49, i64 %474
  call void @slacpy_(ptr noundef nonnull @.str.5, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef %475, ptr noundef nonnull %6) #6
  call void @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 %32, ptr noundef nonnull @c__4) #6
  call void @slaset_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef %14, ptr noundef nonnull %30) #6
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  store float 1.000000e+00, ptr %32, align 16, !tbaa !9
  %476 = load i32, ptr %15, align 4, !tbaa !5
  %477 = load i32, ptr %30, align 4, !tbaa !5
  %478 = mul nsw i32 %477, %477
  %479 = add i32 %476, -2
  %480 = sub i32 %479, %478
  store i32 %480, ptr %21, align 4, !tbaa !5
  %481 = load i32, ptr %13, align 4, !tbaa !5
  %482 = icmp sgt i32 %481, 1
  br i1 %482, label %483, label %509

483:                                              ; preds = %464
  %484 = load i32, ptr %11, align 4, !tbaa !5
  %485 = mul i32 %484, %85
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds float, ptr %46, i64 %486
  %488 = mul i32 %484, %90
  %489 = sext i32 %488 to i64
  %490 = getelementptr inbounds float, ptr %49, i64 %489
  %491 = getelementptr inbounds i8, ptr %14, i64 4
  call void @slagv2_(ptr noundef %487, ptr noundef nonnull %4, ptr noundef %490, ptr noundef nonnull %6, ptr noundef nonnull %40, ptr noundef nonnull %39, ptr noundef nonnull %38, ptr noundef nonnull %14, ptr noundef nonnull %491, ptr noundef nonnull %32, ptr noundef nonnull %417) #6
  %492 = load float, ptr %491, align 4, !tbaa !9
  %493 = fneg float %492
  %494 = load i32, ptr %30, align 4, !tbaa !5
  %495 = sext i32 %494 to i64
  %496 = getelementptr float, ptr %56, i64 %495
  %497 = getelementptr i8, ptr %496, i64 4
  store float %493, ptr %497, align 4, !tbaa !9
  %498 = load float, ptr %14, align 4, !tbaa !9
  %499 = getelementptr i8, ptr %496, i64 8
  store float %498, ptr %499, align 4, !tbaa !9
  %500 = load float, ptr %32, align 16, !tbaa !9
  %501 = load i32, ptr %13, align 4, !tbaa !5
  %502 = mul i32 %501, 5
  %503 = add nsw i32 %502, -5
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %504
  store float %500, ptr %505, align 4, !tbaa !9
  %506 = load float, ptr %417, align 4, !tbaa !9
  %507 = fneg float %506
  %508 = getelementptr inbounds i8, ptr %32, i64 16
  store float %507, ptr %508, align 16, !tbaa !9
  %.pre527 = mul nsw i32 %494, %494
  br label %509

509:                                              ; preds = %483, %464
  %.pre-phi = phi i32 [ %.pre527, %483 ], [ %478, %464 ]
  %510 = phi i32 [ %501, %483 ], [ %481, %464 ]
  %511 = phi i32 [ %494, %483 ], [ %477, %464 ]
  %512 = zext nneg i32 %.pre-phi to i64
  %513 = getelementptr inbounds float, ptr %56, i64 %512
  store float 1.000000e+00, ptr %513, align 4, !tbaa !9
  %514 = mul i32 %511, 5
  %515 = add nsw i32 %514, -5
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %516
  store float 1.000000e+00, ptr %517, align 4, !tbaa !9
  %518 = load i32, ptr %12, align 4, !tbaa !5
  %519 = icmp sgt i32 %518, 1
  br i1 %519, label %520, label %580

520:                                              ; preds = %509
  %521 = load i32, ptr %11, align 4, !tbaa !5
  %522 = add nsw i32 %510, %521
  %523 = mul i32 %522, %85
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds float, ptr %46, i64 %524
  %526 = mul i32 %522, %90
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds float, ptr %49, i64 %527
  %529 = getelementptr inbounds i8, ptr %513, i64 4
  %530 = add i32 %511, 1
  %531 = mul i32 %510, %530
  %532 = sext i32 %531 to i64
  %533 = getelementptr float, ptr %56, i64 %532
  %534 = getelementptr i8, ptr %533, i64 4
  %535 = getelementptr i8, ptr %533, i64 8
  %536 = mul i32 %510, 5
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %537
  %539 = shl i32 %511, 2
  %540 = add i32 %511, -9
  %541 = add i32 %540, %539
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %542
  call void @slagv2_(ptr noundef %525, ptr noundef nonnull %4, ptr noundef %528, ptr noundef nonnull %6, ptr noundef nonnull %24, ptr noundef nonnull %22, ptr noundef nonnull %529, ptr noundef %534, ptr noundef %535, ptr noundef nonnull %538, ptr noundef nonnull %543) #6
  %544 = load i32, ptr %13, align 4, !tbaa !5
  %545 = load i32, ptr %30, align 4, !tbaa !5
  %546 = add i32 %545, 1
  %547 = mul i32 %546, %544
  %548 = sext i32 %547 to i64
  %549 = getelementptr float, ptr %56, i64 %548
  %550 = getelementptr i8, ptr %549, i64 4
  %551 = load float, ptr %550, align 4, !tbaa !9
  %552 = mul nsw i32 %545, %545
  %553 = zext nneg i32 %552 to i64
  %554 = getelementptr inbounds float, ptr %56, i64 %553
  store float %551, ptr %554, align 4, !tbaa !9
  %555 = getelementptr i8, ptr %549, i64 8
  %556 = load float, ptr %555, align 4, !tbaa !9
  %557 = fneg float %556
  %558 = getelementptr i8, ptr %554, i64 -4
  store float %557, ptr %558, align 4, !tbaa !9
  %559 = mul i32 %544, 5
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %560
  %562 = load float, ptr %561, align 4, !tbaa !9
  %563 = mul i32 %545, 5
  %564 = add nsw i32 %563, -5
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %565
  store float %562, ptr %566, align 4, !tbaa !9
  %567 = add nsw i32 %545, -1
  %568 = shl i32 %567, 2
  %569 = add i32 %545, -5
  %570 = add i32 %569, %568
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %571
  %573 = load float, ptr %572, align 4, !tbaa !9
  %574 = fneg float %573
  %575 = shl i32 %545, 2
  %576 = add i32 %575, -5
  %577 = add i32 %576, %567
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %578
  store float %574, ptr %579, align 4, !tbaa !9
  br label %580

580:                                              ; preds = %520, %509
  %.pre-phi529 = phi i64 [ %553, %520 ], [ %512, %509 ]
  %581 = phi i32 [ %544, %520 ], [ %510, %509 ]
  %582 = load i32, ptr %11, align 4, !tbaa !5
  %583 = add nsw i32 %581, %582
  %584 = mul nsw i32 %583, %44
  %585 = add nsw i32 %584, %582
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds float, ptr %46, i64 %586
  %588 = getelementptr inbounds float, ptr %56, i64 %.pre-phi529
  %589 = getelementptr inbounds i8, ptr %588, i64 4
  call void @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 %30, ptr noundef %587, ptr noundef nonnull %4, ptr noundef nonnull @c_b5, ptr noundef nonnull %589, ptr noundef nonnull %13) #6
  %590 = load i32, ptr %30, align 4, !tbaa !5
  %591 = mul nsw i32 %590, %590
  %592 = zext nneg i32 %591 to i64
  %593 = getelementptr inbounds float, ptr %56, i64 %592
  %594 = getelementptr inbounds i8, ptr %593, i64 4
  %595 = load i32, ptr %11, align 4, !tbaa !5
  %596 = load i32, ptr %13, align 4, !tbaa !5
  %597 = add nsw i32 %596, %595
  %598 = mul nsw i32 %597, %44
  %599 = add nsw i32 %598, %595
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %46, i64 %600
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %594, ptr noundef nonnull %13, ptr noundef %601, ptr noundef nonnull %4) #6
  %602 = load i32, ptr %11, align 4, !tbaa !5
  %603 = load i32, ptr %13, align 4, !tbaa !5
  %604 = add nsw i32 %603, %602
  %605 = mul nsw i32 %604, %47
  %606 = add nsw i32 %605, %602
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds float, ptr %49, i64 %607
  %609 = load i32, ptr %30, align 4, !tbaa !5
  %610 = mul nsw i32 %609, %609
  %611 = zext nneg i32 %610 to i64
  %612 = getelementptr inbounds float, ptr %56, i64 %611
  %613 = getelementptr inbounds i8, ptr %612, i64 4
  call void @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 %30, ptr noundef %608, ptr noundef nonnull %6, ptr noundef nonnull @c_b5, ptr noundef nonnull %613, ptr noundef nonnull %13) #6
  %614 = load i32, ptr %30, align 4, !tbaa !5
  %615 = mul nsw i32 %614, %614
  %616 = zext nneg i32 %615 to i64
  %617 = getelementptr inbounds float, ptr %56, i64 %616
  %618 = getelementptr inbounds i8, ptr %617, i64 4
  %619 = load i32, ptr %11, align 4, !tbaa !5
  %620 = load i32, ptr %13, align 4, !tbaa !5
  %621 = add nsw i32 %620, %619
  %622 = mul nsw i32 %621, %47
  %623 = add nsw i32 %622, %619
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds float, ptr %49, i64 %624
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %618, ptr noundef nonnull %13, ptr noundef %625, ptr noundef nonnull %6) #6
  %626 = load i32, ptr %30, align 4, !tbaa !5
  %627 = mul nsw i32 %626, %626
  %628 = zext nneg i32 %627 to i64
  %629 = getelementptr inbounds float, ptr %56, i64 %628
  %630 = getelementptr inbounds i8, ptr %629, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull %14, ptr noundef nonnull %30, ptr noundef nonnull @c_b5, ptr noundef nonnull %630, ptr noundef nonnull %30) #6
  %631 = load i32, ptr %30, align 4, !tbaa !5
  %632 = mul nsw i32 %631, %631
  %633 = zext nneg i32 %632 to i64
  %634 = getelementptr inbounds float, ptr %56, i64 %633
  %635 = getelementptr inbounds i8, ptr %634, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %635, ptr noundef nonnull %30, ptr noundef nonnull %41, ptr noundef nonnull @c__4) #6
  %636 = load i32, ptr %11, align 4, !tbaa !5
  %637 = load i32, ptr %13, align 4, !tbaa !5
  %638 = add nsw i32 %637, %636
  %639 = mul nsw i32 %638, %44
  %640 = add nsw i32 %639, %636
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds float, ptr %46, i64 %641
  %643 = mul i32 %637, 5
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %644
  call void @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 %642, ptr noundef nonnull %4, ptr noundef nonnull %645, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %13) #6
  %646 = load i32, ptr %11, align 4, !tbaa !5
  %647 = load i32, ptr %13, align 4, !tbaa !5
  %648 = add nsw i32 %647, %646
  %649 = mul nsw i32 %648, %44
  %650 = add nsw i32 %649, %646
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds float, ptr %46, i64 %651
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %13, ptr noundef %652, ptr noundef nonnull %4) #6
  %653 = load i32, ptr %11, align 4, !tbaa !5
  %654 = load i32, ptr %13, align 4, !tbaa !5
  %655 = add nsw i32 %654, %653
  %656 = mul nsw i32 %655, %47
  %657 = add nsw i32 %656, %653
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %49, i64 %658
  %660 = mul i32 %654, 5
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %661
  call void @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 %659, ptr noundef nonnull %6, ptr noundef nonnull %662, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %13) #6
  %663 = load i32, ptr %11, align 4, !tbaa !5
  %664 = load i32, ptr %13, align 4, !tbaa !5
  %665 = add nsw i32 %664, %663
  %666 = mul nsw i32 %665, %47
  %667 = add nsw i32 %666, %663
  %668 = sext i32 %667 to i64
  %669 = getelementptr inbounds float, ptr %49, i64 %668
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %13, ptr noundef %669, ptr noundef nonnull %6) #6
  call void @sgemm_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull %32, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %30) #6
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull %30, ptr noundef nonnull %43, ptr noundef nonnull @c__4) #6
  %670 = load i32, ptr %0, align 4, !tbaa !5
  %.not491 = icmp eq i32 %670, 0
  br i1 %.not491, label %682, label %671

671:                                              ; preds = %580
  %672 = load i32, ptr %11, align 4, !tbaa !5
  %673 = mul nsw i32 %672, %50
  %674 = sext i32 %673 to i64
  %675 = getelementptr float, ptr %52, i64 %674
  %676 = getelementptr i8, ptr %675, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef %676, ptr noundef nonnull %8, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %2) #6
  %677 = load i32, ptr %11, align 4, !tbaa !5
  %678 = mul nsw i32 %677, %50
  %679 = sext i32 %678 to i64
  %680 = getelementptr float, ptr %52, i64 %679
  %681 = getelementptr i8, ptr %680, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull %2, ptr noundef %681, ptr noundef nonnull %8) #6
  br label %682

682:                                              ; preds = %671, %580
  %683 = load i32, ptr %1, align 4, !tbaa !5
  %.not492 = icmp eq i32 %683, 0
  br i1 %.not492, label %695, label %684

684:                                              ; preds = %682
  %685 = load i32, ptr %11, align 4, !tbaa !5
  %686 = mul nsw i32 %685, %53
  %687 = sext i32 %686 to i64
  %688 = getelementptr float, ptr %55, i64 %687
  %689 = getelementptr i8, ptr %688, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef %689, ptr noundef nonnull %10, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %2) #6
  %690 = load i32, ptr %11, align 4, !tbaa !5
  %691 = mul nsw i32 %690, %53
  %692 = sext i32 %691 to i64
  %693 = getelementptr float, ptr %55, i64 %692
  %694 = getelementptr i8, ptr %693, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %2, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull %2, ptr noundef %694, ptr noundef nonnull %10) #6
  br label %695

695:                                              ; preds = %684, %682
  %696 = load i32, ptr %11, align 4, !tbaa !5
  %697 = load i32, ptr %30, align 4, !tbaa !5
  %698 = add nsw i32 %697, %696
  %699 = load i32, ptr %2, align 4, !tbaa !5
  %.not493 = icmp sgt i32 %698, %699
  br i1 %.not493, label %728, label %700

700:                                              ; preds = %695
  %reass.sub = sub i32 %699, %698
  %701 = add i32 %reass.sub, 1
  store i32 %701, ptr %18, align 4, !tbaa !5
  %702 = mul nsw i32 %698, %44
  %703 = add nsw i32 %702, %696
  %704 = sext i32 %703 to i64
  %705 = getelementptr inbounds float, ptr %46, i64 %704
  call void @sgemm_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %18, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef %705, ptr noundef nonnull %4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %30) #6
  %706 = load i32, ptr %2, align 4, !tbaa !5
  %707 = add i32 %706, 1
  %708 = sub i32 %707, %698
  store i32 %708, ptr %18, align 4, !tbaa !5
  %709 = load i32, ptr %11, align 4, !tbaa !5
  %710 = add nsw i32 %709, %702
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds float, ptr %46, i64 %711
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %18, ptr noundef nonnull %14, ptr noundef nonnull %30, ptr noundef %712, ptr noundef nonnull %4) #6
  %713 = load i32, ptr %2, align 4, !tbaa !5
  %714 = add i32 %713, 1
  %715 = sub i32 %714, %698
  store i32 %715, ptr %18, align 4, !tbaa !5
  %716 = load i32, ptr %11, align 4, !tbaa !5
  %717 = mul nsw i32 %698, %47
  %718 = add nsw i32 %716, %717
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds float, ptr %49, i64 %719
  call void @sgemm_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %30, ptr noundef nonnull %18, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef nonnull %41, ptr noundef nonnull @c__4, ptr noundef %720, ptr noundef nonnull %6, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %30) #6
  %721 = load i32, ptr %2, align 4, !tbaa !5
  %722 = add i32 %721, 1
  %723 = sub i32 %722, %698
  store i32 %723, ptr %18, align 4, !tbaa !5
  %724 = load i32, ptr %11, align 4, !tbaa !5
  %725 = add nsw i32 %724, %717
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds float, ptr %49, i64 %726
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %30, ptr noundef nonnull %18, ptr noundef nonnull %14, ptr noundef nonnull %30, ptr noundef %727, ptr noundef nonnull %6) #6
  %.pre526 = load i32, ptr %11, align 4, !tbaa !5
  br label %728

728:                                              ; preds = %700, %695
  %729 = phi i32 [ %.pre526, %700 ], [ %696, %695 ]
  %730 = add nsw i32 %729, -1
  store i32 %730, ptr %29, align 4, !tbaa !5
  %731 = icmp sgt i32 %729, 1
  br i1 %731, label %732, label %753

732:                                              ; preds = %728
  %733 = mul nsw i32 %729, %44
  %734 = sext i32 %733 to i64
  %735 = getelementptr float, ptr %46, i64 %734
  %736 = getelementptr i8, ptr %735, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef %736, ptr noundef nonnull %4, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %29) #6
  %737 = load i32, ptr %11, align 4, !tbaa !5
  %738 = mul nsw i32 %737, %44
  %739 = sext i32 %738 to i64
  %740 = getelementptr float, ptr %46, i64 %739
  %741 = getelementptr i8, ptr %740, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull %29, ptr noundef %741, ptr noundef nonnull %4) #6
  %742 = load i32, ptr %11, align 4, !tbaa !5
  %743 = mul nsw i32 %742, %47
  %744 = sext i32 %743 to i64
  %745 = getelementptr float, ptr %49, i64 %744
  %746 = getelementptr i8, ptr %745, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.3, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b42, ptr noundef %746, ptr noundef nonnull %6, ptr noundef nonnull %43, ptr noundef nonnull @c__4, ptr noundef nonnull @c_b5, ptr noundef nonnull %14, ptr noundef nonnull %29) #6
  %747 = load i32, ptr %11, align 4, !tbaa !5
  %748 = mul nsw i32 %747, %47
  %749 = sext i32 %748 to i64
  %750 = getelementptr float, ptr %49, i64 %749
  %751 = getelementptr i8, ptr %750, i64 4
  call void @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull %29, ptr noundef %751, ptr noundef nonnull %6) #6
  br label %753

752:                                              ; preds = %414, %412, %389, %._crit_edge515, %368, %366, %364, %362, %._crit_edge510, %326, %._crit_edge, %161, %114
  store i32 1, ptr %16, align 4, !tbaa !5
  br label %753

753:                                              ; preds = %728, %732, %271, %273, %66, %17, %59, %62, %752, %78
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  ret void
}

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

declare void @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 void @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 void @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 i32 @llvm.smax.i32(i32, i32) #5

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 = { nounwind }

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

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


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